+static void
+InitSinaddr(struct sockaddr_in *addr, UINT16 Port)
+{
+ struct in_addr inaddr;
+
+ memset(addr, 0, sizeof(*addr));
+ memset( &inaddr, 0, sizeof(inaddr));
+
+ addr->sin_family = AF_INET;
+ addr->sin_port = htons(Port);
+ inaddr.s_addr = htonl(INADDR_ANY);
+ addr->sin_addr = inaddr;
+}
+
+
+static bool
+InitSinaddrListenAddr(struct sockaddr_in *addr, UINT16 Port)
+{
+ struct in_addr inaddr;
+
+ InitSinaddr(addr, Port);
+
+ if (!Conf_ListenAddress[0])
+ return true;
+
+ if (!ngt_IPStrToBin(Conf_ListenAddress, &inaddr)) {
+ Log( LOG_CRIT, "Can't bind to %s:%u: can't convert ip address \"%s\"",
+ Conf_ListenAddress, Port, Conf_ListenAddress);
+ return false;
+ }
+
+ addr->sin_addr = inaddr;
+ return true;
+}
+
+