* Routines to authenticate access to a daemon (hosts allow/deny).
*
* Copyright (C) 1998 Andrew Tridgell
- * Copyright (C) 2004-2020 Wayne Davison
+ * Copyright (C) 2004-2022 Wayne Davison
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*/
#include "rsync.h"
+#include "ifuncs.h"
+#ifdef HAVE_NETGROUP_H
+#include <netgroup.h>
+#endif
static int allow_forward_dns;
if (!host || !*host)
return 0;
+#ifdef HAVE_INNETGR
+ if (*tok == '@' && tok[1])
+ return innetgr(tok + 1, host, NULL, NULL);
+#endif
+
/* First check if the reverse-DNS-determined hostname matches. */
if (iwildmatch(tok, host))
return 1;
if (strcmp(addr, inet_ntoa(*(struct in_addr*)(hp->h_addr_list[i]))) == 0) {
/* If reverse lookups are off, we'll use the conf-specified
* hostname in preference to UNDETERMINED. */
- if (host == undetermined_hostname) {
- if (!(*host_ptr = strdup(tok)))
- *host_ptr = undetermined_hostname;
- }
+ if (host == undetermined_hostname)
+ *host_ptr = strdup(tok);
return 1;
}
}
char *tok;
char *list2 = strdup(list);
- if (!list2)
- out_of_memory("access_match");
-
strlower(list2);
for (tok = strtok(list2, " ,\t"); tok; tok = strtok(NULL, " ,\t")) {