diff options
Diffstat (limited to 'libnetfs/init-startup.c')
-rw-r--r-- | libnetfs/init-startup.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/libnetfs/init-startup.c b/libnetfs/init-startup.c index 669aa66e..2e0f43a8 100644 --- a/libnetfs/init-startup.c +++ b/libnetfs/init-startup.c @@ -1,5 +1,5 @@ /* - Copyright (C) 1996 Free Software Foundation, Inc. + Copyright (C) 1996,97,2000,02 Free Software Foundation, Inc. Written by Michael I. Bushnell, p/BSG. This file is part of the GNU Hurd. @@ -18,35 +18,35 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ -#include "netfs.h" #include <stdio.h> +#include <error.h> #include <hurd/fsys.h> +#include "netfs.h" mach_port_t netfs_startup (mach_port_t bootstrap, int flags) { - mach_port_t realnode; + error_t err; + mach_port_t realnode, right; struct port_info *newpi; if (bootstrap == MACH_PORT_NULL) - { - fprintf (stderr, "Must be started as a translator...\n"); - exit (1); - } + error (10, 0, "Must be started as a translator"); - errno = ports_create_port (netfs_control_class, netfs_port_bucket, + err = ports_create_port (netfs_control_class, netfs_port_bucket, sizeof (struct port_info), &newpi); - if (!errno) + if (!err) { - errno = fsys_startup (bootstrap, flags, ports_get_right (newpi), - MACH_MSG_TYPE_MAKE_SEND, &realnode); + right = ports_get_send_right (newpi); + err = fsys_startup (bootstrap, flags, right, MACH_MSG_TYPE_COPY_SEND, + &realnode); + mach_port_deallocate (mach_task_self (), right); ports_port_deref (newpi); } - if (errno) - { - perror ("Translator startup failure: fsys_startup"); - exit (1); - } + if (err) + error (11, err, "Translator startup failure: fsys_startup"); + mach_port_deallocate (mach_task_self (), bootstrap); + return realnode; } |