summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Menal <mmenal@hurdfr.org>2006-04-11 12:12:20 +0000
committerManuel Menal <mmenal@hurdfr.org>2006-04-11 12:12:20 +0000
commit2c079eaae47bc35852bb796b6a7582b56c799e16 (patch)
tree15a9d967c136eb98d454390530c352edba323912
parentea5e87f241d05d99cc376ea34d8105de8dc174c8 (diff)
Applied patch from Ben Asselstine: added a new option to specify a port.
-rw-r--r--ChangeLog15
-rw-r--r--args.c30
-rw-r--r--gopherfs.c6
-rw-r--r--gopherfs.h3
-rw-r--r--netfs.c8
5 files changed, 41 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index ad1537729..485ed94ae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2002-04-15 Ben Asseltsine <ben@asselstine.com>
+
+ * args.c (parse_opt): new option to specify a port.
+ * args.c (parse_opt): setting default port when processing hostname.
+ * args.c: corrected args_doc to reflect parameter order.
+ * netfs.c: changed to use current libnetfs.
+ (netfs_attempt_set_size, netfs_attempt_read, netfs_attempt_write):
+ changed from 'off_t' to 'loff_t' in function declaration.
+ (netfs_attempt_statfs): changed from 'struct statfs' to
+ 'fsys_statfsbuf_t' in function declaration.
+ * gopherfs.c: changed to use current libnetfs. now setting
+ netfs_server_name and netfs_server_version.
+ * gopherfs.c (main): showing "attached to" output only when in
+ debug mode.
+
2002-04-15 James A. Morrison <ja2morri@uwaterloo.ca>
* node.c (gopherfs_make_netnode): Try to free all allocations on
diff --git a/args.c b/args.c
index 38852563c..b0cf8f1ae 100644
--- a/args.c
+++ b/args.c
@@ -29,12 +29,13 @@
#include "gopherfs.h"
/* ARGP data */
-const char *argp_program_version = "gopherfs 0.1.2";
+const char *argp_program_version = GOPHER_SERVER_NAME " " GOPHER_SERVER_VERSION;
const char *argp_program_bug_address = "ja2morri@uwaterloo.ca";
-char args_doc[] = "REMOTE_FS [SERVER]";
+char args_doc[] = "SERVER [REMOTE_FS]";
char doc[] = "Hurd gopher filesystem translator";
static const struct argp_option options[] = {
{"debug", 'D', 0, 0, "enable debug output"},
+ {"port", 'P', "NUMBER", 0, "Specify a non-standard port"},
{0}
};
/* the function that groks the arguments and fills
@@ -43,29 +44,30 @@ static const struct argp_option options[] = {
static error_t
parse_opt (int key, char *arg, struct argp_state *state)
{
+ char *tail;
switch (key)
{
case 'D':
debug_flag = 1;
break;
+ case 'P':
+ gopherfs_root_port = (unsigned short) strtol (arg, &tail, 10);
+ if (tail == arg || gopherfs_root_port > USHRT_MAX)
+ {
+ /* XXX bad integer conversion */
+ error (1, errno, "bad port number");
+ }
+ break;
case ARGP_KEY_ARG:
if (state->arg_num == 0)
- gopherfs_root_server = arg;
+ {
+ gopherfs_root_port = 70;
+ gopherfs_root_server = arg;
+ }
else if (state->arg_num == 1)
{
- gopherfs_root_port = 70;
gopherfs_server_dir = arg;
}
- else if (state->arg_num == 2)
- {
- char *tail;
- gopherfs_root_port = (unsigned short) strtol (arg, &tail, 10);
- if (tail == arg || gopherfs_root_port > USHRT_MAX)
- {
- /* XXX bad integer conversion */
- error (1, errno, "bad port number");
- }
- }
else
return ARGP_ERR_UNKNOWN;
break;
diff --git a/gopherfs.c b/gopherfs.c
index 063ede67a..7cd942b7e 100644
--- a/gopherfs.c
+++ b/gopherfs.c
@@ -37,7 +37,8 @@ unsigned short gopherfs_root_port;
char *gopherfs_server_dir;
int debug_flag;
-
+char *netfs_server_name = GOPHER_SERVER_NAME;
+char *netfs_server_version = GOPHER_SERVER_VERSION;
struct gopherfs *gopherfs; /* filesystem global pointer */
volatile struct mapped_time_value *gopherfs_maptime;
@@ -75,7 +76,8 @@ main (int argc, char **argv)
gopherfs->root =
gopherfs_make_node (GPHR_DIR, "dir", "", gopherfs_root_server,
gopherfs_root_port);
- fprintf (stderr, "attaching to %s\n", gopherfs_root_server);
+ if (debug_flag)
+ fprintf (stderr, "attaching to %s\n", gopherfs_root_server);
/* XXX */
netfs_root_node = gopherfs->root;
netfs_startup (bootstrap, 0);
diff --git a/gopherfs.h b/gopherfs.h
index a6b4b369d..d71037a1c 100644
--- a/gopherfs.h
+++ b/gopherfs.h
@@ -30,7 +30,8 @@
#include <netdb.h>
#include <hurd/hurd_types.h>
-
+#define GOPHER_SERVER_NAME "gopherfs"
+#define GOPHER_SERVER_VERSION "0.1.2"
/* declaration of global config parapeters */
extern char *gopherfs_root_server;
extern unsigned short gopherfs_root_port;
diff --git a/netfs.c b/netfs.c
index 959bd94bd..d9ee35668 100644
--- a/netfs.c
+++ b/netfs.c
@@ -378,7 +378,7 @@ error_t netfs_attempt_chflags (struct iouser *cred, struct node *node,
/* This should attempt to set the size of the file NODE (for user CRED) to
SIZE bytes long. */
error_t netfs_attempt_set_size (struct iouser *cred, struct node *node,
- off_t size)
+ loff_t size)
{
return EROFS;
}
@@ -386,7 +386,7 @@ error_t netfs_attempt_set_size (struct iouser *cred, struct node *node,
/* This should attempt to fetch filesystem status information for the remote
filesystem, for the user CRED. */
error_t netfs_attempt_statfs (struct iouser *cred, struct node *node,
- struct statfs *st)
+ fsys_statfsbuf_t *st)
{
return EOPNOTSUPP;
}
@@ -430,7 +430,7 @@ error_t netfs_attempt_readlink (struct iouser *user, struct node *node,
up to *LEN bytes. Put the data at DATA. Set *LEN to the amount
successfully read upon return. */
error_t netfs_attempt_read (struct iouser *cred, struct node *node,
- off_t offset, size_t *len, void *data)
+ loff_t offset, size_t *len, void *data)
{
error_t err;
int remote_fd;
@@ -455,7 +455,7 @@ error_t netfs_attempt_read (struct iouser *cred, struct node *node,
to *LEN bytes from DATA. Set *LEN to the amount seccessfully written upon
return. */
error_t netfs_attempt_write (struct iouser *cred, struct node *node,
- off_t offset, size_t *len, void *data)
+ loff_t offset, size_t *len, void *data)
{
return EROFS;
}