-if (!localAddress.empty())
- {
- if (localPort == 0)
- localPort = port;
-
- unsigned long ip = inet_addr(localAddress.c_str());
-
- if (ip == INADDR_NONE)
- {
- struct hostent * phe = gethostbyname(localAddress.c_str());
- if (phe == NULL)
- {
- errorMsg = "DNS error.\nCan not reslove " + localAddress;
- return st_dns_err;
- }
-
- struct hostent he;
- memcpy(&he, phe, sizeof(he));
- ip = *((long *)he.h_addr_list[0]);
- }
-
- struct sockaddr_in localAddr;
- memset(&localAddr, 0, sizeof(localAddr));
- localAddr.sin_family = AF_INET;
- localAddr.sin_port = htons(localPort);
- localAddr.sin_addr.s_addr = ip;
-
- if (bind(sock, (struct sockaddr *)&localAddr, sizeof(localAddr)) < 0)
- {
- errorMsg = BIND_FAILED;
- return st_conn_fail;
- }
- }
-