20150221 security problem: it can not parse username which contains -- (double dash sign) properly. impact: infinite loop. dos attacks can consume cpu time. fix: changed the loop condition. Thanks, Hiroya Ito. 20070605 portability problem: unsigned short int is not guaranteed to be an 16-bit integer. And unsigned long int is not guaranteed to be an 32-bit integer. impact: couldn't compile. fix: included inttypes.h and used uint16_t and uint32_t. Thanks, Wayne Marshall. 20040303 portability problem: errno is not guaranteed to be an int. impact: couldn't compile. fix: changed "extern int errno;" to "#include ".