static OWSLSocketType transport_implementation_get ( TransportProtocol protocol, OWSLAddressFamily address_family ) { switch (protocol) { case TRANSPORT_UDP : { return owsl_socket_type_get (address_family, OWSL_MODE_DATAGRAM, OWSL_CIPHERING_DISABLED) ; } case TRANSPORT_TCP : { return owsl_socket_type_get (address_family, OWSL_MODE_STREAM, OWSL_CIPHERING_DISABLED) ; } case TRANSPORT_TLS : { return owsl_socket_type_get (address_family, OWSL_MODE_STREAM, OWSL_CIPHERING_ENABLED) ; } default : { return OWSL_TYPE_UNKNOWN ; } } }
static OWPL_RESULT owplInitOwsl ( unsigned short use_udp, unsigned short use_tcp, unsigned short use_tls ) { int return_code ; int owslWasJustInitialized = 0 ; if (! owslIsInitialized) { return_code = owsl_initialize () ; if (return_code != 0) { goto error ; } owslIsInitialized = 1 ; owslWasJustInitialized = 1 ; } if (use_udp) { if ( owsl_socket_type_get ( OWSL_AF_IPV4, OWSL_MODE_DATAGRAM, OWSL_CIPHERING_DISABLED ) == OWSL_TYPE_UNKNOWN && owsl_socket_type_add (OWSL_TYPE_IPV4_UDP) != 0 ) { goto error ; } if ( owsl_socket_type_get ( OWSL_AF_IPV6, OWSL_MODE_DATAGRAM, OWSL_CIPHERING_DISABLED ) == OWSL_TYPE_UNKNOWN && owsl_socket_type_add (OWSL_TYPE_IPV6_UDP) != 0 ) { goto error ; } } if (use_tcp) { if ( owsl_socket_type_get ( OWSL_AF_IPV4, OWSL_MODE_STREAM, OWSL_CIPHERING_DISABLED ) == OWSL_TYPE_UNKNOWN && owsl_socket_type_add (OWSL_TYPE_IPV4_TCP) != 0 ) { goto error ; } if ( owsl_socket_type_get ( OWSL_AF_IPV6, OWSL_MODE_STREAM, OWSL_CIPHERING_DISABLED ) == OWSL_TYPE_UNKNOWN && owsl_socket_type_add (OWSL_TYPE_IPV6_TCP) != 0 ) { goto error ; } } if (use_tls) { if ( owsl_socket_type_get ( OWSL_AF_IPV4, OWSL_MODE_STREAM, OWSL_CIPHERING_ENABLED ) == OWSL_TYPE_UNKNOWN && owsl_socket_type_add (OWSL_TYPE_IPV4_TLS) != 0 ) { goto error ; } if ( owsl_socket_type_get ( OWSL_AF_IPV6, OWSL_MODE_STREAM, OWSL_CIPHERING_ENABLED ) == OWSL_TYPE_UNKNOWN && owsl_socket_type_add (OWSL_TYPE_IPV6_TLS) != 0 ) { goto error ; } } return OWPL_RESULT_SUCCESS ; error : if (owslWasJustInitialized) { owsl_terminate () ; } return OWPL_RESULT_FAILURE ; }