diff options
author | David E. O'Brien <obrien@FreeBSD.org> | 1998-10-24 23:31:27 +0000 |
---|---|---|
committer | David E. O'Brien <obrien@FreeBSD.org> | 1998-10-24 23:31:27 +0000 |
commit | 0d9972514bca048aeb0c88a899d352ca50351f53 (patch) | |
tree | ad0c632ae508e45b880e3fb56e652d219c585885 /net/queso/files | |
parent | Upgrade to 1.20, remove BROKEN_ELF tag. (diff) |
QueSO determines a remote OS by sending simple TCP packets and analysing
the result.
Notes
Notes:
svn path=/head/; revision=14169
Diffstat (limited to 'net/queso/files')
-rw-r--r-- | net/queso/files/patch-01 | 81 | ||||
-rw-r--r-- | net/queso/files/patch-02 | 19 |
2 files changed, 100 insertions, 0 deletions
diff --git a/net/queso/files/patch-01 b/net/queso/files/patch-01 new file mode 100644 index 000000000000..b36efff5619f --- /dev/null +++ b/net/queso/files/patch-01 @@ -0,0 +1,81 @@ +--- tcpip.c.orig Tue Sep 22 13:35:43 1998 ++++ tcpip.c Sat Oct 24 11:46:58 1998 +@@ -25,6 +25,12 @@ + #include <stdarg.h> + #include <net/if.h> + ++#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__) ++#include <err.h> ++#include <errno.h> ++#include <sysexits.h> ++#endif ++ + #include "tcpip.h" + + /*-- LINUX routilng TABLES */ +@@ -333,7 +339,64 @@ + } + } + +-#else /* !LINUX ---------------------------------------------- OTHER --*/ ++/*------------------------------- FreeBSD / OpenBSD / NetBSD / BSDI --*/ ++#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__) ++/* ++ FreeBSD Ref: /usr/share/examples/find_interface/ ++*/ ++ struct sockaddr_in local, remote; ++ int s, rv, namelen; ++ ++ remote.sin_addr.s_addr = dest; ++ remote.sin_port = htons(60000); ++ remote.sin_family = AF_INET; ++ remote.sin_len = sizeof remote; ++ ++ local.sin_addr.s_addr = htonl(INADDR_ANY); ++ local.sin_port = htons(60000); ++ local.sin_family = AF_INET; ++ local.sin_len = sizeof local; ++ ++ s = socket(PF_INET, SOCK_DGRAM, 0); ++ if (s < 0) ++ err(EX_OSERR, "socket"); ++ ++ do ++ { ++ rv = bind(s, (struct sockaddr *)&local, sizeof local); ++ local.sin_port = htons(ntohs(local.sin_port) + 1); ++ } while(rv < 0 && errno == EADDRINUSE); ++ ++ if (rv < 0) ++ err(EX_OSERR, "bind"); ++ ++ do ++ { ++ rv = connect(s, (struct sockaddr *)&remote, sizeof remote); ++ remote.sin_port = htons(ntohs(remote.sin_port) + 1); ++ } while(rv < 0 && errno == EADDRINUSE); ++ ++ if (rv < 0) ++ err(EX_OSERR, "bind"); ++ ++ do ++ { ++ rv = connect(s, (struct sockaddr *)&remote, sizeof remote); ++ remote.sin_port = htons(ntohs(remote.sin_port) + 1); ++ } while(rv < 0 && errno == EADDRINUSE); ++ ++ if (rv < 0) ++ err(EX_OSERR, "connect"); ++ ++ namelen = sizeof local; ++ rv = getsockname(s, (struct sockaddr *)&local, &namelen); ++ ++ if (rv < 0) ++ err(EX_OSERR, "getsockname"); ++ ++ return local.sin_addr; ++ ++#else /* !LINUX && !BSD ---------------------------------- OTHER --*/ + struct sockaddr_in sin; + char myname[80]; + diff --git a/net/queso/files/patch-02 b/net/queso/files/patch-02 new file mode 100644 index 000000000000..703293921f9d --- /dev/null +++ b/net/queso/files/patch-02 @@ -0,0 +1,19 @@ +--- configure.orig Tue Sep 22 13:42:29 1998 ++++ configure Sat Oct 24 11:56:57 1998 +@@ -1110,6 +1110,16 @@ + ;; + esac + ;; ++FreeBSD) ++ PCAP=1 ++ case "`uname -m`" in ++ i386) ++ unset NEEDS_HTONS_IP_LEN ++ ;; ++ alpha) ++ ;; ++ esac ++ ;; + *) + PCAP=1 + ;; |