summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergiu Ivanov <unlimitedscolobb@gmail.com>2009-04-12 21:48:11 +0300
committerSergiu Ivanov <unlimitedscolobb@gmail.com>2009-04-12 21:48:11 +0300
commit0ec50f8fb5ec477523571a9612cfb9f23a10de12 (patch)
tree0667edd85fc530aee914edb6b27e4a2b1dd2a378
parent6cbf37e304b352d3acfd6d719ddfa7a7fbbc3bbb (diff)
Added dynamic translator tracking facilities
nsmux cannot presently shut down gracefully (without the -f option) after having done a magic lookup, because the dynamic translators it starts hold ports (references) to its nodes and make the standard fsys_goaway handler return with EBUSY. To solve the problem, nsmux will need to keep track of dynamic translators and shut them down explicitly, not relying on standard mechanisms, which don't know that the translators might be stacked and might try stopping a translator in the middle of the dynamic stack, which will certainly result in EBUSY. # Please enter the commit message for your changes. # (Comment lines starting with '#' will not be included) # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: debug.h # modified: lib.c # modified: lib.h # modified: lnode.c # modified: lnode.h # modified: magic.c # modified: magic.h # modified: ncache.c # modified: ncache.h # modified: node.c # modified: node.h # modified: nsmux.c # modified: nsmux.h # modified: options.c # modified: options.h # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # my_S_dir_lookup.c # sav/ # update
-rwxr-xr-xbuild2
-rw-r--r--node.h12
2 files changed, 1 insertions, 13 deletions
diff --git a/build b/build
index 2234dad6f..bfe91357a 100755
--- a/build
+++ b/build
@@ -1 +1 @@
-gcc -DDEBUG -Wall -g -lnetfs -lfshelp -liohelp -lthreads -lports -lihash -lshouldbeinlibc -o nsmux nsmux.c node.c lnode.c ncache.c options.c lib.c 2>&1 | tee errors
+gcc -DDEBUG -Wall -g -lnetfs -lfshelp -liohelp -lthreads -lports -lihash -lshouldbeinlibc -o nsmux nsmux.c node.c lnode.c ncache.c options.c lib.c magic.c trans.c 2>&1 | tee errors
diff --git a/node.h b/node.h
index de0013086..72adcbebb 100644
--- a/node.h
+++ b/node.h
@@ -59,18 +59,6 @@
/*---------------------------------------------------------------------------*/
/*--------Types--------------------------------------------------------------*/
-/*A list element containing a port*/
-struct port_el
-{
- /*the port */
- mach_port_t p;
-
- /*the next element in the list */
- struct port_el *next;
-}; /*struct port_el */
-/*---------------------------------------------------------------------------*/
-typedef struct port_el port_el_t;
-/*---------------------------------------------------------------------------*/
/*The user-defined node for libnetfs*/
struct netnode
{