Documentation effort magma 0.0.20070911 released magma 0.0.20070829 released magma 0.0.20070806 released on SVN All the news
NEWS :: magma v.0.0.20070911 released on SVN and download area
Boot protocol has been revised. In place of using special protocol macros to exchange nodes, connecting node will use normal flare protocol operations to query nodes from bootserving node simply reading contents of directory /.dht
magma_mknod() now checks if mode param contains
informations about flare type and also checks flare type is not DIR.
Boot code now figure magma uid and gid from system files and
any other operation.
magmad is now installed suid and sgid as user magma and group
magma (which should be present in /etc/passwd and /etc/group)
utils.h provides new
function that returns an array of gid_t elements describing groups of user
uid. It's used mainly in
magma_simplify_path() function coded to simplify paths.
Mainly used by
protocol_console.c since FUSE already
simplify paths before passing to filesystem.
This function can:
- tear off muliple slash sequences
- tear off redundant './' portions
- resolve '/something/../' into '/'
ACL has been completed. Rules are read from file
/etc/magma/acl and are declared using this syntax:
/share/path: op /sub/path ipaddr[/mask] op /sub/path ipaddr[/mask] [...]
/share/path is the share exported by magma
op is one in r (read-only), w (read/write), n (no access)
/sub/path is an arbitrary path under /share/path
ipaddr[/mask] is the network part to which the rule applies.
Note that mask can be specified in the form n.n.n.n or in the form /N where N is a number between 0 and 32. If missing, a netmask of 255.255.255.255 is assumed, so 127.0.0.1 is considered a host address equivalent to 127.0.0.1/32.
Rules are matched using this flow:
- Select proper share
- For each rule of selected share:
- Check if
/sub/pathmatches at starting of query path; if not, ignore the rule.
- Compare how deep is this subpath in length compared to previous best subpath found. If lesser, ignore the rule.
- Is the netmask bigger than previous best rule mask. If not ignore the rule.
- Matching ipaddr and netmask. If does not match, ignore the rule.
- Check if is more restrictive than previous best rule. If operation
nits more strict than
wwhich in turn is more strict than
r. If less restrictive, ignore the rule.
- Check if
protocol_flare.c and mount.magma.c has been modified to
embed ACL. Checking is done inside each
magma_* function in
mounter client and inside each
transmit_* function on server
mount.magma now has a
command line option to specify the share to be mounted.
magmad should be modified to support multiple shares.