annotate paraspace/tools.py @ 126:ff6f869273b7

Fix wrong init value for computing checksum
author Thinker K.F. Li <thinker@codemud.net>
date Mon, 08 Aug 2011 17:26:05 +0800
parents b7432d6f7e93
children
rev   line source
68
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
1 base = 65521
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
2
126
ff6f869273b7 Fix wrong init value for computing checksum
Thinker K.F. Li <thinker@codemud.net>
parents: 68
diff changeset
3 adler32_init_value = 1
ff6f869273b7 Fix wrong init value for computing checksum
Thinker K.F. Li <thinker@codemud.net>
parents: 68
diff changeset
4
68
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
5 def adler32(adler, buf, offset, sz):
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
6 sum1 = adler & 0xffff
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
7 sum2 = (adler >> 16) & 0xffff
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
8 for off in range(offset, offset + sz):
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
9 sum1 = (sum1 + ord(buf[off])) % base
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
10 sum2 = (sum2 + sum1) % base
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
11 pass
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
12 r = (sum2 << 16) | sum1
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
13 return r
b7432d6f7e93 adler32
Thinker K.F. Li <thinker@codemud.net>
parents:
diff changeset
14