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: main.c
2 diff -Nau main.c.orig main.c
3 --- main.c.orig 2008-06-17 05:19:48 +0200
4 +++ main.c 2008-08-09 11:58:55 +0200
5 @@ -86,7 +86,11 @@
6 bindhost = NULL;
8 if ((n = resolve(ia, pf, bindhost, servname, AI_PASSIVE)) != 0)
9 +#if defined(__sun__)
10 + errx(1, "setbindhost");
11 +#else
12 errx(1, "setbindhost: %s", gai_strerror(n));
13 +#endif
14 }
16 static void
17 Index: rtpp_command.c
18 diff -Nau rtpp_command.c.orig rtpp_command.c
19 --- rtpp_command.c.orig 2009-03-25 02:53:17.397562078 +0100
20 +++ rtpp_command.c 2009-03-25 02:52:59.126654989 +0100
21 @@ -72,6 +72,36 @@
22 static void handle_query(struct cfg *, int, struct sockaddr_storage *,
23 socklen_t, char *, struct rtpp_session *, int);
25 +#if defined(__sun) && defined(__SVR4) && !defined(GE_SOL11)
26 +static char
27 +*strsep(char **stringp, const char *delim)
28 +{
29 + char *s;
30 + const char *spanp;
31 + int c, sc;
32 + char *tok;
33 +
34 + if ((s = *stringp) == NULL)
35 + return NULL;
36 + for (tok = s;;) {
37 + c = *s++;
38 + spanp = delim;
39 + do {
40 + if ((sc = *spanp++) == c) {
41 + if (c == 0)
42 + s = NULL;
43 + else
44 + s[-1] = 0;
45 + *stringp = s;
46 + return tok;
47 + }
48 + } while (sc != 0);
49 + }
50 + /* NOTREACHED */
51 + return NULL;
52 +}
53 +
54 +#endif
55 static int
56 create_twinlistener(struct cfg *cf, struct sockaddr *ia, int port, int *fds)
57 {