summaryrefslogtreecommitdiff
path: root/netinet/sctp_usrreq.c
diff options
context:
space:
mode:
Diffstat (limited to 'netinet/sctp_usrreq.c')
-rwxr-xr-xnetinet/sctp_usrreq.c46
1 files changed, 27 insertions, 19 deletions
diff --git a/netinet/sctp_usrreq.c b/netinet/sctp_usrreq.c
index 17441bc..d4115ad 100755
--- a/netinet/sctp_usrreq.c
+++ b/netinet/sctp_usrreq.c
@@ -76,6 +76,8 @@ void
sctp_init(uint16_t port,
int (*conn_output)(void *addr, void *buffer, size_t length, uint8_t tos, uint8_t set_df),
void (*debug_printf)(const char *format, ...))
+#elif defined(__APPLE__) && (!defined(APPLE_LEOPARD) && !defined(APPLE_SNOWLEOPARD) &&!defined(APPLE_LION) && !defined(APPLE_MOUNTAINLION))
+sctp_init(struct protosw *pp SCTP_UNUSED, struct domain *dp SCTP_UNUSED)
#else
sctp_init(void)
#endif
@@ -177,8 +179,7 @@ sctp_init(void)
#if defined(__APPLE__)
SCTP_BASE_VAR(sctp_main_timer_ticks) = 0;
sctp_start_main_timer();
- sctp_address_monitor_start();
- sctp_over_udp_start();
+ timeout(sctp_delayed_startup, NULL, 1);
#endif
}
@@ -186,6 +187,7 @@ void
sctp_finish(void)
{
#if defined(__APPLE__)
+ untimeout(sctp_delayed_startup, NULL);
sctp_over_udp_stop();
sctp_address_monitor_stop();
sctp_stop_main_timer();
@@ -7799,7 +7801,7 @@ sctp_peeraddr(struct socket *so, struct mbuf *nam)
#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__Windows__)
struct pr_usrreqs sctp_usrreqs = {
-#if __FreeBSD_version >= 600000
+#if defined(__FreeBSD__)
.pru_abort = sctp_abort,
.pru_accept = sctp_accept,
.pru_attach = sctp_attach,
@@ -7823,45 +7825,51 @@ struct pr_usrreqs sctp_usrreqs = {
.pru_sockaddr = sctp_ingetaddr,
.pru_sosend = sctp_sosend,
.pru_soreceive = sctp_soreceive
-#else
+#elif defined(__APPLE__)
+ .pru_abort = sctp_abort,
+ .pru_accept = sctp_accept,
+ .pru_attach = sctp_attach,
+ .pru_bind = sctp_bind,
+ .pru_connect = sctp_connect,
+ .pru_connect2 = pru_connect2_notsupp,
+ .pru_control = in_control,
+ .pru_detach = sctp_detach,
+ .pru_disconnect = sctp_disconnect,
+ .pru_listen = sctp_listen,
+ .pru_peeraddr = sctp_peeraddr,
+ .pru_rcvd = NULL,
+ .pru_rcvoob = pru_rcvoob_notsupp,
+ .pru_send = sctp_sendm,
+ .pru_sense = pru_sense_null,
+ .pru_shutdown = sctp_shutdown,
+ .pru_sockaddr = sctp_ingetaddr,
+ .pru_sosend = sctp_sosend,
+ .pru_soreceive = sctp_soreceive,
+ .pru_sopoll = sopoll
+#elif defined(__Windows__)
sctp_abort,
sctp_accept,
sctp_attach,
sctp_bind,
sctp_connect,
pru_connect2_notsupp,
-#if defined(__Windows__)
NULL,
NULL,
-#else
- in_control,
- sctp_detach,
-#endif
sctp_disconnect,
sctp_listen,
sctp_peeraddr,
NULL,
pru_rcvoob_notsupp,
-#if defined(__Windows__)
NULL,
-#else
- sctp_sendm,
-#endif
pru_sense_null,
sctp_shutdown,
-#if defined(__Windows__)
sctp_flush,
-#endif
sctp_ingetaddr,
sctp_sosend,
sctp_soreceive,
-#if defined(__Windows__)
sopoll_generic,
NULL,
sctp_close
-#else
- sopoll
-#endif
#endif
};
#elif !defined(__Panda__) && !defined(__Userspace__)