Difference between revisions of "Network Storage"

From LinuxMCE
Jump to: navigation, search
Line 22: Line 22:
  
 
This will create the child device for each share and prompt the user if the username or password are needed.
 
This will create the child device for each share and prompt the user if the username or password are needed.
 +
[[Category: Programmer's Guide]]

Revision as of 02:01, 6 September 2007

Summary: How Network Attached Storage (NAS) and Windows shares are made plug and play

First, the detected event is fired.

For a NAS this comes from dhcp monitor and has the ip/mac and plug and play plugin figures out what it is, like this:

/usr/pluto/bin/MessageSend dcerouter 0 -1001 2 65 52 3 53 2 5 "00:0D:0B:99:10:43" 28 "192.168.80.7"

For the “scan the network for windows shares” utility that always runs in the background, it explicitly sends a device detected event with the device template Generic File Server 1837, like this:

/usr/pluto/bin/MessageSend dcerouter 0 -1001 2 65 52 3 53 2 49 1837

Both the ‘generic file server’ and the nas devices like Maxtor & buffalo have a device data called “Pre Pnp Script”, which is set to: /usr/pluto/bin/CheckNASForPasswords.sh. This means that before actually creating the device, this script will be run and is expected to send a command CMD_Pre_Pnp_Script_Done which includes additional parameters. In the script the key thing is the: "182|1" change that 1 to a 0 if no password is required. Maybe we will need a different script for different NAS devices.

After that script runs, if 182|1 was specified, the user will be prompted for the usernname and password, as per: Pnp_PreCreateOptions::OkayToCreateDevice with the screen: SCREEN_Get_Username_Password_For_Devices.

Once the device is created, the configure script will be ran, for example: Configure_1794.sh for the Buffalo. This script should lookup the username and password for the device from the database and fire a 'device detected' for each network share, as follows:

/usr/pluto/bin/MessageSend dcerouter X -1001 2 65 52 3 53 2 49 1768 55 "182|1"

That that the X must be the device created above, since the file share will be a child of that. 1768 is the template for a samba share, 1769 for nfs. If the share does not require a password, leave off the 55 "182|1". If the username and password already specified in the database are valid for the share, then instead of 55 "182|1" do 55 "127|username|128|password".

This will create the child device for each share and prompt the user if the username or password are needed.