summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames A. Morrison <a2morri@csclub.uwaterloo.ca>2002-04-16 01:39:20 +0000
committerJames A. Morrison <a2morri@csclub.uwaterloo.ca>2002-04-16 01:39:20 +0000
commitea5e87f241d05d99cc376ea34d8105de8dc174c8 (patch)
tree4c40ffd681f2b5ecef110e5a54fdbba0c80b929c
parent0c89c0ac11a6eb86cafc363e74330b11c3b5841f (diff)
* node.c (gopherfs_make_netnode): Try to free all allocations on
failure. * Makefile: Remove dependancy on Makeconf * Added the Changelog
-rw-r--r--ChangeLog6
-rw-r--r--Makefile18
-rw-r--r--node.c19
3 files changed, 22 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 000000000..ad1537729
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,6 @@
+2002-04-15 James A. Morrison <ja2morri@uwaterloo.ca>
+
+ * node.c (gopherfs_make_netnode): Try to free all allocations on
+ failure.
+ * Makefile: Remove dependancy on Makeconf
+
diff --git a/Makefile b/Makefile
index d7396c419..ed52f58d1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,6 @@
# Makefile for gopherfs
#
+# Copyright (C) 2002 James A. Morrison
# Copyright (C) 1997, 2000 Free Software Foundation, Inc.
#
# This program is free software; you can redistribute it and/or
@@ -21,13 +22,20 @@ makemode := server
target = gopherfs
-#SRCS = ftpfs.c fs.c host.c netfs.c dir.c conn.c ccache.c node.c ncache.c
+CC = gcc
+CFLAGS = -Wall -g -D_GNU_SOURCE
+INCLUDES = -I.
SRCS = gopherfs.c args.c netfs.c gopher.c node.c
-#LCLHDRS = ftpfs.h ccache.h
LCLHDRS = gopherfs.h
OBJS = $(SRCS:.c=.o)
-#HURDLIBS = netfs fshelp iohelp threads ports ihash ftpconn shouldbeinlibc
-HURDLIBS = netfs fshelp iohelp ports
+HURDLIBS = -lnetfs -lfshelp -liohelp -lports
+
+all: $(target)
+
+$(target): $(OBJS)
+ $(CC) $(CFLAGS) -o $(target) $(OBJS) $(HURDLIBS)
+
+%.o: %.c $(LCLHDRS)
+ $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $<
-include ../Makeconf
diff --git a/node.c b/node.c
index ad1f74569..5dff209f1 100644
--- a/node.c
+++ b/node.c
@@ -34,7 +34,6 @@ gopherfs_make_netnode (char type, char *name, char *selector,
char *server, unsigned short port)
{
struct netnode *nn;
- int err;
nn = (struct netnode *) malloc (sizeof (struct netnode));
if (!nn)
@@ -42,34 +41,22 @@ gopherfs_make_netnode (char type, char *name, char *selector,
memset (nn, 0, sizeof (struct netnode));
nn->type = type;
nn->name = strdup (name);
- if (! nn->name)
- err = 1;
nn->selector = strdup (selector);
- if (! nn->selector)
- err = 2;
nn->server = strdup (server);
- if (! nn->server)
- err = 3;
nn->port = port;
nn->ents = NULL;
nn->noents = FALSE;
/* XXX init cache references */
- switch (err)
- {
- case 4:
+ if (!(nn->server && nn->selector && nn->name))
+ { /* We are allowed to free NULL pointers */
free (nn->server);
- case 3:
free (nn->selector);
- case 2:
free (nn->name);
- case 1:
free (nn);
- case 0:
return NULL;
- default:
- return nn;
}
+ return nn;
}