Index: seagull/library-trans-extsctp/C_SocketSCTP.cpp =================================================================== --- seagull.orig/library-trans-extsctp/C_SocketSCTP.cpp +++ seagull/library-trans-extsctp/C_SocketSCTP.cpp @@ -18,11 +18,21 @@ */ #include +#include "string_t.hpp" #include "Utils.hpp" #include "C_Socket.hpp" #include "C_SocketSCTP.hpp" +#ifdef HAVE_KERNEL_SCTP +#include +#include +#include + +#include +#include +#endif + #define MSGFLAG 0 #define MAX_OUTGOING 128 @@ -98,7 +108,17 @@ void C_SocketSCTPListen::set_properties( events.sctp_peer_error_event = 1; events.sctp_shutdown_event = 1; events.sctp_partial_delivery_event = 1; +#ifdef HAVE_KERNEL_SCTP +#ifdef SCTP_ADAPTION_LAYER + events.sctp_adaption_layer_event = 1; +#endif +#ifdef SCTP_ADAPTATION_LAYER events.sctp_adaptation_layer_event = 1; +#endif +#else + events.sctp_adaptation_layer_event = 1; +#endif + if(ext_setsockopt(m_socket_id, IPPROTO_SCTP, SCTP_EVENTS,&events,sizeof(events)) < 0) { @@ -391,7 +411,16 @@ void C_SocketSCTPWithData::set_propertie events.sctp_peer_error_event = 1; events.sctp_shutdown_event = 1; events.sctp_partial_delivery_event = 1; +#ifdef HAVE_KERNEL_SCTP +#ifdef SCTP_ADAPTION_LAYER + events.sctp_adaption_layer_event = 1; +#endif +#ifdef SCTP_ADAPTATION_LAYER events.sctp_adaptation_layer_event = 1; +#endif +#else + events.sctp_adaptation_layer_event = 1; +#endif if(ext_setsockopt(m_socket_id, IPPROTO_SCTP, SCTP_EVENTS,&events,sizeof(events)) < 0) { @@ -523,7 +552,11 @@ void C_SocketSCTPWithData::sctp_event_ha spc = &snp->sn_paddr_change; switch(spc->spc_state) { +#ifndef HAVE_KERNEL_SCTP case SCTP_ADDR_REACHABLE: +#else + case SCTP_ADDR_AVAILABLE: +#endif SOCKET_DEBUG(0, "C_SocketSCTPWithData::sctp_event_handler() " << "ASSOC PEER: ADDRESS REACHABLE"); break; @@ -543,10 +576,12 @@ void C_SocketSCTPWithData::sctp_event_ha SOCKET_DEBUG(0, "C_SocketSCTPWithData::sctp_event_handler() " << "ASSOC PEER: ADDRESS MADE PRIMARY"); break; +#ifndef HAVE_KERNEL_SCTP case SCTP_ADDR_CONFIRMED: SOCKET_DEBUG(0, "C_SocketSCTPWithData::sctp_event_handler() " << "ASSOC PEER: ADDRESS CONFIRMED"); break; +#endif default: SOCKET_DEBUG(0, "C_SocketSCTPWithData::sctp_event_handler() " << "ASSOC PEER: UNKNOWN"); @@ -569,10 +604,12 @@ void C_SocketSCTPWithData::sctp_event_ha // printf("EVENT: remote_error: err=%hu len=%hu\n", ntohs(sre->sre_error), ntohs(sre->sre_length)); break; +#ifndef HAVE_KERNEL_SCTP case SCTP_ADAPTATION_INDICATION: SOCKET_DEBUG(0, "C_SocketSCTPWithData::sctp_event_handler() " << "EVENT: ADAPTATION INDICATION"); break; +#endif // case SCTP_PARTIAL_DELIVERY_EVENT: { // printf("EVENT: PARTIAL DELIVERY\n"); Index: seagull/library-trans-extsctp/C_TransSCTP.cpp =================================================================== --- seagull.orig/library-trans-extsctp/C_TransSCTP.cpp +++ seagull/library-trans-extsctp/C_TransSCTP.cpp @@ -64,7 +64,9 @@ int C_TransSCTP::analyze_config(T_Config C_TransSCTP::C_TransSCTP() : C_TransIP() { +#ifndef HAVE_KERNEL_SCTP sctp_initLibrary(); +#endif } C_TransSCTP::~C_TransSCTP() { @@ -72,7 +74,11 @@ C_TransSCTP::~C_TransSCTP() { T_SelectDef C_TransSCTP::select_definition() { GEN_DEBUG(0, "C_TransSCTP::select_definition () "); +#ifndef HAVE_KERNEL_SCTP return (&ext_select); +#else + return (&select); +#endif } C_Socket* C_TransSCTP::open (int P_channel_id, Index: seagull/library-trans-extsctp/socketSCTP_t.hpp =================================================================== --- seagull.orig/library-trans-extsctp/socketSCTP_t.hpp +++ seagull/library-trans-extsctp/socketSCTP_t.hpp @@ -19,7 +19,13 @@ #ifndef _SOCKETSCTP_T_HPP #define _SOCKETSCTP_T_HPP +#ifndef HAVE_KERNEL_SCTP #include +#else +#include +#include +#include +#endif #include #ifndef AF_INET6