summaryrefslogtreecommitdiff
path: root/debian/patches/0004-auth-remove-implicit-assumption-about-the-bootstrap-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0004-auth-remove-implicit-assumption-about-the-bootstrap-.patch')
-rw-r--r--debian/patches/0004-auth-remove-implicit-assumption-about-the-bootstrap-.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/debian/patches/0004-auth-remove-implicit-assumption-about-the-bootstrap-.patch b/debian/patches/0004-auth-remove-implicit-assumption-about-the-bootstrap-.patch
new file mode 100644
index 00000000..02c2c804
--- /dev/null
+++ b/debian/patches/0004-auth-remove-implicit-assumption-about-the-bootstrap-.patch
@@ -0,0 +1,61 @@
+From 267fb2b2fcffe5ed09c18ee879193ad698223d65 Mon Sep 17 00:00:00 2001
+From: Justus Winter <4winter@informatik.uni-hamburg.de>
+Date: Wed, 7 Jan 2015 16:00:06 +0100
+Subject: [PATCH hurd 04/11] auth: remove implicit assumption about the
+ bootstrap process
+
+The current code assumes that it can speak the startup protocol over
+its bootstrap port.
+
+* auth/auth.c (main): Generalize by trying to use `/servers/startup'
+before falling back to the bootstrap port.
+---
+ auth/auth.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/auth/auth.c b/auth/auth.c
+index a7a188a..d5ef587 100644
+--- a/auth/auth.c
++++ b/auth/auth.c
+@@ -25,6 +25,7 @@
+ #include <pthread.h>
+ #include <hurd.h>
+ #include <hurd/startup.h>
++#include <hurd/paths.h>
+ #include <hurd/ports.h>
+ #include <hurd/ihash.h>
+ #include <idvec.h>
+@@ -482,6 +483,7 @@ main (int argc, char **argv)
+ {
+ error_t err;
+ mach_port_t boot;
++ mach_port_t startup;
+ process_t proc;
+ mach_port_t hostpriv, masterdev;
+ struct authhandle *firstauth;
+@@ -518,10 +520,21 @@ main (int argc, char **argv)
+ _hurd_port_set (&_hurd_ports[INIT_PORT_PROC], proc);
+ _hurd_proc_init (argv, NULL, 0);
+
++ startup = file_name_lookup (_SERVERS_STARTUP, 0, 0);
++ if (! MACH_PORT_VALID (startup))
++ {
++ error (0, errno, "%s", _SERVERS_STARTUP);
++ /* Fall back to using the bootstrap port as before. */
++ startup = boot;
++ }
++
+ /* Init knows intimately that we will be ready for messages
+ as soon as this returns. */
+- startup_essential_task (boot, mach_task_self (), MACH_PORT_NULL, "auth",
++ startup_essential_task (startup, mach_task_self (), MACH_PORT_NULL, "auth",
+ hostpriv);
++
++ if (startup != boot)
++ mach_port_deallocate (mach_task_self (), startup);
+ mach_port_deallocate (mach_task_self (), boot);
+ mach_port_deallocate (mach_task_self (), hostpriv);
+
+--
+2.1.4
+