aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/IO/SharpCifs/Dcerpc/Msrpc/Srvsvc.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Emby.Server.Implementations/IO/SharpCifs/Dcerpc/Msrpc/Srvsvc.cs')
-rw-r--r--Emby.Server.Implementations/IO/SharpCifs/Dcerpc/Msrpc/Srvsvc.cs734
1 files changed, 734 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/IO/SharpCifs/Dcerpc/Msrpc/Srvsvc.cs b/Emby.Server.Implementations/IO/SharpCifs/Dcerpc/Msrpc/Srvsvc.cs
new file mode 100644
index 000000000..f33f48327
--- /dev/null
+++ b/Emby.Server.Implementations/IO/SharpCifs/Dcerpc/Msrpc/Srvsvc.cs
@@ -0,0 +1,734 @@
+// This code is derived from jcifs smb client library <jcifs at samba dot org>
+// Ported by J. Arturo <webmaster at komodosoft dot net>
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+using SharpCifs.Dcerpc.Ndr;
+
+namespace SharpCifs.Dcerpc.Msrpc
+{
+ public class Srvsvc
+ {
+ public static string GetSyntax()
+ {
+ return "4b324fc8-1670-01d3-1278-5a47bf6ee188:3.0";
+ }
+
+ public class ShareInfo0 : NdrObject
+ {
+ public string Netname;
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode(NdrBuffer dst)
+ {
+ dst.Align(4);
+ dst.Enc_ndr_referent(Netname, 1);
+ if (Netname != null)
+ {
+ dst = dst.Deferred;
+ dst.Enc_ndr_string(Netname);
+ }
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode(NdrBuffer src)
+ {
+ src.Align(4);
+ int netnamep = src.Dec_ndr_long();
+ if (netnamep != 0)
+ {
+ src = src.Deferred;
+ Netname = src.Dec_ndr_string();
+ }
+ }
+ }
+
+ public class ShareInfoCtr0 : NdrObject
+ {
+ public int Count;
+
+ public ShareInfo0[] Array;
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode(NdrBuffer dst)
+ {
+ dst.Align(4);
+ dst.Enc_ndr_long(Count);
+ dst.Enc_ndr_referent(Array, 1);
+ if (Array != null)
+ {
+ dst = dst.Deferred;
+ int arrays = Count;
+ dst.Enc_ndr_long(arrays);
+ int arrayi = dst.Index;
+ dst.Advance(4 * arrays);
+ dst = dst.Derive(arrayi);
+ for (int i = 0; i < arrays; i++)
+ {
+ Array[i].Encode(dst);
+ }
+ }
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode(NdrBuffer src)
+ {
+ src.Align(4);
+ Count = src.Dec_ndr_long();
+ int arrayp = src.Dec_ndr_long();
+ if (arrayp != 0)
+ {
+ src = src.Deferred;
+ int arrays = src.Dec_ndr_long();
+ int arrayi = src.Index;
+ src.Advance(4 * arrays);
+ if (Array == null)
+ {
+ if (arrays < 0 || arrays > unchecked(0xFFFF))
+ {
+ throw new NdrException(NdrException.InvalidConformance);
+ }
+ Array = new ShareInfo0[arrays];
+ }
+ src = src.Derive(arrayi);
+ for (int i = 0; i < arrays; i++)
+ {
+ if (Array[i] == null)
+ {
+ Array[i] = new ShareInfo0();
+ }
+ Array[i].Decode(src);
+ }
+ }
+ }
+ }
+
+ public class ShareInfo1 : NdrObject
+ {
+ public string Netname;
+
+ public int Type;
+
+ public string Remark;
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode(NdrBuffer dst)
+ {
+ dst.Align(4);
+ dst.Enc_ndr_referent(Netname, 1);
+ dst.Enc_ndr_long(Type);
+ dst.Enc_ndr_referent(Remark, 1);
+ if (Netname != null)
+ {
+ dst = dst.Deferred;
+ dst.Enc_ndr_string(Netname);
+ }
+ if (Remark != null)
+ {
+ dst = dst.Deferred;
+ dst.Enc_ndr_string(Remark);
+ }
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode(NdrBuffer src)
+ {
+ src.Align(4);
+ int netnamep = src.Dec_ndr_long();
+ Type = src.Dec_ndr_long();
+ int remarkp = src.Dec_ndr_long();
+ if (netnamep != 0)
+ {
+ src = src.Deferred;
+ Netname = src.Dec_ndr_string();
+ }
+ if (remarkp != 0)
+ {
+ src = src.Deferred;
+ Remark = src.Dec_ndr_string();
+ }
+ }
+ }
+
+ public class ShareInfoCtr1 : NdrObject
+ {
+ public int Count;
+
+ public ShareInfo1[] Array;
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode(NdrBuffer dst)
+ {
+ dst.Align(4);
+ dst.Enc_ndr_long(Count);
+ dst.Enc_ndr_referent(Array, 1);
+ if (Array != null)
+ {
+ dst = dst.Deferred;
+ int arrays = Count;
+ dst.Enc_ndr_long(arrays);
+ int arrayi = dst.Index;
+ dst.Advance(12 * arrays);
+ dst = dst.Derive(arrayi);
+ for (int i = 0; i < arrays; i++)
+ {
+ Array[i].Encode(dst);
+ }
+ }
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode(NdrBuffer src)
+ {
+ src.Align(4);
+ Count = src.Dec_ndr_long();
+ int arrayp = src.Dec_ndr_long();
+ if (arrayp != 0)
+ {
+ src = src.Deferred;
+ int arrays = src.Dec_ndr_long();
+ int arrayi = src.Index;
+ src.Advance(12 * arrays);
+ if (Array == null)
+ {
+ if (arrays < 0 || arrays > unchecked(0xFFFF))
+ {
+ throw new NdrException(NdrException.InvalidConformance);
+ }
+ Array = new ShareInfo1[arrays];
+ }
+ src = src.Derive(arrayi);
+ for (int i = 0; i < arrays; i++)
+ {
+ if (Array[i] == null)
+ {
+ Array[i] = new ShareInfo1();
+ }
+ Array[i].Decode(src);
+ }
+ }
+ }
+ }
+
+ public class ShareInfo502 : NdrObject
+ {
+ public string Netname;
+
+ public int Type;
+
+ public string Remark;
+
+ public int Permissions;
+
+ public int MaxUses;
+
+ public int CurrentUses;
+
+ public string Path;
+
+ public string Password;
+
+ public int SdSize;
+
+ public byte[] SecurityDescriptor;
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode(NdrBuffer dst)
+ {
+ dst.Align(4);
+ dst.Enc_ndr_referent(Netname, 1);
+ dst.Enc_ndr_long(Type);
+ dst.Enc_ndr_referent(Remark, 1);
+ dst.Enc_ndr_long(Permissions);
+ dst.Enc_ndr_long(MaxUses);
+ dst.Enc_ndr_long(CurrentUses);
+ dst.Enc_ndr_referent(Path, 1);
+ dst.Enc_ndr_referent(Password, 1);
+ dst.Enc_ndr_long(SdSize);
+ dst.Enc_ndr_referent(SecurityDescriptor, 1);
+ if (Netname != null)
+ {
+ dst = dst.Deferred;
+ dst.Enc_ndr_string(Netname);
+ }
+ if (Remark != null)
+ {
+ dst = dst.Deferred;
+ dst.Enc_ndr_string(Remark);
+ }
+ if (Path != null)
+ {
+ dst = dst.Deferred;
+ dst.Enc_ndr_string(Path);
+ }
+ if (Password != null)
+ {
+ dst = dst.Deferred;
+ dst.Enc_ndr_string(Password);
+ }
+ if (SecurityDescriptor != null)
+ {
+ dst = dst.Deferred;
+ int securityDescriptors = SdSize;
+ dst.Enc_ndr_long(securityDescriptors);
+ int securityDescriptori = dst.Index;
+ dst.Advance(1 * securityDescriptors);
+ dst = dst.Derive(securityDescriptori);
+ for (int i = 0; i < securityDescriptors; i++)
+ {
+ dst.Enc_ndr_small(SecurityDescriptor[i]);
+ }
+ }
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode(NdrBuffer src)
+ {
+ src.Align(4);
+ int netnamep = src.Dec_ndr_long();
+ Type = src.Dec_ndr_long();
+ int remarkp = src.Dec_ndr_long();
+ Permissions = src.Dec_ndr_long();
+ MaxUses = src.Dec_ndr_long();
+ CurrentUses = src.Dec_ndr_long();
+ int pathp = src.Dec_ndr_long();
+ int passwordp = src.Dec_ndr_long();
+ SdSize = src.Dec_ndr_long();
+ int securityDescriptorp = src.Dec_ndr_long();
+ if (netnamep != 0)
+ {
+ src = src.Deferred;
+ Netname = src.Dec_ndr_string();
+ }
+ if (remarkp != 0)
+ {
+ src = src.Deferred;
+ Remark = src.Dec_ndr_string();
+ }
+ if (pathp != 0)
+ {
+ src = src.Deferred;
+ Path = src.Dec_ndr_string();
+ }
+ if (passwordp != 0)
+ {
+ src = src.Deferred;
+ Password = src.Dec_ndr_string();
+ }
+ if (securityDescriptorp != 0)
+ {
+ src = src.Deferred;
+ int securityDescriptors = src.Dec_ndr_long();
+ int securityDescriptori = src.Index;
+ src.Advance(1 * securityDescriptors);
+ if (SecurityDescriptor == null)
+ {
+ if (securityDescriptors < 0 || securityDescriptors > unchecked(0xFFFF))
+ {
+ throw new NdrException(NdrException.InvalidConformance);
+ }
+ SecurityDescriptor = new byte[securityDescriptors];
+ }
+ src = src.Derive(securityDescriptori);
+ for (int i = 0; i < securityDescriptors; i++)
+ {
+ SecurityDescriptor[i] = unchecked((byte)src.Dec_ndr_small());
+ }
+ }
+ }
+ }
+
+ public class ShareInfoCtr502 : NdrObject
+ {
+ public int Count;
+
+ public ShareInfo502[] Array;
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode(NdrBuffer dst)
+ {
+ dst.Align(4);
+ dst.Enc_ndr_long(Count);
+ dst.Enc_ndr_referent(Array, 1);
+ if (Array != null)
+ {
+ dst = dst.Deferred;
+ int arrays = Count;
+ dst.Enc_ndr_long(arrays);
+ int arrayi = dst.Index;
+ dst.Advance(40 * arrays);
+ dst = dst.Derive(arrayi);
+ for (int i = 0; i < arrays; i++)
+ {
+ Array[i].Encode(dst);
+ }
+ }
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode(NdrBuffer src)
+ {
+ src.Align(4);
+ Count = src.Dec_ndr_long();
+ int arrayp = src.Dec_ndr_long();
+ if (arrayp != 0)
+ {
+ src = src.Deferred;
+ int arrays = src.Dec_ndr_long();
+ int arrayi = src.Index;
+ src.Advance(40 * arrays);
+ if (Array == null)
+ {
+ if (arrays < 0 || arrays > unchecked(0xFFFF))
+ {
+ throw new NdrException(NdrException.InvalidConformance);
+ }
+ Array = new ShareInfo502[arrays];
+ }
+ src = src.Derive(arrayi);
+ for (int i = 0; i < arrays; i++)
+ {
+ if (Array[i] == null)
+ {
+ Array[i] = new ShareInfo502();
+ }
+ Array[i].Decode(src);
+ }
+ }
+ }
+ }
+
+ public class ShareEnumAll : DcerpcMessage
+ {
+ public override int GetOpnum()
+ {
+ return unchecked(0x0f);
+ }
+
+ public int Retval;
+
+ public string Servername;
+
+ public int Level;
+
+ public NdrObject Info;
+
+ public int Prefmaxlen;
+
+ public int Totalentries;
+
+ public int ResumeHandle;
+
+ public ShareEnumAll(string servername, int level, NdrObject info, int prefmaxlen,
+ int totalentries, int resumeHandle)
+ {
+ this.Servername = servername;
+ this.Level = level;
+ this.Info = info;
+ this.Prefmaxlen = prefmaxlen;
+ this.Totalentries = totalentries;
+ this.ResumeHandle = resumeHandle;
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode_in(NdrBuffer dst)
+ {
+ dst.Enc_ndr_referent(Servername, 1);
+ if (Servername != null)
+ {
+ dst.Enc_ndr_string(Servername);
+ }
+ dst.Enc_ndr_long(Level);
+ int descr = Level;
+ dst.Enc_ndr_long(descr);
+ dst.Enc_ndr_referent(Info, 1);
+ if (Info != null)
+ {
+ dst = dst.Deferred;
+ Info.Encode(dst);
+ }
+ dst.Enc_ndr_long(Prefmaxlen);
+ dst.Enc_ndr_long(ResumeHandle);
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode_out(NdrBuffer src)
+ {
+ Level = src.Dec_ndr_long();
+ src.Dec_ndr_long();
+ int infop = src.Dec_ndr_long();
+ if (infop != 0)
+ {
+ if (Info == null)
+ {
+ Info = new ShareInfoCtr0();
+ }
+ src = src.Deferred;
+ Info.Decode(src);
+ }
+ Totalentries = src.Dec_ndr_long();
+ ResumeHandle = src.Dec_ndr_long();
+ Retval = src.Dec_ndr_long();
+ }
+ }
+
+ public class ShareGetInfo : DcerpcMessage
+ {
+ public override int GetOpnum()
+ {
+ return unchecked(0x10);
+ }
+
+ public int Retval;
+
+ public string Servername;
+
+ public string Sharename;
+
+ public int Level;
+
+ public NdrObject Info;
+
+ public ShareGetInfo(string servername, string sharename, int level, NdrObject info
+ )
+ {
+ this.Servername = servername;
+ this.Sharename = sharename;
+ this.Level = level;
+ this.Info = info;
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode_in(NdrBuffer dst)
+ {
+ dst.Enc_ndr_referent(Servername, 1);
+ if (Servername != null)
+ {
+ dst.Enc_ndr_string(Servername);
+ }
+ dst.Enc_ndr_string(Sharename);
+ dst.Enc_ndr_long(Level);
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode_out(NdrBuffer src)
+ {
+ src.Dec_ndr_long();
+ int infop = src.Dec_ndr_long();
+ if (infop != 0)
+ {
+ if (Info == null)
+ {
+ Info = new ShareInfo0();
+ }
+ src = src.Deferred;
+ Info.Decode(src);
+ }
+ Retval = src.Dec_ndr_long();
+ }
+ }
+
+ public class ServerInfo100 : NdrObject
+ {
+ public int PlatformId;
+
+ public string Name;
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode(NdrBuffer dst)
+ {
+ dst.Align(4);
+ dst.Enc_ndr_long(PlatformId);
+ dst.Enc_ndr_referent(Name, 1);
+ if (Name != null)
+ {
+ dst = dst.Deferred;
+ dst.Enc_ndr_string(Name);
+ }
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode(NdrBuffer src)
+ {
+ src.Align(4);
+ PlatformId = src.Dec_ndr_long();
+ int namep = src.Dec_ndr_long();
+ if (namep != 0)
+ {
+ src = src.Deferred;
+ Name = src.Dec_ndr_string();
+ }
+ }
+ }
+
+ public class ServerGetInfo : DcerpcMessage
+ {
+ public override int GetOpnum()
+ {
+ return unchecked(0x15);
+ }
+
+ public int Retval;
+
+ public string Servername;
+
+ public int Level;
+
+ public NdrObject Info;
+
+ public ServerGetInfo(string servername, int level, NdrObject info)
+ {
+ this.Servername = servername;
+ this.Level = level;
+ this.Info = info;
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode_in(NdrBuffer dst)
+ {
+ dst.Enc_ndr_referent(Servername, 1);
+ if (Servername != null)
+ {
+ dst.Enc_ndr_string(Servername);
+ }
+ dst.Enc_ndr_long(Level);
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode_out(NdrBuffer src)
+ {
+ src.Dec_ndr_long();
+ int infop = src.Dec_ndr_long();
+ if (infop != 0)
+ {
+ if (Info == null)
+ {
+ Info = new ServerInfo100();
+ }
+ src = src.Deferred;
+ Info.Decode(src);
+ }
+ Retval = src.Dec_ndr_long();
+ }
+ }
+
+ public class TimeOfDayInfo : NdrObject
+ {
+ public int Elapsedt;
+
+ public int Msecs;
+
+ public int Hours;
+
+ public int Mins;
+
+ public int Secs;
+
+ public int Hunds;
+
+ public int Timezone;
+
+ public int Tinterval;
+
+ public int Day;
+
+ public int Month;
+
+ public int Year;
+
+ public int Weekday;
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode(NdrBuffer dst)
+ {
+ dst.Align(4);
+ dst.Enc_ndr_long(Elapsedt);
+ dst.Enc_ndr_long(Msecs);
+ dst.Enc_ndr_long(Hours);
+ dst.Enc_ndr_long(Mins);
+ dst.Enc_ndr_long(Secs);
+ dst.Enc_ndr_long(Hunds);
+ dst.Enc_ndr_long(Timezone);
+ dst.Enc_ndr_long(Tinterval);
+ dst.Enc_ndr_long(Day);
+ dst.Enc_ndr_long(Month);
+ dst.Enc_ndr_long(Year);
+ dst.Enc_ndr_long(Weekday);
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode(NdrBuffer src)
+ {
+ src.Align(4);
+ Elapsedt = src.Dec_ndr_long();
+ Msecs = src.Dec_ndr_long();
+ Hours = src.Dec_ndr_long();
+ Mins = src.Dec_ndr_long();
+ Secs = src.Dec_ndr_long();
+ Hunds = src.Dec_ndr_long();
+ Timezone = src.Dec_ndr_long();
+ Tinterval = src.Dec_ndr_long();
+ Day = src.Dec_ndr_long();
+ Month = src.Dec_ndr_long();
+ Year = src.Dec_ndr_long();
+ Weekday = src.Dec_ndr_long();
+ }
+ }
+
+ public class RemoteTod : DcerpcMessage
+ {
+ public override int GetOpnum()
+ {
+ return unchecked(0x1c);
+ }
+
+ public int Retval;
+
+ public string Servername;
+
+ public TimeOfDayInfo Info;
+
+ public RemoteTod(string servername, TimeOfDayInfo info)
+ {
+ this.Servername = servername;
+ this.Info = info;
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Encode_in(NdrBuffer dst)
+ {
+ dst.Enc_ndr_referent(Servername, 1);
+ if (Servername != null)
+ {
+ dst.Enc_ndr_string(Servername);
+ }
+ }
+
+ /// <exception cref="SharpCifs.Dcerpc.Ndr.NdrException"></exception>
+ public override void Decode_out(NdrBuffer src)
+ {
+ int infop = src.Dec_ndr_long();
+ if (infop != 0)
+ {
+ if (Info == null)
+ {
+ Info = new TimeOfDayInfo();
+ }
+ Info.Decode(src);
+ }
+ Retval = src.Dec_ndr_long();
+ }
+ }
+ }
+}