diff options
Diffstat (limited to 'servconf.c')
-rw-r--r-- | servconf.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/servconf.c b/servconf.c index 94dff1fd6..07a201034 100644 --- a/servconf.c +++ b/servconf.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: servconf.c,v 1.180 2008/05/08 12:21:16 djm Exp $ */ | 1 | /* $OpenBSD: servconf.c,v 1.181 2008/06/10 03:57:27 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland | 3 | * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland |
4 | * All rights reserved | 4 | * All rights reserved |
@@ -603,15 +603,17 @@ match_cfg_line(char **condition, int line, const char *user, const char *host, | |||
603 | debug("connection from %.100s matched 'Host " | 603 | debug("connection from %.100s matched 'Host " |
604 | "%.100s' at line %d", host, arg, line); | 604 | "%.100s' at line %d", host, arg, line); |
605 | } else if (strcasecmp(attrib, "address") == 0) { | 605 | } else if (strcasecmp(attrib, "address") == 0) { |
606 | if (!address) { | 606 | switch (addr_match_list(address, arg)) { |
607 | result = 0; | 607 | case 1: |
608 | continue; | ||
609 | } | ||
610 | if (match_hostname(address, arg, len) != 1) | ||
611 | result = 0; | ||
612 | else | ||
613 | debug("connection from %.100s matched 'Address " | 608 | debug("connection from %.100s matched 'Address " |
614 | "%.100s' at line %d", address, arg, line); | 609 | "%.100s' at line %d", address, arg, line); |
610 | break; | ||
611 | case 0: | ||
612 | result = 0; | ||
613 | break; | ||
614 | case -1: | ||
615 | return -1; | ||
616 | } | ||
615 | } else { | 617 | } else { |
616 | error("Unsupported Match attribute %s", attrib); | 618 | error("Unsupported Match attribute %s", attrib); |
617 | return -1; | 619 | return -1; |