summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortron <tron@pkgsrc.org>1999-06-03 14:22:09 +0000
committertron <tron@pkgsrc.org>1999-06-03 14:22:09 +0000
commitf7fc6006b82e64e2ac25fffa31563e5742908a5d (patch)
tree69d5cbab9a6ee719982f7d5feae4376be49eca8c
parenta91bf520ef23f871a3a5339b9becc13bfcc9a0d9 (diff)
downloadpkgsrc-f7fc6006b82e64e2ac25fffa31563e5742908a5d.tar.gz
Adapt this patch to version 3.9.5.
-rw-r--r--sysutils/mtools/patches/patch-ac97
1 files changed, 6 insertions, 91 deletions
diff --git a/sysutils/mtools/patches/patch-ac b/sysutils/mtools/patches/patch-ac
index 485747d40c8..8371188eee5 100644
--- a/sysutils/mtools/patches/patch-ac
+++ b/sysutils/mtools/patches/patch-ac
@@ -1,100 +1,15 @@
-$NetBSD: patch-ac,v 1.2 1999/06/01 21:15:02 tron Exp $
+$NetBSD: patch-ac,v 1.3 1999/06/03 14:22:09 tron Exp $
---- floppyd.cpp.orig Mon May 31 14:46:31 1999
-+++ floppyd.cpp Tue Jun 1 10:53:28 1999
-@@ -24,6 +24,7 @@
- #endif
-
- #define FLOPPYD_DEFAULT_PORT 5703
-+#define NOBODY "nobody"
- extern int errno;
-
- // #########################################################################
-@@ -395,6 +396,8 @@
-
- /*
- * Find the userid of the specified user.
-+ * Use 'nobody' if not specified and revert to 65535 only if
-+ * 'nobody' cannot be determined.
- */
- static uid_t getuserid(char *user)
- {
-@@ -411,7 +414,10 @@
- }
- else
- {
-- uid = 65535;
-+ if((pw = getpwnam(NOBODY)) != NULL)
-+ uid = pw->pw_uid;
-+ else
-+ uid = 65535;
- }
-
- #ifdef DEBUG
-@@ -527,12 +533,12 @@
- {
- int new_sock;
- struct sockaddr_in addr;
-- int len;
-+ socklen_t len;
-
- /*
- * Ignore dead servers so no zombies should be left hanging.
- */
-- signal(SIGCLD, SIG_IGN);
-+ signal(SIGCHLD, SIG_IGN);
-
- for (;;)
- {
-@@ -613,11 +619,13 @@
+--- floppyd.c.orig Thu Jun 3 15:12:56 1999
++++ floppyd.c Thu Jun 3 15:19:46 1999
+@@ -758,8 +758,8 @@
int run_as_server = 0;
ipaddr_t bind_ip = INADDR_ANY;
short bind_port = FLOPPYD_DEFAULT_PORT;
- uid_t run_uid = 65535;
- gid_t run_gid = 65535;
-+ uid_t run_uid;
-+ gid_t run_gid;
-+ pid_t run_pid;
++ uid_t run_uid = getuserid("nobody");
++ gid_t run_gid = getgroupid(run_uid);
int sock;
int port_is_supplied = 0;
int no_local = 0;
-+ int ug_given = 0;
-
- char *server_hostname=NULL;
- char* device_name = NULL;
-@@ -644,6 +652,7 @@
- break;
-
- case 'r':
-+ ug_given = 1;
- run_uid = getuserid(optarg);
- run_gid = getgroupid(run_uid);
- break;
-@@ -663,9 +672,15 @@
- break;
- }
- }
-+
-+ if(!ug_given) {
-+ run_uid = getuserid(NOBODY);
-+ run_gid = getgroupid(run_uid);
-+ }
-+
- if(!run_as_server) {
- struct sockaddr_in addr;
-- int len = sizeof(addr);
-+ socklen_t len = sizeof(addr);
-
- /* try to find out port that we are connected to */
- if(getsockname(0, (sockaddr*) &addr, &len) >= 0 &&
-@@ -836,8 +851,8 @@
- /*
- * Start a new session and group.
- */
-- setsid();
-- setpgrp();
-+ run_pid = setsid();
-+ setpgrp(0, run_pid);
-
- close(2);
- open("/dev/null", O_WRONLY);