En dit is dus de functie tcp_connect()
Deze is automatisch gegenereerd door gSOAP....
static int
tcp_connect(struct soap *soap, const char *hostname, int port)
{ struct sockaddr_in sockaddr;
struct hostent *host;
int len = SOAP_BUFLEN;
int set = 1;
if (tcp_init(soap))
{ *soap_faultcode(soap) = "Client";
*soap_faultstring(soap) = tcp_error(soap);
*soap_faultdetail(soap) = "TCP initialization failed in tcp_connect()";
soap->error = SOAP_TCP_ERROR;
return -1;
}
soap->errmode = 0;
if ((soap->socket = socket(AF_INET, SOCK_STREAM, 0)) < 0)
{ soap->errnum = errno;
*soap_faultcode(soap) = "Client";
*soap_faultstring(soap) = tcp_error(soap);
*soap_faultdetail(soap) = "TCP socket failed in tcp_connect()";
soap->error = SOAP_TCP_ERROR;
return -1;
}
if (setsockopt(soap->socket, SOL_SOCKET, SO_SNDBUF, (char*)&len, sizeof(int))
|| setsockopt(soap->socket, SOL_SOCKET, SO_RCVBUF, (char*)&len, sizeof(int))
/* || setsockopt(soap_socket, SOL_SOCKET, SO_KEEPALIVE, &set, sizeof(int)) */
#ifdef TCP_NODELAY
|| setsockopt(soap->socket, IPPROTO_TCP, TCP_NODELAY, (char*)&set, sizeof(int))
#endif
)
{ soap->errnum = errno;
*soap_faultcode(soap) = "Client";
*soap_faultstring(soap) = tcp_error(soap);
*soap_faultdetail(soap) = "TCP setsockopt failed in tcp_connect()";
soap->error = SOAP_TCP_ERROR;
return -1;
}
memset(&sockaddr, 0, sizeof(sockaddr));
sockaddr.sin_family = AF_INET;
DBGLOG(TEST,fprintf(fdebug,"\nOpen socket: %d to Hostname-#%s#\n", soap->socket, hostname));
soap->errmode = 2;
if (!(host = gethostbyname(hostname)))
{ soap->errnum = h_errno;
DBGLOG(TEST, fprintf(fdebug,"\nERROR :: HOST NAME NOT FOUND \n"));
*soap_faultcode(soap) = "Client";
*soap_faultstring(soap) = tcp_error(soap);
*soap_faultdetail(soap) = "TCP get host by name failed in tcp_connect()";
soap->error = SOAP_TCP_ERROR;
return -1;
}
memcpy(&sockaddr.sin_addr, host->h_addr, host->h_length);
sockaddr.sin_port = htons((short)port);
soap->errmode = 0;
if (connect(soap->socket, (struct sockaddr*)&sockaddr, sizeof(sockaddr)))
{ soap->errnum = errno;
DBGLOG(TEST, "\nERROR :: COULD NOT CONNECT TO HOST \n");
soap_closesock(soap);
*soap_faultcode(soap) = "Client";
*soap_faultstring(soap) = tcp_error(soap);
*soap_faultdetail(soap) = "TCP connect failed in tcp_connect()";
soap->error = SOAP_TCP_ERROR;
}
return soap->socket;
}