create core package
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
diff -ruNp tcp_wrappers_7.6.orig/hosts_access.c tcp_wrappers_7.6/hosts_access.c
|
||||
--- tcp_wrappers_7.6.orig/hosts_access.c 2007-01-08 01:31:32.000000000 +0100
|
||||
+++ tcp_wrappers_7.6/hosts_access.c 2007-01-08 01:31:08.000000000 +0100
|
||||
@@ -232,6 +232,36 @@ int (*match_fn) ();
|
||||
return (NO);
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * daemon_or_port_match - match server information: if the server endpoint
|
||||
+ * pattern is a port number, match against port number of connection;
|
||||
+ * otherwise match against daemon executable name
|
||||
+ */
|
||||
+
|
||||
+static int daemon_or_port_match(char *tok, struct request_info *request) {
|
||||
+ unsigned int port, sin_port;
|
||||
+ char junk;
|
||||
+
|
||||
+ /* daemon name */
|
||||
+ if (sscanf(tok, "%u%c", &port, &junk) != 1 || port > 65535)
|
||||
+ return (string_match(tok, eval_daemon(request)));
|
||||
+
|
||||
+ /* port number */
|
||||
+ if (!request->server->sin)
|
||||
+ return (NO);
|
||||
+
|
||||
+#ifdef INET6
|
||||
+ sin_port = ntohs(((struct sockaddr_in *)request->server->sin)->sin_port);
|
||||
+#else
|
||||
+ sin_port = ntohs(request->server->sin->sin_port);
|
||||
+#endif
|
||||
+
|
||||
+ if (port == sin_port)
|
||||
+ return (YES);
|
||||
+ else
|
||||
+ return (NO);
|
||||
+}
|
||||
+
|
||||
/* server_match - match server information */
|
||||
|
||||
static int server_match(tok, request)
|
||||
@@ -241,9 +271,9 @@ struct request_info *request;
|
||||
char *host;
|
||||
|
||||
if ((host = split_at(tok + 1, '@')) == 0) { /* plain daemon */
|
||||
- return (string_match(tok, eval_daemon(request)));
|
||||
+ return (daemon_or_port_match(tok, request));
|
||||
} else { /* daemon@host */
|
||||
- return (string_match(tok, eval_daemon(request))
|
||||
+ return (daemon_or_port_match(tok, request)
|
||||
&& host_match(host, request->server));
|
||||
}
|
||||
}
|
||||
diff -ruNp tcp_wrappers_7.6.orig/hosts_access.5 tcp_wrappers_7.6/hosts_access.5
|
||||
--- tcp_wrappers_7.6.orig/hosts_access.5 2007-01-08 01:31:32.000000000 +0100
|
||||
+++ tcp_wrappers_7.6/hosts_access.5 2007-01-08 01:30:18.000000000 +0100
|
||||
@@ -51,7 +51,7 @@ being optional:
|
||||
daemon_list : client_list [ : shell_command ]
|
||||
.PP
|
||||
\fIdaemon_list\fR is a list of one or more daemon process names
|
||||
-(argv[0] values) or wildcards (see below).
|
||||
+(argv[0] values) or server port numbers or wildcards (see below).
|
||||
.PP
|
||||
\fIclient_list\fR is a list
|
||||
of one or more host names, host addresses, patterns or wildcards (see
|
||||
Reference in New Issue
Block a user