/* Initializes global options to their default values. */ void options_init(void) { o.verbose = 0; o.debug = 0; o.target = NULL; o.af = AF_UNSPEC; o.proto = IPPROTO_TCP; o.broker = 0; o.listen = 0; o.keepopen = 0; o.sendonly = 0; o.recvonly = 0; o.noshutdown = 0; o.telnet = 0; o.linedelay = 0; o.chat = 0; o.nodns = 0; o.normlog = NULL; o.hexlog = NULL; o.normlogfd = -1; o.hexlogfd = -1; o.append = 0; o.idletimeout = 0; o.crlf = 0; o.allow = 0; o.deny = 0; addrset_init(&o.allowset); addrset_init(&o.denyset); o.httpserver = 0; o.nsock_engine = 0; o.test = 0; o.numsrcrtes = 0; o.srcrteptr = 4; o.conn_limit = -1; /* Unset. */ o.conntimeout = DEFAULT_CONNECT_TIMEOUT; o.cmdexec = NULL; o.execmode = EXEC_PLAIN; o.proxy_auth = NULL; o.proxytype = NULL; o.zerobyte = 0; #ifdef HAVE_OPENSSL o.ssl = 0; o.sslcert = NULL; o.sslkey = NULL; o.sslverify = 0; o.ssltrustfile = NULL; o.sslciphers = NULL; o.sslalpn = NULL; #endif }
/* Initializes global options to their default values. */ void options_init(void) { o.verbose = 0; o.debug = 0; o.target = NULL; o.af = AF_INET; o.broker = 0; o.listen = 0; o.keepopen = 0; o.sendonly = 0; o.recvonly = 0; o.telnet = 0; o.udp = 0; o.sctp = 0; o.linedelay = 0; o.chat = 0; o.nodns = 0; o.normlogfd = -1; o.hexlogfd = -1; o.idletimeout = 0; o.crlf = 0; o.allow = 0; o.deny = 0; addrset_init(&o.allowset); addrset_init(&o.denyset); o.httpserver = 0; o.numsrcrtes = 0; o.srcrteptr = 4; o.conn_limit = -1; /* Unset. */ o.conntimeout = DEFAULT_CONNECT_TIMEOUT; o.cmdexec = NULL; o.shellexec = 0; o.proxy_auth = NULL; o.proxytype = NULL; #ifdef HAVE_OPENSSL o.ssl = 0; o.sslcert = NULL; o.sslkey = NULL; o.sslverify = 0; o.ssltrustfile = NULL; #endif }
int main(int argc, char *argv[]) { struct addrset set; char line[1024]; int i; addrset_init(&set); options_init(); for (i = 1; i < argc; i++) { if (!addrset_add_spec(&set, argv[i], o.af, !o.nodns)) { fprintf(stderr, "Error adding spec \"%s\".\n", argv[i]); exit(1); } } while (fgets(line, sizeof(line), stdin) != NULL) { char *s, *hostname; struct addrinfo *addrs; s = line; while ((hostname = strtok(s, " \t\n")) != NULL) { int rc; s = NULL; rc = resolve_name(hostname, &addrs); if (rc != 0) { fprintf(stderr, "Error resolving \"%s\": %s.\n", hostname, gai_strerror(rc)); continue; } if (addrs == NULL) { fprintf(stderr, "No addresses found for \"%s\".\n", hostname); continue; } /* Check just the first address returned. */ if (addrset_contains(&set, addrs->ai_addr)) printf("%s\n", hostname); freeaddrinfo(addrs); } } addrset_free(&set); return 0; }