summaryrefslogtreecommitdiff
path: root/match.c
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2001-07-04 04:56:44 +0000
committerBen Lindstrom <mouring@eviladmin.org>2001-07-04 04:56:44 +0000
commit60260022eeb9ca1a1e0f25eb51e354433c3566a4 (patch)
tree77f1141b045650ca4540dd8561bd474c918792cb /match.c
parentbddd551e1143ba2b7bf0cd453c15b97817bc917d (diff)
- markus@cvs.openbsd.org 2001/06/27 04:48:53
[auth.c match.c sshd.8] tridge@samba.org
Diffstat (limited to 'match.c')
-rw-r--r--match.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/match.c b/match.c
index 2e2d63092..188b9a416 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.13 2001/06/24 05:25:10 markus Exp $"); 38RCSID("$OpenBSD: match.c,v 1.14 2001/06/27 04:48:53 markus Exp $");
39 39
40#include "match.h" 40#include "match.h"
41#include "xmalloc.h" 41#include "xmalloc.h"
@@ -185,6 +185,30 @@ match_host_and_ip(const char *host, const char *ipaddr,
185} 185}
186 186
187/* 187/*
188 * match user, user@host_or_ip, user@host_or_ip_list against pattern
189 */
190int
191match_user(const char *user, const char *host, const char *ipaddr,
192 const char *pattern)
193{
194 char *p, *pat;
195 int ret;
196
197 if ((p = strchr(pattern,'@')) == NULL)
198 return match_pattern(user, pattern);
199
200 pat = xstrdup(pattern);
201 p = strchr(pat, '@');
202 *p++ = '\0';
203
204 if ((ret = match_pattern(user, pat)) == 1)
205 ret = match_host_and_ip(host, ipaddr, p);
206 xfree(pat);
207
208 return ret;
209}
210
211/*
188 * Returns first item from client-list that is also supported by server-list, 212 * Returns first item from client-list that is also supported by server-list,
189 * caller must xfree() returned string. 213 * caller must xfree() returned string.
190 */ 214 */