- (djm) Ignore SIGPIPEs from serverloop to child. Fixes crashes with
very short lived X connections. Bug report from Tobias Oetiker
<oetiker@ee.ethz.ch>. Fix from Markus Friedl <markus@cvs.openbsd.org>
+ - (djm) CVS OpenBSD sync:
+ - markus@cvs.openbsd.org 2000/09/26 13:59:59
+ [clientloop.c]
+ use debug2
+ - markus@cvs.openbsd.org 2000/09/27 15:41:34
+ [auth2.c sshconnect2.c]
+ use key_type()
+ - markus@cvs.openbsd.org 2000/09/28 12:03:18
+ [channels.c]
+ debug -> debug2 cleanup
20000929
- (djm) Fix SSH2 not terminating until all background tasks done problem.
*/
#include "includes.h"
-RCSID("$OpenBSD: auth2.c,v 1.15 2000/09/21 11:25:32 markus Exp $");
+RCSID("$OpenBSD: auth2.c,v 1.16 2000/09/27 21:41:34 markus Exp $");
#include <openssl/dsa.h>
#include <openssl/rsa.h>
if (fstat(fileno(f), &st) < 0 ||
(st.st_uid != 0 && st.st_uid != pw->pw_uid) ||
(st.st_mode & 022) != 0) {
- snprintf(buf, sizeof buf, "DSA authentication refused for %.100s: "
- "bad ownership or modes for '%s'.", pw->pw_name, file);
+ snprintf(buf, sizeof buf,
+ "%s authentication refused for %.100s: "
+ "bad ownership or modes for '%s'.",
+ key_type(key), pw->pw_name, file);
fail = 1;
} else {
/* Check path to SSH_USER_PERMITTED_KEYS */
(st.st_uid != 0 && st.st_uid != pw->pw_uid) ||
(st.st_mode & 022) != 0) {
snprintf(buf, sizeof buf,
- "DSA authentication refused for %.100s: "
+ "%s authentication refused for %.100s: "
"bad ownership or modes for '%s'.",
- pw->pw_name, line);
+ key_type(key), pw->pw_name, line);
fail = 1;
break;
}
}
}
found_key = 0;
- found = key_new(KEY_DSA);
+ found = key_new(key->type);
while (fgets(line, sizeof(line), f)) {
char *cp, *options = NULL;
*/
#include "includes.h"
-RCSID("$OpenBSD: channels.c,v 1.69 2000/09/21 11:25:33 markus Exp $");
+RCSID("$OpenBSD: channels.c,v 1.70 2000/09/28 18:03:18 markus Exp $");
#include "ssh.h"
#include "packet.h"
/* There are no free slots. Take last+1 slot and expand the array. */
found = channels_alloc;
channels_alloc += 10;
- debug("channel: expanding %d", channels_alloc);
+ debug2("channel: expanding %d", channels_alloc);
channels = xrealloc(channels, channels_alloc * sizeof(Channel));
for (i = found; i < channels_alloc; i++)
channels[i].type = SSH_CHANNEL_FREE;
buffer_len(&c->extended) > 0) {
len = write(c->efd, buffer_ptr(&c->extended),
buffer_len(&c->extended));
- debug("channel %d: written %d to efd %d",
+ debug2("channel %d: written %d to efd %d",
c->self, len, c->efd);
if (len > 0) {
buffer_consume(&c->extended, len);
} else if (c->extended_usage == CHAN_EXTENDED_READ &&
FD_ISSET(c->efd, readset)) {
len = read(c->efd, buf, sizeof(buf));
- debug("channel %d: read %d from efd %d",
+ debug2("channel %d: read %d from efd %d",
c->self, len, c->efd);
if (len == 0) {
debug("channel %d: closing efd %d",
packet_put_int(c->remote_id);
packet_put_int(c->local_consumed);
packet_send();
- debug("channel %d: window %d sent adjust %d",
+ debug2("channel %d: window %d sent adjust %d",
c->self, c->local_window,
c->local_consumed);
c->local_window += c->local_consumed;
xfree(data);
return;
}
- debug("channel %d: rcvd ext data %d", c->self, data_len);
+ debug2("channel %d: rcvd ext data %d", c->self, data_len);
c->local_window -= data_len;
buffer_append(&c->extended, data, data_len);
xfree(data);
c->remote_maxpacket = packet_get_int();
packet_done();
if (c->cb_fn != NULL && c->cb_event == type) {
- debug("callback start");
+ debug2("callback start");
c->cb_fn(c->self, c->cb_arg);
- debug("callback done");
+ debug2("callback done");
}
debug("channel %d: open confirm rwindow %d rmax %d", c->self,
c->remote_window, c->remote_maxpacket);
packet_disconnect("Received request for "
"non-open channel %d.", id);
if (c->cb_fn != NULL && c->cb_event == type) {
- debug("callback start");
+ debug2("callback start");
c->cb_fn(c->self, c->cb_arg);
- debug("callback done");
+ debug2("callback done");
} else {
char *service = packet_get_string(NULL);
debug("channel: %d rcvd request for %s", c->self, service);
-debug("cb_fn %p cb_event %d", c->cb_fn , c->cb_event);
+ debug("cb_fn %p cb_event %d", c->cb_fn , c->cb_event);
xfree(service);
}
}
}
adjust = packet_get_int();
packet_done();
- debug("channel %d: rcvd adjust %d", id, adjust);
+ debug2("channel %d: rcvd adjust %d", id, adjust);
c->remote_window += adjust;
}
*/
#include "includes.h"
-RCSID("$OpenBSD: clientloop.c,v 1.36 2000/09/21 11:25:33 markus Exp $");
+RCSID("$OpenBSD: clientloop.c,v 1.37 2000/09/26 19:59:58 markus Exp $");
#include "xmalloc.h"
#include "ssh.h"
if (ioctl(fileno(stdin), TIOCGWINSZ, &ws) < 0)
return;
- debug("client_check_window_change: changed");
+ debug2("client_check_window_change: changed");
if (compat20) {
channel_request_start(session_ident, "window-change", 0);
void
client_wait_until_can_do_something(fd_set * readset, fd_set * writeset)
{
- /*debug("client_wait_until_can_do_something"); */
-
/* Initialize select masks. */
FD_ZERO(readset);
FD_ZERO(writeset);
if (FD_ISSET(connection_in, readset)) {
/* Read as much as possible. */
len = read(connection_in, buf, sizeof(buf));
-/*debug("read connection_in len %d", len); XXX */
if (len == 0) {
/* Received EOF. The remote host has closed the connection. */
snprintf(buf, sizeof buf, "Connection to %.300s closed by remote host.\r\n",
client_process_buffered_input_packets();
if (compat20 && !channel_still_open()) {
- debug("!channel_still_open.");
+ debug2("!channel_still_open.");
break;
}
int originator_port;
originator = packet_get_string(NULL);
if (datafellows & SSH_BUG_X11FWD) {
- debug("buggy server: x11 request w/o originator_port");
+ debug2("buggy server: x11 request w/o originator_port");
originator_port = 0;
} else {
originator_port = packet_get_int();
void
client_set_session_ident(int id)
{
- debug("client_set_session_ident: id %d", id);
+ debug2("client_set_session_ident: id %d", id);
session_ident = id;
channel_register_callback(id, SSH2_MSG_CHANNEL_REQUEST,
client_input_channel_req, (void *)0);
*/
#include "includes.h"
-RCSID("$OpenBSD: sshconnect2.c,v 1.20 2000/09/21 11:25:07 markus Exp $");
+RCSID("$OpenBSD: sshconnect2.c,v 1.21 2000/09/27 21:41:34 markus Exp $");
#include <openssl/bn.h>
#include <openssl/rsa.h>
char *passphrase;
char prompt[300];
snprintf(prompt, sizeof prompt,
- "Enter passphrase for DSA key '%.100s': ",
- filename);
+ "Enter passphrase for %s key '%.100s': ",
+ key_type(k), filename);
for (i = 0; i < options.number_of_password_prompts; i++) {
passphrase = read_passphrase(prompt, 0);
if (strcmp(passphrase, "") != 0) {