Print only printable characters from refid

This commit is contained in:
Miroslav Lichvar 2010-01-13 14:00:12 +01:00
parent 22f0da4da6
commit a3288d4284

19
util.c
View file

@ -244,14 +244,19 @@ UTI_TimestampToString(NTP_int64 *ts)
char * char *
UTI_RefidToString(unsigned long ref_id) UTI_RefidToString(unsigned long ref_id)
{ {
unsigned int a, b, c, d; unsigned int i, j, c;
char *result; char buf[5], *result;
a = (ref_id>>24) & 0xff;
b = (ref_id>>16) & 0xff; for (i = j = 0; i < 4; i++) {
c = (ref_id>> 8) & 0xff; c = (ref_id >> (24 - i * 8)) & 0xff;
d = (ref_id>> 0) & 0xff; if (isprint(c))
buf[j++] = c;
}
buf[j] = '\0';
result = NEXT_BUFFER; result = NEXT_BUFFER;
snprintf(result, BUFFER_LENGTH, "%c%c%c%c", a, b, c, d); snprintf(result, BUFFER_LENGTH, "%s", buf);
return result; return result;
} }