diff options
author | Sergiu Ivanov <unlimitedscolobb@gmail.com> | 2009-02-20 18:43:57 +0200 |
---|---|---|
committer | Sergiu Ivanov <unlimitedscolobb@gmail.com> | 2009-02-20 18:43:57 +0200 |
commit | 2fc7f8c49fc34cd2db65c36400200082a62138a1 (patch) | |
tree | 0ec2e55368532c8a12cfae9650cf211c63fc7e50 /node.c | |
parent | 0a878aaf9fadb891a6067f8f084baa8ca5c30521 (diff) |
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 ---...
Diffstat (limited to 'node.c')
-rw-r--r-- | node.c | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -821,11 +821,22 @@ error_t *underlying = p = ports_get_send_right (newpi); *underlying_type = MACH_MSG_TYPE_COPY_SEND; + /**underlying_type = MACH_MSG_TYPE_COPY_SEND;*/ + /**underlying_type = MACH_MSG_TYPE_MOVE_SEND;*/ + LOG_MSG ("node_set_translators.open_port: %ld", (long) *underlying); /*Drop our reference to the port */ ports_port_deref (newpi); + /* + char buf[256]; + char *_buf = buf; + size_t len = 256; + io_read (p, &_buf, &len, 0, len); + LOG_MSG ("node_set_translator: Read from np: '%s'", buf); + */ + /*Return the result of operations (everything should be okay here) */ return err; } /*open_port */ @@ -905,6 +916,6 @@ error_t /*Everything is OK here */ return 0; -} /*node_set_translators */ +} /*node_set_translator */ /*---------------------------------------------------------------------------*/ |