/*const int MODE_FMT = 0170000; * const int MODE_DIR = 0040000; * const int MODE_CHR = 0020000; * const int MODE_BLK = 0060000; * const int MODE_REG = 0100000; * const int MODE_LNK = 0120000; * const int MODE_SOCK = 0140000; * const int MODE_FIFO = 0010000;*/ #endregion Constants #region Methods public void Connect(IPAddress Address, int UserID, int GroupID, int ClientTimeout, System.Text.Encoding characterEncoding, bool useSecurePort, bool useCache) { if (ClientTimeout == 0) { ClientTimeout = 60000; } if (characterEncoding == null) { characterEncoding = System.Text.Encoding.ASCII; } _RootDirectoryHandleObject = null; _CurrentItemHandleObject = null; _MountedDevice = String.Empty; _CurrentItem = String.Empty; _GroupID = GroupID; _UserID = UserID; _MountProtocolV2 = new NFSv2MountProtocolClient(Address, OncRpcProtocols.ONCRPC_UDP, useSecurePort); _ProtocolV2 = new NFSv2ProtocolClient(Address, OncRpcProtocols.ONCRPC_UDP, useSecurePort); OncRpcClientAuthUnix authUnix = new OncRpcClientAuthUnix(System.Environment.MachineName, UserID, GroupID); _MountProtocolV2.GetClient().setAuth(authUnix); _MountProtocolV2.GetClient().setTimeout(ClientTimeout); _MountProtocolV2.GetClient().setCharacterEncoding(characterEncoding.WebName); _ProtocolV2.GetClient().setAuth(authUnix); _ProtocolV2.GetClient().setTimeout(ClientTimeout); _ProtocolV2.GetClient().setCharacterEncoding(characterEncoding.WebName); }
public void Connect(IPAddress Address, int UserID, int GroupID, int ClientTimeout, System.Text.Encoding characterEncoding, bool useSecurePort, bool useCache) { if (ClientTimeout == 0) { ClientTimeout = 60000; } if (characterEncoding == null) { characterEncoding = System.Text.Encoding.ASCII; } _CurrentItem = String.Empty; useFHCache = useCache; if (useFHCache) { cached_attrs = new Hashtable();//new Dictionary<string, NFSAttributes>(); } _rootFH = null; //_cwd = null; _cwf = null; //_cwhTree = new List<nfs_fh4>(); //treePosition = 0; _GroupID = GroupID; _UserID = UserID; _ProtocolV4 = new NFSv4ProtocolClient(Address, OncRpcProtocols.ONCRPC_TCP, useSecurePort); OncRpcClientAuthUnix authUnix = new OncRpcClientAuthUnix(Address.ToString(), UserID, GroupID); _ProtocolV4.GetClient().setAuth(authUnix); _ProtocolV4.GetClient().setTimeout(ClientTimeout); _ProtocolV4.GetClient().setCharacterEncoding(characterEncoding.WebName); //send null dummy procedure to see if server is responding sendNullPRocedure(); }
/// <exception cref="org.acplt.oncrpc.OncRpcException"></exception> /// <exception cref="System.IO.IOException"></exception> public EchoClientTest() { // // Create a portmap client object, which can then be used to contact // the local ONC/RPC ServerTest test server. // OncRpcClient client = new OncRpcTcpClient(IPAddress.Loopback, unchecked ((int)(0x49679)), 1, 0); // // Ping the test server... // System.Console.Out.Write("pinging test server: "); try { client.call(0, XdrVoid.XDR_VOID, XdrVoid.XDR_VOID ); } catch (OncRpcException e) { System.Console.Out.WriteLine("method call failed unexpectedly:"); System.Console.Out.WriteLine(e.StackTrace); System.Environment.Exit(1); } System.Console.Out.WriteLine("test server is alive."); // // Now check the echo RPC call... // string[] messages = new string[] { "Open Source", "is not yet", "another buzzword." }; checkEcho(client, messages); // // Now test AUTH_UNIX authentication. First start with an // invalid credential... // OncRpcClientAuth auth = new OncRpcClientAuthUnix ("marvin", 0, 0, new int[0]); client.setAuth(auth); System.Console.Out.Write("checking AUTH_UNIX with invalid credential: "); try { client.call(0, XdrVoid.XDR_VOID, XdrVoid.XDR_VOID ); } catch (OncRpcAuthenticationException ae) { if (ae.getAuthStatus() != OncRpcAuthStatus.ONCRPC_AUTH_BADCRED) { System.Console.Out.WriteLine("received wrong authentication exception with status of " + ae.getAuthStatus()); System.Console.Out.WriteLine(ae.StackTrace); System.Environment.Exit(1); } } catch (OncRpcException e) { System.Console.Out.WriteLine("method call failed unexpectedly:"); System.Console.Out.WriteLine(e.StackTrace); System.Environment.Exit(1); } System.Console.Out.WriteLine("passed."); auth = new OncRpcClientAuthUnix("marvin", 42, 815, new int[0]); client.setAuth(auth); messages = new string[] { "AUTH_UNIX", "is like", "*NO* authentication", "--", "it" , "uses", "*NO CRYPTOGRAPHY*", "for securing", "ONC/RPC messages" }; checkEcho(client, messages); client.setAuth(null); // // Release resources bound by ONC/RPC client object as soon as possible // so might help the garbage wo/man. Yeah, this is now a political // correct comment. // client.close(); client = null; }