MCPcopy Create free account
hub / github.com/EIPStackGroup/OpENer / NetworkHandlerInitialize

Function NetworkHandlerInitialize

source/src/ports/generic_networkhandler.c:67–255  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

65*************************************************/
66
67EipStatus 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,

Callers 3

mainFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85

Calls 8

GetMaxSocketFunction · 0.85
GetSocketErrorNumberFunction · 0.50
GetErrorMessageFunction · 0.50
FreeErrorMessageFunction · 0.50
SetSocketToNonBlockingFunction · 0.50
GetMilliSecondsFunction · 0.50

Tested by

no test coverage detected