summaryrefslogtreecommitdiff
path: root/match.c
diff options
context:
space:
mode:
authormouring <mouring>2001-06-25 05:17:53 +0000
committermouring <mouring>2001-06-25 05:17:53 +0000
commitd1baa2127a6e33fbcf175fa2f2b791ca2b13e982 (patch)
tree3f4129828e47d4574e454c98915eed7b0df72e93 /match.c
parent378d1a106883c4588dc98f685341532f818d5ec9 (diff)
downloadopenssh-d1baa2127a6e33fbcf175fa2f2b791ca2b13e982.tar.gz
- markus@cvs.openbsd.org 2001/06/24 05:25:10
[auth-options.c match.c match.h] move ip+hostname check to match.c
Diffstat (limited to 'match.c')
-rw-r--r--match.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/match.c b/match.c
index ebb562ab..2e2d6309 100644
--- a/match.c
+++ b/match.c
@@ -35,7 +35,7 @@
*/
#include "includes.h"
-RCSID("$OpenBSD: match.c,v 1.12 2001/03/10 17:51:04 markus Exp $");
+RCSID("$OpenBSD: match.c,v 1.13 2001/06/24 05:25:10 markus Exp $");
#include "match.h"
#include "xmalloc.h"
@@ -162,7 +162,32 @@ match_hostname(const char *host, const char *pattern, u_int len)
return got_positive;
}
+/*
+ * returns 0 if we get a negative match for the hostname or the ip
+ * or if we get no match at all. returns 1 otherwise.
+ */
+int
+match_host_and_ip(const char *host, const char *ipaddr,
+ const char *patterns)
+{
+ int mhost, mip;
+
+ /* negative ipaddr match */
+ if ((mip = match_hostname(ipaddr, patterns, strlen(patterns))) == -1)
+ return 0;
+ /* negative hostname match */
+ if ((mhost = match_hostname(host, patterns, strlen(patterns))) == -1)
+ return 0;
+ /* no match at all */
+ if (mhost == 0 && mip == 0)
+ return 0;
+ return 1;
+}
+/*
+ * Returns first item from client-list that is also supported by server-list,
+ * caller must xfree() returned string.
+ */
#define MAX_PROP 20
#define SEP ","
char *