diff options
author | John Denker <jsd@av8n.com> | 2012-07-26 11:00:48 -0700 |
---|---|---|
committer | John Denker <jsd@av8n.com> | 2012-07-29 15:32:37 -0700 |
commit | 01ef1d365e5776b130e8b65772a80b6adcb0ed46 (patch) | |
tree | f0e7d3e161f82180e834a6368d41b79272ab013a /ucspi-tcp-0.88/fmt_xlong.c | |
parent | 9aa998757a8736cef02fd92050eacbb2a6fb5180 (diff) |
files added by IPv6 patch
Diffstat (limited to 'ucspi-tcp-0.88/fmt_xlong.c')
-rw-r--r-- | ucspi-tcp-0.88/fmt_xlong.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/ucspi-tcp-0.88/fmt_xlong.c b/ucspi-tcp-0.88/fmt_xlong.c new file mode 100644 index 0000000..332fc9a --- /dev/null +++ b/ucspi-tcp-0.88/fmt_xlong.c @@ -0,0 +1,22 @@ +#include "fmt.h" + +char tohex(char num) { + if (num<10) + return num+'0'; + else if (num<16) + return num-10+'a'; + else + return -1; +} + +unsigned int fmt_xlong(register char *s,register unsigned long u) +{ + register unsigned int len; register unsigned long q; + len = 1; q = u; + while (q > 15) { ++len; q /= 16; } + if (s) { + s += len; + do { *--s = tohex(u % 16); u /= 16; } while(u); /* handles u == 0 */ + } + return len; +} |