<?xml version="1.0" encoding="UTF-8"?>
<commits type="array">
  <commit>
    <parents type="array">
      <parent>
        <id>dea12e2529ecdcab3a382fc71e7430326b74d6a6</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/fa42341de14ebfecf984d89c4f7933e91eaf870d</url>
    <id>fa42341de14ebfecf984d89c4f7933e91eaf870d</id>
    <committed-date>2009-06-22T05:34:32-07:00</committed-date>
    <authored-date>2009-06-22T05:34:32-07:00</authored-date>
    <message>Test</message>
    <tree>119baf1da0fb766727a7198c3545c721ff1bbbbd</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>c9110f9c7d71fa9b157540a7aa2ade7f34b79968</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/dea12e2529ecdcab3a382fc71e7430326b74d6a6</url>
    <id>dea12e2529ecdcab3a382fc71e7430326b74d6a6</id>
    <committed-date>2009-04-14T12:28:27-07:00</committed-date>
    <authored-date>2009-04-14T12:28:27-07:00</authored-date>
    <message>Made nsmux wait until dynamic translators finish

Previously, a settrans -gR on a node on which nsmux resides
would only kill the dynamic translators, without shutting
down nsmux, because it didn't wait for the children to close
their ports, which made a check in netfs_shutdown fail. Now
nsmux waits for the dynamic translator to finish, so
settrans -gR does its job as expected: shuts down everything.</message>
    <tree>b6687c3868f668a25cf19ed1eb3159c5cd5af3ce</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>0a5fcd403943fbbdc0a2ba35283f1135f97c48dc</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/c9110f9c7d71fa9b157540a7aa2ade7f34b79968</url>
    <id>c9110f9c7d71fa9b157540a7aa2ade7f34b79968</id>
    <committed-date>2009-04-12T15:03:40-07:00</committed-date>
    <authored-date>2009-04-12T15:03:40-07:00</authored-date>
    <message>nsmux can shutdown all dynamic translators on exit

Now nsmux can shutdown all of its dynamic translators on exit, thus
doing sufficient cleanup. One can tell nsmux to shutdown dynamic
translators using the ``--recursive'' option to settrans. Note that
because fsys_goaway returns immediately as the RPC is processed, while
the receiver may still remain in memory, doing something like

  settrans -g --recursive foo

where nsmux is sitting on foo will almost always result in a ``Server
busy'' error message. The reason is that libnetfs counts how many open
ports to its nodes there are at shutdown and in most cases it does the
check *before* the dynamic translators manage to drop their
references. Therefore, the aforementioned command gracefully kills all
dynamic translators. Invoked the second time, this command will
shutdown nsmux, too. Immediate shutdown with killing dynamic
translators can be achieved via

  settrans -gf --recursive foo</message>
    <tree>86723a412757f6d44ac60e8efec921fd14777987</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>68c018b02a8eff826cd30480ce73202ce9cc9e48</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/0a5fcd403943fbbdc0a2ba35283f1135f97c48dc</url>
    <id>0a5fcd403943fbbdc0a2ba35283f1135f97c48dc</id>
    <committed-date>2009-04-12T12:31:26-07:00</committed-date>
    <authored-date>2009-04-12T12:31:26-07:00</authored-date>
    <message>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.

(Note that this commit comes on top of an erroneous one and is meant
to fix it. I could not revert the previous commit because of ``bad
index'', so I hope this commit will solve the problem...)</message>
    <tree>538585395c4376368118a32d93e1c83569bf4a0d</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>0ec50f8fb5ec477523571a9612cfb9f23a10de12</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/68c018b02a8eff826cd30480ce73202ce9cc9e48</url>
    <id>68c018b02a8eff826cd30480ce73202ce9cc9e48</id>
    <committed-date>2009-04-12T12:13:36-07:00</committed-date>
    <authored-date>2009-04-12T12:13:36-07:00</authored-date>
    <message>Revert &quot;Added dynamic translator tracking facilities&quot;

This reverts commit 0ec50f8fb5ec477523571a9612cfb9f23a10de12.</message>
    <tree>7300d43003a35e8228ecbffa214240149de2d90e</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>6cbf37e304b352d3acfd6d719ddfa7a7fbbc3bbb</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/0ec50f8fb5ec477523571a9612cfb9f23a10de12</url>
    <id>0ec50f8fb5ec477523571a9612cfb9f23a10de12</id>
    <committed-date>2009-04-12T11:48:11-07:00</committed-date>
    <authored-date>2009-04-12T11:48:11-07:00</authored-date>
    <message>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 &quot;git reset HEAD &lt;file&gt;...&quot; 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 &quot;git add &lt;file&gt;...&quot; to include in what will be committed)
#
#	my_S_dir_lookup.c
#	sav/
#	update</message>
    <tree>0667edd85fc530aee914edb6b27e4a2b1dd2a378</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1e8766f3649e8a97595fad2a8ca550028e5e3f4a</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/6cbf37e304b352d3acfd6d719ddfa7a7fbbc3bbb</url>
    <id>6cbf37e304b352d3acfd6d719ddfa7a7fbbc3bbb</id>
    <committed-date>2009-04-08T23:03:51-07:00</committed-date>
    <authored-date>2009-04-08T23:03:51-07:00</authored-date>
    <message>Updated copyright years

The copyright years were listed only up to 2008, so I added
2009. Also, some of the files I created from scratch used to
list copyright years starting with 2001, which was wrong.
This has also been corrected.</message>
    <tree>7300d43003a35e8228ecbffa214240149de2d90e</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>48efa86dfe3e546190f997e70c307a231026d207</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/1e8766f3649e8a97595fad2a8ca550028e5e3f4a</url>
    <id>1e8766f3649e8a97595fad2a8ca550028e5e3f4a</id>
    <committed-date>2009-03-20T12:59:05-07:00</committed-date>
    <authored-date>2009-03-20T12:59:05-07:00</authored-date>
    <message>Shadow and proxy nodes are connected in a chain

nsmux will eventually need to be able to traverse dynamic
translator stacks, so it will have to know which node lies under
a certain node (shadow or proxy). To be able to do this, nsmux
now maintains the service nodes in a dynamic translator stack
in a one-directional linked list.</message>
    <tree>cd6e1d5f2ad6e5c1819336e80c2fe2ab69904486</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>3cea8614816e68db569bbea21134c64273e037b5</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/48efa86dfe3e546190f997e70c307a231026d207</url>
    <id>48efa86dfe3e546190f997e70c307a231026d207</id>
    <committed-date>2009-03-06T11:21:47-08:00</committed-date>
    <authored-date>2009-03-06T11:21:47-08:00</authored-date>
    <message>Added node types

Now inside each netnode (and, hence, inside each node) there is
a field showing the type of the node. This is required because,
at least in response to requests by the filter, proxy nodes and
shadow nodes will have different jobs to do and the server-side
implementation of filesystem RPCs in nsmux would need to know
what actions they are expected to carry out.</message>
    <tree>b095f30d7ddec15469235ae9b5ef65b3ea7038b0</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>2fc7f8c49fc34cd2db65c36400200082a62138a1</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/3cea8614816e68db569bbea21134c64273e037b5</url>
    <id>3cea8614816e68db569bbea21134c64273e037b5</id>
    <committed-date>2009-03-06T10:31:04-08:00</committed-date>
    <authored-date>2009-03-06T10:31:04-08:00</authored-date>
    <message>Added proxy nodes in the dynamic translator stack

When setting dynamic translators, nsmux used to offer the client
a port to the dynamic translator directly. Now it gives off a
proxy node, which contains a port to the translator. Also, proxy
nodes are now included in dynamic translator stacks. Dynamic
translator stacks now consist of the following interconnected
conceptual blocks:

  -- shadow node -- translator -- proxy node --</message>
    <tree>8fa552187ad145b9ccd80fe984969b2944f0926a</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>0a878aaf9fadb891a6067f8f084baa8ca5c30521</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/2fc7f8c49fc34cd2db65c36400200082a62138a1</url>
    <id>2fc7f8c49fc34cd2db65c36400200082a62138a1</id>
    <committed-date>2009-02-20T08:43:57-08:00</committed-date>
    <authored-date>2009-02-20T08:43:57-08:00</authored-date>
    <message>Dynamic translator stacks are set in series of retries

When a client wants nsmux to set several translators on a node
using a syntax like ``file,,x,,y'', nsmux sets the first
translator on a shadow node mirroring ``file'' and punts a
retry to the client. The client (commonly) does the retry and
thus control comes back to nsmux, which creates another shadow
node and sets the second translator on this node.

At the moment translator stacks do not include proxy nodes, i.e.
the structure of a dynamic translator stack is:

...---dynamic translator -- shadow node -- dynamic translator ---...</message>
    <tree>0ec2e55368532c8a12cfae9650cf211c63fc7e50</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>eeba2e52b08c78f2ba362174c8bfc8d222133b45</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/0a878aaf9fadb891a6067f8f084baa8ca5c30521</url>
    <id>0a878aaf9fadb891a6067f8f084baa8ca5c30521</id>
    <committed-date>2009-01-30T00:27:58-08:00</committed-date>
    <authored-date>2009-01-30T00:27:58-08:00</authored-date>
    <message>Adapted node_set_translator to setting translators on shadow nodes

Usually the file of which the supplied node is a mirror is
looked up by node_set_translator, so that it can open using
the flag combination required by the translator being started.
However, when dealing with a dynamic translator being set upon
another dynamic translator, node_set_translator must not do any
lookups, because a valid port is already stored in the supplied
node.</message>
    <tree>53e590a43e077f181103b8a677c46abf3cf5de1b</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>966522f2fa9239d9c2ba08152cc7019d996c2516</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/eeba2e52b08c78f2ba362174c8bfc8d222133b45</url>
    <id>eeba2e52b08c78f2ba362174c8bfc8d222133b45</id>
    <committed-date>2009-01-29T12:53:57-08:00</committed-date>
    <authored-date>2009-01-29T12:53:57-08:00</authored-date>
    <message>Made nsmux able to pass retries to the client

Now, when nsmux sets another dynamic translator, it sends a
retry to the client, so that it could set the (possible) next
dynamic translator in the next execution of netfs_S_dir_lookup,
which will occur due to the retry. However, nsmux cannot handle
the retry properly yet.

The reason for splitting the functionality of *only* passing the
retry to client in a separate commit is that it required some
tricky code manipulation and hence I feel that keeping it
in a separate commit is quite reasonable.</message>
    <tree>a3081b26013a887bfe0d6b10fdbb0787536e0e3f</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>b7d7c04378644966ae873878b5485fac1a708dc9</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/966522f2fa9239d9c2ba08152cc7019d996c2516</url>
    <id>966522f2fa9239d9c2ba08152cc7019d996c2516</id>
    <committed-date>2009-01-29T07:16:06-08:00</committed-date>
    <authored-date>2009-01-29T07:16:06-08:00</authored-date>
    <message>Added the function to create proxy nodes for ports

Since we want netfs_S_dir_lookup to ask the client to do a
retry when it sets a new dynamic translator, nsmux has to give
the client a *proxy* of the port to the root of the current
dynamic translator, so that the retry gets back in nsmux. For
this we need to create proxy nodes for ports, which is precisely
what node_create_from_port does.</message>
    <tree>ad2ccd0ed60cd3c53d7becb55f20d5cd858e332a</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>7298936df2535ce119ea38afd81915e523957e00</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/b7d7c04378644966ae873878b5485fac1a708dc9</url>
    <id>b7d7c04378644966ae873878b5485fac1a708dc9</id>
    <committed-date>2009-01-22T22:06:30-08:00</committed-date>
    <authored-date>2009-01-22T22:06:30-08:00</authored-date>
    <message>nsmux can now correctly start one translator

nsmux can now handle the syntax ``file,,x'' correctly again.
Translator *stacks* cannot be created yet.</message>
    <tree>5a0188aff0b995deaf405ef548154395359a0e0a</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>26fc5b0f9071e0b6266c01e3bc46ac102b27efa6</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/7298936df2535ce119ea38afd81915e523957e00</url>
    <id>7298936df2535ce119ea38afd81915e523957e00</id>
    <committed-date>2009-01-22T21:35:41-08:00</committed-date>
    <authored-date>2009-01-22T21:35:41-08:00</authored-date>
    <message>Adapted node_set_translators to shadow nodes

Now this function is called node_set_translator and sets only
one translator on the supplied (shadow) node. This function has
not yet been debugged.</message>
    <tree>61a0821f904002afa465bd3d46e606f8ec65eb92</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>65360480a9540e3ed6cfdbc42a3a66c8b08b73dc</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/26fc5b0f9071e0b6266c01e3bc46ac102b27efa6</url>
    <id>26fc5b0f9071e0b6266c01e3bc46ac102b27efa6</id>
    <committed-date>2009-01-22T12:32:08-08:00</committed-date>
    <authored-date>2009-01-22T12:32:08-08:00</authored-date>
    <message>netfs_S_dir_lookup can perform usual lookups

Due to the transition to a different way of building translator
stacks netfs_S_dir_lookup has been broken and nsmux could not
respond normally to any lookup requests. Now netfs_S_dir_lookup
is again capable of doing normal lookups. At the moment nsmux
is doing nothing but mirror the real filesystem.</message>
    <tree>32045ef3701aa140d3004f73416348de9c45df7b</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>439bd02eb00358b50e2d5123ae27e839d8f1a8a6</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/65360480a9540e3ed6cfdbc42a3a66c8b08b73dc</url>
    <id>65360480a9540e3ed6cfdbc42a3a66c8b08b73dc</id>
    <committed-date>2009-01-22T11:16:49-08:00</committed-date>
    <authored-date>2009-01-22T11:16:49-08:00</authored-date>
    <message>Added the routines for parsing magic syntax

Now nsmux has two special routines for parsing the special
``,,'' syntax: magic_find_sep and magic_unescape. The reason
for their separate existence is that the magic ``,,'' is
allowed to be escaped in the following way ``,,,'' and nsmux
must be able to react correspondingly to such syntax.</message>
    <tree>b34379878c363aaf6a40d9a6510c48ed0ba2ed50</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>b957be8b0ed3c5b38434db606122e2904e121de4</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/439bd02eb00358b50e2d5123ae27e839d8f1a8a6</url>
    <id>439bd02eb00358b50e2d5123ae27e839d8f1a8a6</id>
    <committed-date>2009-01-20T12:08:25-08:00</committed-date>
    <authored-date>2009-01-20T12:08:25-08:00</authored-date>
    <message>Magic syntax handling removed from netfs_attempt_lookup_improved

Up to now it was netfs_attempt_lookup_improved who handled the
magic syntax for ``,,''. Now the idea is to handle this syntax
via retries and netfs_attempt_lookup_improved is in no position
to manage this. In further commits the magic syntax will be
handled by netfs_S_dir_lookup. Note nsmux does not actually
work at the moment.</message>
    <tree>63a27d8992b4b575e182072d594bcde8819a0e1c</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>fd0bc23b08aa9ff76d61f753149b5e4fbf2c5a30</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/b957be8b0ed3c5b38434db606122e2904e121de4</url>
    <id>b957be8b0ed3c5b38434db606122e2904e121de4</id>
    <committed-date>2009-01-18T10:00:08-08:00</committed-date>
    <authored-date>2009-01-18T10:00:08-08:00</authored-date>
    <message>Prepared struct node for stacks of shadow nodes

So far dynamic translator stacks were created in the following
fashion: nsmux created a shadow node on which the whole
dynamic translator stack was built. This commit starts the
transition to a different strategy: the new approach consists
in setting *each* dynamic translator on its personal shadow
node. To achieve such functionality the set of fiels of struct
node was modified and the bits of code that manipulated these
fields were stripped out. The code is not functional now. The
coming commits will bring it back to life.</message>
    <tree>6da2b85f655d61b0a14b1c4b30c96df69a31ed87</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>a54273639f6afd659c15326cb997922fcecfe89a</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/fd0bc23b08aa9ff76d61f753149b5e4fbf2c5a30</url>
    <id>fd0bc23b08aa9ff76d61f753149b5e4fbf2c5a30</id>
    <committed-date>2008-12-12T11:28:52-08:00</committed-date>
    <authored-date>2008-12-12T11:28:52-08:00</authored-date>
    <message>Ports in shadow nodes are opened by the translator starting routine now.

Before, netfs_S_dir_lookup used to open the ports in shadow,
nodes. This could cause conflicts with the flags required by
the translator starting up on the node. Now the port is opened
only based on the flags requested by the translator being
launched.</message>
    <tree>34f6dea23e5727d2240cf4c2b69d5992c0dd543e</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>59f4d4d2b67028c01f41ea0de0f12934b4fad07b</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/a54273639f6afd659c15326cb997922fcecfe89a</url>
    <id>a54273639f6afd659c15326cb997922fcecfe89a</id>
    <committed-date>2008-11-21T13:54:40-08:00</committed-date>
    <authored-date>2008-11-21T13:54:40-08:00</authored-date>
    <message>Moved the code to GCS

Now the code is (hopefully) compliant with GNU Coding Standards.</message>
    <tree>3f240fed8fcfd7f14cbc5b7d059f48f6eb9707cb</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>2ca81a7c1717477766d7e3882e13f4b414e2fead</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/59f4d4d2b67028c01f41ea0de0f12934b4fad07b</url>
    <id>59f4d4d2b67028c01f41ea0de0f12934b4fad07b</id>
    <committed-date>2008-11-07T12:33:49-08:00</committed-date>
    <authored-date>2008-11-07T12:33:49-08:00</authored-date>
    <message>node_set_translators now sets multiple translators correctly.

node_set_translators used to count the translators in the list
and set the first one so many times as there were translators.
This bug is killed now.</message>
    <tree>ea37e0cec351c6cb835bfbb6f137036af0a1f75f</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>ea0e131a27ca72e15be6af24d283df7406be0b7c</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/2ca81a7c1717477766d7e3882e13f4b414e2fead</url>
    <id>2ca81a7c1717477766d7e3882e13f4b414e2fead</id>
    <committed-date>2008-10-10T13:10:31-07:00</committed-date>
    <authored-date>2008-10-10T13:10:31-07:00</authored-date>
    <message>Made netfs_S_file_get_translator_cntl use the untranslated version of the real node

Now netfs_S_file_get_translator_cntl calls the
file_get_translator_cntl routine on the untranslated version of
the real node, which makes it possible for the filter to trace
the real translator stack.</message>
    <tree>2f26ecda533ede04c46a087dc0c83e0254b227ff</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>7ef410a8a63a7e8ff206fe2baeea88a82fac48a3</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/ea0e131a27ca72e15be6af24d283df7406be0b7c</url>
    <id>ea0e131a27ca72e15be6af24d283df7406be0b7c</id>
    <committed-date>2008-10-10T11:40:15-07:00</committed-date>
    <authored-date>2008-10-10T11:40:15-07:00</authored-date>
    <message>Added the code of always looking up the untranslated real node

netfs_attempt_lookup_improved will now lookup the requested file
both with the requested flags and in an untranslated fashion.
This will allow netfs_S_file_get_translator_cntl to correctly
redirect requests to the real filesystem node.</message>
    <tree>7b64bd6ed0f995d22fad2020f2b761e4dc72d3f5</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e266d6a45c1cd1269872528dbe148f88a01ac081</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/7ef410a8a63a7e8ff206fe2baeea88a82fac48a3</url>
    <id>7ef410a8a63a7e8ff206fe2baeea88a82fac48a3</id>
    <committed-date>2008-10-10T11:16:30-07:00</committed-date>
    <authored-date>2008-10-10T11:16:30-07:00</authored-date>
    <message>Added the port to the untranslated version of the real node to the netnode

When 'file,,x' is requested, nsmux cannot tell whether 'x'
is a filter or not and whether it will require the untranslated
version of the file or not. However, when
netfs_S_file_get_translator_cntl would like to show the
translator stack on the *real* node, it will need the
untranslated version of the node, which must be available by
that time. The new field in netnode solves this issue.</message>
    <tree>85cf9bc66be0433e434014bc998d7e5540b83ffe</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>d60dd9120b1a50c92b0aefdc3a76618d74b5e0f1</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/e266d6a45c1cd1269872528dbe148f88a01ac081</url>
    <id>e266d6a45c1cd1269872528dbe148f88a01ac081</id>
    <committed-date>2008-10-10T11:14:25-07:00</committed-date>
    <authored-date>2008-10-10T11:14:25-07:00</authored-date>
    <message>Removed the paragraph about propagating translators into directories from README

Earlier the README said that nsmux will propagate translators
into a directory if it will be set on a directory. However,
this functionality will be later implemented as a separate
translator, therefore nsmux shall not care for this task in
the future.</message>
    <tree>4ef73887e2fc11b673640506f0035692176b2b39</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>b973a117cae3021b87d408af573bb1dbe153c132</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/d60dd9120b1a50c92b0aefdc3a76618d74b5e0f1</url>
    <id>d60dd9120b1a50c92b0aefdc3a76618d74b5e0f1</id>
    <committed-date>2008-10-10T11:11:03-07:00</committed-date>
    <authored-date>2008-10-10T11:11:03-07:00</authored-date>
    <message>Added the code for recognizing non-root nodes to netfs_S_file_get_translator_cntl

Now netfs_file_get_translator_cntl will recognize whether it
is called for the root node or not. In case the node it is
called on is not the root, it will call file_get_translator_cntl
on the real node, so that filters could trace translator stacks
on real nodes.</message>
    <tree>bcc6b8acd73e7e1d6e1e7142ce22e3268e1eb3f8</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>41e54572aac563537d961b3f284c100411c59532</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/b973a117cae3021b87d408af573bb1dbe153c132</url>
    <id>b973a117cae3021b87d408af573bb1dbe153c132</id>
    <committed-date>2008-10-03T01:03:44-07:00</committed-date>
    <authored-date>2008-10-03T01:03:44-07:00</authored-date>
    <message>Copied the implementation of netfs_S_file_get_translator_cntl from libdiskfs.

By default, libnetfs does not implement this callback, which,
BTW, makes impossible to trace the translator stack consisting
of libnetfs translators. nsmux not only needs an implementation
of this routine, but also requires customizations in order for
filters to trace translator stacks on real nodes.</message>
    <tree>832b7ba1e8dd7c29a40d45560c85f3492186a517</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>0d2f7d724254ad78d61b4a2004879b90bf2587d4</id>
      </parent>
    </parents>
    <author>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </author>
    <url>http://github.com/scolobb/nsmux/commit/41e54572aac563537d961b3f284c100411c59532</url>
    <id>41e54572aac563537d961b3f284c100411c59532</id>
    <committed-date>2008-10-03T01:01:10-07:00</committed-date>
    <authored-date>2008-10-03T01:01:10-07:00</authored-date>
    <message>Revert &quot;Cloned the native implementation of netfs_S_fsys_getroot.&quot;

This reverts commit 7200dac108c4a8981b7f7f5f90757409c3e6d5bf.</message>
    <tree>23a256044ceedc93deb4576231473e8b26fc26a8</tree>
    <committer>
      <name>Sergiu Ivanov</name>
      <email>unlimitedscolobb@gmail.com</email>
    </committer>
  </commit>
</commits>
