summaryrefslogtreecommitdiff
path: root/emulators/BasiliskII/patches/patch-ad
blob: de788635c857953c9ba29acf94f6106a4489ee55 (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
$NetBSD: patch-ad,v 1.3 2005/07/01 12:34:33 adam Exp $

--- sshpty.c.orig	2003-08-17 10:20:22.000000000 +0000
+++ sshpty.c
@@ -18,6 +18,7 @@ RCSID("$OpenBSD: sshpty.c,v 1.4 2001/12/
 /* Selections from openssh's "includes.h" */
 #include "config.h"
 
+#include <signal.h>
 #include <stdio.h>
 #include <ctype.h>
 #include <errno.h>
@@ -145,19 +146,30 @@ pty_allocate(int *ptyfd, int *ttyfd, cha
 	 */
 	int ptm;
 	char *pts;
+#ifdef __sunos__
 	mysig_t old_signal;
-
+#else
+	sig_t old_signal;
+#endif
 	ptm = open("/dev/ptmx", O_RDWR | O_NOCTTY);
 	if (ptm < 0) {
 		error("/dev/ptmx: %.100s", strerror(errno));
 		return 0;
 	}
+#ifdef __sunos__
 	old_signal = mysignal(SIGCHLD, SIG_DFL);
+#else
+	old_signal = signal(SIGCHLD, SIG_DFL);
+#endif
 	if (grantpt(ptm) < 0) {
 		error("grantpt: %.100s", strerror(errno));
 		return 0;
 	}
+#ifdef __sunos__
 	mysignal(SIGCHLD, old_signal);
+#else
+	signal(SIGCHLD, old_signal);
+#endif
 	if (unlockpt(ptm) < 0) {
 		error("unlockpt: %.100s", strerror(errno));
 		return 0;
@@ -175,7 +187,7 @@ pty_allocate(int *ptyfd, int *ttyfd, cha
 		close(*ptyfd);
 		return 0;
 	}
-#ifndef HAVE_CYGWIN
+#if !defined(__NetBSD__)
 	/*
 	 * Push the appropriate streams modules, as described in Solaris pts(7).
 	 * HP-UX pts(7) doesn't have ttcompat module.
@@ -184,7 +196,7 @@ pty_allocate(int *ptyfd, int *ttyfd, cha
 		error("ioctl I_PUSH ptem: %.100s", strerror(errno));
 	if (ioctl(*ttyfd, I_PUSH, "ldterm") < 0)
 		error("ioctl I_PUSH ldterm: %.100s", strerror(errno));
-#ifndef __hpux
+#if !defined(__NetBSD__)
 	if (ioctl(*ttyfd, I_PUSH, "ttcompat") < 0)
 		error("ioctl I_PUSH ttcompat: %.100s", strerror(errno));
 #endif
@@ -277,7 +289,7 @@ pty_allocate(int *ptyfd, int *ttyfd, cha
 		}
 		/* set tty modes to a sane state for broken clients */
 		if (tcgetattr(*ptyfd, &tio) < 0)
-			log("Getting tty modes for pty failed: %.100s", strerror(errno));
+			error("Getting tty modes for pty failed: %.100s", strerror(errno));
 		else {
 			tio.c_lflag |= (ECHO | ISIG | ICANON);
 			tio.c_oflag |= (OPOST | ONLCR);
@@ -285,7 +297,7 @@ pty_allocate(int *ptyfd, int *ttyfd, cha
 
 			/* Set the new modes for the terminal. */
 			if (tcsetattr(*ptyfd, TCSANOW, &tio) < 0)
-				log("Setting tty modes for pty failed: %.100s", strerror(errno));
+				error("Setting tty modes for pty failed: %.100s", strerror(errno));
 		}
 
 		return 1;