+/* $OpenBSD: match.c,v 1.26 2006/08/03 03:34:42 deraadt Exp $ */
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
*/
#include "includes.h"
-RCSID("$OpenBSD: match.c,v 1.18 2002/02/28 19:36:28 stevesk Exp $");
-#include "match.h"
-#include "canohost.h"
+#include <sys/types.h>
+
+#include <ctype.h>
+#include <string.h>
+
#include "xmalloc.h"
+#include "match.h"
/*
* Returns true if the given string matches the pattern (which may contain ?
i < len && subi < sizeof(sub) - 1 && pattern[i] != ',';
subi++, i++)
sub[subi] = dolower && isupper(pattern[i]) ?
- tolower(pattern[i]) : pattern[i];
+ (char)tolower(pattern[i]) : pattern[i];
/* If subpattern too long, return failure (no match). */
if (subi >= sizeof(sub) - 1)
return 0;
* match user, user@host_or_ip, user@host_or_ip_list against pattern
*/
int
-match_user(const char *user, int verify_reverse_mapping,
+match_user(const char *user, const char *host, const char *ipaddr,
const char *pattern)
{
char *p, *pat;
*p++ = '\0';
if ((ret = match_pattern(user, pat)) == 1)
- ret = match_host_and_ip(
- get_canonical_hostname(verify_reverse_mapping),
- get_remote_ipaddr(), p);
+ ret = match_host_and_ip(host, ipaddr, p);
xfree(pat);
return ret;
ret = xstrdup(p);
if (next != NULL)
*next = (cp == NULL) ?
- strlen(c) : cp - c;
+ strlen(c) : (u_int)(cp - c);
xfree(c);
xfree(s);
return ret;