#if defined(SOL_IPV6) && defined(IPV6_V6ONLY)
if(sa->sa.sa_family == AF_INET6)
- setsockopt(nfd, SOL_IPV6, IPV6_V6ONLY, (void *)&option, sizeof option);
+ setsockopt(nfd, SOL_IPV6, IPV6_V6ONLY, (void *)&option, sizeof(option));
#endif
if(get_config_string(lookup_config(config_tree, "BindToInterface"), &iface)) {
#if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY)
if(sa->sa.sa_family == AF_INET6)
- setsockopt(nfd, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&option, sizeof option);
+ setsockopt(nfd, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&option, sizeof(option));
#endif
#if defined(IP_DONTFRAG) && !defined(IP_DONTFRAGMENT)
// If we cannot resolve the address, maybe we are using a proxy that can?
if(!c->outgoing->ai && proxytype != PROXY_NONE && is_valid_host_port(address, port)) {
- memset(&c->address, 0, sizeof c->address);
+ memset(&c->address, 0, sizeof(c->address));
c->address.sa.sa_family = AF_UNKNOWN;
c->address.unknown.address = address;
c->address.unknown.port = port;
if(!proxytype) {
c->socket = socket(c->address.sa.sa_family, SOCK_STREAM, IPPROTO_TCP);
} else if(proxytype == PROXY_EXEC) {
+ c->status.proxy_passed = true;
do_outgoing_pipe(c, proxyhost);
} else {
proxyai = str2addrinfo(proxyhost, proxyport, SOCK_STREAM);
#if defined(SOL_IPV6) && defined(IPV6_V6ONLY)
int option = 1;
if(c->address.sa.sa_family == AF_INET6)
- setsockopt(c->socket, SOL_IPV6, IPV6_V6ONLY, (void *)&option, sizeof option);
+ setsockopt(c->socket, SOL_IPV6, IPV6_V6ONLY, (void *)&option, sizeof(option));
#endif
bind_to_interface(c->socket);
- }
- int b = -1;
+ int b = -1;
- for(int i = 0; i < listen_sockets; i++) {
- if(listen_socket[i].sa.sa.sa_family == c->address.sa.sa_family) {
- if(b == -1) {
- b = i;
- } else {
- b = -1;
- break;
+ for(int i = 0; i < listen_sockets; i++) {
+ if(listen_socket[i].sa.sa.sa_family == c->address.sa.sa_family) {
+ if(b == -1) {
+ b = i;
+ } else {
+ b = -1;
+ break;
+ }
}
}
- }
- if(b != -1) {
- sockaddr_t sa = listen_socket[b].sa;
- if(sa.sa.sa_family == AF_INET)
- sa.in.sin_port = 0;
- else if(sa.sa.sa_family == AF_INET6)
- sa.in6.sin6_port = 0;
-
- if(bind(c->socket, &sa.sa, SALEN(sa.sa))) {
- char *addrstr = sockaddr2hostname(&sa);
- logger(LOG_ERR, "Can't bind to %s/tcp: %s", addrstr, sockstrerror(sockerrno));
- free(addrstr);
+ if(b != -1) {
+ sockaddr_t sa = listen_socket[b].sa;
+ if(sa.sa.sa_family == AF_INET)
+ sa.in.sin_port = 0;
+ else if(sa.sa.sa_family == AF_INET6)
+ sa.in6.sin6_port = 0;
+
+ if(bind(c->socket, &sa.sa, SALEN(sa.sa))) {
+ char *addrstr = sockaddr2hostname(&sa);
+ logger(LOG_ERR, "Can't bind to %s/tcp: %s", addrstr, sockstrerror(sockerrno));
+ free(addrstr);
+ }
}
}