| 65 | *************************************************/ |
| 66 | |
| 67 | EipStatus NetworkHandlerInitialize(void) { |
| 68 | |
| 69 | if( kEipStatusOk != NetworkHandlerInitializePlatform() ) { |
| 70 | return kEipStatusError; |
| 71 | } |
| 72 | |
| 73 | SocketTimerArrayInitialize(g_timestamps, OPENER_NUMBER_OF_SUPPORTED_SESSIONS); |
| 74 | |
| 75 | /* clear the master an temp sets */ |
| 76 | FD_ZERO(&master_socket); |
| 77 | FD_ZERO(&read_socket); |
| 78 | |
| 79 | /* create a new TCP socket */ |
| 80 | if ( ( g_network_status.tcp_listener = |
| 81 | socket(AF_INET, SOCK_STREAM, IPPROTO_TCP) ) |
| 82 | == -1 ) { |
| 83 | int error_code = GetSocketErrorNumber(); |
| 84 | char *error_message = GetErrorMessage(error_code); |
| 85 | OPENER_TRACE_ERR("error allocating socket stream listener, %d - %s\n", |
| 86 | error_code, |
| 87 | error_message); |
| 88 | FreeErrorMessage(error_message); |
| 89 | return kEipStatusError; |
| 90 | } |
| 91 | |
| 92 | int set_socket_option_value = 1; //Represents true for used set socket options |
| 93 | /* Activates address reuse */ |
| 94 | if (setsockopt( g_network_status.tcp_listener, SOL_SOCKET, SO_REUSEADDR, |
| 95 | (char *) &set_socket_option_value, |
| 96 | sizeof(set_socket_option_value) ) == -1) { |
| 97 | OPENER_TRACE_ERR( |
| 98 | "error setting socket option SO_REUSEADDR on tcp_listener\n"); |
| 99 | return kEipStatusError; |
| 100 | } |
| 101 | |
| 102 | if (SetSocketToNonBlocking(g_network_status.tcp_listener) < 0) { |
| 103 | OPENER_TRACE_ERR( |
| 104 | "error setting socket to non-blocking on new socket\n"); |
| 105 | return kEipStatusError; |
| 106 | } |
| 107 | |
| 108 | /* create a new UDP socket */ |
| 109 | if ( ( g_network_status.udp_global_broadcast_listener = socket(AF_INET, |
| 110 | SOCK_DGRAM, |
| 111 | IPPROTO_UDP) ) |
| 112 | == kEipInvalidSocket ) { |
| 113 | int error_code = GetSocketErrorNumber(); |
| 114 | char *error_message = GetErrorMessage(error_code); |
| 115 | OPENER_TRACE_ERR( |
| 116 | "error allocating UDP global broadcast listener socket, %d - %s\n", |
| 117 | error_code, |
| 118 | error_message); |
| 119 | FreeErrorMessage(error_message); |
| 120 | return kEipStatusError; |
| 121 | } |
| 122 | |
| 123 | /* create a new UDP socket */ |
| 124 | if ( ( g_network_status.udp_unicast_listener = socket(AF_INET, SOCK_DGRAM, |
no test coverage detected