From 71e64a8297038ae6089f7a0d7121de29f4120663 Mon Sep 17 00:00:00 2001 From: brad Date: Wed, 1 Dec 1999 03:04:03 +0000 Subject: [PATCH] - add patches which fix compilation of queso on Alpha - add queso man page from Debian via rohee@ --- net/queso/Makefile | 8 ++- net/queso/files/queso.1 | 45 +++++++++++++ net/queso/patches/patch-aa | 118 +++++++++++++++++++++++++++++++++- net/queso/patches/patch-ab | 128 +++++++++++++++++++++++++++++++++++++ net/queso/patches/patch-ac | 105 ++++++++++++++++++++++++++++++ net/queso/pkg/PLIST | 1 + 6 files changed, 399 insertions(+), 6 deletions(-) create mode 100644 net/queso/files/queso.1 create mode 100644 net/queso/patches/patch-ab create mode 100644 net/queso/patches/patch-ac diff --git a/net/queso/Makefile b/net/queso/Makefile index f6a70d913d2..9c8358d4c51 100644 --- a/net/queso/Makefile +++ b/net/queso/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.3 1999/07/27 04:30:06 brad Exp $ +# $OpenBSD: Makefile,v 1.4 1999/12/01 03:04:03 brad Exp $ DISTNAME= queso-980922 CATEGORIES= net @@ -6,10 +6,12 @@ MASTER_SITES= ftp://ftp.cdrom.com/pub/FreeBSD/distfiles/ MAINTAINER= brad@openbsd.org -GNU_CONFIGURE= yes +GNU_CONFIGURE= yes post-install: - @${MKDIR} ${PREFIX}/share/doc/queso + @mkdir -p ${PREFIX}/man/man1 + @mkdir -p ${PREFIX}/share/doc/queso + ${INSTALL_MAN} ${FILESDIR}/queso.1 ${PREFIX}/man/man1 ${INSTALL_DATA} ${WRKSRC}/Documentation.txt ${PREFIX}/share/doc/queso .include diff --git a/net/queso/files/queso.1 b/net/queso/files/queso.1 new file mode 100644 index 00000000000..5ce5c5ae9a7 --- /dev/null +++ b/net/queso/files/queso.1 @@ -0,0 +1,45 @@ +.\" $OpenBSD: queso.1,v 1.1 1999/12/01 03:04:04 brad Exp $ +.\" From the Debian Linux queso package +.TH QUESO 1 +.SH NAME +queso \- guess the operating system of a remote host +.Sh SYNOPSIS +.B queso +.I "[-v] [-d] [-w] [-f srcIP] [-c file] [-t seconds] host[:port]" +.br +.SH "DESCRIPTION" +This manual page documents briefly the +.BR queso +command. +This manual page was written for the Debian GNU/Linux distribution +because the original program does not have a manual page. +Instead, it has documentation as a text file in /usr/local/share/doc/queso. +.PP +.SH OPTIONS +A summary of options are included below. +.TP +.B \-v +Version +.TP +.B \-d +Debug mode, print received PKTs. +.TP +.B \-w +Update /etc/queso.conf when new OS is found. +.TP +.B \-f +srcIP Select correct In/Out IP. +.TP +.B \-c file +Alternate config file. +.TP +.B \-t seconds +Set reception timeout. (default=3) +.TP +.B \-n times +How many times PKTs are sent. (default=1) +.SH "SEE ALSO" +Full documentation in /usr/local/share/doc/queso. +.SH AUTHOR +This manual page was written by Stephane Bortzmeyer , +for the Debian GNU/Linux system (but may be used by others). diff --git a/net/queso/patches/patch-aa b/net/queso/patches/patch-aa index d3accb06094..5bd9b552150 100644 --- a/net/queso/patches/patch-aa +++ b/net/queso/patches/patch-aa @@ -1,5 +1,81 @@ ---- tcpip.c.orig Mon Jul 26 23:34:24 1999 -+++ tcpip.c Mon Jul 26 23:39:18 1999 +Patch helping 64 bit cleanness taken from the Debian Linux package made +by Stéphane Bortmeyer . 64 bit patch originally +by Bart Warmerdam . + +Integrate previous OpenBSD patch using new libpcap types. + +--- tcpip.c.orig Tue Sep 22 22:35:43 1998 ++++ tcpip.c Wed Sep 29 14:43:06 1999 +@@ -40,7 +40,7 @@ + typedef struct + { + struct in_addr addr; +- unsigned long naddr; /* netmask */ ++ u_int32_t naddr; /* netmask */ + interfacerec *iface; + } + routerec; +@@ -61,11 +61,11 @@ + #endif + + int sendsock, readsock; +-unsigned short ipident; ++u_int16_t ipident; + + /* This function will determine the checksum for a specific packet. Used by */ + /* nearly EVERYTHING on the internet */ +-unsigned short ++u_int16_t + inet_checksum (void *addr, int len) + { + register int nleft = len; +@@ -106,16 +106,16 @@ + struct in_addr dest_address; + unsigned char place_holder; + unsigned char protocol; +- unsigned short length; ++ u_int16_t length; + } psuedohdr; + +-unsigned short tcp_checksum(char *packet, ++u_int16_t tcp_checksum(char *packet, + int length, + struct in_addr source_address, + struct in_addr dest_address) + { + char *psuedo_packet; +- unsigned short cksum; ++ u_int16_t cksum; + + psuedohdr.protocol = IPPROTO_TCP; + psuedohdr.length = htons(length); +@@ -133,7 +133,7 @@ + memcpy((psuedo_packet + sizeof(psuedohdr)), + packet,length); + +- cksum = inet_checksum((unsigned short *)psuedo_packet,(length + sizeof(psuedohdr))); ++ cksum = inet_checksum((u_int16_t *)psuedo_packet,(length + sizeof(psuedohdr))); + free(psuedo_packet); + return cksum; + } +@@ -153,7 +153,7 @@ + memset (sa, 0, sizeof (struct sockaddr)); + sa->sin_family = AF_INET; + sa->sin_addr.s_addr = inet_addr (host); +- if ((long) inet_addr (host) == -1) ++ if ((int32_t) inet_addr (host) == -1) + { + ent = gethostbyname (host); + if (ent != NULL) +@@ -173,7 +173,7 @@ + + /* Sends a TCP packet */ + void +-sendtcp (spoofrec * spoof, unsigned short flags, short rep) ++sendtcp (spoofrec * spoof, u_int16_t flags, short rep) + { + struct tcphdr tcp; + struct ip ip; @@ -271,6 +271,7 @@ switch(datalink) { case DLT_EN10MB: @@ -13,7 +89,43 @@ case DLT_IEEE802: offset = 22; break; + case DLT_ENC: -+ offset = 12; break; ++ offset = 12; break; default: fprintf(stderr, "unknown datalink type (%d)", datalink); return(0); +@@ -319,7 +322,7 @@ + /*-- Linux: Search out IP in Routing tables --*/ + /*-- Other: Return hostname ip ---------------*/ + struct in_addr +-getlocalip (unsigned long dest) ++getlocalip (u_int32_t dest) + { + static struct in_addr ina; + #ifdef LINUX /*---------------------------------------------- LINUX --*/ +@@ -327,7 +330,7 @@ + + for (i = 0; i < numroutes; i++) + { +- if ((dest & routes[i].naddr) == (unsigned long) routes[i].addr.s_addr) ++ if ((dest & routes[i].naddr) == (u_int32_t) routes[i].addr.s_addr) + { + return (routes[i].iface->addr); + } +@@ -434,7 +437,7 @@ + else + strcpy (iface, ptr); + ptr = strtok (NULL, "\t "); /* hack avoiding fscanf */ +- routes[i].addr.s_addr=(unsigned long)strtol(ptr,NULL,16); ++ routes[i].addr.s_addr=(u_int32_t)strtol(ptr,NULL,16); + for (i1 = 0; i1 < 6; i1++) + { + ptr = strtok (NULL, "\t "); /* ignore Gateway Flags RefCnt Use Metric */ +@@ -443,7 +446,7 @@ + fputs ("Error parsing /proc/net/route\n", stderr); + continue; + } +- routes[i].naddr=(unsigned long)strtol(ptr,NULL,16); /* Netmask */ ++ routes[i].naddr=(u_int32_t)strtol(ptr,NULL,16); /* Netmask */ + + found = 0; + for (i1 = 0; i1 < numinterfaces; i1++) diff --git a/net/queso/patches/patch-ab b/net/queso/patches/patch-ab new file mode 100644 index 00000000000..be3ca74c2ba --- /dev/null +++ b/net/queso/patches/patch-ab @@ -0,0 +1,128 @@ +Patch helping 64 bit cleanness taken from the Debian Linux package made +by Stéphane Bortmeyer . 64 bit patch originally +by Bart Warmerdam . + +A few casts in printfs to shut up warnings. + +--- queso.c.orig Tue Sep 22 22:35:43 1998 ++++ queso.c Wed Sep 29 15:54:20 1999 +@@ -58,19 +58,19 @@ + static char CFGFILE[255] = DFLT_CONFIG_FILE; + + /*------------- Prototiping -----------------*/ +-void debugtcp (unsigned long, tcprec); ++void debugtcp (u_int32_t, tcprec); + void usage (const char *); + int checkos (struct sockaddr_in, short); + + /*------------- Print TCP HDR ---------------*/ + void +-debugtcp (unsigned long myseq, tcprec tcp) ++debugtcp (u_int32_t myseq, tcprec tcp) + { + fprintf (stderr, "%d->%d S:%1d A:%s%lX W:%04X U:%X F: ", + ntohs (tcp.sport), ntohs (tcp.dport), + (tcp.seqnum?1:0), + tcp.acknum?"+":" ", +- (tcp.acknum?(unsigned long) ntohl (tcp.acknum)-myseq:0), ++ (unsigned long) (tcp.acknum?(u_int32_t) ntohl (tcp.acknum)-myseq:0), + ntohs (tcp.window), ntohs (tcp.urgentptr)); + + if (tcp.flags & URG) +@@ -142,12 +142,12 @@ + + typedef struct + { +- unsigned short set; +- unsigned long seq; +- unsigned long ack; +- unsigned short urg; +- unsigned short win; +- unsigned short flag; ++ u_int16_t set; ++ u_int32_t seq; ++ u_int32_t ack; ++ u_int16_t urg; ++ u_int16_t win; ++ u_int16_t flag; + } + OSRES; + +@@ -158,12 +158,12 @@ + { + spoofrec spoof; + tcprec tcp; +- unsigned short start, s; ++ u_int16_t start, s; + int n; + long timeout; + FILE *f; + char line[1024]; +- unsigned long myseq; ++ u_int32_t myseq; + #ifdef PCAP + char fromtxt[16], desttxt[16]; + char bpftxt[4096]; +@@ -284,8 +284,8 @@ + if ((f = fopen (CFGFILE, "r"))) + { + char osname[256]; /* should be smaller than line[], 256 should suffice */ +- unsigned short flag1 = 0, found = 0, linez = 0; +- unsigned short pn = 0, ps = 0, pa = 0, pw = 0, pf = 0, pu = 0; ++ u_int16_t flag1 = 0, found = 0, linez = 0; ++ u_int16_t pn = 0, ps = 0, pa = 0, pw = 0, pf = 0, pu = 0; + char *p; + + while (fgets (line, sizeof (osname) - 1, f)) +@@ -412,7 +412,7 @@ + if (CONFIGDEBUG) + fprintf (stderr, " ** FAILED %d,%d,%d,%d,%02X != %ld,%ld,%d,%d,%02X\n", + ps, pa, pw, pu, pf, +- r[pn].seq,r[pn].ack,r[pn].win,r[pn].urg,r[pn].flag); ++ (unsigned long) r[pn].seq,(unsigned long) r[pn].ack,r[pn].win,r[pn].urg,r[pn].flag); + found = 0; + flag1 = 0; + continue; +@@ -483,9 +483,9 @@ + if (r[pn].set) + { + fprintf ( f, "%d %ld %s", +- pn, r[pn].seq, (r[pn].ack==RANDOM_ACK?"R":((r[pn].ack>=ACK_HACK)?"+":"")) ); ++ pn, (long) r[pn].seq, (r[pn].ack==RANDOM_ACK?"R":((r[pn].ack>=ACK_HACK)?"+":"")) ); + if(r[pn].ack!=RANDOM_ACK) +- fprintf ( f, "%ld", (r[pn].ack>=ACK_HACK)?r[pn].ack-ACK_HACK:r[pn].ack); ++ fprintf ( f, "%ld", (long) /* shut up a warning */ ((r[pn].ack>=ACK_HACK)?r[pn].ack-ACK_HACK:r[pn].ack)); + fprintf ( f, " %d %s\n", r[pn].win ? 1 : 0, line); + } + else +@@ -516,13 +516,13 @@ + main (int argc, char *argv[]) + { + struct sockaddr_in dest, from; +- unsigned short port; ++ u_int16_t port; + char *s, *p; + int c; + int accuracy; + int limit = 0; + int bits = 32; /* single host */ +- unsigned long firsthost, lasthost, netmask, host; ++ u_int32_t firsthost, lasthost, netmask, host; + + /* + * Unbuffer stdout and stderr +@@ -652,7 +652,13 @@ + } + + host = ntohl (dest.sin_addr.s_addr); +- netmask = ~(0xFFFFFFFFL >> bits); ++ netmask = 0xFFFFFFFFL; ++ if(bits >= 1){ ++ netmask >>= 1; ++ bits--; ++ } ++ netmask >>= bits; ++ netmask = ~netmask; + /*-- WARNING: 32bit arquitectures have problems when bits==32 --*/ + firsthost = (host & netmask) + 1; + lasthost = (host | ~(netmask)) - 1; diff --git a/net/queso/patches/patch-ac b/net/queso/patches/patch-ac new file mode 100644 index 00000000000..3d31b3fa1f1 --- /dev/null +++ b/net/queso/patches/patch-ac @@ -0,0 +1,105 @@ +Patch helping 64 bit cleanness taken from the Debian Linux package made +by Stéphane Bortmeyer . 64 bit patch originally +by Bart Warmerdam . + +--- tcpip.h.orig ++++ tcpip.h +@@ -4,12 +4,12 @@ + { + unsigned char vh; + unsigned char stype; +- unsigned short length; +- unsigned short ident; +- unsigned short frag; ++ u_int16_t length; ++ u_int16_t ident; ++ u_int16_t frag; + unsigned char ttl; + unsigned char protocol; +- unsigned short cksum; ++ u_int16_t cksum; + struct in_addr sip; + struct in_addr dip; + } +@@ -17,15 +17,15 @@ + + typedef struct + { +- unsigned short sport; +- unsigned short dport; +- unsigned long seqnum; +- unsigned long acknum; ++ u_int16_t sport; ++ u_int16_t dport; ++ u_int32_t seqnum; ++ u_int32_t acknum; + unsigned char txoff; + unsigned char flags; +- unsigned short window; +- unsigned short cksum; +- unsigned short urgentptr; ++ u_int16_t window; ++ u_int16_t cksum; ++ u_int16_t urgentptr; + } + tcprec; + +@@ -35,7 +35,7 @@ + struct in_addr dip; + unsigned char zero; + unsigned char proto; +- unsigned short tcplen; ++ u_int16_t tcplen; + } + tcpsrec; + +@@ -43,12 +43,12 @@ + { + unsigned char type; + unsigned char code; +- unsigned short cksum; +- unsigned long zero; ++ u_int16_t cksum; ++ u_int32_t zero; + iprec ip; +- unsigned short sport; +- unsigned short dport; +- unsigned long seq; ++ u_int16_t sport; ++ u_int16_t dport; ++ u_int32_t seq; + } + icmprec; + +@@ -67,23 +67,23 @@ + { + struct sockaddr_in from; + struct sockaddr_in dest; +- unsigned short sport; +- unsigned short dport; +- unsigned long seq; +- unsigned long ack; ++ u_int16_t sport; ++ u_int16_t dport; ++ u_int32_t seq; ++ u_int32_t ack; + } + spoofrec; + + /* -------------- Prototiping --------------- */ + void init_tcpip(void); + int init_pcap(char*); +-unsigned short in_cksum (unsigned short *, int); ++u_int16_t in_cksum (u_int16_t *, int); + void sendip (spoofrec *, char *, short, short *, short *, short); +-unsigned short tcpcksum (spoofrec *, char *, short); ++u_int16_t tcpcksum (spoofrec *, char *, short); + short resolve_host (char *, struct sockaddr_in *); + short gettcp (spoofrec *, tcprec *); +-void sendtcp (spoofrec *, unsigned short, short); +-void sendicmp (spoofrec *, struct sockaddr_in *, unsigned short); +-struct in_addr getlocalip (unsigned long dest); ++void sendtcp (spoofrec *, u_int16_t, short); ++void sendicmp (spoofrec *, struct sockaddr_in *, u_int16_t); ++struct in_addr getlocalip (u_int32_t dest); + char *tcpip_id(void); diff --git a/net/queso/pkg/PLIST b/net/queso/pkg/PLIST index 4ac199e65ad..fe0bedd4999 100644 --- a/net/queso/pkg/PLIST +++ b/net/queso/pkg/PLIST @@ -1,3 +1,4 @@ +man/man1/queso.1 sbin/queso share/doc/queso/Documentation.txt @dirrm share/doc/queso