version 1.70, 2015/12/10 17:08:40 |
version 1.71, 2016/03/07 19:02:43 |
|
|
#include "ssherr.h" |
#include "ssherr.h" |
#include "log.h" |
#include "log.h" |
#include "canohost.h" |
#include "canohost.h" |
|
#include "packet.h" |
#include "sshbuf.h" |
#include "sshbuf.h" |
#include "misc.h" |
#include "misc.h" |
#include "channels.h" |
#include "channels.h" |
|
|
int |
int |
auth_parse_options(struct passwd *pw, char *opts, char *file, u_long linenum) |
auth_parse_options(struct passwd *pw, char *opts, char *file, u_long linenum) |
{ |
{ |
|
struct ssh *ssh = active_state; /* XXX */ |
const char *cp; |
const char *cp; |
int i, r; |
int i, r; |
|
|
|
|
} |
} |
cp = "from=\""; |
cp = "from=\""; |
if (strncasecmp(opts, cp, strlen(cp)) == 0) { |
if (strncasecmp(opts, cp, strlen(cp)) == 0) { |
const char *remote_ip = get_remote_ipaddr(); |
const char *remote_ip = ssh_remote_ipaddr(ssh); |
const char *remote_host = get_canonical_hostname( |
const char *remote_host = auth_get_canonical_hostname( |
options.use_dns); |
ssh, options.use_dns); |
char *patterns = xmalloc(strlen(opts) + 1); |
char *patterns = xmalloc(strlen(opts) + 1); |
|
|
opts += strlen(cp); |
opts += strlen(cp); |
|
|
char **cert_forced_command, |
char **cert_forced_command, |
int *cert_source_address_done) |
int *cert_source_address_done) |
{ |
{ |
|
struct ssh *ssh = active_state; /* XXX */ |
char *command, *allowed; |
char *command, *allowed; |
const char *remote_ip; |
const char *remote_ip; |
char *name = NULL; |
char *name = NULL; |
|
|
free(allowed); |
free(allowed); |
goto out; |
goto out; |
} |
} |
remote_ip = get_remote_ipaddr(); |
remote_ip = ssh_remote_ipaddr(ssh); |
result = addr_match_cidr_list(remote_ip, |
result = addr_match_cidr_list(remote_ip, |
allowed); |
allowed); |
free(allowed); |
free(allowed); |