summaryrefslogtreecommitdiff
path: root/monitor_wrap.c
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2003-10-02 16:12:36 +1000
committerDarren Tucker <dtucker@zip.com.au>2003-10-02 16:12:36 +1000
commit3e33cecf71860f73656a73b754cc7b7b9ec0b0ce (patch)
tree4c993022225dc70faeb42e23ff3323fd1deb717a /monitor_wrap.c
parentb210aa2cfa546d8c31f8c725d1de3050c747bd6e (diff)
- markus@cvs.openbsd.org 2003/09/23 20:17:11
[Makefile.in auth1.c auth2.c auth.c auth.h auth-krb5.c canohost.c cleanup.c clientloop.c fatal.c gss-serv.c log.c log.h monitor.c monitor.h monitor_wrap.c monitor_wrap.h packet.c serverloop.c session.c session.h ssh-agent.c sshd.c] replace fatal_cleanup() and linked list of fatal callbacks with static cleanup_exit() function. re-refine cleanup_exit() where appropriate, allocate sshd's authctxt eary to allow simpler cleanup in sshd. tested by many, ok deraadt@
Diffstat (limited to 'monitor_wrap.c')
-rw-r--r--monitor_wrap.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/monitor_wrap.c b/monitor_wrap.c
index 4034d569c..99dfc8508 100644
--- a/monitor_wrap.c
+++ b/monitor_wrap.c
@@ -25,7 +25,7 @@
25 */ 25 */
26 26
27#include "includes.h" 27#include "includes.h"
28RCSID("$OpenBSD: monitor_wrap.c,v 1.31 2003/08/28 12:54:34 markus Exp $"); 28RCSID("$OpenBSD: monitor_wrap.c,v 1.32 2003/09/23 20:17:11 markus Exp $");
29 29
30#include <openssl/bn.h> 30#include <openssl/bn.h>
31#include <openssl/dh.h> 31#include <openssl/dh.h>
@@ -66,6 +66,16 @@ extern struct monitor *pmonitor;
66extern Buffer input, output; 66extern Buffer input, output;
67extern ServerOptions options; 67extern ServerOptions options;
68 68
69int
70mm_is_monitor(void)
71{
72 /*
73 * m_pid is only set in the privileged part, and
74 * points to the unprivileged child.
75 */
76 return (pmonitor->m_pid > 0);
77}
78
69void 79void
70mm_request_send(int socket, enum monitor_reqtype type, Buffer *m) 80mm_request_send(int socket, enum monitor_reqtype type, Buffer *m)
71{ 81{
@@ -94,7 +104,7 @@ mm_request_receive(int socket, Buffer *m)
94 res = atomicio(read, socket, buf, sizeof(buf)); 104 res = atomicio(read, socket, buf, sizeof(buf));
95 if (res != sizeof(buf)) { 105 if (res != sizeof(buf)) {
96 if (res == 0) 106 if (res == 0)
97 fatal_cleanup(); 107 cleanup_exit(255);
98 fatal("%s: read: %ld", __func__, (long)res); 108 fatal("%s: read: %ld", __func__, (long)res);
99 } 109 }
100 msg_len = GET_32BIT(buf); 110 msg_len = GET_32BIT(buf);
@@ -648,9 +658,8 @@ mm_pty_allocate(int *ptyfd, int *ttyfd, char *namebuf, int namebuflen)
648} 658}
649 659
650void 660void
651mm_session_pty_cleanup2(void *session) 661mm_session_pty_cleanup2(Session *s)
652{ 662{
653 Session *s = session;
654 Buffer m; 663 Buffer m;
655 664
656 if (s->ttyfd == -1) 665 if (s->ttyfd == -1)