xref: /netbsd-src/external/bsd/ntp/dist/libntp/refnumtoa.c (revision c42dbd0ed2e61fe6eda8590caa852ccf34719964)
1 /*	$NetBSD: refnumtoa.c,v 1.5 2020/05/25 20:47:24 christos Exp $	*/
2 
3 /*
4  * refnumtoa - return asciized refclock addresses stored in local array space
5  */
6 #include <config.h>
7 #include <stdio.h>
8 
9 #include "ntp_net.h"
10 #include "lib_strbuf.h"
11 #include "ntp_stdlib.h"
12 
13 const char *
14 refnumtoa(
15 	sockaddr_u *num
16 	)
17 {
18 	u_int32 netnum;
19 	char *buf;
20 	const char *rclock;
21 
22 	if (!ISREFCLOCKADR(num))
23 		return socktoa(num);
24 
25 	LIB_GETBUF(buf);
26 	netnum = SRCADR(num);
27 	rclock = clockname((int)((u_long)netnum >> 8) & 0xff);
28 
29 	if (rclock != NULL)
30 		snprintf(buf, LIB_BUFLENGTH, "%s(%lu)",
31 			 rclock, (u_long)netnum & 0xff);
32 	else
33 		snprintf(buf, LIB_BUFLENGTH, "REFCLK(%lu,%lu)",
34 			 ((u_long)netnum >> 8) & 0xff,
35 			 (u_long)netnum & 0xff);
36 
37 	return buf;
38 }
39