Posted to tcl by kbk at Thu Oct 22 16:00:48 GMT 2009view pretty
proc inet_cksum8_kbk {data} { set sum 0 binary scan $data cu* x if {[llength $x] & 1} { lappend x 0 } foreach {v w} $x { set sum [expr {$sum + ($v << 8) + $w}] set sum [expr {($sum & 0xffff) | ($sum >> 16)}] } return $sum }