in sample_app/onvif_camera_mock/artifacts/wsdd/src/net_utils.c [358:400]
int connect_to_ipv4_socket(struct socket_param_t *socket_param)
{
struct sockaddr_in sin; //for IPv4
int sd, ret;
memset(&sin, 0, sizeof(struct sockaddr_in));
sin.sin_family = AF_INET;
sin.sin_port = htons(socket_param->port);
ret = host_or_ip_to_addr(socket_param->host_or_IP, socket_param->domain, &sin.sin_addr);
if( ret != 0 )
return -1; //Can't get addr from host or IP
sd = socket(socket_param->domain, socket_param->type, socket_param->protocol);
if( sd == -1 )
return -1;
if( socket_param->non_block && set_nonblock_mode(sd) )
{
close(sd);
return -1; //can't set non_block mode
}
if( socket_param->type == SOCK_DGRAM )
return sd; //good job
ret = connect(sd, (struct sockaddr *)&sin, sizeof(struct sockaddr_in));
if( ret && wait_connect(sd, 2000) )
{
close(sd);
return -1; //can't connect to socket
}
return sd; //good job
}