diff options
Diffstat (limited to 'security/skip/files/patch-co')
-rw-r--r-- | security/skip/files/patch-co | 106 |
1 files changed, 14 insertions, 92 deletions
diff --git a/security/skip/files/patch-co b/security/skip/files/patch-co index f82d4dae0ae9..aa5e67d5dab5 100644 --- a/security/skip/files/patch-co +++ b/security/skip/files/patch-co @@ -1,92 +1,14 @@ -diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/tools/lib/skip_freebsd.c work.new/skip/tools/lib/skip_freebsd.c ---- skipsrc-1.0.orig/skip/tools/lib/skip_freebsd.c Fri Oct 25 13:13:02 1996 -+++ work.new/skip/tools/lib/skip_freebsd.c Mon Mar 8 21:33:38 1999 -@@ -235,7 +235,7 @@ - char * - skip_default_if() - { --#define SKIP_DEFAULT_IF "eth0" /* 3com 3c589 */ -+#define SKIP_DEFAULT_IF "ed1" - static char devname[MAXPATHLEN]; - char cbuf[sizeof(struct ifreq) * 16]; - struct ifconf ifc; -@@ -244,6 +244,7 @@ - struct sockaddr_in *sa; - char hostname[MAXHOSTNAMELEN]; - int s, n; -+ int goodness = 0; - - strcpy(devname, SKIP_DEFAULT_IF); - -@@ -253,11 +254,13 @@ - - hp = _skip_gethostbyname(hostname); - -+#if 0 - if (hp == NULL) { - return(devname); - } -+#endif - -- if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { -+ if ((s = socket(PF_INET, SOCK_RAW, 0)) < 0) { - return (devname); - } - -@@ -276,33 +279,37 @@ - * just in case the primary can't be found. - * - */ -- end = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len); -- while (ifr < end) { -+ for (end = (struct ifreq *) (ifc.ifc_buf + ifc.ifc_len), -+ ifr = ifc.ifc_req; -+ ifr < end; -+ ifr = (struct ifreq *) -+ ((char *) &ifr->ifr_addr + ifr->ifr_addr.sa_len)) -+ { -+ int newgoodness = 0; - - strcpy(ifflags.ifr_name, ifr->ifr_name); - if (ioctl(s, SIOCGIFFLAGS, (char *) &ifflags) < 0) { -- /*goto out;*/ -+ continue; - } - if ((ifflags.ifr_flags & (IFF_LOOPBACK|IFF_UP|IFF_RUNNING)) == - (IFF_UP|IFF_RUNNING)) { -- /* -- * note the interface name just in case -- */ -- strcpy(devname, ifr->ifr_name); -- /* -- * but try to find an exact match -- */ -- sa = (struct sockaddr_in *) &ifr->ifr_addr; -- if (memcmp(hp->h_addr_list[0], (void *) &sa->sin_addr, -- hp->h_length) == 0) { -- break; -+ /* try to find an exact match */ -+ if (hp && ifr->ifr_addr.sa_family == AF_INET) { -+ sa = (struct sockaddr_in *) &ifr->ifr_addr; -+ if (memcmp(hp->h_addr_list[0], -+ (void *) &sa->sin_addr, hp->h_length) == 0) -+ break; -+ } -+ /* try to prefer ethernet interfaces */ -+ if (ifflags.ifr_flags & IFF_BROADCAST) -+ newgoodness += 1; -+ if (!(ifflags.ifr_flags & IFF_POINTOPOINT)) -+ newgoodness += 1; -+ if (newgoodness > goodness) { -+ strcpy(devname, ifr->ifr_name); -+ goodness = newgoodness; - } - } -- if(ifr->ifr_addr.sa_len) /* Dohw! */ -- ifr = (struct ifreq *) ((caddr_t) ifr + -- ifr->ifr_addr.sa_len - -- sizeof(struct sockaddr)); -- ifr++; - } - out: - (void) close(s); +diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/man/raw_keys.4 work.new/skip/man/raw_keys.4 +--- skipsrc-1.0.orig/skip/man/raw_keys.4 Fri Oct 25 13:12:56 1996 ++++ work.new/skip/man/raw_keys.4 Mon Jan 24 12:35:41 2000 +@@ -42,9 +42,4 @@ + link. + .SH FILES + .P +-.SH Solaris 2.x systems: +-/etc/opt/SUNWicg/skip/raw_keys +-.P +-.SH Other systems: +-.P +-/etc/skip/raw_keys ++@@PREFIX@@/etc/skip/raw_keys |