mirror of
https://github.com/PowerShell/openssh-portable.git
synced 2025-07-30 17:25:09 +02:00
- OpenBSD CVS Changes
- [channels.c] make this compile, bad markus - [log.c readconf.c servconf.c ssh.h] bugfix: loglevels are per host in clientconfig, factor out common log-level parsing code. - [servconf.c] remove unused index (-Wall) - [ssh-agent.c] only one 'extern char *__progname' - [sshd.8] document SIGHUP, -Q to synopsis - [sshconnect.c serverloop.c sshd.c packet.c packet.h] [channels.c clientloop.c] SSH_CMSG_MAX_PACKET_SIZE, some clients use this, some need this, niels@ [hope this time my ISP stays alive during commit]
This commit is contained in:
parent
f58db38f8d
commit
6162d1215b
18
ChangeLog
18
ChangeLog
@ -1,3 +1,21 @@
|
|||||||
|
19991121
|
||||||
|
- OpenBSD CVS Changes
|
||||||
|
- [channels.c]
|
||||||
|
make this compile, bad markus
|
||||||
|
- [log.c readconf.c servconf.c ssh.h]
|
||||||
|
bugfix: loglevels are per host in clientconfig,
|
||||||
|
factor out common log-level parsing code.
|
||||||
|
- [servconf.c]
|
||||||
|
remove unused index (-Wall)
|
||||||
|
- [ssh-agent.c]
|
||||||
|
only one 'extern char *__progname'
|
||||||
|
- [sshd.8]
|
||||||
|
document SIGHUP, -Q to synopsis
|
||||||
|
- [sshconnect.c serverloop.c sshd.c packet.c packet.h]
|
||||||
|
[channels.c clientloop.c]
|
||||||
|
SSH_CMSG_MAX_PACKET_SIZE, some clients use this, some need this, niels@
|
||||||
|
[hope this time my ISP stays alive during commit]
|
||||||
|
|
||||||
19991120
|
19991120
|
||||||
- Merged more Solaris support from Marc G. Fournier
|
- Merged more Solaris support from Marc G. Fournier
|
||||||
<marc.fournier@acadiau.ca>
|
<marc.fournier@acadiau.ca>
|
||||||
|
10
channels.c
10
channels.c
@ -16,7 +16,7 @@ arbitrary tcp/ip connections, and the authentication agent connection.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$Id: channels.c,v 1.5 1999/11/12 04:19:27 damien Exp $");
|
RCSID("$Id: channels.c,v 1.6 1999/11/21 02:23:53 damien Exp $");
|
||||||
|
|
||||||
#include "ssh.h"
|
#include "ssh.h"
|
||||||
#include "packet.h"
|
#include "packet.h"
|
||||||
@ -208,7 +208,7 @@ void channel_prepare_select(fd_set *readset, fd_set *writeset)
|
|||||||
|
|
||||||
case SSH_CHANNEL_OPEN:
|
case SSH_CHANNEL_OPEN:
|
||||||
if(compat13){
|
if(compat13){
|
||||||
if (buffer_len(&ch->input) < 32768)
|
if (buffer_len(&ch->input) < packet_get_maxsize())
|
||||||
FD_SET(ch->sock, readset);
|
FD_SET(ch->sock, readset);
|
||||||
if (buffer_len(&ch->output) > 0)
|
if (buffer_len(&ch->output) > 0)
|
||||||
FD_SET(ch->sock, writeset);
|
FD_SET(ch->sock, writeset);
|
||||||
@ -216,7 +216,7 @@ void channel_prepare_select(fd_set *readset, fd_set *writeset)
|
|||||||
}
|
}
|
||||||
/* test whether sockets are 'alive' for read/write */
|
/* test whether sockets are 'alive' for read/write */
|
||||||
if (ch->istate == CHAN_INPUT_OPEN)
|
if (ch->istate == CHAN_INPUT_OPEN)
|
||||||
if (buffer_len(&ch->input) < 32768)
|
if (buffer_len(&ch->input) < packet_get_maxsize())
|
||||||
FD_SET(ch->sock, readset);
|
FD_SET(ch->sock, readset);
|
||||||
if (ch->ostate == CHAN_OUTPUT_OPEN || ch->ostate == CHAN_OUTPUT_WAIT_DRAIN){
|
if (ch->ostate == CHAN_OUTPUT_OPEN || ch->ostate == CHAN_OUTPUT_WAIT_DRAIN){
|
||||||
if (buffer_len(&ch->output) > 0){
|
if (buffer_len(&ch->output) > 0){
|
||||||
@ -611,9 +611,9 @@ int channel_not_very_much_buffered_data()
|
|||||||
case SSH_CHANNEL_AUTH_SOCKET:
|
case SSH_CHANNEL_AUTH_SOCKET:
|
||||||
continue;
|
continue;
|
||||||
case SSH_CHANNEL_OPEN:
|
case SSH_CHANNEL_OPEN:
|
||||||
if (buffer_len(&ch->input) > 32768)
|
if (buffer_len(&ch->input) > packet_get_maxsize())
|
||||||
return 0;
|
return 0;
|
||||||
if (buffer_len(&ch->output) > 32768)
|
if (buffer_len(&ch->output) > packet_get_maxsize())
|
||||||
return 0;
|
return 0;
|
||||||
continue;
|
continue;
|
||||||
case SSH_CHANNEL_INPUT_DRAINING:
|
case SSH_CHANNEL_INPUT_DRAINING:
|
||||||
|
@ -15,7 +15,7 @@ The main loop for the interactive session (client side).
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$Id: clientloop.c,v 1.3 1999/11/12 04:19:27 damien Exp $");
|
RCSID("$Id: clientloop.c,v 1.4 1999/11/21 02:23:53 damien Exp $");
|
||||||
|
|
||||||
#include "xmalloc.h"
|
#include "xmalloc.h"
|
||||||
#include "ssh.h"
|
#include "ssh.h"
|
||||||
@ -322,8 +322,8 @@ void client_make_packets_from_stdin_data()
|
|||||||
packet_not_very_much_data_to_write())
|
packet_not_very_much_data_to_write())
|
||||||
{
|
{
|
||||||
len = buffer_len(&stdin_buffer);
|
len = buffer_len(&stdin_buffer);
|
||||||
if (len > 32768)
|
if (len > packet_get_maxsize())
|
||||||
len = 32768; /* Keep the packets at reasonable size. */
|
len = packet_get_maxsize(); /* Keep the packets at reasonable size. */
|
||||||
packet_start(SSH_CMSG_STDIN_DATA);
|
packet_start(SSH_CMSG_STDIN_DATA);
|
||||||
packet_put_string(buffer_ptr(&stdin_buffer), len);
|
packet_put_string(buffer_ptr(&stdin_buffer), len);
|
||||||
packet_send();
|
packet_send();
|
||||||
|
62
log.c
62
log.c
@ -5,7 +5,7 @@ Shared versions of debug(), log(), etc.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: log.c,v 1.1 1999/11/10 23:36:44 markus Exp $");
|
RCSID("$OpenBSD: log.c,v 1.2 1999/11/19 16:04:17 markus Exp $");
|
||||||
|
|
||||||
#include "ssh.h"
|
#include "ssh.h"
|
||||||
#include "xmalloc.h"
|
#include "xmalloc.h"
|
||||||
@ -133,3 +133,63 @@ fatal_cleanup(void)
|
|||||||
|
|
||||||
exit(255);
|
exit(255);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* textual representation of log-facilities/levels */
|
||||||
|
|
||||||
|
|
||||||
|
static struct
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
SyslogFacility val;
|
||||||
|
} log_facilities[] =
|
||||||
|
{
|
||||||
|
{ "DAEMON", SYSLOG_FACILITY_DAEMON },
|
||||||
|
{ "USER", SYSLOG_FACILITY_USER },
|
||||||
|
{ "AUTH", SYSLOG_FACILITY_AUTH },
|
||||||
|
{ "LOCAL0", SYSLOG_FACILITY_LOCAL0 },
|
||||||
|
{ "LOCAL1", SYSLOG_FACILITY_LOCAL1 },
|
||||||
|
{ "LOCAL2", SYSLOG_FACILITY_LOCAL2 },
|
||||||
|
{ "LOCAL3", SYSLOG_FACILITY_LOCAL3 },
|
||||||
|
{ "LOCAL4", SYSLOG_FACILITY_LOCAL4 },
|
||||||
|
{ "LOCAL5", SYSLOG_FACILITY_LOCAL5 },
|
||||||
|
{ "LOCAL6", SYSLOG_FACILITY_LOCAL6 },
|
||||||
|
{ "LOCAL7", SYSLOG_FACILITY_LOCAL7 },
|
||||||
|
{ NULL, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
LogLevel val;
|
||||||
|
} log_levels[] =
|
||||||
|
{
|
||||||
|
{ "QUIET", SYSLOG_LEVEL_QUIET },
|
||||||
|
{ "FATAL", SYSLOG_LEVEL_FATAL },
|
||||||
|
{ "ERROR", SYSLOG_LEVEL_ERROR },
|
||||||
|
{ "INFO", SYSLOG_LEVEL_INFO },
|
||||||
|
{ "CHAT", SYSLOG_LEVEL_CHAT },
|
||||||
|
{ "DEBUG", SYSLOG_LEVEL_DEBUG },
|
||||||
|
{ NULL, 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
SyslogFacility
|
||||||
|
log_facility_number(char *name)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
if (name != NULL)
|
||||||
|
for (i = 0; log_facilities[i].name; i++)
|
||||||
|
if (strcasecmp(log_facilities[i].name, name) == 0)
|
||||||
|
return log_facilities[i].val;
|
||||||
|
return (SyslogFacility)-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
LogLevel
|
||||||
|
log_level_number(char *name)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
if (name != NULL)
|
||||||
|
for (i = 0; log_levels[i].name; i++)
|
||||||
|
if (strcasecmp(log_levels[i].name, name) == 0)
|
||||||
|
return log_levels[i].val;
|
||||||
|
return (LogLevel)-1;
|
||||||
|
}
|
||||||
|
22
packet.c
22
packet.c
@ -15,7 +15,7 @@ with the other side. This same code is used both on client and server side.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$Id: packet.c,v 1.3 1999/11/16 02:37:16 damien Exp $");
|
RCSID("$Id: packet.c,v 1.4 1999/11/21 02:23:53 damien Exp $");
|
||||||
|
|
||||||
#include "xmalloc.h"
|
#include "xmalloc.h"
|
||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
@ -66,6 +66,9 @@ static Buffer compression_buffer;
|
|||||||
/* Flag indicating whether packet compression/decompression is enabled. */
|
/* Flag indicating whether packet compression/decompression is enabled. */
|
||||||
static int packet_compression = 0;
|
static int packet_compression = 0;
|
||||||
|
|
||||||
|
/* default maximum packet size */
|
||||||
|
int max_packet_size = 32768;
|
||||||
|
|
||||||
/* Flag indicating whether this module has been initialized. */
|
/* Flag indicating whether this module has been initialized. */
|
||||||
static int initialized = 0;
|
static int initialized = 0;
|
||||||
|
|
||||||
@ -745,3 +748,20 @@ packet_is_interactive()
|
|||||||
{
|
{
|
||||||
return interactive_mode;
|
return interactive_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
packet_set_maxsize(int s)
|
||||||
|
{
|
||||||
|
static int called = 0;
|
||||||
|
if (called) {
|
||||||
|
log("packet_set_maxsize: called twice: old %d new %d", max_packet_size, s);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (s < 4*1024 || s > 1024*1024) {
|
||||||
|
log("packet_set_maxsize: bad size %d", s);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
log("packet_set_maxsize: setting to %d", s);
|
||||||
|
max_packet_size = s;
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
7
packet.h
7
packet.h
@ -13,7 +13,7 @@ Interface for the packet protocol functions.
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* RCSID("$Id: packet.h,v 1.4 1999/11/16 02:37:16 damien Exp $"); */
|
/* RCSID("$Id: packet.h,v 1.5 1999/11/21 02:23:53 damien Exp $"); */
|
||||||
|
|
||||||
#ifndef PACKET_H
|
#ifndef PACKET_H
|
||||||
#define PACKET_H
|
#define PACKET_H
|
||||||
@ -154,6 +154,11 @@ int packet_have_data_to_write(void);
|
|||||||
/* Returns true if there is not too much data to write to the connection. */
|
/* Returns true if there is not too much data to write to the connection. */
|
||||||
int packet_not_very_much_data_to_write(void);
|
int packet_not_very_much_data_to_write(void);
|
||||||
|
|
||||||
|
/* maximum packet size, requested by client with SSH_CMSG_MAX_PACKET_SIZE */
|
||||||
|
extern int max_packet_size;
|
||||||
|
int packet_set_maxsize(int s);
|
||||||
|
#define packet_get_maxsize() max_packet_size
|
||||||
|
|
||||||
/* Stores tty modes from the fd into current packet. */
|
/* Stores tty modes from the fd into current packet. */
|
||||||
void tty_make_modes(int fd);
|
void tty_make_modes(int fd);
|
||||||
|
|
||||||
|
48
readconf.c
48
readconf.c
@ -14,7 +14,7 @@ Functions for reading the configuration files.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$Id: readconf.c,v 1.3 1999/11/15 04:25:10 damien Exp $");
|
RCSID("$Id: readconf.c,v 1.4 1999/11/21 02:23:53 damien Exp $");
|
||||||
|
|
||||||
#include "ssh.h"
|
#include "ssh.h"
|
||||||
#include "cipher.h"
|
#include "cipher.h"
|
||||||
@ -155,23 +155,6 @@ static struct
|
|||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
/* textual representation of log-levels */
|
|
||||||
|
|
||||||
static struct
|
|
||||||
{
|
|
||||||
const char *name;
|
|
||||||
LogLevel level;
|
|
||||||
} log_levels[] =
|
|
||||||
{
|
|
||||||
{ "QUIET", SYSLOG_LEVEL_QUIET },
|
|
||||||
{ "FATAL", SYSLOG_LEVEL_FATAL },
|
|
||||||
{ "ERROR", SYSLOG_LEVEL_ERROR },
|
|
||||||
{ "INFO", SYSLOG_LEVEL_INFO },
|
|
||||||
{ "CHAT", SYSLOG_LEVEL_CHAT },
|
|
||||||
{ "DEBUG", SYSLOG_LEVEL_DEBUG },
|
|
||||||
{ NULL, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Characters considered whitespace in strtok calls. */
|
/* Characters considered whitespace in strtok calls. */
|
||||||
#define WHITESPACE " \t\r\n"
|
#define WHITESPACE " \t\r\n"
|
||||||
|
|
||||||
@ -237,7 +220,7 @@ process_config_line(Options *options, const char *host,
|
|||||||
int *activep)
|
int *activep)
|
||||||
{
|
{
|
||||||
char buf[256], *cp, *string, **charptr;
|
char buf[256], *cp, *string, **charptr;
|
||||||
int opcode, *intptr, value, fwd_port, fwd_host_port, i;
|
int opcode, *intptr, value, fwd_port, fwd_host_port;
|
||||||
|
|
||||||
/* Skip leading whitespace. */
|
/* Skip leading whitespace. */
|
||||||
cp = line + strspn(line, WHITESPACE);
|
cp = line + strspn(line, WHITESPACE);
|
||||||
@ -462,30 +445,21 @@ process_config_line(Options *options, const char *host,
|
|||||||
cp = strtok(NULL, WHITESPACE);
|
cp = strtok(NULL, WHITESPACE);
|
||||||
value = cipher_number(cp);
|
value = cipher_number(cp);
|
||||||
if (value == -1)
|
if (value == -1)
|
||||||
fatal("%.200s line %d: Bad cipher.", filename, linenum);
|
fatal("%.200s line %d: Bad cipher '%s'.",
|
||||||
|
filename, linenum, cp ? cp : "<NONE>");
|
||||||
if (*activep && *intptr == -1)
|
if (*activep && *intptr == -1)
|
||||||
*intptr = value;
|
*intptr = value;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case oLogLevel:
|
case oLogLevel:
|
||||||
|
intptr = (int *)&options->log_level;
|
||||||
cp = strtok(NULL, WHITESPACE);
|
cp = strtok(NULL, WHITESPACE);
|
||||||
if (!cp)
|
value = log_level_number(cp);
|
||||||
{
|
if (value == (LogLevel)-1)
|
||||||
fprintf(stderr, "%s line %d: missing level name.\n",
|
fatal("%.200s line %d: unsupported log level '%s'\n",
|
||||||
filename, linenum);
|
filename, linenum, cp ? cp : "<NONE>");
|
||||||
exit(1);
|
if (*activep && (LogLevel)*intptr == -1)
|
||||||
}
|
*intptr = (LogLevel)value;
|
||||||
for (i = 0; log_levels[i].name; i++)
|
|
||||||
if (strcasecmp(log_levels[i].name, cp) == 0)
|
|
||||||
break;
|
|
||||||
if (!log_levels[i].name)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "%s line %d: unsupported log level %s\n",
|
|
||||||
filename, linenum, cp);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
if (options->log_level == (LogLevel)(-1))
|
|
||||||
options->log_level = log_levels[i].level;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case oRemoteForward:
|
case oRemoteForward:
|
||||||
|
87
servconf.c
87
servconf.c
@ -12,7 +12,7 @@ Created: Mon Aug 21 15:48:58 1995 ylo
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$Id: servconf.c,v 1.4 1999/11/12 04:19:27 damien Exp $");
|
RCSID("$Id: servconf.c,v 1.5 1999/11/21 02:23:53 damien Exp $");
|
||||||
|
|
||||||
#include "ssh.h"
|
#include "ssh.h"
|
||||||
#include "servconf.h"
|
#include "servconf.h"
|
||||||
@ -214,41 +214,6 @@ static struct
|
|||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct
|
|
||||||
{
|
|
||||||
const char *name;
|
|
||||||
SyslogFacility facility;
|
|
||||||
} log_facilities[] =
|
|
||||||
{
|
|
||||||
{ "DAEMON", SYSLOG_FACILITY_DAEMON },
|
|
||||||
{ "USER", SYSLOG_FACILITY_USER },
|
|
||||||
{ "AUTH", SYSLOG_FACILITY_AUTH },
|
|
||||||
{ "LOCAL0", SYSLOG_FACILITY_LOCAL0 },
|
|
||||||
{ "LOCAL1", SYSLOG_FACILITY_LOCAL1 },
|
|
||||||
{ "LOCAL2", SYSLOG_FACILITY_LOCAL2 },
|
|
||||||
{ "LOCAL3", SYSLOG_FACILITY_LOCAL3 },
|
|
||||||
{ "LOCAL4", SYSLOG_FACILITY_LOCAL4 },
|
|
||||||
{ "LOCAL5", SYSLOG_FACILITY_LOCAL5 },
|
|
||||||
{ "LOCAL6", SYSLOG_FACILITY_LOCAL6 },
|
|
||||||
{ "LOCAL7", SYSLOG_FACILITY_LOCAL7 },
|
|
||||||
{ NULL, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct
|
|
||||||
{
|
|
||||||
const char *name;
|
|
||||||
LogLevel level;
|
|
||||||
} log_levels[] =
|
|
||||||
{
|
|
||||||
{ "QUIET", SYSLOG_LEVEL_QUIET },
|
|
||||||
{ "FATAL", SYSLOG_LEVEL_FATAL },
|
|
||||||
{ "ERROR", SYSLOG_LEVEL_ERROR },
|
|
||||||
{ "INFO", SYSLOG_LEVEL_INFO },
|
|
||||||
{ "CHAT", SYSLOG_LEVEL_CHAT },
|
|
||||||
{ "DEBUG", SYSLOG_LEVEL_DEBUG },
|
|
||||||
{ NULL, 0 }
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Returns the number of the token pointed to by cp of length len.
|
/* Returns the number of the token pointed to by cp of length len.
|
||||||
Never returns if the token is not known. */
|
Never returns if the token is not known. */
|
||||||
|
|
||||||
@ -273,7 +238,7 @@ void read_server_config(ServerOptions *options, const char *filename)
|
|||||||
FILE *f;
|
FILE *f;
|
||||||
char line[1024];
|
char line[1024];
|
||||||
char *cp, **charptr;
|
char *cp, **charptr;
|
||||||
int linenum, *intptr, i, value;
|
int linenum, *intptr, value;
|
||||||
int bad_options = 0;
|
int bad_options = 0;
|
||||||
ServerOpCodes opcode;
|
ServerOpCodes opcode;
|
||||||
|
|
||||||
@ -495,45 +460,25 @@ void read_server_config(ServerOptions *options, const char *filename)
|
|||||||
goto parse_flag;
|
goto parse_flag;
|
||||||
|
|
||||||
case sLogFacility:
|
case sLogFacility:
|
||||||
|
intptr = (int *)&options->log_facility;
|
||||||
cp = strtok(NULL, WHITESPACE);
|
cp = strtok(NULL, WHITESPACE);
|
||||||
if (!cp)
|
value = log_facility_number(cp);
|
||||||
{
|
if (value == (SyslogFacility)-1)
|
||||||
fprintf(stderr, "%s line %d: missing facility name.\n",
|
fatal("%.200s line %d: unsupported log facility '%s'\n",
|
||||||
filename, linenum);
|
filename, linenum, cp ? cp : "<NONE>");
|
||||||
exit(1);
|
if (*intptr == -1)
|
||||||
}
|
*intptr = (SyslogFacility)value;
|
||||||
for (i = 0; log_facilities[i].name; i++)
|
|
||||||
if (strcasecmp(log_facilities[i].name, cp) == 0)
|
|
||||||
break;
|
|
||||||
if (!log_facilities[i].name)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "%s line %d: unsupported log facility %s\n",
|
|
||||||
filename, linenum, cp);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
if (options->log_facility == (SyslogFacility)(-1))
|
|
||||||
options->log_facility = log_facilities[i].facility;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case sLogLevel:
|
case sLogLevel:
|
||||||
|
intptr = (int *)&options->log_level;
|
||||||
cp = strtok(NULL, WHITESPACE);
|
cp = strtok(NULL, WHITESPACE);
|
||||||
if (!cp)
|
value = log_level_number(cp);
|
||||||
{
|
if (value == (LogLevel)-1)
|
||||||
fprintf(stderr, "%s line %d: missing level name.\n",
|
fatal("%.200s line %d: unsupported log level '%s'\n",
|
||||||
filename, linenum);
|
filename, linenum, cp ? cp : "<NONE>");
|
||||||
exit(1);
|
if (*intptr == -1)
|
||||||
}
|
*intptr = (LogLevel)value;
|
||||||
for (i = 0; log_levels[i].name; i++)
|
|
||||||
if (strcasecmp(log_levels[i].name, cp) == 0)
|
|
||||||
break;
|
|
||||||
if (!log_levels[i].name)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "%s line %d: unsupported log level %s\n",
|
|
||||||
filename, linenum, cp);
|
|
||||||
exit(1);
|
|
||||||
}
|
|
||||||
if (options->log_level == (LogLevel)(-1))
|
|
||||||
options->log_level = log_levels[i].level;
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case sAllowUsers:
|
case sAllowUsers:
|
||||||
|
@ -176,8 +176,8 @@ void make_packets_from_stderr_data()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (len > 32768)
|
if (len > packet_get_maxsize())
|
||||||
len = 32768; /* Keep the packets at reasonable size. */
|
len = packet_get_maxsize(); /* Keep the packets at reasonable size. */
|
||||||
}
|
}
|
||||||
packet_start(SSH_SMSG_STDERR_DATA);
|
packet_start(SSH_SMSG_STDERR_DATA);
|
||||||
packet_put_string(buffer_ptr(&stderr_buffer), len);
|
packet_put_string(buffer_ptr(&stderr_buffer), len);
|
||||||
@ -206,8 +206,8 @@ void make_packets_from_stdout_data()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (len > 32768)
|
if (len > packet_get_maxsize())
|
||||||
len = 32768; /* Keep the packets at reasonable size. */
|
len = packet_get_maxsize(); /* Keep the packets at reasonable size. */
|
||||||
}
|
}
|
||||||
packet_start(SSH_SMSG_STDOUT_DATA);
|
packet_start(SSH_SMSG_STDOUT_DATA);
|
||||||
packet_put_string(buffer_ptr(&stdout_buffer), len);
|
packet_put_string(buffer_ptr(&stdout_buffer), len);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: ssh-agent.c,v 1.19 1999/11/18 14:00:49 markus Exp $ */
|
/* $OpenBSD: ssh-agent.c,v 1.20 1999/11/19 10:20:51 markus Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ The authentication agent program.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$OpenBSD: ssh-agent.c,v 1.19 1999/11/18 14:00:49 markus Exp $");
|
RCSID("$OpenBSD: ssh-agent.c,v 1.20 1999/11/19 10:20:51 markus Exp $");
|
||||||
|
|
||||||
#include "ssh.h"
|
#include "ssh.h"
|
||||||
#include "rsa.h"
|
#include "rsa.h"
|
||||||
|
6
ssh.h
6
ssh.h
@ -13,7 +13,7 @@ Generic header file for ssh.
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* RCSID("$Id: ssh.h,v 1.13 1999/11/16 02:37:17 damien Exp $"); */
|
/* RCSID("$Id: ssh.h,v 1.14 1999/11/21 02:23:53 damien Exp $"); */
|
||||||
|
|
||||||
#ifndef SSH_H
|
#ifndef SSH_H
|
||||||
#define SSH_H
|
#define SSH_H
|
||||||
@ -392,6 +392,10 @@ void log_init(char *av0, LogLevel level, SyslogFacility facility, int on_stderr)
|
|||||||
/* Logging implementation, depending on server or client */
|
/* Logging implementation, depending on server or client */
|
||||||
void do_log(LogLevel level, const char *fmt, va_list args);
|
void do_log(LogLevel level, const char *fmt, va_list args);
|
||||||
|
|
||||||
|
/* name to facility/level */
|
||||||
|
SyslogFacility log_facility_number(char *name);
|
||||||
|
LogLevel log_level_number(char *name);
|
||||||
|
|
||||||
/* Output a message to syslog or stderr */
|
/* Output a message to syslog or stderr */
|
||||||
void fatal(const char *fmt, ...);
|
void fatal(const char *fmt, ...);
|
||||||
void error(const char *fmt, ...);
|
void error(const char *fmt, ...);
|
||||||
|
@ -15,7 +15,7 @@ login (authentication) dialog.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$Id: sshconnect.c,v 1.12 1999/11/18 21:25:48 damien Exp $");
|
RCSID("$Id: sshconnect.c,v 1.13 1999/11/21 02:23:53 damien Exp $");
|
||||||
|
|
||||||
#ifdef HAVE_OPENSSL
|
#ifdef HAVE_OPENSSL
|
||||||
#include <openssl/bn.h>
|
#include <openssl/bn.h>
|
||||||
@ -906,7 +906,7 @@ void ssh_exchange_identification()
|
|||||||
for (i = 0; i < sizeof(buf) - 1; i++)
|
for (i = 0; i < sizeof(buf) - 1; i++)
|
||||||
{
|
{
|
||||||
if (read(connection_in, &buf[i], 1) != 1)
|
if (read(connection_in, &buf[i], 1) != 1)
|
||||||
fatal("read: %.100s", strerror(errno));
|
fatal("ssh_exchange_identification: read: %.100s", strerror(errno));
|
||||||
if (buf[i] == '\r')
|
if (buf[i] == '\r')
|
||||||
{
|
{
|
||||||
buf[i] = '\n';
|
buf[i] = '\n';
|
||||||
|
8
sshd.8
8
sshd.8
@ -9,7 +9,7 @@
|
|||||||
.\"
|
.\"
|
||||||
.\" Created: Sat Apr 22 21:55:14 1995 ylo
|
.\" Created: Sat Apr 22 21:55:14 1995 ylo
|
||||||
.\"
|
.\"
|
||||||
.\" $Id: sshd.8,v 1.7 1999/11/12 00:33:04 damien Exp $
|
.\" $Id: sshd.8,v 1.8 1999/11/21 02:23:53 damien Exp $
|
||||||
.\"
|
.\"
|
||||||
.Dd September 25, 1999
|
.Dd September 25, 1999
|
||||||
.Dt SSHD 8
|
.Dt SSHD 8
|
||||||
@ -19,7 +19,7 @@
|
|||||||
.Nd secure shell daemon
|
.Nd secure shell daemon
|
||||||
.Sh SYNOPSIS
|
.Sh SYNOPSIS
|
||||||
.Nm sshd
|
.Nm sshd
|
||||||
.Op Fl diq
|
.Op Fl diqQ
|
||||||
.Op Fl b Ar bits
|
.Op Fl b Ar bits
|
||||||
.Op Fl f Ar config_file
|
.Op Fl f Ar config_file
|
||||||
.Op Fl g Ar login_grace_time
|
.Op Fl g Ar login_grace_time
|
||||||
@ -106,6 +106,10 @@ can be configured using command-line options or a configuration
|
|||||||
file. Command-line options override values specified in the
|
file. Command-line options override values specified in the
|
||||||
configuration file.
|
configuration file.
|
||||||
.Pp
|
.Pp
|
||||||
|
.Nm
|
||||||
|
rereads its configuration file when it receives a hangup signal,
|
||||||
|
.Dv SIGHUP .
|
||||||
|
.Pp
|
||||||
The options are as follows:
|
The options are as follows:
|
||||||
.Bl -tag -width Ds
|
.Bl -tag -width Ds
|
||||||
.It Fl b Ar bits
|
.It Fl b Ar bits
|
||||||
|
11
sshd.c
11
sshd.c
@ -18,7 +18,7 @@ agent connections.
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
RCSID("$Id: sshd.c,v 1.25 1999/11/18 21:25:48 damien Exp $");
|
RCSID("$Id: sshd.c,v 1.26 1999/11/21 02:23:53 damien Exp $");
|
||||||
|
|
||||||
#include "xmalloc.h"
|
#include "xmalloc.h"
|
||||||
#include "rsa.h"
|
#include "rsa.h"
|
||||||
@ -1753,6 +1753,11 @@ void do_authenticated(struct passwd *pw)
|
|||||||
channel_input_port_forward_request(pw->pw_uid == 0);
|
channel_input_port_forward_request(pw->pw_uid == 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SSH_CMSG_MAX_PACKET_SIZE:
|
||||||
|
if (packet_set_maxsize(packet_get_int()) < 0)
|
||||||
|
goto fail;
|
||||||
|
break;
|
||||||
|
|
||||||
case SSH_CMSG_EXEC_SHELL:
|
case SSH_CMSG_EXEC_SHELL:
|
||||||
/* Set interactive/non-interactive mode. */
|
/* Set interactive/non-interactive mode. */
|
||||||
packet_set_interactive(have_pty || display != NULL,
|
packet_set_interactive(have_pty || display != NULL,
|
||||||
@ -1791,10 +1796,6 @@ void do_authenticated(struct passwd *pw)
|
|||||||
xfree(command);
|
xfree(command);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case SSH_CMSG_MAX_PACKET_SIZE:
|
|
||||||
debug("The server does not support limiting packet size.");
|
|
||||||
goto fail;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/* Any unknown messages in this phase are ignored, and a failure
|
/* Any unknown messages in this phase are ignored, and a failure
|
||||||
message is returned. */
|
message is returned. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user