diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | clientloop.c | 24 | ||||
-rw-r--r-- | monitor.c | 10 | ||||
-rw-r--r-- | monitor_wrap.c | 10 | ||||
-rw-r--r-- | packet.c | 29 | ||||
-rw-r--r-- | packet.h | 6 | ||||
-rw-r--r-- | sshd.c | 11 |
7 files changed, 58 insertions, 38 deletions
@@ -12,6 +12,10 @@ | |||
12 | - markus@cvs.openbsd.org 2008/07/10 18:05:58 | 12 | - markus@cvs.openbsd.org 2008/07/10 18:05:58 |
13 | [channels.c] | 13 | [channels.c] |
14 | missing bzero; from mickey; ok djm@ | 14 | missing bzero; from mickey; ok djm@ |
15 | - markus@cvs.openbsd.org 2008/07/10 18:08:11 | ||
16 | [clientloop.c monitor.c monitor_wrap.c packet.c packet.h sshd.c] | ||
17 | sync v1 and v2 traffic accounting; add it to sshd, too; | ||
18 | ok djm@, dtucker@ | ||
15 | 19 | ||
16 | 20080709 | 20 | 20080709 |
17 | - (djm) [Makefile.in] Print "all tests passed" when all regress tests pass | 21 | - (djm) [Makefile.in] Print "all tests passed" when all regress tests pass |
@@ -4618,4 +4622,4 @@ | |||
4618 | OpenServer 6 and add osr5bigcrypt support so when someone migrates | 4622 | OpenServer 6 and add osr5bigcrypt support so when someone migrates |
4619 | passwords between UnixWare and OpenServer they will still work. OK dtucker@ | 4623 | passwords between UnixWare and OpenServer they will still work. OK dtucker@ |
4620 | 4624 | ||
4621 | $Id: ChangeLog,v 1.5072 2008/07/11 07:35:37 djm Exp $ | 4625 | $Id: ChangeLog,v 1.5073 2008/07/11 07:36:48 djm Exp $ |
diff --git a/clientloop.c b/clientloop.c index ba2f0b79e..5a8727eb9 100644 --- a/clientloop.c +++ b/clientloop.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: clientloop.c,v 1.199 2008/06/12 21:06:25 djm Exp $ */ | 1 | /* $OpenBSD: clientloop.c,v 1.200 2008/07/10 18:08:11 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -152,7 +152,6 @@ static int stdin_eof; /* EOF has been encountered on stderr. */ | |||
152 | static Buffer stdin_buffer; /* Buffer for stdin data. */ | 152 | static Buffer stdin_buffer; /* Buffer for stdin data. */ |
153 | static Buffer stdout_buffer; /* Buffer for stdout data. */ | 153 | static Buffer stdout_buffer; /* Buffer for stdout data. */ |
154 | static Buffer stderr_buffer; /* Buffer for stderr data. */ | 154 | static Buffer stderr_buffer; /* Buffer for stderr data. */ |
155 | static u_long stdin_bytes, stdout_bytes, stderr_bytes; | ||
156 | static u_int buffer_high;/* Soft max buffer size. */ | 155 | static u_int buffer_high;/* Soft max buffer size. */ |
157 | static int connection_in; /* Connection to server (input). */ | 156 | static int connection_in; /* Connection to server (input). */ |
158 | static int connection_out; /* Connection to server (output). */ | 157 | static int connection_out; /* Connection to server (output). */ |
@@ -437,7 +436,6 @@ client_make_packets_from_stdin_data(void) | |||
437 | packet_put_string(buffer_ptr(&stdin_buffer), len); | 436 | packet_put_string(buffer_ptr(&stdin_buffer), len); |
438 | packet_send(); | 437 | packet_send(); |
439 | buffer_consume(&stdin_buffer, len); | 438 | buffer_consume(&stdin_buffer, len); |
440 | stdin_bytes += len; | ||
441 | /* If we have a pending EOF, send it now. */ | 439 | /* If we have a pending EOF, send it now. */ |
442 | if (stdin_eof && buffer_len(&stdin_buffer) == 0) { | 440 | if (stdin_eof && buffer_len(&stdin_buffer) == 0) { |
443 | packet_start(SSH_CMSG_EOF); | 441 | packet_start(SSH_CMSG_EOF); |
@@ -1205,7 +1203,6 @@ client_process_output(fd_set *writeset) | |||
1205 | } | 1203 | } |
1206 | /* Consume printed data from the buffer. */ | 1204 | /* Consume printed data from the buffer. */ |
1207 | buffer_consume(&stdout_buffer, len); | 1205 | buffer_consume(&stdout_buffer, len); |
1208 | stdout_bytes += len; | ||
1209 | } | 1206 | } |
1210 | /* Write buffered output to stderr. */ | 1207 | /* Write buffered output to stderr. */ |
1211 | if (FD_ISSET(fileno(stderr), writeset)) { | 1208 | if (FD_ISSET(fileno(stderr), writeset)) { |
@@ -1227,7 +1224,6 @@ client_process_output(fd_set *writeset) | |||
1227 | } | 1224 | } |
1228 | /* Consume printed characters from the buffer. */ | 1225 | /* Consume printed characters from the buffer. */ |
1229 | buffer_consume(&stderr_buffer, len); | 1226 | buffer_consume(&stderr_buffer, len); |
1230 | stderr_bytes += len; | ||
1231 | } | 1227 | } |
1232 | } | 1228 | } |
1233 | 1229 | ||
@@ -1302,6 +1298,7 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id) | |||
1302 | fd_set *readset = NULL, *writeset = NULL; | 1298 | fd_set *readset = NULL, *writeset = NULL; |
1303 | double start_time, total_time; | 1299 | double start_time, total_time; |
1304 | int max_fd = 0, max_fd2 = 0, len, rekeying = 0; | 1300 | int max_fd = 0, max_fd2 = 0, len, rekeying = 0; |
1301 | u_int64_t ibytes, obytes; | ||
1305 | u_int nalloc = 0; | 1302 | u_int nalloc = 0; |
1306 | char buf[100]; | 1303 | char buf[100]; |
1307 | 1304 | ||
@@ -1333,9 +1330,6 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id) | |||
1333 | max_fd = MAX(max_fd, fileno(stdout)); | 1330 | max_fd = MAX(max_fd, fileno(stdout)); |
1334 | max_fd = MAX(max_fd, fileno(stderr)); | 1331 | max_fd = MAX(max_fd, fileno(stderr)); |
1335 | } | 1332 | } |
1336 | stdin_bytes = 0; | ||
1337 | stdout_bytes = 0; | ||
1338 | stderr_bytes = 0; | ||
1339 | quit_pending = 0; | 1333 | quit_pending = 0; |
1340 | escape_char1 = escape_char_arg; | 1334 | escape_char1 = escape_char_arg; |
1341 | 1335 | ||
@@ -1521,7 +1515,6 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id) | |||
1521 | break; | 1515 | break; |
1522 | } | 1516 | } |
1523 | buffer_consume(&stdout_buffer, len); | 1517 | buffer_consume(&stdout_buffer, len); |
1524 | stdout_bytes += len; | ||
1525 | } | 1518 | } |
1526 | 1519 | ||
1527 | /* Output any buffered data for stderr. */ | 1520 | /* Output any buffered data for stderr. */ |
@@ -1533,7 +1526,6 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id) | |||
1533 | break; | 1526 | break; |
1534 | } | 1527 | } |
1535 | buffer_consume(&stderr_buffer, len); | 1528 | buffer_consume(&stderr_buffer, len); |
1536 | stderr_bytes += len; | ||
1537 | } | 1529 | } |
1538 | 1530 | ||
1539 | /* Clear and free any buffers. */ | 1531 | /* Clear and free any buffers. */ |
@@ -1544,13 +1536,13 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id) | |||
1544 | 1536 | ||
1545 | /* Report bytes transferred, and transfer rates. */ | 1537 | /* Report bytes transferred, and transfer rates. */ |
1546 | total_time = get_current_time() - start_time; | 1538 | total_time = get_current_time() - start_time; |
1547 | debug("Transferred: stdin %lu, stdout %lu, stderr %lu bytes in %.1f " | 1539 | packet_get_state(MODE_IN, NULL, NULL, NULL, &ibytes); |
1548 | "seconds", stdin_bytes, stdout_bytes, stderr_bytes, total_time); | 1540 | packet_get_state(MODE_OUT, NULL, NULL, NULL, &obytes); |
1541 | verbose("Transferred: sent %llu, received %llu bytes, in %.1f seconds", | ||
1542 | obytes, ibytes, total_time); | ||
1549 | if (total_time > 0) | 1543 | if (total_time > 0) |
1550 | debug("Bytes per second: stdin %.1f, stdout %.1f, stderr %.1f", | 1544 | verbose("Bytes per second: sent %.1f, received %.1f", |
1551 | stdin_bytes / total_time, stdout_bytes / total_time, | 1545 | obytes / total_time, ibytes / total_time); |
1552 | stderr_bytes / total_time); | ||
1553 | |||
1554 | /* Return the exit status of the program. */ | 1546 | /* Return the exit status of the program. */ |
1555 | debug("Exit status %d", exit_status); | 1547 | debug("Exit status %d", exit_status); |
1556 | return exit_status; | 1548 | return exit_status; |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: monitor.c,v 1.98 2008/07/04 03:47:02 dtucker Exp $ */ | 1 | /* $OpenBSD: monitor.c,v 1.99 2008/07/10 18:08:11 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> | 3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> |
4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> | 4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> |
@@ -1705,7 +1705,7 @@ mm_get_keystate(struct monitor *pmonitor) | |||
1705 | u_char *blob, *p; | 1705 | u_char *blob, *p; |
1706 | u_int bloblen, plen; | 1706 | u_int bloblen, plen; |
1707 | u_int32_t seqnr, packets; | 1707 | u_int32_t seqnr, packets; |
1708 | u_int64_t blocks; | 1708 | u_int64_t blocks, bytes; |
1709 | 1709 | ||
1710 | debug3("%s: Waiting for new keys", __func__); | 1710 | debug3("%s: Waiting for new keys", __func__); |
1711 | 1711 | ||
@@ -1738,11 +1738,13 @@ mm_get_keystate(struct monitor *pmonitor) | |||
1738 | seqnr = buffer_get_int(&m); | 1738 | seqnr = buffer_get_int(&m); |
1739 | blocks = buffer_get_int64(&m); | 1739 | blocks = buffer_get_int64(&m); |
1740 | packets = buffer_get_int(&m); | 1740 | packets = buffer_get_int(&m); |
1741 | packet_set_state(MODE_OUT, seqnr, blocks, packets); | 1741 | bytes = buffer_get_int64(&m); |
1742 | packet_set_state(MODE_OUT, seqnr, blocks, packets, bytes); | ||
1742 | seqnr = buffer_get_int(&m); | 1743 | seqnr = buffer_get_int(&m); |
1743 | blocks = buffer_get_int64(&m); | 1744 | blocks = buffer_get_int64(&m); |
1744 | packets = buffer_get_int(&m); | 1745 | packets = buffer_get_int(&m); |
1745 | packet_set_state(MODE_IN, seqnr, blocks, packets); | 1746 | bytes = buffer_get_int64(&m); |
1747 | packet_set_state(MODE_IN, seqnr, blocks, packets, bytes); | ||
1746 | 1748 | ||
1747 | skip: | 1749 | skip: |
1748 | /* Get the key context */ | 1750 | /* Get the key context */ |
diff --git a/monitor_wrap.c b/monitor_wrap.c index e65fb1279..40463d078 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: monitor_wrap.c,v 1.62 2008/05/08 12:21:16 djm Exp $ */ | 1 | /* $OpenBSD: monitor_wrap.c,v 1.63 2008/07/10 18:08:11 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> | 3 | * Copyright 2002 Niels Provos <provos@citi.umich.edu> |
4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> | 4 | * Copyright 2002 Markus Friedl <markus@openbsd.org> |
@@ -573,7 +573,7 @@ mm_send_keystate(struct monitor *monitor) | |||
573 | u_char *blob, *p; | 573 | u_char *blob, *p; |
574 | u_int bloblen, plen; | 574 | u_int bloblen, plen; |
575 | u_int32_t seqnr, packets; | 575 | u_int32_t seqnr, packets; |
576 | u_int64_t blocks; | 576 | u_int64_t blocks, bytes; |
577 | 577 | ||
578 | buffer_init(&m); | 578 | buffer_init(&m); |
579 | 579 | ||
@@ -622,14 +622,16 @@ mm_send_keystate(struct monitor *monitor) | |||
622 | buffer_put_string(&m, blob, bloblen); | 622 | buffer_put_string(&m, blob, bloblen); |
623 | xfree(blob); | 623 | xfree(blob); |
624 | 624 | ||
625 | packet_get_state(MODE_OUT, &seqnr, &blocks, &packets); | 625 | packet_get_state(MODE_OUT, &seqnr, &blocks, &packets, &bytes); |
626 | buffer_put_int(&m, seqnr); | 626 | buffer_put_int(&m, seqnr); |
627 | buffer_put_int64(&m, blocks); | 627 | buffer_put_int64(&m, blocks); |
628 | buffer_put_int(&m, packets); | 628 | buffer_put_int(&m, packets); |
629 | packet_get_state(MODE_IN, &seqnr, &blocks, &packets); | 629 | buffer_put_int64(&m, bytes); |
630 | packet_get_state(MODE_IN, &seqnr, &blocks, &packets, &bytes); | ||
630 | buffer_put_int(&m, seqnr); | 631 | buffer_put_int(&m, seqnr); |
631 | buffer_put_int64(&m, blocks); | 632 | buffer_put_int64(&m, blocks); |
632 | buffer_put_int(&m, packets); | 633 | buffer_put_int(&m, packets); |
634 | buffer_put_int64(&m, bytes); | ||
633 | 635 | ||
634 | debug3("%s: New keys have been sent", __func__); | 636 | debug3("%s: New keys have been sent", __func__); |
635 | skip: | 637 | skip: |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: packet.c,v 1.156 2008/07/04 23:08:25 djm Exp $ */ | 1 | /* $OpenBSD: packet.c,v 1.157 2008/07/10 18:08:11 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -147,6 +147,7 @@ static struct packet_state { | |||
147 | u_int32_t seqnr; | 147 | u_int32_t seqnr; |
148 | u_int32_t packets; | 148 | u_int32_t packets; |
149 | u_int64_t blocks; | 149 | u_int64_t blocks; |
150 | u_int64_t bytes; | ||
150 | } p_read, p_send; | 151 | } p_read, p_send; |
151 | 152 | ||
152 | static u_int64_t max_blocks_in, max_blocks_out; | 153 | static u_int64_t max_blocks_in, max_blocks_out; |
@@ -191,6 +192,7 @@ packet_set_connection(int fd_in, int fd_out) | |||
191 | buffer_init(&outgoing_packet); | 192 | buffer_init(&outgoing_packet); |
192 | buffer_init(&incoming_packet); | 193 | buffer_init(&incoming_packet); |
193 | TAILQ_INIT(&outgoing); | 194 | TAILQ_INIT(&outgoing); |
195 | p_send.packets = p_read.packets = 0; | ||
194 | } | 196 | } |
195 | } | 197 | } |
196 | 198 | ||
@@ -311,18 +313,25 @@ packet_get_ssh1_cipher(void) | |||
311 | } | 313 | } |
312 | 314 | ||
313 | void | 315 | void |
314 | packet_get_state(int mode, u_int32_t *seqnr, u_int64_t *blocks, u_int32_t *packets) | 316 | packet_get_state(int mode, u_int32_t *seqnr, u_int64_t *blocks, u_int32_t *packets, |
317 | u_int64_t *bytes) | ||
315 | { | 318 | { |
316 | struct packet_state *state; | 319 | struct packet_state *state; |
317 | 320 | ||
318 | state = (mode == MODE_IN) ? &p_read : &p_send; | 321 | state = (mode == MODE_IN) ? &p_read : &p_send; |
319 | *seqnr = state->seqnr; | 322 | if (seqnr) |
320 | *blocks = state->blocks; | 323 | *seqnr = state->seqnr; |
321 | *packets = state->packets; | 324 | if (blocks) |
325 | *blocks = state->blocks; | ||
326 | if (packets) | ||
327 | *packets = state->packets; | ||
328 | if (bytes) | ||
329 | *bytes = state->bytes; | ||
322 | } | 330 | } |
323 | 331 | ||
324 | void | 332 | void |
325 | packet_set_state(int mode, u_int32_t seqnr, u_int64_t blocks, u_int32_t packets) | 333 | packet_set_state(int mode, u_int32_t seqnr, u_int64_t blocks, u_int32_t packets, |
334 | u_int64_t bytes) | ||
326 | { | 335 | { |
327 | struct packet_state *state; | 336 | struct packet_state *state; |
328 | 337 | ||
@@ -330,6 +339,7 @@ packet_set_state(int mode, u_int32_t seqnr, u_int64_t blocks, u_int32_t packets) | |||
330 | state->seqnr = seqnr; | 339 | state->seqnr = seqnr; |
331 | state->blocks = blocks; | 340 | state->blocks = blocks; |
332 | state->packets = packets; | 341 | state->packets = packets; |
342 | state->bytes = bytes; | ||
333 | } | 343 | } |
334 | 344 | ||
335 | /* returns 1 if connection is via ipv4 */ | 345 | /* returns 1 if connection is via ipv4 */ |
@@ -608,7 +618,8 @@ packet_send1(void) | |||
608 | fprintf(stderr, "encrypted: "); | 618 | fprintf(stderr, "encrypted: "); |
609 | buffer_dump(&output); | 619 | buffer_dump(&output); |
610 | #endif | 620 | #endif |
611 | 621 | p_send.packets++; | |
622 | p_send.bytes += len + buffer_len(&outgoing_packet); | ||
612 | buffer_clear(&outgoing_packet); | 623 | buffer_clear(&outgoing_packet); |
613 | 624 | ||
614 | /* | 625 | /* |
@@ -834,6 +845,7 @@ packet_send2_wrapped(void) | |||
834 | if (!(datafellows & SSH_BUG_NOREKEY)) | 845 | if (!(datafellows & SSH_BUG_NOREKEY)) |
835 | fatal("XXX too many packets with same key"); | 846 | fatal("XXX too many packets with same key"); |
836 | p_send.blocks += (packet_length + 4) / block_size; | 847 | p_send.blocks += (packet_length + 4) / block_size; |
848 | p_send.bytes += packet_length + 4; | ||
837 | buffer_clear(&outgoing_packet); | 849 | buffer_clear(&outgoing_packet); |
838 | 850 | ||
839 | if (type == SSH2_MSG_NEWKEYS) | 851 | if (type == SSH2_MSG_NEWKEYS) |
@@ -1096,6 +1108,8 @@ packet_read_poll1(void) | |||
1096 | buffer_append(&incoming_packet, buffer_ptr(&compression_buffer), | 1108 | buffer_append(&incoming_packet, buffer_ptr(&compression_buffer), |
1097 | buffer_len(&compression_buffer)); | 1109 | buffer_len(&compression_buffer)); |
1098 | } | 1110 | } |
1111 | p_read.packets++; | ||
1112 | p_read.bytes += padded_len + 4; | ||
1099 | type = buffer_get_char(&incoming_packet); | 1113 | type = buffer_get_char(&incoming_packet); |
1100 | if (type < SSH_MSG_MIN || type > SSH_MSG_MAX) | 1114 | if (type < SSH_MSG_MIN || type > SSH_MSG_MAX) |
1101 | packet_disconnect("Invalid ssh1 packet type: %d", type); | 1115 | packet_disconnect("Invalid ssh1 packet type: %d", type); |
@@ -1184,6 +1198,7 @@ packet_read_poll2(u_int32_t *seqnr_p) | |||
1184 | if (!(datafellows & SSH_BUG_NOREKEY)) | 1198 | if (!(datafellows & SSH_BUG_NOREKEY)) |
1185 | fatal("XXX too many packets with same key"); | 1199 | fatal("XXX too many packets with same key"); |
1186 | p_read.blocks += (packet_length + 4) / block_size; | 1200 | p_read.blocks += (packet_length + 4) / block_size; |
1201 | p_read.bytes += packet_length + 4; | ||
1187 | 1202 | ||
1188 | /* get padlen */ | 1203 | /* get padlen */ |
1189 | cp = buffer_ptr(&incoming_packet); | 1204 | cp = buffer_ptr(&incoming_packet); |
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: packet.h,v 1.48 2008/06/12 20:38:28 dtucker Exp $ */ | 1 | /* $OpenBSD: packet.h,v 1.49 2008/07/10 18:08:11 markus Exp $ */ |
2 | 2 | ||
3 | /* | 3 | /* |
4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 4 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
@@ -68,8 +68,8 @@ int packet_get_keyiv_len(int); | |||
68 | void packet_get_keyiv(int, u_char *, u_int); | 68 | void packet_get_keyiv(int, u_char *, u_int); |
69 | int packet_get_keycontext(int, u_char *); | 69 | int packet_get_keycontext(int, u_char *); |
70 | void packet_set_keycontext(int, u_char *); | 70 | void packet_set_keycontext(int, u_char *); |
71 | void packet_get_state(int, u_int32_t *, u_int64_t *, u_int32_t *); | 71 | void packet_get_state(int, u_int32_t *, u_int64_t *, u_int32_t *, u_int64_t *); |
72 | void packet_set_state(int, u_int32_t, u_int64_t, u_int32_t); | 72 | void packet_set_state(int, u_int32_t, u_int64_t, u_int32_t, u_int64_t); |
73 | int packet_get_ssh1_cipher(void); | 73 | int packet_get_ssh1_cipher(void); |
74 | void packet_set_iv(int, u_char *); | 74 | void packet_set_iv(int, u_char *); |
75 | 75 | ||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sshd.c,v 1.363 2008/07/01 07:24:22 dtucker Exp $ */ | 1 | /* $OpenBSD: sshd.c,v 1.364 2008/07/10 18:08:11 markus Exp $ */ |
2 | /* | 2 | /* |
3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> | 3 | * Author: Tatu Ylonen <ylo@cs.hut.fi> |
4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 4 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
@@ -677,7 +677,7 @@ privsep_postauth(Authctxt *authctxt) | |||
677 | if (pmonitor->m_pid == -1) | 677 | if (pmonitor->m_pid == -1) |
678 | fatal("fork of unprivileged child failed"); | 678 | fatal("fork of unprivileged child failed"); |
679 | else if (pmonitor->m_pid != 0) { | 679 | else if (pmonitor->m_pid != 0) { |
680 | debug2("User child is on pid %ld", (long)pmonitor->m_pid); | 680 | verbose("User child is on pid %ld", (long)pmonitor->m_pid); |
681 | close(pmonitor->m_recvfd); | 681 | close(pmonitor->m_recvfd); |
682 | buffer_clear(&loginmsg); | 682 | buffer_clear(&loginmsg); |
683 | monitor_child_postauth(pmonitor); | 683 | monitor_child_postauth(pmonitor); |
@@ -1248,6 +1248,7 @@ main(int ac, char **av) | |||
1248 | int remote_port; | 1248 | int remote_port; |
1249 | char *line, *p, *cp; | 1249 | char *line, *p, *cp; |
1250 | int config_s[2] = { -1 , -1 }; | 1250 | int config_s[2] = { -1 , -1 }; |
1251 | u_int64_t ibytes, obytes; | ||
1251 | mode_t new_umask; | 1252 | mode_t new_umask; |
1252 | Key *key; | 1253 | Key *key; |
1253 | Authctxt *authctxt; | 1254 | Authctxt *authctxt; |
@@ -1919,7 +1920,11 @@ main(int ac, char **av) | |||
1919 | do_authenticated(authctxt); | 1920 | do_authenticated(authctxt); |
1920 | 1921 | ||
1921 | /* The connection has been terminated. */ | 1922 | /* The connection has been terminated. */ |
1922 | verbose("Closing connection to %.100s", remote_ip); | 1923 | packet_get_state(MODE_IN, NULL, NULL, NULL, &ibytes); |
1924 | packet_get_state(MODE_OUT, NULL, NULL, NULL, &obytes); | ||
1925 | verbose("Transferred: sent %llu, received %llu bytes", obytes, ibytes); | ||
1926 | |||
1927 | verbose("Closing connection to %.500s port %d", remote_ip, remote_port); | ||
1923 | 1928 | ||
1924 | #ifdef USE_PAM | 1929 | #ifdef USE_PAM |
1925 | if (options.use_pam) | 1930 | if (options.use_pam) |