sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
sock = socket (AF_INET, SOCK_STREAM, 0);
+ if (sock < 0) {
+ nns_edge_loge ("Failed to get available port. Socket creation failure.");
+ return 0;
+ }
sin.sin_port = port;
if (bind (sock, (struct sockaddr *) &sin, sizeof (struct sockaddr)) == 0) {
getsockname (sock, (struct sockaddr *) &sin, &len);
}
/* Get destination capability. */
+ _nns_edge_cmd_init (&cmd, _NNS_EDGE_CMD_ERROR, eh->client_id);
ret = _nns_edge_cmd_receive (conn, &cmd);
if (ret != NNS_EDGE_ERROR_NONE) {
nns_edge_loge ("Failed to receive capability.");
break;
/** Receive data from the client */
+ _nns_edge_cmd_init (&cmd, _NNS_EDGE_CMD_ERROR, eh->client_id);
ret = _nns_edge_cmd_receive (conn, &cmd);
if (ret != NNS_EDGE_ERROR_NONE) {
nns_edge_loge ("Failed to receive data from the connected node.");
}
eh->is_server = is_server;
- if (!is_server && 0 == eh->recv_port)
+ if (!is_server && 0 == eh->recv_port) {
eh->recv_port = _get_available_port ();
+ if (eh->recv_port <= 0) {
+ nns_edge_loge ("Failed to start edge. Cannot get available port.");
+ return NNS_EDGE_ERROR_CONNECTION_FAILURE;
+ }
+ }
/** Initialize server src data. */
eh->cancellable = g_cancellable_new ();