summaryrefslogtreecommitdiff
blob: 7c39d6ad81cb446cdccfaea8e2df38e898beaea5 (plain)
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
diff --git a/configure.in b/configure.in
index 1547e9b..eda5fb1 100644
--- a/configure.in
+++ b/configure.in
@@ -12,6 +12,8 @@ ALL_LINGUAS="de"
 AC_SUBST(PACKAGE)
 AC_SUBST(VERSION)
 
+AC_CHECK_HEADERS([pty.h utmp.h])
+
 if test x"$ac_default_prefix" = x"/usr"
 then
 	if test x"${mandir}" = x'${prefix}/man'
diff --git a/telnet/commands.c b/telnet/commands.c
index c0d349c..fa2cf8a 100644
--- a/telnet/commands.c
+++ b/telnet/commands.c
@@ -29,11 +29,13 @@
 
 #include "telnet_locl.h"
 #include <err.h>
+#include <unistd.h>
 
 #if	defined(IPPROTO_IP) && defined(IP_TOS)
 int tos = -1;
 #endif /* defined(IPPROTO_IP) && defined(IP_TOS) */
 
+extern char **environ;
 char *hostname;
 
 typedef int (*intrtn_t) __P ((int, char **));
diff --git a/telnet/ring.h b/telnet/ring.h
index 66f7191..9ef8fb8 100644
--- a/telnet/ring.h
+++ b/telnet/ring.h
@@ -29,6 +29,7 @@
  */
 
 #include <sys/cdefs.h>
+#include <sys/types.h>
 #define P __P
 
 /*
diff --git a/telnetd/setproctitle.c b/telnetd/setproctitle.c
index f332277..b2adc92 100644
--- a/telnetd/setproctitle.c
+++ b/telnetd/setproctitle.c
@@ -72,6 +72,7 @@ char setproctitle_rcsid[] =
 static char **Argv = NULL;		/* pointer to argument vector */
 static char *LastArgv = NULL;		/* end of argv */
 static char Argv0[128];			/* program name */
+extern char **environ;
 
 void
 initsetproctitle(int argc, char **argv, char **envp)
@@ -86,10 +87,10 @@ initsetproctitle(int argc, char **argv, char **envp)
 
 	for (i = 0; envp[i] != NULL; i++)
 		continue;
-	__environ = (char **) malloc(sizeof (char *) * (i + 1));
+	environ = (char **) malloc(sizeof (char *) * (i + 1));
 	for (i = 0; envp[i] != NULL; i++)
-		__environ[i] = strdup(envp[i]);
-	__environ[i] = NULL;
+		environ[i] = strdup(envp[i]);
+	environ[i] = NULL;
 
 	/*
 	**  Save start and extent of argv for setproctitle.
diff --git a/telnetd/sys_term.c b/telnetd/sys_term.c
index 1235428..6fcc601 100644
--- a/telnetd/sys_term.c
+++ b/telnetd/sys_term.c
@@ -27,8 +27,15 @@
  * SUCH DAMAGE.
  */
 
+#include <config.h>
+
+#include <sys/types.h>
+#ifdef HAVE_UTMP_H 
 #include <utmp.h>
+#endif
+#ifdef HAVE_PTY_H
 #include <pty.h>
+#endif
 
 #include "telnetd.h"
 #include "pathnames.h"
@@ -820,6 +827,7 @@ addarg (struct argv_stuff *avs, const char *val)
 void
 cleanup (int sig)
 {
+#if !defined(__FreeBSD__) || __FreeBSD__ < 9
   sigset_t sigset;
   char *p;
   (void) sig;
@@ -847,6 +855,7 @@ cleanup (int sig)
   *p = 'p';
   chmod (line, 0666);
   chown (line, 0, 0);
+#endif
   shutdown (net, 2);
   exit (1);
 }