diff options
Diffstat (limited to 'libnetfs/fsys-get-options.c')
-rw-r--r-- | libnetfs/fsys-get-options.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/libnetfs/fsys-get-options.c b/libnetfs/fsys-get-options.c index 35c21d3a..fa045eff 100644 --- a/libnetfs/fsys-get-options.c +++ b/libnetfs/fsys-get-options.c @@ -1,6 +1,6 @@ /* Unparse run-time options - Copyright (C) 1995, 1996 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1998, 2001 Free Software Foundation, Inc. This file is part of the GNU Hurd. @@ -32,28 +32,36 @@ /* Implement fsys_get_options as described in <hurd/fsys.defs>. */ error_t netfs_S_fsys_get_options (fsys_t fsys, + mach_port_t reply, + mach_msg_type_name_t reply_type, char **data, mach_msg_type_number_t *data_len) { error_t err; - char *argz; - size_t argz_len; + char *argz = 0; + size_t argz_len = 0; struct port_info *port = ports_lookup_port (netfs_port_bucket, fsys, netfs_control_class); if (!port) return EOPNOTSUPP; + err = argz_add (&argz, &argz_len, program_invocation_name); + if (! err) + { #if NOT_YET - rwlock_reader_lock (&netfs_fsys_lock); + rwlock_reader_lock (&netfs_fsys_lock); #endif - err = netfs_get_options (&argz, &argz_len); + err = netfs_append_args (&argz, &argz_len); #if NOT_YET - rwlock_reader_unlock (&netfs_fsys_lock); + rwlock_reader_unlock (&netfs_fsys_lock); #endif + } if (! err) /* Move ARGZ from a malloced buffer into a vm_alloced one. */ - err = fshelp_return_malloced_buffer (argz, argz_len, data, data_len); + err = iohelp_return_malloced_buffer (argz, argz_len, data, data_len); + else + free (argz); ports_port_deref (port); |