fix formating error in sys_setsockopt
add list of socketlayers and use that for [gs]etsockopt
diff --git a/net.c b/net.c
index daea782..17ace69 100644
--- a/net.c
+++ b/net.c
@@ -191,6 +191,59 @@
#endif
{ 0, NULL },
};
+static struct xlat socketlayers[] = {
+ { SOL_IP, "SOL_IP" },
+#if defined(SOL_ICMP)
+ { SOL_ICMP, "SOL_ICMP" },
+#endif
+ { SOL_TCP, "SOL_TCP" },
+ { SOL_UDP, "SOL_UDP" },
+#if defined(SOL_IPV6)
+ { SOL_IPV6, "SOL_IPV6" },
+#endif
+#if defined(SOL_ICMPV6)
+ { SOL_ICMPV6, "SOL_ICMPV6" },
+#endif
+#if defined(SOL_RAW)
+ { SOL_RAW, "SOL_RAW" },
+#endif
+#if defined(SOL_IPX)
+ { SOL_IPX, "SOL_IPX" },
+#endif
+#if defined(SOL_IPX)
+ { SOL_IPX, "SOL_IPX" },
+#endif
+#if defined(SOL_AX25)
+ { SOL_AX25, "SOL_AX25" },
+#endif
+#if defined(SOL_ATALK)
+ { SOL_ATALK, "SOL_ATALK" },
+#endif
+#if defined(SOL_NETROM)
+ { SOL_NETROM, "SOL_NETROM" },
+#endif
+#if defined(SOL_ROSE)
+ { SOL_ROSE, "SOL_ROSE" },
+#endif
+#if defined(SOL_DECNET)
+ { SOL_DECNET, "SOL_DECNET" },
+#endif
+#if defined(SOL_X25)
+ { SOL_X25, "SOL_X25" },
+#endif
+#if defined(SOL_PACKET)
+ { SOL_PACKET, "SOL_PACKET" },
+#endif
+#if defined(SOL_ATM)
+ { SOL_ATM, "SOL_ATM" },
+#endif
+#if defined(SOL_AAL)
+ { SOL_AAL, "SOL_AAL" },
+#endif
+#if defined(SOL_IRDA)
+ { SOL_IRDA, "SOL_IRDA" },
+#endif
+};
static struct xlat protocols[] = {
{ IPPROTO_IP, "IPPROTO_IP" },
{ IPPROTO_ICMP, "IPPROTO_ICMP" },
@@ -1042,7 +1095,7 @@
* etc. still need work */
default:
/* XXX - should know socket family here */
- printxval(protocols, tcp->u_arg[1], "IPPROTO_???");
+ printxval(socketlayers, tcp->u_arg[1], "SOL_???");
tprintf(", %lu, ", tcp->u_arg[2]);
break;
}
@@ -1160,8 +1213,8 @@
* etc. still need work */
default:
/* XXX - should know socket family here */
- printxval(protocols, tcp->u_arg[1], "IPPROTO_???");
- tprintf("%lu, ", tcp->u_arg[2]);
+ printxval(socketlayers, tcp->u_arg[1], "IPPROTO_???");
+ tprintf(", %lu, ", tcp->u_arg[2]);
printnum(tcp, tcp->u_arg[3], "%ld");
tprintf(", %lu", tcp->u_arg[4]);
break;