MCPcopy Index your code
hub / github.com/F-Stack/f-stack / sctp_print_address

Function sctp_print_address

tools/netstat/sctp.c:109–159  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107};
108
109static void
110sctp_print_address(const char *container, union sctp_sockstore *address,
111 int port, int num_port)
112{
113 struct servent *sp = 0;
114 char line[80], *cp;
115 int width;
116 size_t alen, plen;
117
118 if (container)
119 xo_open_container(container);
120
121 switch (address->sa.sa_family) {
122#ifdef INET
123 case AF_INET:
124 snprintf(line, sizeof(line), "%.*s.",
125 Wflag ? 39 : 16, inetname(&address->sin.sin_addr));
126 break;
127#endif
128#ifdef INET6
129 case AF_INET6:
130 snprintf(line, sizeof(line), "%.*s.",
131 Wflag ? 39 : 16, inet6name(&address->sin6.sin6_addr));
132 break;
133#endif
134 default:
135 snprintf(line, sizeof(line), "%.*s.",
136 Wflag ? 39 : 16, "");
137 break;
138 }
139 alen = strlen(line);
140 cp = line + alen;
141 if (!num_port && port)
142 sp = getservbyport((int)port, "sctp");
143 if (sp || port == 0)
144 snprintf(cp, sizeof(line) - alen,
145 "%.15s ", sp ? sp->s_name : "*");
146 else
147 snprintf(cp, sizeof(line) - alen,
148 "%d ", ntohs((u_short)port));
149 width = Wflag ? 45 : 22;
150 xo_emit("{d:target/%-*.*s} ", width, width, line);
151
152 plen = strlen(cp) - 1;
153 alen--;
154 xo_emit("{e:address/%*.*s}{e:port/%*.*s}", alen, alen, line, plen,
155 plen, cp);
156
157 if (container)
158 xo_close_container(container);
159}
160
161static int
162sctp_skip_xinpcb_ifneed(char *buf, const size_t buflen, size_t *offset)

Callers 2

sctp_process_tcbFunction · 0.70
sctp_process_inpcbFunction · 0.70

Calls 5

xo_open_containerFunction · 0.85
snprintfFunction · 0.85
inetnameFunction · 0.85
xo_emitFunction · 0.85
xo_close_containerFunction · 0.85

Tested by

no test coverage detected