Difference between revisions of "SoC/2011/smbconf"
(Created page with "= RPC support for samba configuration = Student name: Vicentiu Ciorbaru") |
(→temp) |
||
(12 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
Student name: Vicentiu Ciorbaru | Student name: Vicentiu Ciorbaru | ||
+ | |||
+ | student git repo: https://gitorious.org/samba-gsoc-development/samba-gsoc-development | ||
+ | |||
+ | == intro == | ||
+ | |||
+ | Samba has a registry based configuration backend: Configuration data is stored inside the registry key HKEY_LOCAL_MACHINE\Software\Samba\smbconf. A tool for reading and writing this registry stored configuration is "net conf". Access to the registry-stored configuration is performed through a module that makes use of the "reg_api" module which is the backend code for direct local access to the registry database. The reg_api interface is similar to the WINREG rpc interface. The basic goal of this project is to develop a remote variant of the "net conf" tool that allows for configuring a remote samba server with the same convenience as offered by the "net conf" tool. | ||
+ | |||
+ | |||
+ | == resources == | ||
+ | |||
+ | * man smb.conf | ||
+ | * man net | ||
+ | * http://www.samba.org/~obnox/presentations/linux-kongress-2008/lk2008-obnox.pdf | ||
+ | * http://www.samba.org/~obnox/presentations/sambaXP-2009/samba-and-ctdb.pdf | ||
+ | |||
+ | == temp == | ||
+ | |||
+ | layering: | ||
+ | |||
+ | net conf --> libsmbconf --> registry backend:reg_api --> registry database | ||
+ | |||
+ | possible for a new "net rpc conf": | ||
+ | |||
+ | net rpc conf --> libsmbconf --> remote registry backend:winreg --> remote server --> registry database | ||
+ | |||
+ | similar: | ||
+ | compare "net registry" to "net rpc registry" | ||
+ | (source3/utils/net_registry.c and source3/utils/net_rpc_registry.c) | ||
+ | |||
+ | |||
+ | alternative approaches (maybe as a second step): | ||
+ | |||
+ | * create a wrapper around winreg and reg_api that could be used in libsmbconf and could also be used to unify the logic of net registry and net rpc registry | ||
+ | |||
+ | |||
+ | TODO: | ||
+ | * get acquainted with net conf, libsmbconf, net registry, net rpc registry [DONE] | ||
+ | * compare implementation of net registry and net rpc registry [IN PROCESS] | ||
+ | * get an idea of how to create a remote registry variant of "net conf" [IN PROCESS] | ||
+ | * basically: write a remote registry backend for "libsmbconf" | ||
+ | |||
+ | |||
+ | libsmbconf: | ||
+ | * lib/smbconf/ : general api, text backend | ||
+ | * source3/lib/smbconf/ : registry backend | ||
+ | |||
+ | STEP 1: | ||
+ | * create net_rpc_conf.c (.h) | ||
+ | * implement basic command (HINT: Have a look at other commands to see how others fit in) | ||
+ | -* get net rpc conf list using something like net rpc registry |
Latest revision as of 14:56, 29 June 2011
RPC support for samba configuration
Student name: Vicentiu Ciorbaru
student git repo: https://gitorious.org/samba-gsoc-development/samba-gsoc-development
intro
Samba has a registry based configuration backend: Configuration data is stored inside the registry key HKEY_LOCAL_MACHINE\Software\Samba\smbconf. A tool for reading and writing this registry stored configuration is "net conf". Access to the registry-stored configuration is performed through a module that makes use of the "reg_api" module which is the backend code for direct local access to the registry database. The reg_api interface is similar to the WINREG rpc interface. The basic goal of this project is to develop a remote variant of the "net conf" tool that allows for configuring a remote samba server with the same convenience as offered by the "net conf" tool.
resources
- man smb.conf
- man net
- http://www.samba.org/~obnox/presentations/linux-kongress-2008/lk2008-obnox.pdf
- http://www.samba.org/~obnox/presentations/sambaXP-2009/samba-and-ctdb.pdf
temp
layering:
net conf --> libsmbconf --> registry backend:reg_api --> registry database
possible for a new "net rpc conf":
net rpc conf --> libsmbconf --> remote registry backend:winreg --> remote server --> registry database
similar: compare "net registry" to "net rpc registry" (source3/utils/net_registry.c and source3/utils/net_rpc_registry.c)
alternative approaches (maybe as a second step):
- create a wrapper around winreg and reg_api that could be used in libsmbconf and could also be used to unify the logic of net registry and net rpc registry
TODO:
- get acquainted with net conf, libsmbconf, net registry, net rpc registry [DONE]
- compare implementation of net registry and net rpc registry [IN PROCESS]
- get an idea of how to create a remote registry variant of "net conf" [IN PROCESS]
- basically: write a remote registry backend for "libsmbconf"
libsmbconf:
- lib/smbconf/ : general api, text backend
- source3/lib/smbconf/ : registry backend
STEP 1:
- create net_rpc_conf.c (.h)
- implement basic command (HINT: Have a look at other commands to see how others fit in)
-* get net rpc conf list using something like net rpc registry