mirror of git://anongit.mindrot.org/openssh.git
upstream: remove SSH1 leftovers
Authored with Space Meyer <git at the-space dot agency> ok djm OpenBSD-Commit-ID: 81db602e4cb407baae472689db1c222ed7b2afa3
This commit is contained in:
parent
bc5dcb8ab9
commit
cbbbf76aa6
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: ssh-keyscan.c,v 1.156 2024/04/30 15:40:43 tobias Exp $ */
|
/* $OpenBSD: ssh-keyscan.c,v 1.157 2024/05/06 19:26:17 tobias Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
|
* Copyright 1995, 1996 by David Mazieres <dm@lcs.mit.edu>.
|
||||||
*
|
*
|
||||||
|
@ -104,19 +104,13 @@ typedef struct Connection {
|
||||||
u_char c_status; /* State of connection on this file desc. */
|
u_char c_status; /* State of connection on this file desc. */
|
||||||
#define CS_UNUSED 0 /* File descriptor unused */
|
#define CS_UNUSED 0 /* File descriptor unused */
|
||||||
#define CS_CON 1 /* Waiting to connect/read greeting */
|
#define CS_CON 1 /* Waiting to connect/read greeting */
|
||||||
#define CS_SIZE 2 /* Waiting to read initial packet size */
|
|
||||||
#define CS_KEYS 3 /* Waiting to read public key packet */
|
|
||||||
int c_fd; /* Quick lookup: c->c_fd == c - fdcon */
|
int c_fd; /* Quick lookup: c->c_fd == c - fdcon */
|
||||||
int c_plen; /* Packet length field for ssh packet */
|
|
||||||
int c_len; /* Total bytes which must be read. */
|
|
||||||
int c_off; /* Length of data read so far. */
|
|
||||||
int c_keytype; /* Only one of KT_* */
|
int c_keytype; /* Only one of KT_* */
|
||||||
sig_atomic_t c_done; /* SSH2 done */
|
sig_atomic_t c_done; /* SSH2 done */
|
||||||
char *c_namebase; /* Address to free for c_name and c_namelist */
|
char *c_namebase; /* Address to free for c_name and c_namelist */
|
||||||
char *c_name; /* Hostname of connection for errors */
|
char *c_name; /* Hostname of connection for errors */
|
||||||
char *c_namelist; /* Pointer to other possible addresses */
|
char *c_namelist; /* Pointer to other possible addresses */
|
||||||
char *c_output_name; /* Hostname of connection for output */
|
char *c_output_name; /* Hostname of connection for output */
|
||||||
char *c_data; /* Data read from this fd */
|
|
||||||
struct ssh *c_ssh; /* SSH-connection */
|
struct ssh *c_ssh; /* SSH-connection */
|
||||||
struct timespec c_ts; /* Time at which connection gets aborted */
|
struct timespec c_ts; /* Time at which connection gets aborted */
|
||||||
TAILQ_ENTRY(Connection) c_link; /* List of connections in timeout order. */
|
TAILQ_ENTRY(Connection) c_link; /* List of connections in timeout order. */
|
||||||
|
@ -423,9 +417,6 @@ conalloc(const char *iname, const char *oname, int keytype)
|
||||||
fdcon[s].c_name = name;
|
fdcon[s].c_name = name;
|
||||||
fdcon[s].c_namelist = namelist;
|
fdcon[s].c_namelist = namelist;
|
||||||
fdcon[s].c_output_name = xstrdup(oname);
|
fdcon[s].c_output_name = xstrdup(oname);
|
||||||
fdcon[s].c_data = (char *) &fdcon[s].c_plen;
|
|
||||||
fdcon[s].c_len = 4;
|
|
||||||
fdcon[s].c_off = 0;
|
|
||||||
fdcon[s].c_keytype = keytype;
|
fdcon[s].c_keytype = keytype;
|
||||||
monotime_ts(&fdcon[s].c_ts);
|
monotime_ts(&fdcon[s].c_ts);
|
||||||
fdcon[s].c_ts.tv_sec += timeout;
|
fdcon[s].c_ts.tv_sec += timeout;
|
||||||
|
@ -443,8 +434,6 @@ confree(int s)
|
||||||
fatal("confree: attempt to free bad fdno %d", s);
|
fatal("confree: attempt to free bad fdno %d", s);
|
||||||
free(fdcon[s].c_namebase);
|
free(fdcon[s].c_namebase);
|
||||||
free(fdcon[s].c_output_name);
|
free(fdcon[s].c_output_name);
|
||||||
if (fdcon[s].c_status == CS_KEYS)
|
|
||||||
free(fdcon[s].c_data);
|
|
||||||
fdcon[s].c_status = CS_UNUSED;
|
fdcon[s].c_status = CS_UNUSED;
|
||||||
fdcon[s].c_keytype = 0;
|
fdcon[s].c_keytype = 0;
|
||||||
if (fdcon[s].c_ssh) {
|
if (fdcon[s].c_ssh) {
|
||||||
|
@ -459,15 +448,6 @@ confree(int s)
|
||||||
ncon--;
|
ncon--;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
contouch(int s)
|
|
||||||
{
|
|
||||||
TAILQ_REMOVE(&tq, &fdcon[s], c_link);
|
|
||||||
monotime_ts(&fdcon[s].c_ts);
|
|
||||||
fdcon[s].c_ts.tv_sec += timeout;
|
|
||||||
TAILQ_INSERT_TAIL(&tq, &fdcon[s], c_link);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
conrecycle(int s)
|
conrecycle(int s)
|
||||||
{
|
{
|
||||||
|
@ -572,35 +552,11 @@ static void
|
||||||
conread(int s)
|
conread(int s)
|
||||||
{
|
{
|
||||||
con *c = &fdcon[s];
|
con *c = &fdcon[s];
|
||||||
size_t n;
|
|
||||||
|
|
||||||
if (c->c_status == CS_CON) {
|
if (c->c_status != CS_CON)
|
||||||
congreet(s);
|
fatal("conread: invalid status %d", c->c_status);
|
||||||
return;
|
|
||||||
}
|
|
||||||
n = atomicio(read, s, c->c_data + c->c_off, c->c_len - c->c_off);
|
|
||||||
if (n == 0) {
|
|
||||||
error("read (%s): %s", c->c_name, strerror(errno));
|
|
||||||
confree(s);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
c->c_off += n;
|
|
||||||
|
|
||||||
if (c->c_off == c->c_len)
|
congreet(s);
|
||||||
switch (c->c_status) {
|
|
||||||
case CS_SIZE:
|
|
||||||
c->c_plen = htonl(c->c_plen);
|
|
||||||
c->c_len = c->c_plen + 8 - (c->c_plen & 7);
|
|
||||||
c->c_off = 0;
|
|
||||||
c->c_data = xmalloc(c->c_len);
|
|
||||||
c->c_status = CS_KEYS;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
fatal("conread: invalid status %d", c->c_status);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
contouch(s);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue