netgroups patch for rsync 2.6.0

Travis Freeland travis at deakin.edu.au
Sat Jan 31 12:39:11 GMT 2004


G'day,

I figured some others might benefit from this patch.  It allows you to use
the samba style @netgroup names in hosts allow and hosts deny.

I've tested it on solaris and linux with no apparent problems..

I'll get rid of the static string in a couple of days when I have to worry
about trying to get this into prod .. but with any luck someone else may have 
done that for me.. :)

--- access.c	2003-07-30 16:12:27.000000000 +1000
+++ ../rsync-2.6.0-Linux/access.c	2004-01-31 23:15:37.000000000 +1100
@@ -22,10 +22,31 @@
   */
 
 #include "rsync.h"
+#include <netdb.h>
 
 
 static int match_hostname(char *host, char *tok)
 {
+	char netgroup[512];
+	char *machinep;
+	char *userp;
+	char *domainp;
+
+	if(strlen(tok)){
+		if(tok[0]=='@'){
+			strcpy(netgroup, "");
+			sscanf(tok, "@%s", netgroup);
+			setnetgrent(netgroup);
+			while(getnetgrent(&machinep, &userp, &domainp)){
+				if(machinep!=NULL){
+					if(strcmp(host, machinep)==0){
+						return(1);
+					}
+				}
+			}
+		}
+	}
 	if (!host || !*host) return 0;
 	return wildmatch(tok, host);
}

Travis

http://www.deakin.edu.au/~travis/sig.html


More information about the rsync mailing list