Skip to content
Snippets Groups Projects
Commit 6442001d authored by Michael Tüxen's avatar Michael Tüxen
Browse files

Add SCTP support for MacOS, if kext is available.

parent 2d3b9696
No related branches found
No related tags found
No related merge requests found
......@@ -106,6 +106,10 @@
#if defined(__APPLE__)
#if defined(HAVE_SCTP)
#include <sys/types.h>
#include <netinet/sctp.h>
#endif
#define USE_LIBPCAP 1
#define HAVE_TCP_INFO 1
#define HAVE_FMEMOPEN 1
......
This diff is collapsed.
......@@ -141,6 +141,217 @@ struct int_symbol platform_symbols_table[] = {
{ IPV6_PREFER_TEMPADDR, "IPV6_PREFER_TEMPADDR" },
{ IPV6_BOUND_IF, "IPV6_BOUND_IF" },
#if defined(HAVE_SCTP)
/* /usr/include/netinet/sctp.h and /usr/include/netinet/sctp_uio.h */
{ SCTP_RTOINFO, "SCTP_RTOINFO" },
{ SCTP_ASSOCINFO, "SCTP_ASSOCINFO" },
{ SCTP_INITMSG, "SCTP_INITMSG" },
{ SCTP_INIT, "SCTP_INIT" },
{ SCTP_NODELAY, "SCTP_NODELAY" },
{ SCTP_AUTOCLOSE, "SCTP_AUTOCLOSE" },
{ SCTP_PRIMARY_ADDR, "SCTP_PRIMARY_ADDR" },
{ SCTP_ADAPTATION_LAYER, "SCTP_ADAPTATION_LAYER" },
{ SCTP_DISABLE_FRAGMENTS, "SCTP_DISABLE_FRAGMENTS" },
{ SCTP_DEFAULT_SEND_PARAM, "SCTP_DEFAULT_SEND_PARAM" },
{ SCTP_I_WANT_MAPPED_V4_ADDR, "SCTP_I_WANT_MAPPED_V4_ADDR" },
{ SCTP_MAXSEG, "SCTP_MAXSEG" },
{ SCTP_HMAC_IDENT, "SCTP_HMAC_IDENT" },
{ SCTP_AUTH_ACTIVE_KEY, "SCTP_AUTH_ACTIVE_KEY" },
{ SCTP_DELAYED_SACK, "SCTP_DELAYED_SACK" },
{ SCTP_PARTIAL_DELIVERY_POINT, "SCTP_PARTIAL_DELIVERY_POINT" },
{ SCTP_AUTO_ASCONF, "SCTP_AUTO_ASCONF" },
{ SCTP_MAX_BURST, "SCTP_MAX_BURST" },
{ SCTP_CONTEXT, "SCTP_CONTEXT" },
{ SCTP_PEER_ADDR_PARAMS, "SCTP_PEER_ADDR_PARAMS" },
{ SCTP_EVENT, "SCTP_EVENT" },
{ SCTP_EXPLICIT_EOR, "SCTP_EXPLICIT_EOR" },
{ SCTP_REUSE_PORT, "SCTP_REUSE_PORT" },
{ SCTP_EVENTS, "SCTP_EVENTS" },
{ SCTP_DEFAULT_SNDINFO, "SCTP_DEFAULT_SNDINFO" },
{ SCTP_DEFAULT_PRINFO, "SCTP_DEFAULT_PRINFO" },
{ SCTP_STATUS, "SCTP_STATUS" },
{ SCTP_GET_PEER_ADDR_INFO, "SCTP_GET_PEER_ADDR_INFO" },
{ SCTP_PEER_AUTH_CHUNKS, "SCTP_PEER_AUTH_CHUNKS" },
{ SCTP_LOCAL_AUTH_CHUNKS, "SCTP_LOCAL_AUTH_CHUNKS" },
{ SCTP_GET_ASSOC_NUMBER, "SCTP_GET_ASSOC_NUMBER" },
{ SCTP_GET_ASSOC_ID_LIST, "SCTP_GET_ASSOC_ID_LIST" },
{ SCTP_SET_PEER_PRIMARY_ADDR, "SCTP_SET_PEER_PRIMARY_ADDR" },
{ SCTP_AUTH_CHUNK, "SCTP_AUTH_CHUNK" },
{ SCTP_AUTH_KEY, "SCTP_AUTH_KEY" },
{ SCTP_AUTH_DEACTIVATE_KEY, "SCTP_AUTH_DEACTIVATE_KEY" },
{ SCTP_AUTH_DELETE_KEY, "SCTP_AUTH_DELETE_KEY" },
{ SCTP_FRAGMENT_INTERLEAVE, "SCTP_FRAGMENT_INTERLEAVE" },
{ SCTP_EXPLICIT_EOR, "SCTP_EXPLICIT_EOR" },
#if defined(SCTP_INTERLEAVING_SUPPORTED)
{ SCTP_INTERLEAVING_SUPPORTED, "SCTP_INTERLEAVING_SUPPORTED" },
#endif
{ SCTP_REMOTE_UDP_ENCAPS_PORT, "SCTP_REMOTE_UDP_ENCAPS_PORT" },
{ SCTP_CLOSED, "SCTP_CLOSED" },
{ SCTP_BOUND, "SCTP_BOUND" },
{ SCTP_LISTEN, "SCTP_LISTEN" },
{ SCTP_COOKIE_WAIT, "SCTP_COOKIE_WAIT" },
{ SCTP_COOKIE_ECHOED, "SCTP_COOKIE_ECHOED" },
{ SCTP_ESTABLISHED, "SCTP_ESTABLISHED" },
{ SCTP_SHUTDOWN_SENT, "SCTP_SHUTDOWN_SENT" },
{ SCTP_SHUTDOWN_RECEIVED, "SCTP_SHUTDOWN_RECEIVED" },
{ SCTP_SHUTDOWN_ACK_SENT, "SCTP_SHUTDOWN_ACK_SENT" },
{ SCTP_SHUTDOWN_PENDING, "SCTP_SHUTDOWN_PENDING" },
/* The following constants are from
* https://tools.ietf.org/html/draft-ietf-tsvwg-sctp-ndata-04
* The old symbols currently being deployed are also provided.
*/
{ SCTP_PLUGGABLE_SS, "SCTP_PLUGGABLE_SS" },
{ SCTP_SS_VALUE, "SCTP_SS_VALUE" },
{ SCTP_SS_DEFAULT, "SCTP_SS_DEFAULT" },
{ SCTP_SS_ROUND_ROBIN, "SCTP_SS_ROUND_ROBIN" },
{ SCTP_SS_ROUND_ROBIN_PACKET, "SCTP_SS_ROUND_ROBIN_PACKET" },
{ SCTP_SS_PRIORITY, "SCTP_SS_PRIORITY" },
/* The following is a typo in FreeBSD's sctp.h */
{ SCTP_SS_FAIR_BANDWITH, "SCTP_SS_FAIR_BANDWITH" },
{ SCTP_SS_FIRST_COME, "SCTP_SS_FIRST_COME" },
#if defined(SCTP_SS_FCFS)
{ SCTP_SS_FCFS, "SCTP_SS_FCFS" },
#endif
#if defined(SCTP_SS_RR)
{ SCTP_SS_RR, "SCTP_SS_RR" },
#endif
#if defined(SCTP_SS_RR_PKT)
{ SCTP_SS_RR_PKT, "SCTP_SS_RR_PKT" },
#endif
#if defined(SCTP_SS_PRIO)
{ SCTP_SS_PRIO, "SCTP_SS_PRIO" },
#endif
#if defined(SCTP_SS_FB)
{ SCTP_SS_FB, "SCTP_SS_FB" },
#endif
#if defined(SCTP_SS_WFQ)
{ SCTP_SS_WFQ, "SCTP_SS_WFQ" },
#endif
#if defined(SCTP_SS_RR_INTER)
{ SCTP_SS_RR_INTER, "SCTP_SS_RR_INTER" },
#endif
#if defined(SCTP_SS_RR_PKT_INTER)
{ SCTP_SS_RR_PKT_INTER, "SCTP_SS_RR_PKT_INTER" },
#endif
#if defined(SCTP_SS_PRIO_INTER)
{ SCTP_SS_PRIO_INTER, "SCTP_SS_PRIO_INTER" },
#endif
#if defined(SCTP_SS_FB_INTER)
{ SCTP_SS_FB_INTER, "SCTP_SS_FB_INTER" },
#endif
#if defined(SCTP_SS_WFQ_INTER)
{ SCTP_SS_WFQ_INTER, "SCTP_SS_WFQ_INTER" },
#endif
{ SCTP_UNCONFIRMED, "SCTP_UNCONFIRMED" },
{ SCTP_ACTIVE, "SCTP_ACTIVE" },
{ SCTP_INACTIVE, "SCTP_INACTIVE" },
{ SPP_HB_ENABLE, "SPP_HB_ENABLE" },
{ SPP_HB_DISABLE, "SPP_HB_DISABLE" },
{ SPP_HB_DEMAND, "SPP_HB_DEMAND" },
{ SPP_HB_TIME_IS_ZERO, "SPP_HB_TIME_IS_ZERO" },
{ SPP_PMTUD_ENABLE, "SPP_PMTUD_ENABLE" },
{ SPP_PMTUD_DISABLE, "SPP_PMTUD_DISABLE" },
{ SPP_IPV6_FLOWLABEL, "SPP_IPV6_FLOWLABEL" },
{ SPP_DSCP, "SPP_DSCP" },
{ SCTP_ASSOC_CHANGE, "SCTP_ASSOC_CHANGE" },
{ SCTP_PEER_ADDR_CHANGE, "SCTP_PEER_ADDR_CHANGE" },
{ SCTP_REMOTE_ERROR, "SCTP_REMOTE_ERROR" },
{ SCTP_SEND_FAILED, "SCTP_SEND_FAILED" },
{ SCTP_SHUTDOWN_EVENT, "SCTP_SHUTDOWN_EVENT" },
{ SCTP_SENDER_DRY_EVENT, "SCTP_SENDER_DRY_EVENT" },
{ SCTP_SEND_FAILED_EVENT, "SCTP_SEND_FAILED_EVENT" },
{ SCTP_ADAPTATION_INDICATION, "SCTP_ADAPTATION_INDICATION" },
{ SCTP_ADAPTION_INDICATION, "SCTP_ADAPTION_INDICATION" },
{ SCTP_PARTIAL_DELIVERY_EVENT, "SCTP_PARTIAL_DELIVERY_EVENT" },
{ SCTP_AUTHENTICATION_EVENT, "SCTP_AUTHENTICATION_EVENT" },
{ SCTP_NOTIFICATIONS_STOPPED_EVENT, "SCTP_NOTIFICATIONS_STOPPED_EVENT"},
{ SCTP_SEND_FAILED_EVENT, "SCTP_SEND_FAILED_EVENT" },
{ SCTP_UNORDERED, "SCTP_UNORDERED" },
{ SCTP_COMPLETE, "SCTP_COMPLETE" },
{ SCTP_ADDR_OVER, "SCTP_ADDR_OVER" },
{ SCTP_ABORT, "SCTP_ABORT" },
{ SCTP_EOF, "SCTP_EOF" },
{ SCTP_SENDALL, "SCTP_SENDALL" },
{ SCTP_EOR, "SCTP_EOR" },
{ SCTP_NEXT_MSG_AVAIL, "SCTP_NEXT_MSG_AVAIL" },
{ SCTP_NEXT_MSG_ISCOMPLETE, "SCTP_NEXT_MSG_ISCOMPLETE" },
{ SCTP_NEXT_MSG_IS_UNORDERED, "SCTP_NEXT_MSG_IS_UNORDERED" },
{ SCTP_NEXT_MSG_IS_NOTIFICATION, "SCTP_NEXT_MSG_IS_NOTIFICATION" },
{ SCTP_SACK_IMMEDIATELY, "SCTP_SACK_IMMEDIATELY" },
{ SCTP_PR_SCTP_NONE, "SCTP_PR_SCTP_NONE" },
{ SCTP_PR_SCTP_TTL, "SCTP_PR_SCTP_TTL" },
{ SCTP_PR_SCTP_RTX, "SCTP_PR_SCTP_RTX" },
{ SCTP_PR_SCTP_PRIO, "SCTP_PR_SCTP_PRIO" },
{ SCTP_BINDX_ADD_ADDR, "SCTP_BINDX_ADD_ADDR" },
{ SCTP_BINDX_REM_ADDR, "SCTP_BINDX_REM_ADDR" },
{ SCTP_SENDV_NOINFO, "SCTP_SENDV_NOINFO" },
{ SCTP_SENDV_SNDINFO, "SCTP_SENDV_SNDINFO" },
{ SCTP_SENDV_PRINFO, "SCTP_SENDV_PRINFO" },
{ SCTP_SENDV_AUTHINFO, "SCTP_SENDV_AUTHINFO" },
{ SCTP_SENDV_SPA, "SCTP_SENDV_SPA" },
{ SCTP_SEND_SNDINFO_VALID, "SCTP_SEND_SNDINFO_VALID" },
{ SCTP_SEND_PRINFO_VALID, "SCTP_SEND_PRINFO_VALID" },
{ SCTP_SEND_AUTHINFO_VALID, "SCTP_SEND_AUTHINFO_VALID" },
{ SCTP_RECVV_NOINFO, "SCTP_RECVV_NOINFO" },
{ SCTP_RECVV_RCVINFO, "SCTP_RECVV_RCVINFO" },
{ SCTP_RECVV_NXTINFO, "SCTP_RECVV_NXTINFO" },
{ SCTP_RECVV_RN, "SCTP_RECVV_RN" },
{ SCTP_RECVRCVINFO, "SCTP_RECVRCVINFO" },
{ SCTP_RECVNXTINFO, "SCTP_RECVNXTINFO" },
{ SCTP_DATA_SENT, "SCTP_DATA_SENT" },
{ SCTP_DATA_UNSENT, "SCTP_DATA_UNSENT" },
{ SCTP_COMM_UP, "SCTP_COMM_UP" },
{ SCTP_COMM_LOST, "SCTP_COMM_LOST" },
{ SCTP_RESTART, "SCTP_RESTART" },
{ SCTP_SHUTDOWN_COMP, "SCTP_SHUTDOWN_COMP" },
{ SCTP_AUTH_NEW_KEY, "SCTP_AUTH_NEW_KEY" },
{ SCTP_AUTH_NO_AUTH, "SCTP_AUTH_NO_AUTH" },
{ SCTP_AUTH_FREE_KEY, "SCTP_AUTH_FREE_KEY" },
{ SCTP_ASSOC_SUPPORTS_PR, "SCTP_ASSOC_SUPPORTS_PR" },
{ SCTP_ASSOC_SUPPORTS_AUTH, "SCTP_ASSOC_SUPPORTS_AUTH" },
{ SCTP_ASSOC_SUPPORTS_ASCONF, "SCTP_ASSOC_SUPPORTS_ASCONF" },
{ SCTP_ASSOC_SUPPORTS_MULTIBUF, "SCTP_ASSOC_SUPPORTS_MULTIBUF" },
{ SCTP_PARTIAL_DELIVERY_ABORTED, "SCTP_PARTIAL_DELIVERY_ABORTED" },
{ SCTP_ADDR_AVAILABLE, "SCTP_ADDR_AVAILABLE" },
{ SCTP_ADDR_UNREACHABLE, "SCTP_ADDR_UNREACHABLE" },
{ SCTP_ADDR_REMOVED, "SCTP_ADDR_REMOVED" },
{ SCTP_ADDR_MADE_PRIM, "SCTP_ADDR_MADE_PRIM" },
{ SCTP_SNDRCV, "SCTP_SNDRCV" },
{ SCTP_SNDINFO, "SCTP_SNDINFO" },
{ SCTP_RCVINFO, "SCTP_RCVINFO" },
{ SCTP_NXTINFO, "SCTP_NXTINFO" },
{ SCTP_PRINFO, "SCTP_PRINFO" },
{ SCTP_AUTHINFO, "SCTP_AUTHINFO" },
{ SCTP_DSTADDRV4, "SCTP_DSTADDRV4" },
{ SCTP_DSTADDRV6, "SCTP_DSTADDRV6" },
{ SCTP_EXTRCV, "SCTP_EXTRCV" },
{ SCTP_USE_EXT_RCVINFO, "SCTP_USE_EXT_RCVINFO" },
{ SCTP_AUTH_HMAC_ID_SHA1, "SCTP_AUTH_HMAC_ID_SHA1" },
{ SCTP_AUTH_HMAC_ID_SHA256, "SCTP_AUTH_HMAC_ID_SHA256" },
/* sctp stream reconfiguration */
{ SCTP_ENABLE_STREAM_RESET, "SCTP_ENABLE_STREAM_RESET" },
{ SCTP_ENABLE_RESET_STREAM_REQ, "SCTP_ENABLE_RESET_STREAM_REQ" },
{ SCTP_ENABLE_RESET_ASSOC_REQ, "SCTP_ENABLE_RESET_ASSOC_REQ" },
{ SCTP_ENABLE_CHANGE_ASSOC_REQ, "SCTP_ENABLE_CHANGE_ASSOC_REQ" },
{ SCTP_RESET_STREAMS, "SCTP_RESET_STREAMS" },
{ SCTP_STREAM_RESET_INCOMING, "SCTP_STREAM_RESET_INCOMING" },
{ SCTP_STREAM_RESET_OUTGOING, "SCTP_STREAM_RESET_OUTGOING" },
{ SCTP_RESET_ASSOC, "SCTP_RESET_ASSOC" },
{ SCTP_ADD_STREAMS, "SCTP_ADD_STREAMS" },
{ SCTP_STREAM_RESET_EVENT, "SCTP_STREAM_RESET_EVENT" },
{ SCTP_STREAM_RESET_INCOMING_SSN, "SCTP_STREAM_RESET_INCOMING_SSN" },
{ SCTP_STREAM_RESET_OUTGOING_SSN, "SCTP_STREAM_RESET_OUTGOING_SSN" },
{ SCTP_STREAM_RESET_DENIED, "SCTP_STREAM_RESET_DENIED" },
{ SCTP_STREAM_RESET_FAILED, "SCTP_STREAM_RESET_FAILED" },
{ SCTP_ASSOC_RESET_EVENT, "SCTP_ASSOC_RESET_EVENT" },
{ SCTP_ASSOC_RESET_DENIED, "SCTP_ASSOC_RESET_DENIED" },
{ SCTP_ASSOC_RESET_FAILED, "SCTP_ASSOC_RESET_FAILED" },
{ SCTP_STREAM_CHANGE_EVENT, "SCTP_STREAM_CHANGE_EVENT" },
{ SCTP_STREAM_CHANGE_DENIED, "SCTP_STREAM_CHANGE_DENIED" },
{ SCTP_STREAM_CHANGE_FAILED, "SCTP_STREAM_CHANGE_FAILED" },
#endif
/* /usr/include/netinet/tcp.h */
{ TCP_NODELAY, "TCP_NODELAY" },
{ TCP_MAXSEG, "TCP_MAXSEG" },
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment