version 1.193, 2008/12/09 03:20:42 |
version 1.194, 2009/01/22 10:02:34 |
|
|
#include "channels.h" |
#include "channels.h" |
#include "groupaccess.h" |
#include "groupaccess.h" |
|
|
static void add_listen_addr(ServerOptions *, char *, u_short); |
static void add_listen_addr(ServerOptions *, char *, int); |
static void add_one_listen_addr(ServerOptions *, char *, u_short); |
static void add_one_listen_addr(ServerOptions *, char *, int); |
|
|
/* Use of privilege separation or not */ |
/* Use of privilege separation or not */ |
extern int use_privsep; |
extern int use_privsep; |
|
|
} |
} |
|
|
static void |
static void |
add_listen_addr(ServerOptions *options, char *addr, u_short port) |
add_listen_addr(ServerOptions *options, char *addr, int port) |
{ |
{ |
u_int i; |
u_int i; |
|
|
|
|
} |
} |
|
|
static void |
static void |
add_one_listen_addr(ServerOptions *options, char *addr, u_short port) |
add_one_listen_addr(ServerOptions *options, char *addr, int port) |
{ |
{ |
struct addrinfo hints, *ai, *aitop; |
struct addrinfo hints, *ai, *aitop; |
char strport[NI_MAXSERV]; |
char strport[NI_MAXSERV]; |
|
|
hints.ai_family = options->address_family; |
hints.ai_family = options->address_family; |
hints.ai_socktype = SOCK_STREAM; |
hints.ai_socktype = SOCK_STREAM; |
hints.ai_flags = (addr == NULL) ? AI_PASSIVE : 0; |
hints.ai_flags = (addr == NULL) ? AI_PASSIVE : 0; |
snprintf(strport, sizeof strport, "%u", port); |
snprintf(strport, sizeof strport, "%d", port); |
if ((gaierr = getaddrinfo(addr, strport, &hints, &aitop)) != 0) |
if ((gaierr = getaddrinfo(addr, strport, &hints, &aitop)) != 0) |
fatal("bad addr or host: %s (%s)", |
fatal("bad addr or host: %s (%s)", |
addr ? addr : "<NULL>", |
addr ? addr : "<NULL>", |
|
|
SyslogFacility *log_facility_ptr; |
SyslogFacility *log_facility_ptr; |
LogLevel *log_level_ptr; |
LogLevel *log_level_ptr; |
ServerOpCodes opcode; |
ServerOpCodes opcode; |
u_short port; |
int port; |
u_int i, flags = 0; |
u_int i, flags = 0; |
size_t len; |
size_t len; |
|
|
|
|
fatal("%s line %d: missing port number.", |
fatal("%s line %d: missing port number.", |
filename, linenum); |
filename, linenum); |
options->ports[options->num_ports++] = a2port(arg); |
options->ports[options->num_ports++] = a2port(arg); |
if (options->ports[options->num_ports-1] == 0) |
if (options->ports[options->num_ports-1] <= 0) |
fatal("%s line %d: Badly formatted port number.", |
fatal("%s line %d: Badly formatted port number.", |
filename, linenum); |
filename, linenum); |
break; |
break; |
|
|
p = cleanhostname(p); |
p = cleanhostname(p); |
if (arg == NULL) |
if (arg == NULL) |
port = 0; |
port = 0; |
else if ((port = a2port(arg)) == 0) |
else if ((port = a2port(arg)) <= 0) |
fatal("%s line %d: bad port number", filename, linenum); |
fatal("%s line %d: bad port number", filename, linenum); |
|
|
add_listen_addr(options, p, port); |
add_listen_addr(options, p, port); |
|
|
fatal("%s line %d: missing host in PermitOpen", |
fatal("%s line %d: missing host in PermitOpen", |
filename, linenum); |
filename, linenum); |
p = cleanhostname(p); |
p = cleanhostname(p); |
if (arg == NULL || (port = a2port(arg)) == 0) |
if (arg == NULL || (port = a2port(arg)) <= 0) |
fatal("%s line %d: bad port number in " |
fatal("%s line %d: bad port number in " |
"PermitOpen", filename, linenum); |
"PermitOpen", filename, linenum); |
if (*activep && n == -1) |
if (*activep && n == -1) |