Index: sctp_sysctl.c =================================================================== RCS file: /data/cvs/src/sys/netinet/sctp_sysctl.c,v retrieving revision 1.5 diff -u -r1.5 sctp_sysctl.c --- sctp_sysctl.c 8 May 2007 17:01:11 -0000 1.5 +++ sctp_sysctl.c 15 May 2007 11:52:43 -0000 @@ -195,6 +195,14 @@ xinpcb.total_recvs = inp->total_recvs; xinpcb.total_nospaces = inp->total_nospaces; xinpcb.fragmentation_point = inp->sctp_frag_point; + + if (inp->sctp_socket != NULL) { + sotoxsocket(inp->sctp_socket, &xinpcb.xsocket); + } else { + bzero(&xinpcb.xsocket, sizeof xinpcb.xsocket); + xinpcb.xsocket.xso_protocol = IPPROTO_SCTP; + } + SCTP_INP_INCR_REF(inp); SCTP_INP_RUNLOCK(inp); SCTP_INP_INFO_RUNLOCK(); Index: sctp_uio.h =================================================================== RCS file: /data/cvs/src/sys/netinet/sctp_uio.h,v retrieving revision 1.17 diff -u -r1.17 sctp_uio.h --- sctp_uio.h 8 May 2007 17:01:11 -0000 1.17 +++ sctp_uio.h 15 May 2007 11:52:43 -0000 @@ -934,6 +934,7 @@ uint32_t total_recvs; uint32_t total_nospaces; uint32_t fragmentation_point; + struct xsocket xsocket; /* add more endpoint specific data here */ };