Fix the mismatch types

This commit is contained in:
Max Lv
2016-05-06 15:10:09 +08:00
parent bb50fc22ca
commit e3deb0668d
2 changed files with 14 additions and 9 deletions
+12 -8
View File
@@ -82,18 +82,22 @@ int setinterface(int socket_fd, const char *interface_name)
}
#endif
int bind_to_address(int socket_fd, const char *address)
int bind_to_address(int socket_fd, const char *host)
{
if (address != NULL) {
if (host != NULL) {
struct cork_ip ip;
struct sockaddr_storage addr;
if (cork_ip_init(&ip, address) != -1) {
struct sockaddr_storage storage;
if (cork_ip_init(&ip, host) != -1) {
if (ip.version == 4) {
dns_pton(AF_INET, address, &addr);
return bind(socket_fd, (struct sockaddr_in *)&addr, sizeof(struct sockaddr_in));
struct sockaddr_in *addr = (struct sockaddr_in *)&storage;
dns_pton(AF_INET, host, &addr->sin_addr);
addr->sin_family = AF_INET;
return bind(socket_fd, addr, sizeof(struct sockaddr_in));
} else if (ip.version == 6) {
dns_pton(AF_INET6, address, &addr);
return bind(socket_fd, (struct sockaddr_in6 *)&addr, sizeof(struct sockaddr_in6));
struct sockaddr_in6 *addr = (struct sockaddr_in6 *)&storage;
dns_pton(AF_INET6, host, &addr->sin6_addr);
addr->sin6_family = AF_INET6;
return bind(socket_fd, addr, sizeof(struct sockaddr_in6));
}
}
}
+2 -1
View File
@@ -417,7 +417,8 @@ static remote_t *connect_to_remote(struct addrinfo *res,
// setup remote socks
setnonblocking(sockfd);
bind_to_address(sockfd, bind_address);
if (bind_to_address(sockfd, bind_address) == -1)
ERROR("bind_to_address");
#ifdef SET_INTERFACE
if (iface) {
if (setinterface(sockfd, iface) == -1)