⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 portmap-4.0-cleanup.patch

📁 用于生成linux操作系统下的交叉编译工具链和嵌入式linux系统的根文件系统,支持x86、arm、powerpc等处理器
💻 PATCH
字号:
Some cleanup for my last patch.-- H.J. Lu (hjl@gnu.org)----- portmap_4/pmap_check.c.hostname	Wed May 10 10:23:35 2000+++ portmap_4/pmap_check.c	Wed May 10 11:03:22 2000@@ -35,6 +35,7 @@ static char sccsid[] = "@(#) pmap_check.c 1.6 93/11/21 20:58:59"; #endif #include <unistd.h>+#include <string.h> #include <rpc/rpc.h> #include <rpc/pmap_prot.h> #include <syslog.h>@@ -69,8 +70,6 @@ int     deny_severity = LOG_WARNING; /* coming from libwrap.a (tcp_wrappers) */ extern int hosts_ctl(char *daemon, char *name, char *addr, char *user); -#define	good_client(a) hosts_ctl("portmap", "", inet_ntoa(a->sin_addr), "")- #define reserved_port(p) (IPPORT_RESERVED/2 < (p) && (p) < IPPORT_RESERVED)  #define unreserved_port(p) (IPPORT_RESERVED <= (p) && (p) != NFS_PORT)@@ -88,6 +87,59 @@ extern int hosts_ctl(char *daemon, char   #define log_client(addr, proc, prog) \   logit(allow_severity, addr, proc, prog, "")++#ifdef HOSTS_ACCESS+static int+good_client(addr)+struct sockaddr_in *addr;+{+    struct hostent *hp;+    char **sp;+    char *tmpname;++    /* Check the IP address first. */+    if (hosts_ctl("portmap", "", inet_ntoa(addr->sin_addr), ""))+	return 1;++    /* Check the hostname. */+    hp = gethostbyaddr ((const char *) &(addr->sin_addr),+			sizeof (addr->sin_addr), AF_INET);++    if (!hp)+	return 0;++    /* must make sure the hostent is authorative. */+    tmpname = alloca (strlen (hp->h_name) + 1);+    strcpy (tmpname, hp->h_name);+    hp = gethostbyname(tmpname);+    if (hp) {+	/* now make sure the "addr->sin_addr" is on the list */+	for (sp = hp->h_addr_list ; *sp ; sp++) {+	    if (memcmp(*sp, &(addr->sin_addr), hp->h_length)==0)+		break;+	}+	if (!*sp)+	    /* it was a FAKE. */+	    return 0;+    }+    else+	   /* never heard of it. misconfigured DNS? */+	   return 0;++   /* Check the official name first. */+   if (hosts_ctl("portmap", "", hp->h_name, ""))+	return 1;++   /* Check aliases. */+   for (sp = hp->h_aliases; *sp ; sp++) {+	if (hosts_ctl("portmap", "", *sp, ""))+	    return 1;+   }++   /* No match */+   return 0;+}+#endif  /* check_startup - additional startup code */ 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -