1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
$NetBSD: patch-ad,v 1.6 2006/06/22 15:00:51 joerg Exp $
--- nettestd.c.orig 1992-11-05 21:52:58.000000000 +0000
+++ nettestd.c
@@ -42,6 +42,7 @@ char copyright[] =
#include <errno.h>
#include <signal.h>
+#include <stdlib.h>
#ifdef WAIT3CODE
#include <sys/wait.h>
#endif
@@ -79,7 +80,7 @@ int ipoptions = 0;
int mesghdr = 0;
#define debug(x) if(dflag>1)fprintf x
int verbose;
-int daemon = 0; /* are we running in daemon mode? */
+int is_daemon = 0; /* are we running in daemon mode? */
#ifdef TCP_WINSHIFT
int winshift;
@@ -107,7 +108,12 @@ union {
} name;
int namesize;
-int read(), recv();
+int read();
+#if defined(sgi) && _NO_XOPEN4 && _NO_XOPEN5
+int recv();
+#else
+ssize_t recv();
+#endif
int (*rfunc)() = read;
main(argc, argv)
@@ -139,7 +145,7 @@ char **argv;
"-v flag ignored when -b flag is used\n");
verbose = 0;
}
- daemon++;
+ is_daemon++;
break;
case 'd': /* turn on socket level debugging */
++dflag;
@@ -204,7 +210,7 @@ char **argv;
#endif
case 'v': /* print out errors in sequenced data */
- if (daemon) {
+ if (is_daemon) {
fprintf(stderr,
"-v flag ignored when -b flag is used\n");
verbose = 0;
@@ -270,8 +276,12 @@ char **argv;
# endif
# endif
#endif
- if (daemon) {
+ if (is_daemon) {
+#ifdef NONVOID_SETPGRP
+ if (setpgrp(0, getpid()) < 0)
+#else
if (setpgrp() < 0)
+#endif
perror("setpgrp");
if ((c = open(_PATH_TTY, O_RDWR)) >= 0) {
(void)ioctl(c, TIOCNOTTY, (char *)0);
@@ -416,7 +426,7 @@ char **argv;
)
error("setsockopt (IP_OPTIONS)");
#endif
- if (bind(s, (char *)&name, namesize) < 0) {
+ if (bind(s, (struct sockaddr *)&name, namesize) < 0) {
error("bind");
exit(1);
}
@@ -447,12 +457,11 @@ register int s;
#endif
listen(s, 5);
- signal(SIGCHLD, dochild);
+ signal(SIGCHLD, (void *)dochild);
for (;;) {
namesize = sizeof(name);
- s2 = accept(s, (char *)&name, &namesize);
+ s2 = accept(s, (struct sockaddr *)&name, &namesize);
if (s2 < 0) {
- extern int errno;
if (errno == EINTR)
continue;
error("accept");
@@ -516,7 +525,7 @@ register in, out;
{
register int i, t, offset = 0;
register char *cp, *data;
- char buf[128], *malloc();
+ char buf[128];
int chunks = 0, chunksize = 0, fullbuf = 0, kbufsize = 0;
int tos = 0, nodelay = 0, seqdata = 0, waitall = 0;
register unsigned long hival, loval;
@@ -684,7 +693,7 @@ int s;
register int t, t2;
register char *cp, *data;
register struct hostent *hp;
- char *inet_ntoa(), *malloc();
+ char *inet_ntoa();
register char *errmsg;
#ifdef CMSG_DATA
struct msghdr inmsg;
@@ -707,7 +716,9 @@ int s;
inmsg.msg_iovlen = 1;
inmsg.msg_name = (caddr_t)&name.d_inet;
inmsg.msg_control = (caddr_t)control;
+#ifndef sgi
inmsg.msg_flags = 0;
+#endif
errmsg = "recvmsg";
} else
#endif /* CMSG_DATA */
@@ -723,7 +734,7 @@ int s;
#endif
{
namesize = sizeof(name.d_inet);
- t = recvfrom(s, data, MAXSIZE, 0, (char *)&name.d_inet,
+ t = recvfrom(s, data, MAXSIZE, 0, (struct sockaddr *)&name.d_inet,
&namesize);
}
if (t < 0) {
@@ -758,7 +769,7 @@ usage()
error(string)
char *string;
{
- if (daemon)
+ if (is_daemon)
syslog(LOG_ERR, "nettestd: %s %m", string);
else
perror(string);
|