in reply to Compensate for bad inet checksum routine

sub prepchksum { my ( $payload ) = @_; ###DEBUG: printf "BEFORE = %s\n", unpack 'H*', $payload; if ( length( $payload ) % 2 == 1 ) { if ( substr( $payload, -1 ) ge "\x80" ) { substr $payload, -1, 1, chr ord( substr $payload, -1 ) - 1 +; substr $payload, -1, 0, "\xff"; } else { substr $payload, -1, 0, "\0"; } } ###DEBUG: printf "AFTER = %s\n", unpack 'H*', $payload; }

Replies are listed 'Best First'.
Re^2: Compensate for bad inet checksum routine
by VinsWorldcom (Prior) on Mar 29, 2013 at 18:12 UTC

    Beautiful! ++