summaryrefslogtreecommitdiff
path: root/main.c
diff options
context:
space:
mode:
authorMoritz Schulte <moritz@duesseldorf.ccc.de>2002-10-19 12:04:42 +0000
committerMoritz Schulte <moritz@duesseldorf.ccc.de>2002-10-19 12:04:42 +0000
commitff0f5a422aae574c864c38b10185258192a230b2 (patch)
tree46bd0b9f90b973e92d3473cffd63b5938352fdd4 /main.c
parent79c2c62389a1b99cb301391834ef807b57ea57ee (diff)
2002-10-19 Moritz Schulte <moritz@duesseldorf.ccc.de>
* netio.h (NETIO_VERSION): Set to "0.2". 2002-10-19 Moritz Schulte <moritz@duesseldorf.ccc.de> * main.c (main): Initialize stat_default. * node.c: New variable: struct stat stat_default. (node_make_new): Initialize (*node)->nn_stat with stat_default. * node.c (node_make_protocol_node): Remove unnecessary nn_stat initialization. (node_make_host_node): Likewise. (node_make_port_node): Likewise. * main.c: New variable: int fsid ... (main): ... initialized with getpid (). 2002-10-16 Moritz Schulte <moritz@duesseldorf.ccc.de> * main.c: (main): Set netfs_root_node->nn_stat.st_fsid after netfs_root_node->nn_stat is initialized. * Makefile (CFLAGS): Added -D_FILE_OFFSET_BITS=64.
Diffstat (limited to 'main.c')
-rw-r--r--main.c30
1 files changed, 26 insertions, 4 deletions
diff --git a/main.c b/main.c
index 89333f4f3..c2fece4d9 100644
--- a/main.c
+++ b/main.c
@@ -33,12 +33,13 @@
#include "version.h"
+char *netfs_server_name = "netio";
+char *netfs_server_version = HURD_VERSION;
+
const char *argp_program_version = STANDARD_HURD_VERSION (netio);
const char *argp_program_bug_address =
"Moritz Schulte <moritz@duesseldorf.ccc.de>";
const char *doc = "Hurd netio translator v" NETIO_VERSION;
-char *netfs_server_name = "netio";
-char *netfs_server_version = HURD_VERSION;
/* The underlying node. */
mach_port_t ul_node;
@@ -49,6 +50,9 @@ pf_t socket_server;
/* Has to be defined for libnetfs... */
int netfs_maxsymlinks = 0;
+/* Our filesystem id - will be our pid. */
+int fsid = 0;
+
/* Used for updating node information. */
volatile struct mapped_time_value *netio_maptime;
@@ -73,6 +77,7 @@ main (int argc, char **argv)
NULL, doc, NULL };
mach_port_t bootstrap_port;
error_t err;
+ extern struct stat stat_default;
argp_parse (&netio_argp, argc, argv, 0, 0, 0);
task_get_bootstrap_port (mach_task_self (), &bootstrap_port);
@@ -82,15 +87,16 @@ main (int argc, char **argv)
err = node_make_root_node (&netfs_root_node);
if (err)
error (EXIT_FAILURE, err, "cannot create root node");
-
+ fsid = getpid ();
+
{
/* Here we adjust the root node permissions. */
struct stat ul_node_stat;
err = io_stat (ul_node, &ul_node_stat);
if (err)
error (EXIT_FAILURE, err, "cannot stat underlying node");
- netfs_root_node->nn_stat.st_fsid = getpid ();
netfs_root_node->nn_stat = ul_node_stat;
+ netfs_root_node->nn_stat.st_fsid = fsid;
netfs_root_node->nn_stat.st_mode = S_IFDIR | (ul_node_stat.st_mode
& ~S_IFMT & ~S_ITRANS);
@@ -115,6 +121,22 @@ main (int argc, char **argv)
TOUCH_ATIME|TOUCH_MTIME|TOUCH_CTIME,
netio_maptime);
+ /* Here we initialize the default stat information for netio
+ nodes. */
+ stat_default.st_fstype = FSTYPE_MISC;
+ stat_default.st_fsid = fsid;
+ stat_default.st_ino = 1; /* ? */
+ stat_default.st_gen = 0;
+ stat_default.st_rdev = 0;
+ stat_default.st_mode = 0;
+ stat_default.st_nlink = 0;
+ stat_default.st_uid = netfs_root_node->nn_stat.st_uid;
+ stat_default.st_gid = netfs_root_node->nn_stat.st_gid;
+ stat_default.st_size = 0;
+ stat_default.st_blksize = 0;
+ stat_default.st_blocks = 0;
+ stat_default.st_author = netfs_root_node->nn_stat.st_author;
+
err = open_socket_server (PF_INET, &socket_server);
if (err)
error (EXIT_FAILURE, err, "open_socket_server");