]>
git.proxmox.com Git - mirror_iproute2.git/blob - lib/ipx_ntop.c
1 /* SPDX-License-Identifier: GPL-2.0 */
4 #include <sys/socket.h>
5 #include <netinet/in.h>
9 static __inline__
int do_digit(char *str
, u_int32_t addr
, u_int32_t scale
, size_t *pos
, size_t len
)
11 u_int32_t tmp
= addr
>> (scale
* 4);
18 *str
= tmp
+ 'A' - 10;
26 static const char *ipx_ntop1(const struct ipx_addr
*addr
, char *str
, size_t len
)
34 for(i
= 7; i
>= 0; i
--)
35 if (do_digit(str
+ pos
, ntohl(addr
->ipx_net
), i
, &pos
, len
))
44 for(i
= 0; i
< 6; i
++) {
45 if (do_digit(str
+ pos
, addr
->ipx_node
[i
], 1, &pos
, len
))
47 if (do_digit(str
+ pos
, addr
->ipx_node
[i
], 0, &pos
, len
))
60 const char *ipx_ntop(int af
, const void *addr
, char *str
, size_t len
)
65 return ipx_ntop1((struct ipx_addr
*)addr
, str
, len
);