diff options
author | Micael Karlberg <[email protected]> | 2018-11-26 18:31:49 +0100 |
---|---|---|
committer | Micael Karlberg <[email protected]> | 2018-11-26 18:31:49 +0100 |
commit | b7e5753c4e2eb22d231f2b64291ba7d1aec4d444 (patch) | |
tree | b6be54d23e6e231febb65eda5d332539885a97e6 /erts | |
parent | c44851291637659ef096818eda4692c81ed052ae (diff) | |
download | otp-b7e5753c4e2eb22d231f2b64291ba7d1aec4d444.tar.gz otp-b7e5753c4e2eb22d231f2b64291ba7d1aec4d444.tar.bz2 otp-b7e5753c4e2eb22d231f2b64291ba7d1aec4d444.zip |
[socket-nif] Conditional use of sctp struct field
Added config checks for the sctp struct field:
sctp_event_subscribe.sctp_sender_dry_event
Also, if-def'ed the code accordingly.
OTP-14831
Diffstat (limited to 'erts')
-rw-r--r-- | erts/configure.in | 3 | ||||
-rw-r--r-- | erts/emulator/nifs/common/socket_nif.c | 9 |
2 files changed, 10 insertions, 2 deletions
diff --git a/erts/configure.in b/erts/configure.in index d211b81878..79a1944a03 100644 --- a/erts/configure.in +++ b/erts/configure.in @@ -1594,7 +1594,8 @@ if test x"$ac_cv_header_netinet_sctp_h" = x"yes"; then struct sctp_paddrparams.spp_sackdelay, struct sctp_paddrparams.spp_flags, struct sctp_remote_error.sre_data, - struct sctp_send_failed.ssf_data], [], [], + struct sctp_send_failed.ssf_data, + struct sctp_event_subscribe.sctp_sender_dry_event], [], [], [#if HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif diff --git a/erts/emulator/nifs/common/socket_nif.c b/erts/emulator/nifs/common/socket_nif.c index f657da3ace..cc58918f43 100644 --- a/erts/emulator/nifs/common/socket_nif.c +++ b/erts/emulator/nifs/common/socket_nif.c @@ -9225,7 +9225,10 @@ ERL_NIF_TERM nsetopt_lvl_sctp_events(ErlNifEnv* env, ERL_NIF_TERM result; ERL_NIF_TERM eDataIn, eAssoc, eAddr, eSndFailure; ERL_NIF_TERM ePeerError, eShutdown, ePartialDelivery; - ERL_NIF_TERM eAdaptLayer, eAuth, eSndDry; + ERL_NIF_TERM eAdaptLayer, eAuth; +#if defined(HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE_SCTP_SENDER_DRY_EVENT) + ERL_NIF_TERM eSndDry; +#endif struct sctp_event_subscribe events; int res; size_t sz; @@ -9273,8 +9276,10 @@ ERL_NIF_TERM nsetopt_lvl_sctp_events(ErlNifEnv* env, if (!GET_MAP_VAL(env, eVal, atom_authentication, &eAuth)) return esock_make_error(env, esock_atom_einval); +#if defined(HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE_SCTP_SENDER_DRY_EVENT) if (!GET_MAP_VAL(env, eVal, atom_sender_dry, &eSndDry)) return esock_make_error(env, esock_atom_einval); +#endif SSDBG( descP, ("SOCKET", "nsetopt_lvl_sctp_events -> decode attributes\r\n") ); @@ -9288,7 +9293,9 @@ ERL_NIF_TERM nsetopt_lvl_sctp_events(ErlNifEnv* env, events.sctp_partial_delivery_event = esock_decode_bool(ePartialDelivery); events.sctp_adaptation_layer_event = esock_decode_bool(eAdaptLayer); events.sctp_authentication_event = esock_decode_bool(eAuth); +#if defined(HAVE_STRUCT_SCTP_EVENT_SUBSCRIBE_SCTP_SENDER_DRY_EVENT) events.sctp_sender_dry_event = esock_decode_bool(eSndDry); +#endif SSDBG( descP, ("SOCKET", "nsetopt_lvl_sctp_events -> set events option\r\n") ); |