Module Name:    src
Committed By:   christos
Date:           Fri Oct  4 18:04:06 UTC 2024

Modified Files:
        src/usr.bin/ftp: ruserpass.c

Log Message:
extract duplicate code into a function.


To generate a diff of this commit:
cvs rdiff -u -r1.34 -r1.35 src/usr.bin/ftp/ruserpass.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/ftp/ruserpass.c
diff -u src/usr.bin/ftp/ruserpass.c:1.34 src/usr.bin/ftp/ruserpass.c:1.35
--- src/usr.bin/ftp/ruserpass.c:1.34	Thu Jul 18 23:53:13 2024
+++ src/usr.bin/ftp/ruserpass.c	Fri Oct  4 14:04:06 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: ruserpass.c,v 1.34 2024/07/19 03:53:13 lukem Exp $	*/
+/*	$NetBSD: ruserpass.c,v 1.35 2024/10/04 18:04:06 christos Exp $	*/
 
 /*
  * Copyright (c) 1985, 1993, 1994
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "@(#)ruserpass.c	8.4 (Berkeley) 4/27/95";
 #else
-__RCSID("$NetBSD: ruserpass.c,v 1.34 2024/07/19 03:53:13 lukem Exp $");
+__RCSID("$NetBSD: ruserpass.c,v 1.35 2024/10/04 18:04:06 christos Exp $");
 #endif
 #endif /* not lint */
 
@@ -79,6 +79,20 @@ static struct toktab {
 	{ NULL,		0 }
 };
 
+static int
+match_host_domain(const char *host, const char *domain, const char *tokv)
+{
+	const char *tmp;
+
+	if (strcasecmp(host, tokval) == 0)
+		return 1;
+
+	return (tmp = strchr(host, '.')) != NULL &&
+	    strcasecmp(tmp, domain) == 0 &&
+	    strncasecmp(host, tokv, tmp - host) == 0 &&
+	    tokv[tmp - host] == '\0';
+}
+
 int
 ruserpass(const char *host, char **aname, char **apass, char **aacct)
 {
@@ -119,19 +133,9 @@ ruserpass(const char *host, char **aname
 			 * or official hostname.  Also allow match of
 			 * incompletely-specified host in local domain.
 			 */
-			if (strcasecmp(host, tokval) == 0)
-				goto match;
-			if (strcasecmp(hostname, tokval) == 0)
-				goto match;
-			if ((tmp = strchr(hostname, '.')) != NULL &&
-			    strcasecmp(tmp, mydomain) == 0 &&
-			    strncasecmp(hostname, tokval, tmp-hostname) == 0 &&
-			    tokval[tmp - hostname] == '\0')
+			if (match_host_domain(hostname, mydomain, tokval))
 				goto match;
-			if ((tmp = strchr(host, '.')) != NULL &&
-			    strcasecmp(tmp, mydomain) == 0 &&
-			    strncasecmp(host, tokval, tmp - host) == 0 &&
-			    tokval[tmp - host] == '\0')
+			if (match_host_domain(host, mydomain, tokval))
 				goto match;
 			continue;
 		}

Reply via email to