summaryrefslogtreecommitdiff
path: root/monitor.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2002-05-13 11:07:41 +1000
committerDamien Miller <djm@mindrot.org>2002-05-13 11:07:41 +1000
commit5ad9fd982037e512355cfd5fe060a554934be243 (patch)
tree8c2793a1431a8afd322789c8db95fa577c2fcce6 /monitor.c
parent80080753cd577bd670133660428821225304c361 (diff)
- (djm) Bug #231: UsePrivilegeSeparation turns off Banner.
Diffstat (limited to 'monitor.c')
-rw-r--r--monitor.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/monitor.c b/monitor.c
index a27cf0f3d..279ec37ff 100644
--- a/monitor.c
+++ b/monitor.c
@@ -25,7 +25,7 @@
25 */ 25 */
26 26
27#include "includes.h" 27#include "includes.h"
28RCSID("$OpenBSD: monitor.c,v 1.9 2002/03/30 18:51:15 markus Exp $"); 28RCSID("$OpenBSD: monitor.c,v 1.10 2002/05/12 23:53:45 djm Exp $");
29 29
30#include <openssl/dh.h> 30#include <openssl/dh.h>
31 31
@@ -96,6 +96,7 @@ struct {
96int mm_answer_moduli(int, Buffer *); 96int mm_answer_moduli(int, Buffer *);
97int mm_answer_sign(int, Buffer *); 97int mm_answer_sign(int, Buffer *);
98int mm_answer_pwnamallow(int, Buffer *); 98int mm_answer_pwnamallow(int, Buffer *);
99int mm_answer_auth2_read_banner(int, Buffer *);
99int mm_answer_authserv(int, Buffer *); 100int mm_answer_authserv(int, Buffer *);
100int mm_answer_authpassword(int, Buffer *); 101int mm_answer_authpassword(int, Buffer *);
101int mm_answer_bsdauthquery(int, Buffer *); 102int mm_answer_bsdauthquery(int, Buffer *);
@@ -147,6 +148,7 @@ struct mon_table mon_dispatch_proto20[] = {
147 {MONITOR_REQ_SIGN, MON_ONCE, mm_answer_sign}, 148 {MONITOR_REQ_SIGN, MON_ONCE, mm_answer_sign},
148 {MONITOR_REQ_PWNAM, MON_ONCE, mm_answer_pwnamallow}, 149 {MONITOR_REQ_PWNAM, MON_ONCE, mm_answer_pwnamallow},
149 {MONITOR_REQ_AUTHSERV, MON_ONCE, mm_answer_authserv}, 150 {MONITOR_REQ_AUTHSERV, MON_ONCE, mm_answer_authserv},
151 {MONITOR_REQ_AUTH2_READ_BANNER, MON_ONCE, mm_answer_auth2_read_banner},
150 {MONITOR_REQ_AUTHPASSWORD, MON_AUTH, mm_answer_authpassword}, 152 {MONITOR_REQ_AUTHPASSWORD, MON_AUTH, mm_answer_authpassword},
151#ifdef USE_PAM 153#ifdef USE_PAM
152 {MONITOR_REQ_PAM_START, MON_ONCE, mm_answer_pam_start}, 154 {MONITOR_REQ_PAM_START, MON_ONCE, mm_answer_pam_start},
@@ -524,9 +526,11 @@ mm_answer_pwnamallow(int socket, Buffer *m)
524 /* For SSHv1 allow authentication now */ 526 /* For SSHv1 allow authentication now */
525 if (!compat20) 527 if (!compat20)
526 monitor_permit_authentications(1); 528 monitor_permit_authentications(1);
527 else 529 else {
528 /* Allow service/style information on the auth context */ 530 /* Allow service/style information on the auth context */
529 monitor_permit(mon_dispatch, MONITOR_REQ_AUTHSERV, 1); 531 monitor_permit(mon_dispatch, MONITOR_REQ_AUTHSERV, 1);
532 monitor_permit(mon_dispatch, MONITOR_REQ_AUTH2_READ_BANNER, 1);
533 }
530 534
531#ifdef USE_PAM 535#ifdef USE_PAM
532 monitor_permit(mon_dispatch, MONITOR_REQ_PAM_START, 1); 536 monitor_permit(mon_dispatch, MONITOR_REQ_PAM_START, 1);
@@ -535,6 +539,21 @@ mm_answer_pwnamallow(int socket, Buffer *m)
535 return (0); 539 return (0);
536} 540}
537 541
542int mm_answer_auth2_read_banner(int socket, Buffer *m)
543{
544 char *banner;
545
546 buffer_clear(m);
547 banner = auth2_read_banner();
548 buffer_put_cstring(m, banner != NULL ? banner : "");
549 mm_request_send(socket, MONITOR_ANS_AUTH2_READ_BANNER, m);
550
551 if (banner != NULL)
552 free(banner);
553
554 return (0);
555}
556
538int 557int
539mm_answer_authserv(int socket, Buffer *m) 558mm_answer_authserv(int socket, Buffer *m)
540{ 559{