As Guy Harris points out in bug report GH #1022, the function has been a
busy no-op since commit
e6c39e6 in 2010. While at it, fixup the Python
code to work on Python 3:
for i in range(len(crc_table)/8):
TypeError: 'float' object cannot be interpreted as an integer
accum ^= 0x633
crc_table.append(accum)
accum ^= 0x633
crc_table.append(accum)
-for i in range(len(crc_table)/8):
+for i in range(int(len(crc_table)/8)):
for j in range(8):
sys.stdout.write("0x%04x, " % crc_table[i*8+j])
sys.stdout.write("\n")
for j in range(8):
sys.stdout.write("0x%04x, " % crc_table[i*8+j])
sys.stdout.write("\n")
0x021e, 0x002d, 0x004b, 0x0278, 0x0087, 0x02b4, 0x02d2, 0x00e1
};
0x021e, 0x002d, 0x004b, 0x0278, 0x0087, 0x02b4, 0x02d2, 0x00e1
};
-static void
-init_crc10_table(void)
-{
-#define CRC10_POLYNOMIAL 0x633
- int i, j;
- uint16_t accum;
- uint16_t verify_crc10_table[256];
-
- for ( i = 0; i < 256; i++ )
- {
- accum = ((unsigned short) i << 2);
- for ( j = 0; j < 8; j++ )
- {
- if ((accum <<= 1) & 0x400) accum ^= CRC10_POLYNOMIAL;
- }
- verify_crc10_table[i] = accum;
- }
- assert(memcmp(verify_crc10_table,
- crc10_table,
- sizeof(verify_crc10_table)) == 0);
-#undef CRC10_POLYNOMIAL
-}
-
uint16_t
verify_crc10_cksum(uint16_t accum, const u_char *p, int length)
{
uint16_t
verify_crc10_cksum(uint16_t accum, const u_char *p, int length)
{
-/* precompute checksum tables */
-void
-init_checksum(void) {
-
- init_crc10_table();
-
-}
-
/*
* Creates the OSI Fletcher checksum. See 8473-1, Appendix C, section C.3.
* The checksum field of the passed PDU does not need to be reset to zero.
/*
* Creates the OSI Fletcher checksum. See 8473-1, Appendix C, section C.3.
* The checksum field of the passed PDU does not need to be reset to zero.
extern void zmtp1_print(netdissect_options *, const u_char *, u_int);
/* checksum routines */
extern void zmtp1_print(netdissect_options *, const u_char *, u_int);
/* checksum routines */
-extern void init_checksum(void);
extern uint16_t verify_crc10_cksum(uint16_t, const u_char *, int);
extern uint16_t create_osi_cksum(const uint8_t *, int, int);
extern uint16_t verify_crc10_cksum(uint16_t, const u_char *, int);
extern uint16_t create_osi_cksum(const uint8_t *, int, int);
void
init_print(netdissect_options *ndo, uint32_t localnet, uint32_t mask)
{
void
init_print(netdissect_options *ndo, uint32_t localnet, uint32_t mask)
{
init_addrtoname(ndo, localnet, mask);
init_addrtoname(ndo, localnet, mask);