Thu, 04 Oct 2012 20:30:05 +0200
Correct out of date build configuration, porting to Solaris 11 network
link infrastructure and new libpcap logic. This additionally allows for
device drivers in subdirectories of /dev. Correct packaged nmap
personalities and signatures to work out of the box. Finally, hack
arpd logic to properly close sockets and quit on TERM by repeating
signaling in the run command script. Sadly, all this fails to correct
the run time behaviour of honeyd which fails to bind to the IP layer.
1 Index: Makefile.in
2 --- Makefile.in.orig 2005-11-07 19:38:27 +0100
3 +++ Makefile.in 2005-11-07 19:38:52 +0100
4 @@ -152,7 +152,7 @@
5 @-for i in otp-md4 otp-md5; do ln -s opiekey.1 $(LOCALMAN)/man1/$$i.1; done
6 @if test ! -d $(LOCALMAN)/man1; then $(MKDIR) $(LOCALMAN)/man1; chmod 755 $(LOCALMAN)/man1; fi; cp opiekey.1 $(LOCALMAN)/man1/opiekey.1; $(CHOWN) $(OWNER) $(LOCALMAN)/man1/opiekey.1; chgrp $(GROUP) $(LOCALMAN)/man1/opiekey.1; chmod 644 $(LOCALMAN)/man1/opiekey.1
8 -server: libopie/libopie.a libmissing/libmissing.a opietest-passed opielogin opiesu opiepasswd opieinfo opieftpd opieserv
9 +server: libopie/libopie.a libmissing/libmissing.a opietest-passed opielogin opiesu opiepasswd opieinfo opieserv
11 server-install: server
12 @echo "Installing OPIE server software..."
13 Index: libopie/atob8.c
14 --- libopie/atob8.c.orig 1999-03-11 03:09:57 +0100
15 +++ libopie/atob8.c 2005-11-07 19:39:30 +0100
16 @@ -72,5 +72,5 @@
17 *out++ |= val;
18 }
20 - return out;
21 + return (char *)out;
22 }
23 Index: opie_cfg.h
24 --- opie_cfg.h.orig 2001-11-20 17:23:37 +0100
25 +++ opie_cfg.h 2005-11-07 19:39:05 +0100
26 @@ -69,6 +69,9 @@
27 #define DOUTMPX 0
28 #endif /* HAVE_GETUTXLINE && HAVE_UTMPX_H */
30 +#include <stdlib.h>
31 +#include <stdio.h>
32 +#include <string.h>
33 #include <sys/types.h>
34 /* Adapted from the Autoconf hypertext info pages */
35 #if HAVE_DIRENT_H
36 Index: libopie/generator.c
37 --- libopie/generator.c.orig 2006-06-18 02:06:28.215630000 +0200
38 +++ libopie/generator.c 2006-06-18 02:06:15.049431000 +0200
39 @@ -62,7 +62,7 @@
40 static int opieauto_connect FUNCTION_NOARGS
41 {
42 int s;
43 - struct sockaddr_un sun;
44 + struct sockaddr_un locsun;
45 char buffer[1024];
46 char *c, *c2 ="/.opieauto";
47 uid_t myuid = getuid(), myeuid = geteuid();
48 @@ -74,8 +74,8 @@
49 return -1;
50 };
52 - memset(&sun, 0, sizeof(struct sockaddr_un));
53 - sun.sun_family = AF_UNIX;
54 + memset(&locsun, 0, sizeof(struct sockaddr_un));
55 + locsun.sun_family = AF_UNIX;
57 if (!(c = getenv("HOME"))) {
58 #if DEBUG
59 @@ -84,15 +84,15 @@
60 return -1;
61 };
63 - if (strlen(c) > (sizeof(sun.sun_path) - strlen(c2) - 1)) {
64 + if (strlen(c) > (sizeof(locsun.sun_path) - strlen(c2) - 1)) {
65 #if DEBUG
66 syslog(LOG_DEBUG, "opieauto_connect: HOME is too long: %s", c);
67 #endif /* DEBUG */
68 return -1;
69 };
71 - strcpy(sun.sun_path, c);
72 - strcat(sun.sun_path, c2);
73 + strcpy(locsun.sun_path, c);
74 + strcat(locsun.sun_path, c2);
76 if ((s = socket(PF_UNIX, SOCK_STREAM, 0)) < 0) {
77 #if DEBUG
78 @@ -104,14 +104,14 @@
79 {
80 struct stat st;
82 - if (stat(sun.sun_path, &st) < 0) {
83 + if (stat(locsun.sun_path, &st) < 0) {
84 #if DEBUG
85 syslog(LOG_DEBUG, "opieauto_connect: stat: %s(%d)\n", strerror(errno), errno);
86 #endif /* DEBUG */
87 goto ret;
88 };
90 - if (connect(s, (struct sockaddr *)&sun, sizeof(struct sockaddr_un))) {
91 + if (connect(s, (struct sockaddr *)&locsun, sizeof(struct sockaddr_un))) {
92 #if DEBUG
93 syslog(LOG_DEBUG, "opieauto_connect: connect: %s(%d)\n", strerror(errno), errno);
94 #endif /* DEBUG */
95 Index: opieauto.c
96 --- opieauto.c.orig 2001-11-20 16:18:42.000000000 +0100
97 +++ opieauto.c 2006-06-18 02:28:20.526432000 +0200
98 @@ -282,10 +282,10 @@
99 baile("atexit");
101 {
102 - struct sockaddr_un sun;
103 + struct sockaddr_un locsun;
105 - memset(&sun, 0, sizeof(struct sockaddr_un));
106 - sun.sun_family = AF_UNIX;
107 + memset(&locsun, 0, sizeof(struct sockaddr_un));
108 + locsun.sun_family = AF_UNIX;
110 {
111 char *c;
112 @@ -294,12 +294,12 @@
113 if (!(c = getenv("HOME")))
114 bail("getenv(HOME) failed -- no HOME variable?");
116 - if (strlen(c) > (sizeof(sun.sun_path) - strlen(c2) - 1))
117 + if (strlen(c) > (sizeof(locsun.sun_path) - strlen(c2) - 1))
118 bail("your HOME is too long");
120 - strcpy(sun.sun_path, c);
121 - strcat(sun.sun_path, c2);
122 - sockpath = strdup(sun.sun_path);
123 + strcpy(locsun.sun_path, c);
124 + strcat(locsun.sun_path, c2);
125 + sockpath = strdup(locsun.sun_path);
126 };
128 if ((parents = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
129 @@ -311,7 +311,7 @@
130 if (umask(0177) < 0)
131 baile("umask");
133 - if (bind(parents, (struct sockaddr *)&sun, sizeof(struct sockaddr_un)))
134 + if (bind(parents, (struct sockaddr *)&locsun, sizeof(struct sockaddr_un)))
135 baile("bind");
137 if (stat(sockpath, &st) < 0)