[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]

[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts.  A copy of the license
is included in the section entitled
[[GNU_Free_Documentation_License|/fdl]]."]]"""]]

# scolobb

Sergiu Ivanov, interested non-student

Mail: <mailto:unlimitedscolobb@gmail.com>

Project: Namespace-based translator selection

---

## Current Task

Write the filesystem proxy for namespace-based translator selection (*nsmux*).

The code is at <http://github.com/scolobb/nsmux/tree/master>.

---

###Did this week

* Modified the node cache so that it maintains shadow nodes alive.

###Plans for the next week

* Implement the shutting down of translator stacks when *nsmux* is asked to go away (in case **antrik** considers that necessary).

* Make *nsmux* provide the access to the translator stack of the real node, in case a translator (mainly, a filter) should ask for its underlying node to be opened in O_NOTRANS mode.

---

###Current Status

####DONE:

* The skeleton which mirrors the filesystem.

* Provide proxy nodes (modify the standard version of netfs_S_dir_lookup).

####TODO:

* Create the generic filtering translator.

* Create the translator '0' (providing the untranslated version of the
  node).

* Create the "recursive wrappers" for one-node translators.

* Create special translators for the main proxy so that its functionality
  should be complete.

* Implement sharing of dynamic translator stacks where possible.

* Make dynamic translators go away as soon as they are not required.

* Refine the skeleton in several places so that it should become faster
  and more reliable.

* Kill bugs.

* Integrate nsmux upstream.

* Solve the libtrivfs stacking issue.

* Patch libnetfs (it does not support file_get_translator_cntl, for
  instance).

---

###Progress

####8: Fri Sep 19:

> Modified the ncache so that it now maintains shadow nodes (and directory nodes too, it is a side effect at the moment) alive.

####7: Sat Aug 30 - Fri Sep 5:

> Added the code for shutting down dynamic translator stacks.

####6: Mon Aug 4 - Fri Aug 29:

> Implemented the proxy nodes.

####5: Thu Jul 24 - Thu Jul 24:

> Created a *libnetfs*-based one-node translator, working exactly like the *libtrivfs*-based translator I had written before; the former, however, can be included in a translator stack.

####4: Tue Jul 22 - Thu Jul 24:

> Attempted to make a *libtrivfs*-based translator to be able to be stacked upon itself (to be able to receive a translator on top of itself, more exactly); attempted to   borrow some code from *libnetfs* but this didn't bring any results.

####3: Sun Jul 20 - Tue Jul 22:

> Implemented the possibility to propagate a translator on all files belonging to a directory 'dir' in the request of the type 'dir,,x/'.

####2: Thu Jul 17 - Fri Jul 18:

> Extended the lookup code in *nsmux* to allow for looking up nodes like 'file,,x' and added the possibility to escape the double-comma in the following way: ',,,'.

####1: Mon Jul 12 - Tue Jul 13:

> Implemented a simple *libtrivfs*-based translator to test the lookup code for *nsmux*.

####0: Sat Jul 12 - Sat Jul 12:

> Made small changes to the code of *filterfs* to fit the needs of *nsmux*.

---

## Completed Tasks

####2: Sat May 3 - Fri Jul 17:

> Write a translator that should filter the contents of the directory it is set on according to some property. The property can be an arbitrary command.

> The code is at <http://github.com/scolobb/filterfs/tree/master>.

####1: Mon Apr 28 - Wed Apr 30:

> Wrote a Python extension module in C for retreiving the uptime. The module is based on the code of *w*.

####0: Sun Apr 27:

> Followed the code of *dmesgd* (<http://www.bddebian.com/junk/dmesgd/>) kindly offered by **bddebian** and rewrote it from scratch as a tutorial.