A PHP Error was encountered

Severity: 8192

Message: Function create_function() is deprecated

Filename: geshi/geshi.php

Line Number: 4698

Backtrace:

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 4698
Function: _error_handler

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 4621
Function: _optimize_regexp_list_tokens_to_string

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 1655
Function: optimize_regexp_list

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 2029
Function: optimize_keyword_group

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 2168
Function: build_parse_cache

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/Process.php
Line: 45
Function: parse_code

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/models/Pastes.php
Line: 517
Function: syntax

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 624
Function: getPaste

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/system/core/Exceptions.php:271)

Filename: view/download.php

Line Number: 2

Backtrace:

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/themes/geocities/views/view/download.php
Line: 2
Function: header

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 173
Function: include

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 43
Function: _ci_load

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 625
Function: view

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once

A PHP Error was encountered

Severity: Warning

Message: Cannot modify header information - headers already sent by (output started at /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/system/core/Exceptions.php:271)

Filename: view/download.php

Line Number: 3

Backtrace:

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/themes/geocities/views/view/download.php
Line: 3
Function: header

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 173
Function: include

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/core/MY_Loader.php
Line: 43
Function: _ci_load

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 625
Function: view

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once

/* * Strobe (c) 1995 Julian Assange (proff@suburbia.net), * All rights reserved. * * $ cc strobe.c -o strobe */ #define VERSION "1.03" #include #include #include #include #include #include #include #include #include #ifdef _AIX #include #endif #include #include #include #include #include #if defined(solaris) || defined(linux) || defined(__FreeBSD__) || \ defined(__NetBSD__) || defined(__GCC__) #define fvoid void #else #define fvoid extern int optind; extern char *optarg; #endif #define bool char #ifndef INADDR_NONE #define INADDR_NONE ((unsigned long)-1) #endif #define port_t (unsigned short) /* * the below should be set via the Makefile, but if not... */ #ifndef ETC_SERVICES #define ETC_SERVICES "/etc/services" #endif #ifndef STROBE_SERVICES #define STROBE_SERVICES "strobe.services" #endif #ifndef LIB_STROBE_SERVICES #define LIB_STROBE_SERVICES "/usr/local/lib/strobe.services" #endif int a_timeout = 20; char *a_output = NULL; char *a_services = "strobe.services"; char *a_input = NULL; /* char *a_prescan = NULL; */ int a_start = 1; int a_end = 65535; int a_sock_max = 64; int a_abort = 0; int a_bindport = 0; char *a_bindaddr = NULL; struct in_addr bindaddr; bool f_linear = 0; bool f_verbose = 0; bool f_verbose_stats = 0; bool f_fast = 0; bool f_stats = 0; bool f_quiet = 0; bool f_delete_dupes = 0; bool f_minimise = 0; bool f_dontgetpeername = 0; int connects = 0; int hosts_done = 0; int attempts_done = 0; int attempts_outstanding = 0; struct timeval time_start; fd_set set_sel; fd_set set_sel_r; fd_set set_sel_w; int host_n; int Argc; char **Argv; FILE *fh_input; #define HO_ACTIVE 1 #define HO_ABORT 2 #define HO_COMPLETING 4 struct hosts_s { char *name; struct in_addr in_addr; int port; int portlist_ent; struct timeval time_used; struct timeval time_start; int attempts; int attempts_done; int attempts_highest_done; int connects; time_t notice_abort; int status; }; struct hosts_s ho_initial; struct hosts_s *hosts; #define HT_SOCKET 1 #define HT_CONNECTING 2 struct htuple_s { char *name; struct in_addr in_addr; int port; int sfd; int status; struct timeval sock_start; int timeout; struct hosts_s *host; }; struct htuple_s ht_initial; struct htuple_s *attempt; struct port_desc_s { int port; char *name; char *portname; struct port_desc_s *next; struct port_desc_s *next_port; }; struct port_desc_s **port_descs; int *portlist = NULL; int portlist_n = 0; char *Srealloc(ptr, len) char *ptr; int len; { char *p; int retries = 10; while (!(p = ptr ? realloc(ptr, len) : malloc(len))) { if (!--retries) { perror("malloc"); exit(1); } if (!f_quiet) fprintf(stderr, "Smalloc: couldn't allocate %d bytes...\ sleeping\n", len); sleep(2); } return p; } char *Smalloc(len) int len; { return Srealloc(NULL, len); } fvoid sock_block(sfd) int sfd; { int flags; flags = (~O_NONBLOCK) & fcntl(sfd, F_GETFL); fcntl(sfd, F_SETFL, flags); } fvoid sock_unblock(sfd) int sfd; { int flags; flags = O_NONBLOCK | fcntl(sfd, F_GETFL); fcntl(sfd, F_SETFL, flags); } int timeval_subtract(result, x, y) /* from gnu c-lib info.texi */ struct timeval *result, *x, *y; { /* Perform the carry for the later subtraction by updating y. */ if (x->tv_usec < y->tv_usec) { int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1; y->tv_usec -= 1000000 * nsec; y->tv_sec += nsec; } if (x->tv_usec - y->tv_usec > 1000000) { int nsec = (y->tv_usec - x->tv_usec) / 1000000; y->tv_usec += 1000000 * nsec; y->tv_sec -= nsec; } /* Compute the time remaining to wait. `tv_usec' is certainly positive. */ result->tv_sec = x->tv_sec - y->tv_sec; result->tv_usec = x->tv_usec - y->tv_usec; /* Return 1 if result is negative. */ return x->tv_sec < y->tv_sec; } fvoid attempt_clear(h) struct htuple_s *h; { if (h->status & HT_SOCKET) { struct timeval tv1, tv2; gettimeofday(&tv1, NULL); timeval_subtract(&tv2, &tv1, &(h->sock_start)); h->host->time_used.tv_sec += tv2.tv_sec; if ((h->host->time_used.tv_usec += tv2.tv_usec) >= 1000000) { h->host->time_used.tv_usec -= 1000000; h->host->time_used.tv_sec++; } attempts_done++; h->host->attempts_done++; if (h->port > h->host->attempts_highest_done) h->host->attempts_highest_done = h->port; sock_unblock(h->sfd); /* shutdown (h->sfd, 2); */ close(h->sfd); if (FD_ISSET(h->sfd, &set_sel)) { FD_CLR(h->sfd, &set_sel); attempts_outstanding--; } } *h = ht_initial; } fvoid clear_all() { int n; for (n = 0; n < a_sock_max; n++) attempt_clear(&attempt[n]); } fvoid attempt_init() { int n; for (n = 0; n < a_sock_max; n++) attempt[n] = ht_initial; } fvoid hosts_init() { int n; for (n = 0; n < a_sock_max; n++) hosts[n] = ho_initial; } fvoid fdsets_init() { FD_ZERO(&set_sel_r); /* yes, we have to do this, despite the later */ FD_ZERO(&set_sel_w); /* assisgnments */ FD_ZERO(&set_sel); } int sc_connect(h) struct htuple_s *h; { struct sockaddr_in sa_in; int sopts1 = 1; struct linger slinger; if ((h->sfd = socket(PF_INET, SOCK_STREAM, 0)) == -1) return 0; memset(&sa_in, 0, sizeof(sa_in)); h->status |= HT_SOCKET; gettimeofday(&(h->sock_start), NULL); sock_unblock(h->sfd); setsockopt(h->sfd, SOL_SOCKET, SO_REUSEADDR, (char *)&sopts1, sizeof(sopts1)); setsockopt(h->sfd, SOL_SOCKET, SO_OOBINLINE, (char *)&sopts1, sizeof(sopts1)); slinger.l_onoff = 0; /* off */ setsockopt(h->sfd, SOL_SOCKET, SO_LINGER, (char *)&slinger, sizeof(slinger)); sa_in.sin_family = AF_INET; if (a_bindport) sa_in.sin_port = a_bindport; if (a_bindaddr) sa_in.sin_addr = bindaddr; if (a_bindaddr || a_bindport) if (bind(h->sfd, (struct sockaddr *)&sa_in, sizeof(sa_in)) == -1) { fprintf(stderr, "couldn't bind %s : %d ", a_bindaddr ? a_bindaddr : "0.0.0.0", ntohs(a_bindport)); perror(""); if (errno == EACCES) exit(1); return 0; } sa_in.sin_addr = h->in_addr; sa_in.sin_port = htons(h->port); if (connect(h->sfd, (struct sockaddr *)&sa_in, sizeof(sa_in)) == -1) { switch (errno) { case EINPROGRESS: case EWOULDBLOCK: break; case ETIMEDOUT: case ECONNREFUSED: case EADDRNOTAVAIL: if (f_verbose) { fprintf(stderr, "%s:%d ", h->name, h->port); perror(""); } h->host->attempts++; attempt_clear(h); return 1; default: if (!f_quiet) { fprintf(stderr, "%s:%d ", h->name, h->port); perror(""); } attempt_clear(h); return 0; } } h->host->attempts++; h->status |= HT_CONNECTING; sock_block(h->sfd); FD_SET(h->sfd, &set_sel); attempts_outstanding++; return 1; } int gatherer_tcp(h) struct htuple_s *h; { struct port_desc_s *pd; if (f_minimise) printf("%s\t%d\n", h->name, h->port); else { if ((pd = port_descs[h->port])) { printf("%-30s %-16s %5d/tcp %s\n", h->name, pd->portname, h->port, pd->name); while (!f_delete_dupes && !f_minimise && (pd = pd->next)) printf("#%-29s %-16s %5d/tcp %s\n", h->name, pd->portname, h->port, pd->name); } else printf("%-30s %-16s %5d/tcp unassigned\n", h->name, "unknown", h->port); } h->host->connects++; connects++; attempt_clear(h); return 1; } bool gather() { struct timeval timeout; struct htuple_s *h; int n; int selected; time_t tim; if (!attempts_outstanding) return 1; set_sel_r = set_sel_w = set_sel; timeout.tv_sec = 0; timeout.tv_usec = 250000; /* 1/4 of a second */ selected = select(FD_SETSIZE, &set_sel_r, &set_sel_w, 0, &timeout); /* Look for timeouts */ tim = time(NULL); for (n = 0; n < a_sock_max; n++) { h = &attempt[n]; if ((h->status & HT_SOCKET) && ((h->sock_start.tv_sec + h->timeout) < tim)) attempt_clear(h); } switch (selected) { case -1: perror("select"); return 0; case 0: return 1; } for (n = 0; selected && (n < a_sock_max); n++) { h = &attempt[n]; if (h->status & HT_CONNECTING) { if (FD_ISSET(h->sfd, &set_sel_r) || FD_ISSET(h->sfd, &set_sel_w)) { struct sockaddr_in in; int len = sizeof(in); selected--; /* select() lies occasionaly */ if (!f_dontgetpeername) { /* but solaris2.3 crashes occasionally ;-| */ if (getpeername (h->sfd, (struct sockaddr *)&in, &len) == 0) gatherer_tcp(h); else attempt_clear(h); } else gatherer_tcp(h); } } } return 1; } bool add_attempt(add) struct htuple_s *add; { struct htuple_s *h; static time_t oldtime; static int n; for (;;) { for (; n < a_sock_max; n++) { h = &attempt[n]; if (!h->status) goto foundfree; } n = 0; gather(); continue; foundfree: *h = *add; if (!sc_connect(h)) { gather(); continue; } if ((oldtime + 1) < time(NULL)) { oldtime = time(NULL); gather(); } break; } return 1; } int scatter(host, timeout) struct hosts_s *host; int timeout; { static struct htuple_s add; add = ht_initial; add.host = host; add.name = host->name; add.in_addr = host->in_addr; add.port = host->port; add.timeout = timeout; if (f_verbose) fprintf(stderr, "attempting port=%d host=%s\n", add.port, add.name); add_attempt(&add); return 1; } fvoid wait_end(t) int t; { time_t st; st = time(NULL); while ((st + t) > time(NULL)) { gather(); if (attempts_outstanding < 1) break; } } struct in_addr resolve(name) char *name; { static struct in_addr in; unsigned long l; struct hostent *ent; if ((l = inet_addr(name)) != INADDR_NONE) { in.s_addr = l; return in; } if (!(ent = gethostbyname(name))) { perror(name); in.s_addr = INADDR_NONE; return in; } return *(struct in_addr *)ent->h_addr; } char *next_host() { static char lbuf[512]; hosts_done++; if (a_input) { int n; reread: if (!fgets(lbuf, sizeof(lbuf), fh_input)) { fclose(fh_input); a_input = NULL; return next_host(); } if (strchr("# \t\n\r", lbuf[0])) goto reread; n = strcspn(lbuf, " \t\n\r"); if (n) lbuf[n] = '\0'; return lbuf; } if (host_n >= Argc) return NULL; return Argv[host_n++]; } bool host_init(h, name, nocheck) struct hosts_s *h; char *name; bool nocheck; { int n; *h = ho_initial; h->in_addr = resolve(name); if (h->in_addr.s_addr == INADDR_NONE) return 0; if (!nocheck) for (n = 0; n < a_sock_max; n++) { if (hosts[n].name && hosts[n].in_addr.s_addr == h->in_addr.s_addr) { if (!f_quiet) fprintf(stderr, "ip duplication: %s == %s (\ last host ignored)\n", hosts[n].name, name); return 0; } } h->name = (char *)Smalloc(strlen(name) + 1); strcpy(h->name, name); h->port = a_start; h->status = HO_ACTIVE; gettimeofday(&(h->time_start), NULL); return 1; } fvoid host_clear(h) struct hosts_s *h; { if (h->name) { free(h->name); } *h = ho_initial; } fvoid host_stats(h) struct hosts_s *h; { struct timeval tv, tv2; float t, st; gettimeofday(&tv, NULL); timeval_subtract(&tv2, &tv, &(h->time_start)); t = tv2.tv_sec + (float)tv2.tv_usec / 1000000.0; st = h->time_used.tv_sec + (float)h->time_used.tv_usec / 1000000.0; fprintf(stderr, "stats: host = %s trys = %d cons = %d time = %.2fs trys/s\ = %.2f trys/ss = %.2f\n", h->name, h->attempts_done, h->connects, t, h->attempts_done / t, h->attempts_done / st); } fvoid final_stats() { struct timeval tv, tv2; float t; gettimeofday(&tv, NULL); timeval_subtract(&tv2, &tv, &(time_start)); t = tv2.tv_sec + (float)tv2.tv_usec / 1000000.0; fprintf(stderr, "stats: hosts = %d trys = %d cons = %d time = %.2fs trys/s = %.2f\n", hosts_done, attempts_done, connects, t, attempts_done / t); } bool skip_host(h) struct hosts_s *h; { if (a_abort && !h->connects && (h->attempts_highest_done >= a_abort)) { /* async pain */ if (h->status & HO_ABORT) { if ((time(NULL) - h->notice_abort) > a_timeout) { if (f_verbose) fprintf(stderr, "skipping: %s (no connects \ in %d attempts)\n", h->name, h->attempts_done); return 1; } } else { h->notice_abort = time(NULL); h->status |= HO_ABORT; } } return 0; } int next_port(h) struct hosts_s *h; { int n; for (n = h->port; ++n <= a_end;) { if (!f_fast) return n; if (++h->portlist_ent > portlist_n) return -1; return (portlist[h->portlist_ent - 1]); } return -1; } fvoid scan_ports_linear() { struct hosts_s host; char *name; while ((name = next_host())) { if (!host_init(&host, name, 1)) continue; for (;;) { scatter(&host, a_timeout); if (skip_host(&host)) break; if ((host.port = next_port(&host)) == -1) break; } wait_end(a_timeout); if (f_verbose_stats) host_stats(&host); clear_all(); host_clear(&host); } } /* Huristics: * o fast connections have priority == maximise bandwidth i.e * a port in the hand is worth two in the bush * * o newer hosts have priority == lower ports checked more quickly * * o all hosts eventually get equal "socket time" == despite * priorities let no one host hog the sockets permanently * * o when host usage times are equal (typically on or shortly after * initial startup) distribute hosts<->sockets evenly rather than * play a game of chaotic bifurcatic ping-pong */ fvoid scan_ports_paralell() { int n; struct timeval smallest_val; int smallest_cnt; char *name; struct hosts_s *h, *smallest = &hosts[0]; while (smallest) { smallest_val.tv_sec = 0xfffffff; smallest_val.tv_usec = 0; for (n = 0, smallest_cnt = 0xfffffff, smallest = NULL; n < a_sock_max; n++) { h = &hosts[n]; if (((h->status & HO_COMPLETING) && (h->attempts_done == h->attempts)) || skip_host(h)) { if (f_verbose_stats) host_stats(h); host_clear(h); } if (!h->name && ((name = next_host()))) if (!host_init(h, name, 0)) { host_clear(h); continue; } if (h->name) { if (((h->time_used.tv_sec < smallest_val.tv_sec) || ((h->time_used.tv_sec == smallest_val.tv_sec) && (h->time_used.tv_usec <= smallest_val.tv_usec))) && (((h->time_used.tv_sec != smallest_val.tv_sec) && (h->time_used.tv_usec != smallest_val.tv_usec)) || (h->attempts < smallest_cnt))) { smallest_cnt = h->attempts; smallest_val = h->time_used; smallest = h; } } } if (smallest) { if (!(smallest->status & HO_COMPLETING)) { scatter(smallest, a_timeout); if ((smallest->port = next_port(smallest)) == -1) smallest->status |= HO_COMPLETING; } else gather(); } } } fvoid loaddescs() { FILE *fh; char lbuf[1024]; char desc[256]; char portname[17]; unsigned int port; char *fn; char prot[4]; prot[3] = '\0'; if (!(fh = fopen((fn = a_services), "r")) && !(fh = fopen((fn = LIB_STROBE_SERVICES), "r")) && !(fh = fopen((fn = ETC_SERVICES), "r"))) { perror(fn); exit(1); } port_descs = (struct port_desc_s **)Smalloc(sizeof(struct port_descs_s *) * 65536); memset(port_descs, 0, 65536); while (fgets(lbuf, sizeof(lbuf), fh)) { char *p; struct port_desc_s *pd, *pdp; if (strchr("*# \t\n", lbuf[0])) continue; if (!(p = strchr(lbuf, '/'))) continue; *p = ' '; desc[0] = '\0'; if (sscanf (lbuf, "%16s %u %3s %255[^\r\n]", portname, &port, prot, desc) < 3 || strcmp(prot, "tcp") || (port > 65535)) continue; pd = port_descs[port]; if (!pd) { portlist = (int *)Srealloc((char *)portlist, ++portlist_n * sizeof(int)); portlist[portlist_n - 1] = port; } if (!f_minimise) { pdp = (struct port_desc_s *)Smalloc(sizeof(*pd) + strlen(desc) + 1 + strlen(portname) + 1); if (pd) { for (; pd->next; pd = pd->next) ; pd->next = pdp; pd = pd->next; } else { pd = pdp; port_descs[port] = pd; } pd->next = NULL; pd->name = (char *)(pd) + sizeof(*pd); pd->portname = pd->name + strlen(desc) + 1; strcpy(pd->name, desc); strcpy(pd->portname, portname); } else port_descs[port] = (struct port_desc_s *)-1; } if (f_minimise) free(port_descs); } fvoid usage() { fprintf(stderr, "\ usage: %8s [options]\n\ \t\t[-v(erbose)]\n\ \t\t[-V(erbose_stats]\n\ \t\t[-m(inimise)]\n\ \t\t[-d(elete_dupes)]\n\ \t\t[-g(etpeername_disable)]\n\ \t\t[-s(tatistics)]\n\ \t\t[-q(uiet)]\n\ \t\t[-o output_file]\n\ \t\t[-b begin_port_n]\n\ \t\t[-e end_port_n]\n\ \t\t[-p single_port_n]\n\ \t\t[-P bind_port_n]\n\ \t\t[-A bind_addr_n]\n\ \t\t[-t timeout_n]\n\ \t\t[-n num_sockets_n]\n\ \t\t[-S services_file]\n\ \t\t[-i hosts_input_file]\n\ \t\t[-l(inear)]\n\ \t\t[-f(ast)]\n\ \t\t[-a abort_after_port_n]\n\ \t\t[-M(ail_author)]\n\ \t\t[host1 [...host_n]]\n", Argv[0]); exit(1); } int main(argc, argv) int argc; char **argv; { int c; Argc = argc; Argv = argv; while ((c = getopt(argc, argv, "o:dvVmgb:e:p:P:a:A:t:n:S:i:lfsqM")) != -1) switch (c) { case 'o': a_output = optarg; break; case 'd': f_delete_dupes = 1; break; case 'v': f_verbose = 1; break; case 'V': f_verbose_stats = 1; break; case 'm': f_minimise = 1; break; case 'g': f_dontgetpeername = 1; break; case 'b': a_start = atoi(optarg); break; case 'e': a_end = atoi(optarg); break; case 'P': a_bindport = htons(atoi(optarg)); break; case 'A': a_bindaddr = optarg; bindaddr = resolve(a_bindaddr); if (bindaddr.s_addr == INADDR_NONE) { perror(a_bindaddr); exit(1); } break; case 'p': a_start = a_end = atoi(optarg); break; case 'a': a_abort = atoi(optarg); break; case 't': a_timeout = atoi(optarg); break; case 'n': a_sock_max = atoi(optarg); break; case 'S': a_services = optarg; break; case 'i': a_input = optarg; break; case 'l': f_linear = 1; break; case 'f': f_fast = 1; break; case 's': f_stats = 1; break; case 'q': f_quiet = 1; break; case 'M': fprintf(stderr, "Enter mail to author below. End with ^D or .\n"); system("mail strobe@suburbia.net"); break; case '?': default: fprintf(stderr, "unknown option %s\n", argv[optind - 1]); usage(); /* NOT_REACHED */ } host_n = optind; if (!f_quiet) fprintf(stderr, "strobe %s (c) 1995 Julian Assange (proff@suburbia.net).\n", VERSION); if (a_input) { if (!strcmp("-", a_input)) { /* Use stdin as input file */ fh_input = stdin; } else { if (!(fh_input = fopen(a_input, "r"))) { perror(a_input); exit(1); } } } else { switch (argc - host_n) { /* Number of hosts found on command line */ case 0: fh_input = stdin; a_input = "stdin"; /* Needed in "next_host()" */ break; case 1: f_linear = 1; break; } } if ((fh_input == stdin) && !f_quiet) fprintf(stderr, "Reading host names from stdin...\n"); if (a_output) { int fd; if ((fd = open(a_output, O_WRONLY | O_CREAT | O_TRUNC, 0666)) == -1) { perror(a_output); exit(1); } dup2(fd, 1); } attempt = (struct htuple_s *)Smalloc(a_sock_max * sizeof(struct htuple_s)); attempt_init(); if (!f_linear) { hosts = (struct hosts_s *)Smalloc(a_sock_max * sizeof(struct hosts_s)); hosts_init(); } if (!f_minimise || f_fast) loaddescs(); fdsets_init(); gettimeofday(&time_start, NULL); f_linear ? scan_ports_linear() : scan_ports_paralell(); if (f_stats || f_verbose_stats) final_stats(); exit(0); }