# HG changeset patch # User ivo # Date 1286460101 -7200 # Node ID b2c7c83a1dda633c1777658c4be5cfe0eb1def2a # Parent 06be0fd16c60d06d5e68d1b7ec9c680ef4fae7d3 Accept 0.0.0.0 remote address for float mode diff -r 06be0fd16c60 -r b2c7c83a1dda src/common.c --- a/src/common.c Thu Oct 07 15:56:33 2010 +0200 +++ b/src/common.c Thu Oct 07 16:01:41 2010 +0200 @@ -116,11 +116,15 @@ else if (!he->h_addr_list[0]) return errorexit("no address to connect to"); udpaddr.sin_family = he->h_addrtype; udpaddr.sin_addr.s_addr = *((unsigned long*)he->h_addr_list[0]); - if (envval = getconf("REMOTE_PORT")) { - udpaddr.sin_port = htons(atoi(envval)); + if (udpaddr.sin_addr.s_addr == 0) { + session->remote_float = 1; + } else { + if (envval = getconf("REMOTE_PORT")) { + udpaddr.sin_port = htons(atoi(envval)); + } + if (connect(sfd, (struct sockaddr*)&udpaddr, sizeof(struct sockaddr_in))) return errorexitp("Could not connect socket"); + session->remote_addr = udpaddr; } - if (connect(sfd, (struct sockaddr*)&udpaddr, sizeof(struct sockaddr_in))) return errorexitp("Could not connect socket"); - session->remote_addr = udpaddr; } session->fd_socket = sfd; return sfd;