summaryrefslogtreecommitdiff
path: root/match.c
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2001-06-25 05:17:53 +0000
committerBen Lindstrom <mouring@eviladmin.org>2001-06-25 05:17:53 +0000
commitf0c50293dddf8b36e9511fdf1c2f3f443800e51c (patch)
treeda67f013d1129a39fab6e528ffb47e7e7cec392a /match.c
parent05209451795171b9c851daa3473e4a52745c50d5 (diff)
- 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 ebb562ab3..2e2d63092 100644
--- a/match.c
+++ b/match.c
@@ -35,7 +35,7 @@
35 */ 35 */
36 36
37#include "includes.h" 37#include "includes.h"
38RCSID("$OpenBSD: match.c,v 1.12 2001/03/10 17:51:04 markus Exp $"); 38RCSID("$OpenBSD: match.c,v 1.13 2001/06/24 05:25:10 markus Exp $");
39 39
40#include "match.h" 40#include "match.h"
41#include "xmalloc.h" 41#include "xmalloc.h"
@@ -162,7 +162,32 @@ match_hostname(const char *host, const char *pattern, u_int len)
162 return got_positive; 162 return got_positive;
163} 163}
164 164
165/*
166 * returns 0 if we get a negative match for the hostname or the ip
167 * or if we get no match at all. returns 1 otherwise.
168 */
169int
170match_host_and_ip(const char *host, const char *ipaddr,
171 const char *patterns)
172{
173 int mhost, mip;
174
175 /* negative ipaddr match */
176 if ((mip = match_hostname(ipaddr, patterns, strlen(patterns))) == -1)
177 return 0;
178 /* negative hostname match */
179 if ((mhost = match_hostname(host, patterns, strlen(patterns))) == -1)
180 return 0;
181 /* no match at all */
182 if (mhost == 0 && mip == 0)
183 return 0;
184 return 1;
185}
165 186
187/*
188 * Returns first item from client-list that is also supported by server-list,
189 * caller must xfree() returned string.
190 */
166#define MAX_PROP 20 191#define MAX_PROP 20
167#define SEP "," 192#define SEP ","
168char * 193char *