diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2013-09-09 15:52:24 +0400 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2013-09-09 15:52:24 +0400 |
commit | 32cabbc37f75e957f38a97fc2dfc15ddecae863a (patch) | |
tree | 0179c39641fb1090d112d6987bd9e5e2f6c350ea |
First commit
52 files changed, 3616 insertions, 0 deletions
diff --git a/SharpDHCPServer.sln b/SharpDHCPServer.sln new file mode 100644 index 0000000..ce3f0e9 --- /dev/null +++ b/SharpDHCPServer.sln @@ -0,0 +1,46 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDHCPServerLib", "SharpDHCPServerLib\SharpDHCPServerLib.csproj", "{B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDHCPServer_Sample", "SharpDHCPServer_Sample\SharpDHCPServer_Sample.csproj", "{E0A4A539-681E-45E1-84A8-C530BA129856}" +EndProject +Global + GlobalSection(SubversionScc) = preSolution + Svn-Managed = True + Manager = AnkhSVN - Subversion Support for Visual Studio + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}.Debug|x86.ActiveCfg = Debug|Any CPU + {B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}.Release|Any CPU.Build.0 = Release|Any CPU + {B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}.Release|x86.ActiveCfg = Release|Any CPU + {E0A4A539-681E-45E1-84A8-C530BA129856}.Debug|Any CPU.ActiveCfg = Debug|x86 + {E0A4A539-681E-45E1-84A8-C530BA129856}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {E0A4A539-681E-45E1-84A8-C530BA129856}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {E0A4A539-681E-45E1-84A8-C530BA129856}.Debug|x86.ActiveCfg = Debug|x86 + {E0A4A539-681E-45E1-84A8-C530BA129856}.Debug|x86.Build.0 = Debug|x86 + {E0A4A539-681E-45E1-84A8-C530BA129856}.Release|Any CPU.ActiveCfg = Release|x86 + {E0A4A539-681E-45E1-84A8-C530BA129856}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {E0A4A539-681E-45E1-84A8-C530BA129856}.Release|Mixed Platforms.Build.0 = Release|x86 + {E0A4A539-681E-45E1-84A8-C530BA129856}.Release|x86.ActiveCfg = Release|x86 + {E0A4A539-681E-45E1-84A8-C530BA129856}.Release|x86.Build.0 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/SharpDHCPServerLib/Properties/.svn/all-wcprops b/SharpDHCPServerLib/Properties/.svn/all-wcprops new file mode 100644 index 0000000..b50fe12 --- /dev/null +++ b/SharpDHCPServerLib/Properties/.svn/all-wcprops @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 51 +/svn/!svn/ver/2/trunk/SharpDHCPServerLib/Properties +END +AssemblyInfo.cs +K 25 +svn:wc:ra_dav:version-url +V 67 +/svn/!svn/ver/2/trunk/SharpDHCPServerLib/Properties/AssemblyInfo.cs +END diff --git a/SharpDHCPServerLib/Properties/.svn/entries b/SharpDHCPServerLib/Properties/.svn/entries new file mode 100644 index 0000000..71b8c8a --- /dev/null +++ b/SharpDHCPServerLib/Properties/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +2 +https://sharpdhcpserver.googlecode.com/svn/trunk/SharpDHCPServerLib/Properties +https://sharpdhcpserver.googlecode.com/svn + + + +2010-12-06T13:59:04.594212Z +2 +Avdyukhin@gmail.com + + + + + + + + + + + + + + +3d45f574-0380-fa68-85f7-e44bac00989b + +AssemblyInfo.cs +file + + + + +2010-12-06T13:51:30.709049Z +c131f1daf5dad472d15168f3252a5ad3 +2010-12-06T13:59:04.594212Z +2 +Avdyukhin@gmail.com + + + + + + + + + + + + + + + + + + + + + +2060 + diff --git a/SharpDHCPServerLib/Properties/.svn/text-base/AssemblyInfo.cs.svn-base b/SharpDHCPServerLib/Properties/.svn/text-base/AssemblyInfo.cs.svn-base new file mode 100644 index 0000000..910bcdb --- /dev/null +++ b/SharpDHCPServerLib/Properties/.svn/text-base/AssemblyInfo.cs.svn-base @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Управление общими сведениями о сборке осуществляется с помощью +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("SharpDHCPServerLib")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Cluster")] +[assembly: AssemblyProduct("SharpDHCPServerLib")] +[assembly: AssemblyCopyright("Copyright © Cluster 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Параметр ComVisible со значением FALSE делает типы в сборке невидимыми +// для COM-компонентов. Если требуется обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("5b90d8af-c01f-4d81-9b8f-2e06c98aac49")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер построения +// Редакция +// +// Можно задать все значения или принять номер построения и номер редакции по умолчанию, +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SharpDHCPServerLib/Properties/AssemblyInfo.cs b/SharpDHCPServerLib/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..910bcdb --- /dev/null +++ b/SharpDHCPServerLib/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Управление общими сведениями о сборке осуществляется с помощью +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("SharpDHCPServerLib")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Cluster")] +[assembly: AssemblyProduct("SharpDHCPServerLib")] +[assembly: AssemblyCopyright("Copyright © Cluster 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Параметр ComVisible со значением FALSE делает типы в сборке невидимыми +// для COM-компонентов. Если требуется обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("5b90d8af-c01f-4d81-9b8f-2e06c98aac49")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер построения +// Редакция +// +// Можно задать все значения или принять номер построения и номер редакции по умолчанию, +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SharpDHCPServerLib/SharpDHCPServer.cs b/SharpDHCPServerLib/SharpDHCPServer.cs new file mode 100644 index 0000000..8af5830 --- /dev/null +++ b/SharpDHCPServerLib/SharpDHCPServer.cs @@ -0,0 +1,902 @@ +/* + * ShapDHCPServer (C) 2010, Cluster + * http://clusterrr.com + * http://code.google.com/p/sharpdhcpserver/ + * + * DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + * Version 2, December 2004 + * + * Copyright (C) 2004 Sam Hocevar + * 14 rue de Plaisance, 75014 Paris, France + * Everyone is permitted to copy and distribute verbatim or modified + * copies of this license document, and changing it is allowed as long + * as the name is changed. + * + * DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + * TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + * + * 0. You just DO WHAT THE FUCK YOU WANT TO. + * + */ + +using System; +using System.Collections.Generic; +using System.Text; +using System.Net; +using System.Net.Sockets; +using System.IO; +using System.Threading; + +namespace Cluster.SharpDHCPServer +{ + /// <summary> + /// DHCP request + /// </summary> + public class DHCPRequest + { + private readonly DHCPServer dhcpServer; + private readonly DHCPPacket requestData; + private Socket requestSocket; + private const int OPTION_OFFSET = 240; + private const int PORT_TO_SEND_TO_CLIENT = 68; + private const int PORT_TO_SEND_TO_RELAY = 67; + + /// <summary> + /// Raw DHCP packet + /// </summary> + public struct DHCPPacket + { + /// <summary>Op code: 1 = boot request, 2 = boot reply</summary> + public byte op; + /// <summary>Hardware address type</summary> + public byte htype; + /// <summary>Hardware address length: length of MACID</summary> + public byte hlen; + /// <summary>Hardware options</summary> + public byte hops; + /// <summary>Transaction id</summary> + public byte[] xid; + /// <summary>Elapsed time from trying to boot</summary> + public byte[] secs; + /// <summary>Flags</summary> + public byte[] flags; + /// <summary>Client IP</summary> + public byte[] ciaddr; + /// <summary>Your client IP</summary> + public byte[] yiaddr; + /// <summary>Server IP</summary> + public byte[] siaddr; + /// <summary>Relay agent IP</summary> + public byte[] giaddr; + /// <summary>Client HW address</summary> + public byte[] chaddr; + /// <summary>Optional server host name</summary> + public byte[] sname; + /// <summary>Boot file name</summary> + public byte[] file; + /// <summary>Magic cookie</summary> + public byte[] mcookie; + /// <summary>Options (rest)</summary> + public byte[] options; + } + + internal DHCPRequest(byte[] data, Socket socket, DHCPServer server) + { + dhcpServer = server; + System.IO.BinaryReader rdr; + System.IO.MemoryStream stm = new System.IO.MemoryStream(data, 0, data.Length); + rdr = new System.IO.BinaryReader(stm); + // Reading data + requestData.op = rdr.ReadByte(); + requestData.htype = rdr.ReadByte(); + requestData.hlen = rdr.ReadByte(); + requestData.hops = rdr.ReadByte(); + requestData.xid = rdr.ReadBytes(4); + requestData.secs = rdr.ReadBytes(2); + requestData.flags = rdr.ReadBytes(2); + requestData.ciaddr = rdr.ReadBytes(4); + requestData.yiaddr = rdr.ReadBytes(4); + requestData.siaddr = rdr.ReadBytes(4); + requestData.giaddr = rdr.ReadBytes(4); + requestData.chaddr = rdr.ReadBytes(16); + requestData.sname = rdr.ReadBytes(64); + requestData.file = rdr.ReadBytes(128); + requestData.mcookie = rdr.ReadBytes(4); + requestData.options = rdr.ReadBytes(data.Length - OPTION_OFFSET); + requestSocket = socket; + } + + /// <summary> + /// Returns array of requested by client options + /// </summary> + /// <returns>Array of requested by client options</returns> + public DHCPOption[] GetRequestedOptionsList() + { + var reqList = this.GetOptionData(DHCPOption.ParameterRequestList); + var optList = new List<DHCPOption>(); + if (reqList != null) foreach (var option in reqList) optList.Add((DHCPOption)option); else return null; + return optList.ToArray(); + } + + private byte[] CreateOptionStruct(DHCPMsgType msgType, DHCPReplyOptions replyOptions, Dictionary<DHCPOption, byte[]> otherForceOptions) + { + byte[] resultOptions = null; + // Requested options + var reqList = GetRequestedOptionsList(); + // Option82? + var relayInfo = this.GetOptionData(DHCPOption.RelayInfo); + CreateOptionElement(ref resultOptions, DHCPOption.DHCPMessageTYPE, new byte[] { (byte)msgType }); + // Server identifier - our IP address + if ((replyOptions != null) && (replyOptions.ServerIdentifier != null)) + CreateOptionElement(ref resultOptions, DHCPOption.ServerIdentifier, replyOptions.ServerIdentifier.GetAddressBytes()); + + // Requested options + if ((reqList != null) && (replyOptions != null)) + foreach (DHCPOption i in reqList) + { + byte[] optionData = null; + // If it's force option - ignore it. We'll send it later. + if ((otherForceOptions != null) && (otherForceOptions.TryGetValue(i, out optionData))) + continue; + switch (i) + { + case DHCPOption.SubnetMask: + if (replyOptions.SubnetMask != null) + optionData = replyOptions.SubnetMask.GetAddressBytes(); + break; + case DHCPOption.Router: + if (replyOptions.RouterIP != null) + optionData = replyOptions.RouterIP.GetAddressBytes(); + break; + case DHCPOption.DomainNameServers: + if (replyOptions.DomainNameServers != null) + { + optionData = new byte[] { }; + foreach (var dns in replyOptions.DomainNameServers) + { + var dnsserv = dns.GetAddressBytes(); + Array.Resize(ref optionData, optionData.Length + 4); + Array.Copy(dnsserv, 0, optionData, optionData.Length - 4, 4); + } + } + break; + case DHCPOption.DomainName: + if (!string.IsNullOrEmpty(replyOptions.DomainName)) + optionData = System.Text.Encoding.ASCII.GetBytes(replyOptions.DomainName); + break; + case DHCPOption.ServerIdentifier: + if (replyOptions.ServerIdentifier != null) + optionData = replyOptions.ServerIdentifier.GetAddressBytes(); + break; + case DHCPOption.LogServer: + if (replyOptions.LogServerIP != null) + optionData = replyOptions.LogServerIP.GetAddressBytes(); + break; + case DHCPOption.StaticRoutes: + case DHCPOption.StaticRoutesWin: + if (replyOptions.StaticRoutes != null) + { + optionData = new byte[] { }; + foreach (var route in replyOptions.StaticRoutes) + { + var routeData = route.BuildRouteData(); + Array.Resize(ref optionData, optionData.Length + routeData.Length); + Array.Copy(routeData, 0, optionData, optionData.Length - routeData.Length, routeData.Length); + } + } + break; + default: + replyOptions.OtherRequestedOptions.TryGetValue(i, out optionData); + break; + } + if (optionData != null) + CreateOptionElement(ref resultOptions, i, optionData); + } + + if (GetMsgType() != DHCPMsgType.DHCPINFORM) + { + // Lease time + if (replyOptions != null) + { + var leaseTime = new byte[4]; + leaseTime[3] = (byte)(replyOptions.IPAddressLeaseTime); + leaseTime[2] = (byte)(replyOptions.IPAddressLeaseTime >> 8); + leaseTime[1] = (byte)(replyOptions.IPAddressLeaseTime >> 16); + leaseTime[0] = (byte)(replyOptions.IPAddressLeaseTime >> 24); + CreateOptionElement(ref resultOptions, DHCPOption.IPAddressLeaseTime, leaseTime); + leaseTime[3] = (byte)(replyOptions.RenewalTimeValue_T1); + leaseTime[2] = (byte)(replyOptions.RenewalTimeValue_T1 >> 8); + leaseTime[1] = (byte)(replyOptions.RenewalTimeValue_T1 >> 16); + leaseTime[0] = (byte)(replyOptions.RenewalTimeValue_T1 >> 24); + CreateOptionElement(ref resultOptions, DHCPOption.RenewalTimeValue_T1, leaseTime); + leaseTime[3] = (byte)(replyOptions.RebindingTimeValue_T2); + leaseTime[2] = (byte)(replyOptions.RebindingTimeValue_T2 >> 8); + leaseTime[1] = (byte)(replyOptions.RebindingTimeValue_T2 >> 16); + leaseTime[0] = (byte)(replyOptions.RebindingTimeValue_T2 >> 24); + CreateOptionElement(ref resultOptions, DHCPOption.RebindingTimeValue_T2, leaseTime); + } + } + // Other requested options + if (otherForceOptions != null) + foreach (var option in otherForceOptions.Keys) + { + CreateOptionElement(ref resultOptions, option, otherForceOptions[option]); + if (option == DHCPOption.RelayInfo) relayInfo = null; + } + + // Option 82? Send it back! + if (relayInfo != null) + CreateOptionElement(ref resultOptions, DHCPOption.RelayInfo, relayInfo); + + // Create the end option + Array.Resize(ref resultOptions, resultOptions.Length + 1); + Array.Copy(new byte[] { 255 }, 0, resultOptions, resultOptions.Length - 1, 1); + return resultOptions; + } + + static private void CreateOptionElement(ref byte[] options, DHCPOption option, byte[] data) + { + byte[] optionData; + + optionData = new byte[data.Length + 2]; + optionData[0] = (byte)option; + optionData[1] = (byte)data.Length; + Array.Copy(data, 0, optionData, 2, data.Length); + if (options == null) + Array.Resize(ref options, (int)optionData.Length); + else + Array.Resize(ref options, options.Length + optionData.Length); + Array.Copy(optionData, 0, options, options.Length - optionData.Length, optionData.Length); + } + + /// <summary> + /// Sends DHCP reply + /// </summary> + /// <param name="msgType">Type of DHCP message to send</param> + /// <param name="ip">IP for client</param> + /// <param name="replyData">Reply options (will be sent if requested)</param> + public void SendDHCPReply(DHCPMsgType msgType, IPAddress ip, DHCPReplyOptions replyData) + { + SendDHCPReply(msgType, ip, replyData, null); + } + /// <summary> + /// Sends DHCP reply + /// </summary> + /// <param name="msgType">Type of DHCP message to send</param> + /// <param name="ip">IP for client</param> + /// <param name="replyData">Reply options (will be sent if requested)</param> + /// <param name="otherForceOptions">Force reply options (will be sent anyway)</param> + public void SendDHCPReply(DHCPMsgType msgType, IPAddress ip, DHCPReplyOptions replyData, Dictionary<DHCPOption, byte[]> otherForceOptions) + { + var replyBuffer = requestData; + replyBuffer.op = 2; // Reply + replyBuffer.yiaddr = ip.GetAddressBytes(); // Client's IP + replyBuffer.options = CreateOptionStruct(msgType, replyData, otherForceOptions); // Options + if (!string.IsNullOrEmpty(dhcpServer.ServerName)) + { + var serverNameBytes = Encoding.ASCII.GetBytes(dhcpServer.ServerName); + int len = (serverNameBytes.Length > 63) ? 63 : serverNameBytes.Length; + Array.Copy(serverNameBytes, replyBuffer.sname, len); + replyBuffer.sname[len] = 0; + } + lock (requestSocket) + { + IPEndPoint endPoint; + if ((replyBuffer.giaddr[0] == 0) && (replyBuffer.giaddr[1] == 0) && + (replyBuffer.giaddr[2] == 0) && (replyBuffer.giaddr[3] == 0)) + { + requestSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, true); + endPoint = new IPEndPoint(IPAddress.Broadcast, PORT_TO_SEND_TO_CLIENT); + } + else + { + requestSocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, false); + endPoint = new IPEndPoint(new IPAddress(replyBuffer.giaddr), PORT_TO_SEND_TO_RELAY); + } + var DataToSend = BuildDataStructure(replyBuffer); + requestSocket.SendTo(DataToSend, endPoint); + } + } + + private static byte[] BuildDataStructure(DHCPPacket packet) + { + byte[] mArray; + + try + { + mArray = new byte[0]; + AddOptionElement(new byte[] { packet.op }, ref mArray); + AddOptionElement(new byte[] { packet.htype }, ref mArray); + AddOptionElement(new byte[] { packet.hlen }, ref mArray); + AddOptionElement(new byte[] { packet.hops }, ref mArray); + AddOptionElement(packet.xid, ref mArray); + AddOptionElement(packet.secs, ref mArray); + AddOptionElement(packet.flags, ref mArray); + AddOptionElement(packet.ciaddr, ref mArray); + AddOptionElement(packet.yiaddr, ref mArray); + AddOptionElement(packet.siaddr, ref mArray); + AddOptionElement(packet.giaddr, ref mArray); + AddOptionElement(packet.chaddr, ref mArray); + AddOptionElement(packet.sname, ref mArray); + AddOptionElement(packet.file, ref mArray); + + AddOptionElement(packet.mcookie, ref mArray); + AddOptionElement(packet.options, ref mArray); + return mArray; + } + finally + { + mArray = null; + } + } + + private static void AddOptionElement(byte[] fromValue, ref byte[] targetArray) + { + if (targetArray != null) + Array.Resize(ref targetArray, targetArray.Length + fromValue.Length); + else + Array.Resize(ref targetArray, fromValue.Length); + Array.Copy(fromValue, 0, targetArray, targetArray.Length - fromValue.Length, fromValue.Length); + } + + /// <summary> + /// Returns option content + /// </summary> + /// <param name="option">Option to retrieve</param> + /// <returns>Option content</returns> + public byte[] GetOptionData(DHCPOption option) + { + int DHCPId = 0; + byte DDataID, DataLength = 0; + byte[] dumpData; + + DHCPId = (int)option; + for (int i = 0; i < requestData.options.Length; i++) + { + DDataID = requestData.options[i]; + if (DDataID == (byte)DHCPOption.END_Option) break; + if (DDataID == DHCPId) + { + DataLength = requestData.options[i + 1]; + dumpData = new byte[DataLength]; + Array.Copy(requestData.options, i + 2, dumpData, 0, DataLength); + return dumpData; + } + else + { + DataLength = requestData.options[i + 1]; + i += 1 + DataLength; + } + } + + return null; + } + + /// <summary> + /// Returns all options + /// </summary> + /// <returns>Options dictionary</returns> + public Dictionary<DHCPOption, byte[]> GetAllOptions() + { + var result = new Dictionary<DHCPOption, byte[]>(); + DHCPOption DDataID; + byte DataLength = 0; + + for (int i = 0; i < requestData.options.Length; i++) + { + DDataID = (DHCPOption)requestData.options[i]; + if (DDataID == DHCPOption.END_Option) break; + DataLength = requestData.options[i + 1]; + byte[] dumpData = new byte[DataLength]; + Array.Copy(requestData.options, i + 2, dumpData, 0, DataLength); + result[DDataID] = dumpData; + + DataLength = requestData.options[i + 1]; + i += 1 + DataLength; + } + + return result; + } + + /// <summary> + /// Returns ciaddr (client IP address) + /// </summary> + /// <returns>ciaddr</returns> + public IPAddress GetCiaddr() + { + if ((requestData.ciaddr[0] == 0) && + (requestData.ciaddr[1] == 0) && + (requestData.ciaddr[2] == 0) && + (requestData.ciaddr[3] == 0) + ) return null; + return new IPAddress(requestData.ciaddr); + } + /// <summary> + /// Returns giaddr (gateway IP address switched by relay) + /// </summary> + /// <returns>giaddr</returns> + public IPAddress GetGiaddr() + { + if ((requestData.giaddr[0] == 0) && + (requestData.giaddr[1] == 0) && + (requestData.giaddr[2] == 0) && + (requestData.giaddr[3] == 0) + ) return null; + return new IPAddress(requestData.giaddr); + } + /// <summary> + /// Returns chaddr (client hardware address) + /// </summary> + /// <returns>chaddr</returns> + public byte[] GetChaddr() + { + var res = new byte[requestData.hlen]; + Array.Copy(requestData.chaddr, res, requestData.hlen); + return res; + } + /// <summary> + /// Returns requested IP (option 50) + /// </summary> + /// <returns>Requested IP</returns> + public IPAddress GetRequestedIP() + { + var ipBytes = GetOptionData(DHCPOption.RequestedIPAddress); + if (ipBytes == null) return null; + return new IPAddress(ipBytes); + } + /// <summary> + /// Returns type of DHCP request + /// </summary> + /// <returns>DHCP message type</returns> + public DHCPMsgType GetMsgType() + { + byte[] DData; + DData = GetOptionData(DHCPOption.DHCPMessageTYPE); + if (DData != null) + return (DHCPMsgType)DData[0]; + return 0; + } + /// <summary> + /// Returns entire content of DHCP packet + /// </summary> + /// <returns>DHCP packet</returns> + public DHCPPacket GetRawPacket() + { + return requestData; + } + /// <summary> + /// Returns relay info (option 82) + /// </summary> + /// <returns>Relay info</returns> + public RelayInfo? GetRelayInfo() + { + var result = new RelayInfo(); + var relayInfo = GetOptionData(DHCPOption.RelayInfo); + if (relayInfo != null) + { + int i = 0; + while (i < relayInfo.Length) + { + var subOptID = relayInfo[i]; + if (subOptID == 1) + { + result.AgentCircuitID = new byte[relayInfo[i + 1]]; + Array.Copy(relayInfo, i + 2, result.AgentCircuitID, 0, relayInfo[i + 1]); + } + else if (subOptID == 2) + { + result.AgentRemoteID = new byte[relayInfo[i + 1]]; + Array.Copy(relayInfo, i + 2, result.AgentRemoteID, 0, relayInfo[i + 1]); + } + i += 2 + relayInfo[i + 1]; + } + return result; + } + return null; + } + } + + /// <summary> + /// DHCP Server + /// </summary> + public class DHCPServer : IDisposable + { + /// <summary>Delegate for DHCP message</summary> + public delegate void DHCPDataReceivedEventHandler(DHCPRequest dhcpRequest); + + /// <summary>Will be called on any DHCP message</summary> + public event DHCPDataReceivedEventHandler OnDataReceived = delegate { }; + /// <summary>Will be called on any DISCOVER message</summary> + public event DHCPDataReceivedEventHandler OnDiscover = delegate { }; + /// <summary>Will be called on any REQUEST message</summary> + public event DHCPDataReceivedEventHandler OnRequest = delegate { }; + /// <summary>Will be called on any DECLINE message</summary> + public event DHCPDataReceivedEventHandler OnDecline = delegate { }; + /// <summary>Will be called on any DECLINE released</summary> + public event DHCPDataReceivedEventHandler OnReleased = delegate { }; + /// <summary>Will be called on any DECLINE inform</summary> + public event DHCPDataReceivedEventHandler OnInform = delegate { }; + + /// <summary>Server name (optional)</summary> + public string ServerName { get; set; } + + private Socket socket = null; + private Thread receiveDataThread = null; + private const int PORT_TO_LISTEN_TO = 67; + + /// <summary> + /// Creates DHCP server, it will be started instantly + /// </summary> + /// <param name="bindIp">IP address to bind</param> + public DHCPServer(IPAddress bindIp) + { + var ipLocalEndPoint = new IPEndPoint(bindIp, PORT_TO_LISTEN_TO); + socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + socket.Bind(ipLocalEndPoint); + receiveDataThread = new Thread(ReceiveDataThread); + receiveDataThread.Start(); + } + + /// <summary>Creates DHCP server, it will be started instantly</summary> + public DHCPServer() : this(IPAddress.Any) + { + } + + /// <summary>Disposes DHCP server</summary> + public void Dispose() + { + if (socket != null) + { + socket.Close(); + socket = null; + } + if (receiveDataThread != null) + { + receiveDataThread.Abort(); + receiveDataThread = null; + } + } + + private void ReceiveDataThread() + { + while (true) + { + try + { + IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); + EndPoint remote = (EndPoint)(sender); var buffer = new byte[1024]; + int len = socket.ReceiveFrom(buffer, ref remote); + if (len > 0) + { + Array.Resize(ref buffer, len); + var dataReceivedThread = new Thread(DataReceived); + dataReceivedThread.Start(buffer); + } + } + catch + { + // Ignore all + } + } + } + + private void DataReceived(object o) + { + var data = (byte[])o; + try + { + var dhcpRequest = new DHCPRequest(data, socket, this); + //ccDHCP = new clsDHCP(); + + + //data is now in the structure + //get the msg type + OnDataReceived(dhcpRequest); + var msgType = dhcpRequest.GetMsgType(); + switch (msgType) + { + case DHCPMsgType.DHCPDISCOVER: + OnDiscover(dhcpRequest); + break; + case DHCPMsgType.DHCPREQUEST: + OnRequest(dhcpRequest); + break; + case DHCPMsgType.DHCPDECLINE: + OnDecline(dhcpRequest); + break; + case DHCPMsgType.DHCPRELEASE: + OnReleased(dhcpRequest); + break; + case DHCPMsgType.DHCPINFORM: + OnInform(dhcpRequest); + break; + //default: + // Console.WriteLine("Unknown DHCP message: " + (int)MsgTyp + " (" + MsgTyp.ToString() + ")"); + // break; + } + } + catch + { + // Ignore + } + } + } + + /// <summary>DHCP message type</summary> + public enum DHCPMsgType + { + /// <summary>DHCP DISCOVER message</summary> + DHCPDISCOVER = 1, + /// <summary>DHCP OFFER message</summary> + DHCPOFFER = 2, + /// <summary>DHCP REQUEST message</summary> + DHCPREQUEST = 3, + /// <summary>DHCP DECLINE message</summary> + DHCPDECLINE = 4, + /// <summary>DHCP ACK message</summary> + DHCPACK = 5, + /// <summary>DHCP NAK message</summary> + DHCPNAK = 6, + /// <summary>DHCP RELEASE message</summary> + DHCPRELEASE = 7, + /// <summary>DHCP INFORM message</summary> + DHCPINFORM = 8 + } + + /// <summary>DHCP option enum</summary> + public enum DHCPOption + { + /// <summary>Option 1</summary> + SubnetMask = 1, + /// <summary>Option 2</summary> + TimeOffset = 2, + /// <summary>Option 3</summary> + Router = 3, + /// <summary>Option 4</summary> + TimeServer = 4, + /// <summary>Option 5</summary> + NameServer = 5, + /// <summary>Option 6</summary> + DomainNameServers = 6, + /// <summary>Option 7</summary> + LogServer = 7, + /// <summary>Option 8</summary> + CookieServer = 8, + /// <summary>Option 9</summary> + LPRServer = 9, + /// <summary>Option 10</summary> + ImpressServer = 10, + /// <summary>Option 11</summary> + ResourceLocServer = 11, + /// <summary>Option 12</summary> + HostName = 12, + /// <summary>Option 13</summary> + BootFileSize = 13, + /// <summary>Option 14</summary> + MeritDump = 14, + /// <summary>Option 15</summary> + DomainName = 15, + /// <summary>Option 16</summary> + SwapServer = 16, + /// <summary>Option 17</summary> + RootPath = 17, + /// <summary>Option 18</summary> + ExtensionsPath = 18, + /// <summary>Option 19</summary> + IpForwarding = 19, + /// <summary>Option 20</summary> + NonLocalSourceRouting = 20, + /// <summary>Option 21</summary> + PolicyFilter = 21, + /// <summary>Option 22</summary> + MaximumDatagramReAssemblySize = 22, + /// <summary>Option 23</summary> + DefaultIPTimeToLive = 23, + /// <summary>Option 24</summary> + PathMTUAgingTimeout = 24, + /// <summary>Option 25</summary> + PathMTUPlateauTable = 25, + /// <summary>Option 26</summary> + InterfaceMTU = 26, + /// <summary>Option 27</summary> + AllSubnetsAreLocal = 27, + /// <summary>Option 28</summary> + BroadcastAddress = 28, + /// <summary>Option 29</summary> + PerformMaskDiscovery = 29, + /// <summary>Option 30</summary> + MaskSupplier = 30, + /// <summary>Option 31</summary> + PerformRouterDiscovery = 31, + /// <summary>Option 32</summary> + RouterSolicitationAddress = 32, + /// <summary>Option 33</summary> + StaticRoute = 33, + /// <summary>Option 34</summary> + TrailerEncapsulation = 34, + /// <summary>Option 35</summary> + ARPCacheTimeout = 35, + /// <summary>Option 36</summary> + EthernetEncapsulation = 36, + /// <summary>Option 37</summary> + TCPDefaultTTL = 37, + /// <summary>Option 38</summary> + TCPKeepaliveInterval = 38, + /// <summary>Option 39</summary> + TCPKeepaliveGarbage = 39, + /// <summary>Option 40</summary> + NetworkInformationServiceDomain = 40, + /// <summary>Option 41</summary> + NetworkInformationServers = 41, + /// <summary>Option 42</summary> + NetworkTimeProtocolServers = 42, + /// <summary>Option 43</summary> + VendorSpecificInformation = 43, + /// <summary>Option 44</summary> + NetBIOSoverTCPIPNameServer = 44, + /// <summary>Option 45</summary> + NetBIOSoverTCPIPDatagramDistributionServer = 45, + /// <summary>Option 46</summary> + NetBIOSoverTCPIPNodeType = 46, + /// <summary>Option 47</summary> + NetBIOSoverTCPIPScope = 47, + /// <summary>Option 48</summary> + XWindowSystemFontServer = 48, + /// <summary>Option 49</summary> + XWindowSystemDisplayManager = 49, + /// <summary>Option 50</summary> + RequestedIPAddress = 50, + /// <summary>Option 51</summary> + IPAddressLeaseTime = 51, + /// <summary>Option 52</summary> + OptionOverload = 52, + /// <summary>Option 53</summary> + DHCPMessageTYPE = 53, + /// <summary>Option 54</summary> + ServerIdentifier = 54, + /// <summary>Option 55</summary> + ParameterRequestList = 55, + /// <summary>Option 56</summary> + Message = 56, + /// <summary>Option 57</summary> + MaximumDHCPMessageSize = 57, + /// <summary>Option 58</summary> + RenewalTimeValue_T1 = 58, + /// <summary>Option 59</summary> + RebindingTimeValue_T2 = 59, + /// <summary>Option 60</summary> + Vendorclassidentifier = 60, + /// <summary>Option 61</summary> + ClientIdentifier = 61, + /// <summary>Option 62</summary> + NetWateIPDomainName = 62, + /// <summary>Option 63</summary> + NetWateIPInformation = 63, + /// <summary>Option 64</summary> + NetworkInformationServicePlusDomain = 64, + /// <summary>Option 65</summary> + NetworkInformationServicePlusServers = 65, + /// <summary>Option 66</summary> + TFTPServerName = 66, + /// <summary>Option 67</summary> + BootfileName = 67, + /// <summary>Option 68</summary> + MobileIPHomeAgent = 68, + /// <summary>Option 69</summary> + SMTPServer = 69, + /// <summary>Option 70</summary> + POP3Server = 70, + /// <summary>Option 71</summary> + NNTPServer = 71, + /// <summary>Option 72</summary> + DefaultWWWServer = 72, + /// <summary>Option 73</summary> + DefaultFingerServer = 73, + /// <summary>Option 74</summary> + DefaultIRCServer = 74, + /// <summary>Option 75</summary> + StreetTalkServer = 75, + /// <summary>Option 76</summary> + STDAServer = 76, + /// <summary>Option 82</summary> + RelayInfo = 82, + /// <summary>Option 121</summary> + StaticRoutes = 121, + /// <summary>Option 249</summary> + StaticRoutesWin = 249, + /// <summary>Option 255 (END option)</summary> + END_Option = 255 + } + + /// <summary>Reply options</summary> + public class DHCPReplyOptions + { + /// <summary>IP address</summary> + public IPAddress SubnetMask = null; + /// <summary>IP address lease time (seconds)</summary> + public UInt32 IPAddressLeaseTime = 60 * 60 * 24; + /// <summary>Renewal time (seconds)</summary> + public UInt32 RenewalTimeValue_T1 = 60 * 60 * 24; + /// <summary>Rebinding time (seconds)</summary> + public UInt32 RebindingTimeValue_T2 = 60 * 60 * 24; + /// <summary>Domain name</summary> + public string DomainName = null; + /// <summary>IP address of DHCP server</summary> + public IPAddress ServerIdentifier = null; + /// <summary>Router (gateway) IP</summary> + public IPAddress RouterIP = null; + /// <summary>Domain name servers (DNS)</summary> + public IPAddress[] DomainNameServers = null; + /// <summary>Log server IP</summary> + public IPAddress LogServerIP = null; + /// <summary>Static routes</summary> + public NetworkRoute[] StaticRoutes = null; + /// <summary>Other options which will be sent on request</summary> + public Dictionary<DHCPOption, byte[]> OtherRequestedOptions = new Dictionary<DHCPOption, byte[]>(); + } + + /// <summary>Network route</summary> + public struct NetworkRoute + { + /// <summary>IP address of destination network</summary> + public IPAddress Network; + /// <summary>Subnet mask length</summary> + public byte NetMaskLength; + /// <summary>Gateway</summary> + public IPAddress Gateway; + + /// <summary>Creates network route</summary> + /// <param name="network">IP address to bind</param> + /// <param name="netMaskLength">Subnet mask length</param> + /// <param name="gateway">Gateway</param> + public NetworkRoute(IPAddress network, byte netMaskLength, IPAddress gateway) + { + Network = network; + NetMaskLength = netMaskLength; + Gateway = gateway; + } + + /// <summary>Creates network route</summary> + /// <param name="network">IP address to bind</param> + /// <param name="netMask">Subnet mask</param> + /// <param name="gateway">Gateway</param> + public NetworkRoute(IPAddress network, IPAddress netMask, IPAddress gateway) + { + byte length = 0; + var mask = netMask.GetAddressBytes(); + for (byte x = 0; x < 4; x++) + { + for (byte b = 0; b < 8; b++) + if (((mask[x] >> (7 - b)) & 1) == 1) + length++; + else break; + } + Network = network; + NetMaskLength = length; + Gateway = gateway; + } + + internal byte[] BuildRouteData() + { + int ipLength; + if (NetMaskLength <= 8) ipLength = 1; + else if (NetMaskLength <= 16) ipLength = 2; + else if (NetMaskLength <= 24) ipLength = 3; + else ipLength = 4; + var res = new byte[1 + ipLength + 4]; + res[0] = NetMaskLength; + Array.Copy(Network.GetAddressBytes(), 0, res, 1, ipLength); + Array.Copy(Gateway.GetAddressBytes(), 0, res, 1 + ipLength, 4); + return res; + } + } + + /// <summary>DHCP relay information (option 82)</summary> + public struct RelayInfo + { + /// <summary>Agent circuit ID</summary> + public byte[] AgentCircuitID; + /// <summary>Agent remote ID</summary> + public byte[] AgentRemoteID; + } +} diff --git a/SharpDHCPServerLib/SharpDHCPServerLib.csproj b/SharpDHCPServerLib/SharpDHCPServerLib.csproj new file mode 100644 index 0000000..b321ec8 --- /dev/null +++ b/SharpDHCPServerLib/SharpDHCPServerLib.csproj @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> + <ProductVersion>8.0.30703</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}</ProjectGuid> + <OutputType>Library</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>Cluster.SharpDHCPServer</RootNamespace> + <AssemblyName>SharpDHCPServerLib</AssemblyName> + <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <DocumentationFile>bin\Debug\SharpDHCPServerLib.XML</DocumentationFile> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + <DocumentationFile>bin\Release\SharpDHCPServerLib.XML</DocumentationFile> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="SharpDHCPServer.cs" /> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project>
\ No newline at end of file diff --git a/SharpDHCPServerLib/bin/Debug/SharpDHCPServerLib.XML b/SharpDHCPServerLib/bin/Debug/SharpDHCPServerLib.XML new file mode 100644 index 0000000..408d813 --- /dev/null +++ b/SharpDHCPServerLib/bin/Debug/SharpDHCPServerLib.XML @@ -0,0 +1,524 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>SharpDHCPServerLib</name> + </assembly> + <members> + <member name="T:Cluster.SharpDHCPServer.DHCPRequest"> + <summary> + DHCP request + </summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRequestedOptionsList"> + <summary> + Returns array of requested by client options + </summary> + <returns>Array of requested by client options</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.SendDHCPReply(Cluster.SharpDHCPServer.DHCPMsgType,System.Net.IPAddress,Cluster.SharpDHCPServer.DHCPReplyOptions)"> + <summary> + Sends DHCP reply + </summary> + <param name="msgType">Type of DHCP message to send</param> + <param name="ip">IP for client</param> + <param name="replyData">Reply options (will be sent if requested)</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.SendDHCPReply(Cluster.SharpDHCPServer.DHCPMsgType,System.Net.IPAddress,Cluster.SharpDHCPServer.DHCPReplyOptions,System.Collections.Generic.Dictionary{Cluster.SharpDHCPServer.DHCPOption,System.Byte[]})"> + <summary> + Sends DHCP reply + </summary> + <param name="msgType">Type of DHCP message to send</param> + <param name="ip">IP for client</param> + <param name="replyData">Reply options (will be sent if requested)</param> + <param name="otherForceOptions">Force reply options (will be sent anyway)</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetOptionData(Cluster.SharpDHCPServer.DHCPOption)"> + <summary> + Returns option content + </summary> + <param name="option">Option to retrieve</param> + <returns>Option content</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetAllOptions"> + <summary> + Returns all options + </summary> + <returns>Options dictionary</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetCiaddr"> + <summary> + Returns ciaddr (client IP address) + </summary> + <returns>ciaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetGiaddr"> + <summary> + Returns giaddr (gateway IP address switched by relay) + </summary> + <returns>giaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetChaddr"> + <summary> + Returns chaddr (client hardware address) + </summary> + <returns>chaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRequestedIP"> + <summary> + Returns requested IP (option 50) + </summary> + <returns>Requested IP</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetMsgType"> + <summary> + Returns type of DHCP request + </summary> + <returns>DHCP message type</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRawPacket"> + <summary> + Returns entire content of DHCP packet + </summary> + <returns>DHCP packet</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRelayInfo"> + <summary> + Returns relay info (option 82) + </summary> + <returns>Relay info</returns> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket"> + <summary> + Raw DHCP packet + </summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.op"> + <summary>Op code: 1 = boot request, 2 = boot reply</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.htype"> + <summary>Hardware address type</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.hlen"> + <summary>Hardware address length: length of MACID</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.hops"> + <summary>Hardware options</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.xid"> + <summary>Transaction id</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.secs"> + <summary>Elapsed time from trying to boot</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.flags"> + <summary>Flags</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.ciaddr"> + <summary>Client IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.yiaddr"> + <summary>Your client IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.siaddr"> + <summary>Server IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.giaddr"> + <summary>Relay agent IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.chaddr"> + <summary>Client HW address</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.sname"> + <summary>Optional server host name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.file"> + <summary>Boot file name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.mcookie"> + <summary>Magic cookie</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.options"> + <summary>Options (rest)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPServer"> + <summary> + DHCP Server + </summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.#ctor(System.Net.IPAddress)"> + <summary> + Creates DHCP server, it will be started instantly + </summary> + <param name="bindIp">IP address to bind</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.#ctor"> + <summary>Creates DHCP server, it will be started instantly</summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.Dispose"> + <summary>Disposes DHCP server</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDataReceived"> + <summary>Will be called on any DHCP message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDiscover"> + <summary>Will be called on any DISCOVER message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnRequest"> + <summary>Will be called on any REQUEST message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDecline"> + <summary>Will be called on any DECLINE message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnReleased"> + <summary>Will be called on any DECLINE released</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnInform"> + <summary>Will be called on any DECLINE inform</summary> + </member> + <member name="P:Cluster.SharpDHCPServer.DHCPServer.ServerName"> + <summary>Server name (optional)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPServer.DHCPDataReceivedEventHandler"> + <summary>Delegate for DHCP message</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPMsgType"> + <summary>DHCP message type</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPDISCOVER"> + <summary>DHCP DISCOVER message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPOFFER"> + <summary>DHCP OFFER message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPREQUEST"> + <summary>DHCP REQUEST message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPDECLINE"> + <summary>DHCP DECLINE message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPACK"> + <summary>DHCP ACK message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPNAK"> + <summary>DHCP NAK message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPRELEASE"> + <summary>DHCP RELEASE message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPINFORM"> + <summary>DHCP INFORM message</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPOption"> + <summary>DHCP option enum</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SubnetMask"> + <summary>Option 1</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TimeOffset"> + <summary>Option 2</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Router"> + <summary>Option 3</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TimeServer"> + <summary>Option 4</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NameServer"> + <summary>Option 5</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DomainNameServers"> + <summary>Option 6</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.LogServer"> + <summary>Option 7</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.CookieServer"> + <summary>Option 8</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.LPRServer"> + <summary>Option 9</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ImpressServer"> + <summary>Option 10</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ResourceLocServer"> + <summary>Option 11</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.HostName"> + <summary>Option 12</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BootFileSize"> + <summary>Option 13</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MeritDump"> + <summary>Option 14</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DomainName"> + <summary>Option 15</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SwapServer"> + <summary>Option 16</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RootPath"> + <summary>Option 17</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ExtensionsPath"> + <summary>Option 18</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.IpForwarding"> + <summary>Option 19</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NonLocalSourceRouting"> + <summary>Option 20</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PolicyFilter"> + <summary>Option 21</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaximumDatagramReAssemblySize"> + <summary>Option 22</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultIPTimeToLive"> + <summary>Option 23</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PathMTUAgingTimeout"> + <summary>Option 24</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PathMTUPlateauTable"> + <summary>Option 25</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.InterfaceMTU"> + <summary>Option 26</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.AllSubnetsAreLocal"> + <summary>Option 27</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BroadcastAddress"> + <summary>Option 28</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PerformMaskDiscovery"> + <summary>Option 29</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaskSupplier"> + <summary>Option 30</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PerformRouterDiscovery"> + <summary>Option 31</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RouterSolicitationAddress"> + <summary>Option 32</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoute"> + <summary>Option 33</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TrailerEncapsulation"> + <summary>Option 34</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ARPCacheTimeout"> + <summary>Option 35</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.EthernetEncapsulation"> + <summary>Option 36</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPDefaultTTL"> + <summary>Option 37</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPKeepaliveInterval"> + <summary>Option 38</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPKeepaliveGarbage"> + <summary>Option 39</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServiceDomain"> + <summary>Option 40</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServers"> + <summary>Option 41</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkTimeProtocolServers"> + <summary>Option 42</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.VendorSpecificInformation"> + <summary>Option 43</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPNameServer"> + <summary>Option 44</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPDatagramDistributionServer"> + <summary>Option 45</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPNodeType"> + <summary>Option 46</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPScope"> + <summary>Option 47</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.XWindowSystemFontServer"> + <summary>Option 48</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.XWindowSystemDisplayManager"> + <summary>Option 49</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RequestedIPAddress"> + <summary>Option 50</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.IPAddressLeaseTime"> + <summary>Option 51</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.OptionOverload"> + <summary>Option 52</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DHCPMessageTYPE"> + <summary>Option 53</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ServerIdentifier"> + <summary>Option 54</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ParameterRequestList"> + <summary>Option 55</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Message"> + <summary>Option 56</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaximumDHCPMessageSize"> + <summary>Option 57</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RenewalTimeValue_T1"> + <summary>Option 58</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RebindingTimeValue_T2"> + <summary>Option 59</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Vendorclassidentifier"> + <summary>Option 60</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ClientIdentifier"> + <summary>Option 61</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetWateIPDomainName"> + <summary>Option 62</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetWateIPInformation"> + <summary>Option 63</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServicePlusDomain"> + <summary>Option 64</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServicePlusServers"> + <summary>Option 65</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TFTPServerName"> + <summary>Option 66</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BootfileName"> + <summary>Option 67</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MobileIPHomeAgent"> + <summary>Option 68</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SMTPServer"> + <summary>Option 69</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.POP3Server"> + <summary>Option 70</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NNTPServer"> + <summary>Option 71</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultWWWServer"> + <summary>Option 72</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultFingerServer"> + <summary>Option 73</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultIRCServer"> + <summary>Option 74</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StreetTalkServer"> + <summary>Option 75</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.STDAServer"> + <summary>Option 76</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RelayInfo"> + <summary>Option 82</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoutes"> + <summary>Option 121</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoutesWin"> + <summary>Option 249</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.END_Option"> + <summary>Option 255 (END option)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPReplyOptions"> + <summary>Reply options</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.SubnetMask"> + <summary>IP address</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.IPAddressLeaseTime"> + <summary>IP address lease time (seconds)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RenewalTimeValue_T1"> + <summary>Renewal time (seconds)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RebindingTimeValue_T2"> + <summary>Rebinding time (seconds)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.DomainName"> + <summary>Domain name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.ServerIdentifier"> + <summary>IP address of DHCP server</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RouterIP"> + <summary>Router (gateway) IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.DomainNameServers"> + <summary>Domain name servers (DNS)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.LogServerIP"> + <summary>Log server IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.StaticRoutes"> + <summary>Static routes</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.OtherRequestedOptions"> + <summary>Other options which will be sent on request</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.NetworkRoute"> + <summary>Network route</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.Network"> + <summary>IP address of destination network</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.NetMaskLength"> + <summary>Subnet mask length</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.Gateway"> + <summary>Gateway</summary> + </member> + <member name="M:Cluster.SharpDHCPServer.NetworkRoute.#ctor(System.Net.IPAddress,System.Byte,System.Net.IPAddress)"> + <summary>Creates network route</summary> + <param name="network">IP address to bind</param> + <param name="netMaskLength">Subnet mask length</param> + <param name="gateway">Gateway</param> + </member> + <member name="M:Cluster.SharpDHCPServer.NetworkRoute.#ctor(System.Net.IPAddress,System.Net.IPAddress,System.Net.IPAddress)"> + <summary>Creates network route</summary> + <param name="network">IP address to bind</param> + <param name="netMask">Subnet mask</param> + <param name="gateway">Gateway</param> + </member> + <member name="T:Cluster.SharpDHCPServer.RelayInfo"> + <summary>DHCP relay information (option 82)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.RelayInfo.AgentCircuitID"> + <summary>Agent circuit ID</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.RelayInfo.AgentRemoteID"> + <summary>Agent remote ID</summary> + </member> + </members> +</doc> diff --git a/SharpDHCPServerLib/bin/Debug/SharpDHCPServerLib.dll b/SharpDHCPServerLib/bin/Debug/SharpDHCPServerLib.dll Binary files differnew file mode 100644 index 0000000..5d90d66 --- /dev/null +++ b/SharpDHCPServerLib/bin/Debug/SharpDHCPServerLib.dll diff --git a/SharpDHCPServerLib/bin/Debug/SharpDHCPServerLib.pdb b/SharpDHCPServerLib/bin/Debug/SharpDHCPServerLib.pdb Binary files differnew file mode 100644 index 0000000..2b3bb6e --- /dev/null +++ b/SharpDHCPServerLib/bin/Debug/SharpDHCPServerLib.pdb diff --git a/SharpDHCPServerLib/bin/Release/SharpDHCPServer.zip b/SharpDHCPServerLib/bin/Release/SharpDHCPServer.zip Binary files differnew file mode 100644 index 0000000..c419bf9 --- /dev/null +++ b/SharpDHCPServerLib/bin/Release/SharpDHCPServer.zip diff --git a/SharpDHCPServerLib/bin/Release/SharpDHCPServerLib.XML b/SharpDHCPServerLib/bin/Release/SharpDHCPServerLib.XML new file mode 100644 index 0000000..408d813 --- /dev/null +++ b/SharpDHCPServerLib/bin/Release/SharpDHCPServerLib.XML @@ -0,0 +1,524 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>SharpDHCPServerLib</name> + </assembly> + <members> + <member name="T:Cluster.SharpDHCPServer.DHCPRequest"> + <summary> + DHCP request + </summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRequestedOptionsList"> + <summary> + Returns array of requested by client options + </summary> + <returns>Array of requested by client options</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.SendDHCPReply(Cluster.SharpDHCPServer.DHCPMsgType,System.Net.IPAddress,Cluster.SharpDHCPServer.DHCPReplyOptions)"> + <summary> + Sends DHCP reply + </summary> + <param name="msgType">Type of DHCP message to send</param> + <param name="ip">IP for client</param> + <param name="replyData">Reply options (will be sent if requested)</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.SendDHCPReply(Cluster.SharpDHCPServer.DHCPMsgType,System.Net.IPAddress,Cluster.SharpDHCPServer.DHCPReplyOptions,System.Collections.Generic.Dictionary{Cluster.SharpDHCPServer.DHCPOption,System.Byte[]})"> + <summary> + Sends DHCP reply + </summary> + <param name="msgType">Type of DHCP message to send</param> + <param name="ip">IP for client</param> + <param name="replyData">Reply options (will be sent if requested)</param> + <param name="otherForceOptions">Force reply options (will be sent anyway)</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetOptionData(Cluster.SharpDHCPServer.DHCPOption)"> + <summary> + Returns option content + </summary> + <param name="option">Option to retrieve</param> + <returns>Option content</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetAllOptions"> + <summary> + Returns all options + </summary> + <returns>Options dictionary</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetCiaddr"> + <summary> + Returns ciaddr (client IP address) + </summary> + <returns>ciaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetGiaddr"> + <summary> + Returns giaddr (gateway IP address switched by relay) + </summary> + <returns>giaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetChaddr"> + <summary> + Returns chaddr (client hardware address) + </summary> + <returns>chaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRequestedIP"> + <summary> + Returns requested IP (option 50) + </summary> + <returns>Requested IP</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetMsgType"> + <summary> + Returns type of DHCP request + </summary> + <returns>DHCP message type</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRawPacket"> + <summary> + Returns entire content of DHCP packet + </summary> + <returns>DHCP packet</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRelayInfo"> + <summary> + Returns relay info (option 82) + </summary> + <returns>Relay info</returns> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket"> + <summary> + Raw DHCP packet + </summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.op"> + <summary>Op code: 1 = boot request, 2 = boot reply</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.htype"> + <summary>Hardware address type</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.hlen"> + <summary>Hardware address length: length of MACID</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.hops"> + <summary>Hardware options</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.xid"> + <summary>Transaction id</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.secs"> + <summary>Elapsed time from trying to boot</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.flags"> + <summary>Flags</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.ciaddr"> + <summary>Client IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.yiaddr"> + <summary>Your client IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.siaddr"> + <summary>Server IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.giaddr"> + <summary>Relay agent IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.chaddr"> + <summary>Client HW address</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.sname"> + <summary>Optional server host name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.file"> + <summary>Boot file name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.mcookie"> + <summary>Magic cookie</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.options"> + <summary>Options (rest)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPServer"> + <summary> + DHCP Server + </summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.#ctor(System.Net.IPAddress)"> + <summary> + Creates DHCP server, it will be started instantly + </summary> + <param name="bindIp">IP address to bind</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.#ctor"> + <summary>Creates DHCP server, it will be started instantly</summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.Dispose"> + <summary>Disposes DHCP server</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDataReceived"> + <summary>Will be called on any DHCP message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDiscover"> + <summary>Will be called on any DISCOVER message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnRequest"> + <summary>Will be called on any REQUEST message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDecline"> + <summary>Will be called on any DECLINE message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnReleased"> + <summary>Will be called on any DECLINE released</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnInform"> + <summary>Will be called on any DECLINE inform</summary> + </member> + <member name="P:Cluster.SharpDHCPServer.DHCPServer.ServerName"> + <summary>Server name (optional)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPServer.DHCPDataReceivedEventHandler"> + <summary>Delegate for DHCP message</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPMsgType"> + <summary>DHCP message type</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPDISCOVER"> + <summary>DHCP DISCOVER message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPOFFER"> + <summary>DHCP OFFER message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPREQUEST"> + <summary>DHCP REQUEST message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPDECLINE"> + <summary>DHCP DECLINE message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPACK"> + <summary>DHCP ACK message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPNAK"> + <summary>DHCP NAK message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPRELEASE"> + <summary>DHCP RELEASE message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPINFORM"> + <summary>DHCP INFORM message</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPOption"> + <summary>DHCP option enum</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SubnetMask"> + <summary>Option 1</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TimeOffset"> + <summary>Option 2</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Router"> + <summary>Option 3</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TimeServer"> + <summary>Option 4</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NameServer"> + <summary>Option 5</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DomainNameServers"> + <summary>Option 6</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.LogServer"> + <summary>Option 7</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.CookieServer"> + <summary>Option 8</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.LPRServer"> + <summary>Option 9</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ImpressServer"> + <summary>Option 10</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ResourceLocServer"> + <summary>Option 11</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.HostName"> + <summary>Option 12</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BootFileSize"> + <summary>Option 13</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MeritDump"> + <summary>Option 14</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DomainName"> + <summary>Option 15</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SwapServer"> + <summary>Option 16</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RootPath"> + <summary>Option 17</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ExtensionsPath"> + <summary>Option 18</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.IpForwarding"> + <summary>Option 19</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NonLocalSourceRouting"> + <summary>Option 20</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PolicyFilter"> + <summary>Option 21</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaximumDatagramReAssemblySize"> + <summary>Option 22</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultIPTimeToLive"> + <summary>Option 23</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PathMTUAgingTimeout"> + <summary>Option 24</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PathMTUPlateauTable"> + <summary>Option 25</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.InterfaceMTU"> + <summary>Option 26</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.AllSubnetsAreLocal"> + <summary>Option 27</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BroadcastAddress"> + <summary>Option 28</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PerformMaskDiscovery"> + <summary>Option 29</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaskSupplier"> + <summary>Option 30</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PerformRouterDiscovery"> + <summary>Option 31</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RouterSolicitationAddress"> + <summary>Option 32</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoute"> + <summary>Option 33</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TrailerEncapsulation"> + <summary>Option 34</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ARPCacheTimeout"> + <summary>Option 35</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.EthernetEncapsulation"> + <summary>Option 36</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPDefaultTTL"> + <summary>Option 37</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPKeepaliveInterval"> + <summary>Option 38</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPKeepaliveGarbage"> + <summary>Option 39</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServiceDomain"> + <summary>Option 40</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServers"> + <summary>Option 41</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkTimeProtocolServers"> + <summary>Option 42</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.VendorSpecificInformation"> + <summary>Option 43</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPNameServer"> + <summary>Option 44</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPDatagramDistributionServer"> + <summary>Option 45</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPNodeType"> + <summary>Option 46</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPScope"> + <summary>Option 47</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.XWindowSystemFontServer"> + <summary>Option 48</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.XWindowSystemDisplayManager"> + <summary>Option 49</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RequestedIPAddress"> + <summary>Option 50</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.IPAddressLeaseTime"> + <summary>Option 51</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.OptionOverload"> + <summary>Option 52</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DHCPMessageTYPE"> + <summary>Option 53</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ServerIdentifier"> + <summary>Option 54</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ParameterRequestList"> + <summary>Option 55</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Message"> + <summary>Option 56</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaximumDHCPMessageSize"> + <summary>Option 57</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RenewalTimeValue_T1"> + <summary>Option 58</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RebindingTimeValue_T2"> + <summary>Option 59</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Vendorclassidentifier"> + <summary>Option 60</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ClientIdentifier"> + <summary>Option 61</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetWateIPDomainName"> + <summary>Option 62</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetWateIPInformation"> + <summary>Option 63</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServicePlusDomain"> + <summary>Option 64</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServicePlusServers"> + <summary>Option 65</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TFTPServerName"> + <summary>Option 66</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BootfileName"> + <summary>Option 67</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MobileIPHomeAgent"> + <summary>Option 68</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SMTPServer"> + <summary>Option 69</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.POP3Server"> + <summary>Option 70</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NNTPServer"> + <summary>Option 71</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultWWWServer"> + <summary>Option 72</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultFingerServer"> + <summary>Option 73</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultIRCServer"> + <summary>Option 74</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StreetTalkServer"> + <summary>Option 75</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.STDAServer"> + <summary>Option 76</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RelayInfo"> + <summary>Option 82</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoutes"> + <summary>Option 121</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoutesWin"> + <summary>Option 249</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.END_Option"> + <summary>Option 255 (END option)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPReplyOptions"> + <summary>Reply options</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.SubnetMask"> + <summary>IP address</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.IPAddressLeaseTime"> + <summary>IP address lease time (seconds)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RenewalTimeValue_T1"> + <summary>Renewal time (seconds)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RebindingTimeValue_T2"> + <summary>Rebinding time (seconds)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.DomainName"> + <summary>Domain name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.ServerIdentifier"> + <summary>IP address of DHCP server</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RouterIP"> + <summary>Router (gateway) IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.DomainNameServers"> + <summary>Domain name servers (DNS)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.LogServerIP"> + <summary>Log server IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.StaticRoutes"> + <summary>Static routes</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.OtherRequestedOptions"> + <summary>Other options which will be sent on request</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.NetworkRoute"> + <summary>Network route</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.Network"> + <summary>IP address of destination network</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.NetMaskLength"> + <summary>Subnet mask length</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.Gateway"> + <summary>Gateway</summary> + </member> + <member name="M:Cluster.SharpDHCPServer.NetworkRoute.#ctor(System.Net.IPAddress,System.Byte,System.Net.IPAddress)"> + <summary>Creates network route</summary> + <param name="network">IP address to bind</param> + <param name="netMaskLength">Subnet mask length</param> + <param name="gateway">Gateway</param> + </member> + <member name="M:Cluster.SharpDHCPServer.NetworkRoute.#ctor(System.Net.IPAddress,System.Net.IPAddress,System.Net.IPAddress)"> + <summary>Creates network route</summary> + <param name="network">IP address to bind</param> + <param name="netMask">Subnet mask</param> + <param name="gateway">Gateway</param> + </member> + <member name="T:Cluster.SharpDHCPServer.RelayInfo"> + <summary>DHCP relay information (option 82)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.RelayInfo.AgentCircuitID"> + <summary>Agent circuit ID</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.RelayInfo.AgentRemoteID"> + <summary>Agent remote ID</summary> + </member> + </members> +</doc> diff --git a/SharpDHCPServerLib/bin/Release/SharpDHCPServerLib.dll b/SharpDHCPServerLib/bin/Release/SharpDHCPServerLib.dll Binary files differnew file mode 100644 index 0000000..0b41b2e --- /dev/null +++ b/SharpDHCPServerLib/bin/Release/SharpDHCPServerLib.dll diff --git a/SharpDHCPServerLib/bin/Release/SharpDHCPServerLib.pdb b/SharpDHCPServerLib/bin/Release/SharpDHCPServerLib.pdb Binary files differnew file mode 100644 index 0000000..868eb85 --- /dev/null +++ b/SharpDHCPServerLib/bin/Release/SharpDHCPServerLib.pdb diff --git a/SharpDHCPServerLib/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SharpDHCPServerLib/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache Binary files differnew file mode 100644 index 0000000..3819a93 --- /dev/null +++ b/SharpDHCPServerLib/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/SharpDHCPServerLib/obj/Debug/SharpDHCPServerLib.csproj.FileListAbsolute.txt b/SharpDHCPServerLib/obj/Debug/SharpDHCPServerLib.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..ad206c2 --- /dev/null +++ b/SharpDHCPServerLib/obj/Debug/SharpDHCPServerLib.csproj.FileListAbsolute.txt @@ -0,0 +1,11 @@ +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServerLib\bin\Debug\SharpDHCPServerLib.dll +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServerLib\bin\Debug\SharpDHCPServerLib.pdb +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServerLib\obj\Debug\ResolveAssemblyReference.cache +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServerLib\obj\Debug\SharpDHCPServerLib.dll +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServerLib\obj\Debug\SharpDHCPServerLib.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\bin\Debug\SharpDHCPServerLib.dll +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\bin\Debug\SharpDHCPServerLib.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\obj\Debug\ResolveAssemblyReference.cache +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\obj\Debug\SharpDHCPServerLib.dll +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\obj\Debug\SharpDHCPServerLib.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\bin\Debug\SharpDHCPServerLib.XML diff --git a/SharpDHCPServerLib/obj/Debug/SharpDHCPServerLib.dll b/SharpDHCPServerLib/obj/Debug/SharpDHCPServerLib.dll Binary files differnew file mode 100644 index 0000000..5d90d66 --- /dev/null +++ b/SharpDHCPServerLib/obj/Debug/SharpDHCPServerLib.dll diff --git a/SharpDHCPServerLib/obj/Debug/SharpDHCPServerLib.pdb b/SharpDHCPServerLib/obj/Debug/SharpDHCPServerLib.pdb Binary files differnew file mode 100644 index 0000000..2b3bb6e --- /dev/null +++ b/SharpDHCPServerLib/obj/Debug/SharpDHCPServerLib.pdb diff --git a/SharpDHCPServerLib/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/SharpDHCPServerLib/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache Binary files differnew file mode 100644 index 0000000..48f1a8e --- /dev/null +++ b/SharpDHCPServerLib/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/SharpDHCPServerLib/obj/Release/SharpDHCPServerLib.csproj.FileListAbsolute.txt b/SharpDHCPServerLib/obj/Release/SharpDHCPServerLib.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..b52c004 --- /dev/null +++ b/SharpDHCPServerLib/obj/Release/SharpDHCPServerLib.csproj.FileListAbsolute.txt @@ -0,0 +1,6 @@ +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\bin\Release\SharpDHCPServerLib.dll +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\bin\Release\SharpDHCPServerLib.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\obj\Release\ResolveAssemblyReference.cache +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\obj\Release\SharpDHCPServerLib.dll +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\obj\Release\SharpDHCPServerLib.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServerLib\bin\Release\SharpDHCPServerLib.XML diff --git a/SharpDHCPServerLib/obj/Release/SharpDHCPServerLib.dll b/SharpDHCPServerLib/obj/Release/SharpDHCPServerLib.dll Binary files differnew file mode 100644 index 0000000..0b41b2e --- /dev/null +++ b/SharpDHCPServerLib/obj/Release/SharpDHCPServerLib.dll diff --git a/SharpDHCPServerLib/obj/Release/SharpDHCPServerLib.pdb b/SharpDHCPServerLib/obj/Release/SharpDHCPServerLib.pdb Binary files differnew file mode 100644 index 0000000..868eb85 --- /dev/null +++ b/SharpDHCPServerLib/obj/Release/SharpDHCPServerLib.pdb diff --git a/SharpDHCPServer_Sample/Program.cs b/SharpDHCPServer_Sample/Program.cs new file mode 100644 index 0000000..f350d82 --- /dev/null +++ b/SharpDHCPServer_Sample/Program.cs @@ -0,0 +1,119 @@ +/* + * ShapDHCPServer (C) 2010, Cluster + * http://clusterrr.com + * http://code.google.com/p/sharpdhcpserver/ + * + * DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + * Version 2, December 2004 + * + * Copyright (C) 2004 Sam Hocevar + * 14 rue de Plaisance, 75014 Paris, France + * Everyone is permitted to copy and distribute verbatim or modified + * copies of this license document, and changing it is allowed as long + * as the name is changed. + * + * DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + * TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + * + * 0. You just DO WHAT THE FUCK YOU WANT TO. + * + */ + +using System; +using System.Collections.Generic; +using System.Text; +using System.Net; +using Cluster.SharpDHCPServer; + +namespace Cluster.SharpDHCPServer_Sample +{ + class Program + { + const string LOCAL_INTERFACE = "0.0.0.0"; + static byte nextIP = 10; + static Dictionary<string, IPAddress> leases = new Dictionary<string, IPAddress>(); + static void Main(string[] args) + { + var server = new DHCPServer(); + server.ServerName = "SharpDHCPServer"; + server.OnDataReceived += Request; + Console.WriteLine("Running DHCP server. Press enter to stop it."); + Console.ReadLine(); + server.Dispose(); + } + + static void Request(DHCPRequest dhcpRequest) + { + var type = dhcpRequest.GetMsgType(); + var mac = ByteArrayToString(dhcpRequest.GetChaddr()); + // IP for client + IPAddress ip; + if (!leases.TryGetValue(mac, out ip)) + { + ip = new IPAddress(new byte[] { 10, 0, 0, nextIP++ }); + leases[mac] = ip; + } + Console.WriteLine(type.ToString() + " request from " + mac + ", it will be " + ip.ToString()); + + var options = dhcpRequest.GetAllOptions(); + Console.Write("Options:"); + foreach (DHCPOption option in options.Keys) + { + Console.WriteLine(option.ToString() + ": " + ByteArrayToString(options[option])); + } + // Lets show some request info + var requestedOptions = dhcpRequest.GetRequestedOptionsList(); + if (requestedOptions != null) + { + Console.Write("Requested options:"); + foreach (DHCPOption option in requestedOptions) Console.Write(" " + option.ToString()); + Console.WriteLine(); + } + // Option 82 info + var relayInfo = dhcpRequest.GetRelayInfo(); + if (relayInfo.AgentCircuitID != null) Console.WriteLine("Relay agent circuit ID: " + ByteArrayToString(relayInfo.AgentCircuitID)); + if (relayInfo.AgentRemoteID != null) Console.WriteLine("Relay agent remote ID: " + ByteArrayToString(relayInfo.AgentRemoteID)); + Console.WriteLine(); + + var replyOptions = new DHCPReplyOptions(); + // Options should be filled with valid data. Only requested options will be sent. + replyOptions.SubnetMask = IPAddress.Parse("255.255.255.0"); + replyOptions.DomainName = "SharpDHCPServer"; + replyOptions.ServerIdentifier = IPAddress.Parse("10.0.0.1"); + replyOptions.RouterIP = IPAddress.Parse("10.0.0.1"); + replyOptions.DomainNameServers = new IPAddress[] { IPAddress.Parse("192.168.100.2"), IPAddress.Parse("192.168.100.3") }; + // Some static routes + replyOptions.StaticRoutes = new NetworkRoute[] { + new NetworkRoute(IPAddress.Parse("10.0.0.0"), IPAddress.Parse("255.0.0.0"), IPAddress.Parse("10.0.0.1")), + new NetworkRoute(IPAddress.Parse("192.168.0.0"), IPAddress.Parse("255.255.0.0"), IPAddress.Parse("10.0.0.1")), + new NetworkRoute(IPAddress.Parse("172.16.0.0"), IPAddress.Parse("255.240.0.0"), IPAddress.Parse("10.0.0.1")), + new NetworkRoute(IPAddress.Parse("80.252.130.248"), IPAddress.Parse("255.255.255.248"), IPAddress.Parse("10.0.0.1")), + new NetworkRoute(IPAddress.Parse("80.252.128.88"), IPAddress.Parse("255.255.255.248"), IPAddress.Parse("10.0.0.1")), + }; + + // Lets send reply to client! + if (type == DHCPMsgType.DHCPDISCOVER) + dhcpRequest.SendDHCPReply(DHCPMsgType.DHCPOFFER, ip, replyOptions); + if (type == DHCPMsgType.DHCPREQUEST) + dhcpRequest.SendDHCPReply(DHCPMsgType.DHCPACK, ip, replyOptions); + } + + static string ByteArrayToString(byte[] ar) + { + var res = new StringBuilder(); + foreach (var b in ar) + { + res.Append(b.ToString("X2")); + } + res.Append(" ("); + foreach (var b in ar) + { + if ((b >= 32) && (b <127)) + res.Append(Encoding.ASCII.GetString(new byte[] { b })); + else res.Append(" "); + } + res.Append(")"); + return res.ToString(); + } + } +} diff --git a/SharpDHCPServer_Sample/Properties/.svn/all-wcprops b/SharpDHCPServer_Sample/Properties/.svn/all-wcprops new file mode 100644 index 0000000..fc8a3fe --- /dev/null +++ b/SharpDHCPServer_Sample/Properties/.svn/all-wcprops @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 55 +/svn/!svn/ver/2/trunk/SharpDHCPServer_Sample/Properties +END +AssemblyInfo.cs +K 25 +svn:wc:ra_dav:version-url +V 71 +/svn/!svn/ver/2/trunk/SharpDHCPServer_Sample/Properties/AssemblyInfo.cs +END diff --git a/SharpDHCPServer_Sample/Properties/.svn/entries b/SharpDHCPServer_Sample/Properties/.svn/entries new file mode 100644 index 0000000..6b87649 --- /dev/null +++ b/SharpDHCPServer_Sample/Properties/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +2 +https://sharpdhcpserver.googlecode.com/svn/trunk/SharpDHCPServer_Sample/Properties +https://sharpdhcpserver.googlecode.com/svn + + + +2010-12-06T13:59:04.594212Z +2 +Avdyukhin@gmail.com + + + + + + + + + + + + + + +3d45f574-0380-fa68-85f7-e44bac00989b + +AssemblyInfo.cs +file + + + + +2010-12-06T13:51:30.753049Z +ab4507a3a785b28cd58c3d387576aeb7 +2010-12-06T13:59:04.594212Z +2 +Avdyukhin@gmail.com + + + + + + + + + + + + + + + + + + + + + +2068 + diff --git a/SharpDHCPServer_Sample/Properties/.svn/text-base/AssemblyInfo.cs.svn-base b/SharpDHCPServer_Sample/Properties/.svn/text-base/AssemblyInfo.cs.svn-base new file mode 100644 index 0000000..ff53389 --- /dev/null +++ b/SharpDHCPServer_Sample/Properties/.svn/text-base/AssemblyInfo.cs.svn-base @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Управление общими сведениями о сборке осуществляется с помощью +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("SharpDHCPServer_Sample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Cluster")] +[assembly: AssemblyProduct("SharpDHCPServer_Sample")] +[assembly: AssemblyCopyright("Copyright © Cluster 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Параметр ComVisible со значением FALSE делает типы в сборке невидимыми +// для COM-компонентов. Если требуется обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("b0578828-11d1-4197-8af2-f029410d1672")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер построения +// Редакция +// +// Можно задать все значения или принять номер построения и номер редакции по умолчанию, +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SharpDHCPServer_Sample/Properties/AssemblyInfo.cs b/SharpDHCPServer_Sample/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..ff53389 --- /dev/null +++ b/SharpDHCPServer_Sample/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Управление общими сведениями о сборке осуществляется с помощью +// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения, +// связанные со сборкой. +[assembly: AssemblyTitle("SharpDHCPServer_Sample")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Cluster")] +[assembly: AssemblyProduct("SharpDHCPServer_Sample")] +[assembly: AssemblyCopyright("Copyright © Cluster 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Параметр ComVisible со значением FALSE делает типы в сборке невидимыми +// для COM-компонентов. Если требуется обратиться к типу в этой сборке через +// COM, задайте атрибуту ComVisible значение TRUE для этого типа. +[assembly: ComVisible(false)] + +// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM +[assembly: Guid("b0578828-11d1-4197-8af2-f029410d1672")] + +// Сведения о версии сборки состоят из следующих четырех значений: +// +// Основной номер версии +// Дополнительный номер версии +// Номер построения +// Редакция +// +// Можно задать все значения или принять номер построения и номер редакции по умолчанию, +// используя "*", как показано ниже: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/SharpDHCPServer_Sample/SharpDHCPServer_Sample.csproj b/SharpDHCPServer_Sample/SharpDHCPServer_Sample.csproj new file mode 100644 index 0000000..c69a977 --- /dev/null +++ b/SharpDHCPServer_Sample/SharpDHCPServer_Sample.csproj @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> + <Platform Condition=" '$(Platform)' == '' ">x86</Platform> + <ProductVersion>8.0.30703</ProductVersion> + <SchemaVersion>2.0</SchemaVersion> + <ProjectGuid>{E0A4A539-681E-45E1-84A8-C530BA129856}</ProjectGuid> + <OutputType>Exe</OutputType> + <AppDesignerFolder>Properties</AppDesignerFolder> + <RootNamespace>Cluster.SharpDHCPServer_Sample</RootNamespace> + <AssemblyName>SharpDHCPServer_Sample</AssemblyName> + <TargetFrameworkVersion>v3.5</TargetFrameworkVersion> + <FileAlignment>512</FileAlignment> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> + <PlatformTarget>x86</PlatformTarget> + <DebugSymbols>true</DebugSymbols> + <DebugType>full</DebugType> + <Optimize>false</Optimize> + <OutputPath>bin\Debug\</OutputPath> + <DefineConstants>DEBUG;TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> + <PlatformTarget>x86</PlatformTarget> + <DebugType>pdbonly</DebugType> + <Optimize>true</Optimize> + <OutputPath>bin\Release\</OutputPath> + <DefineConstants>TRACE</DefineConstants> + <ErrorReport>prompt</ErrorReport> + <WarningLevel>4</WarningLevel> + </PropertyGroup> + <ItemGroup> + <Reference Include="System" /> + <Reference Include="System.Core" /> + <Reference Include="System.Xml.Linq" /> + <Reference Include="System.Data.DataSetExtensions" /> + <Reference Include="System.Data" /> + <Reference Include="System.Xml" /> + </ItemGroup> + <ItemGroup> + <Compile Include="Program.cs" /> + <Compile Include="Properties\AssemblyInfo.cs" /> + </ItemGroup> + <ItemGroup> + <ProjectReference Include="..\SharpDHCPServerLib\SharpDHCPServerLib.csproj"> + <Project>{B7FCD134-E2B2-43A9-96C5-3DEDB5669F37}</Project> + <Name>SharpDHCPServerLib</Name> + </ProjectReference> + </ItemGroup> + <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> + <!-- To modify your build process, add your task inside one of the targets below and uncomment it. + Other similar extension points exist, see Microsoft.Common.targets. + <Target Name="BeforeBuild"> + </Target> + <Target Name="AfterBuild"> + </Target> + --> +</Project>
\ No newline at end of file diff --git a/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServerLib.dll b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServerLib.dll Binary files differnew file mode 100644 index 0000000..3340512 --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServerLib.dll diff --git a/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServerLib.pdb b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServerLib.pdb Binary files differnew file mode 100644 index 0000000..7a9dc7c --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServerLib.pdb diff --git a/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServerLib.xml b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServerLib.xml new file mode 100644 index 0000000..3302c01 --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServerLib.xml @@ -0,0 +1,518 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>SharpDHCPServerLib</name> + </assembly> + <members> + <member name="T:Cluster.SharpDHCPServer.DHCPRequest"> + <summary> + DHCP request + </summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRequestedOptionsList"> + <summary> + Returns array of requested by client options + </summary> + <returns>Array of requested by client options</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.SendDHCPReply(Cluster.SharpDHCPServer.DHCPMsgType,System.Net.IPAddress,Cluster.SharpDHCPServer.DHCPReplyOptions)"> + <summary> + Sends DHCP reply + </summary> + <param name="msgType">Type of DHCP message to send</param> + <param name="ip">IP for client</param> + <param name="replyData">Reply options (will be sent if requested)</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.SendDHCPReply(Cluster.SharpDHCPServer.DHCPMsgType,System.Net.IPAddress,Cluster.SharpDHCPServer.DHCPReplyOptions,System.Collections.Generic.Dictionary{Cluster.SharpDHCPServer.DHCPOption,System.Byte[]})"> + <summary> + Sends DHCP reply + </summary> + <param name="msgType">Type of DHCP message to send</param> + <param name="ip">IP for client</param> + <param name="replyData">Reply options (will be sent if requested)</param> + <param name="otherForceOptions">Force reply options (will be sent anyway)</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetOptionData(Cluster.SharpDHCPServer.DHCPOption)"> + <summary> + Returns option content + </summary> + <param name="option">Option to retrieve</param> + <returns>Option content</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetAllOptions"> + <summary> + Returns all options + </summary> + <returns>Options dictionary</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetCiaddr"> + <summary> + Returns ciaddr (client IP address) + </summary> + <returns>ciaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetGiaddr"> + <summary> + Returns giaddr (gateway IP address switched by relay) + </summary> + <returns>giaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetChaddr"> + <summary> + Returns chaddr (client hardware address) + </summary> + <returns>chaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetMsgType"> + <summary> + Returns type of DHCP request + </summary> + <returns>DHCP message type</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRawPacket"> + <summary> + Returns entire content of DHCP packet + </summary> + <returns>DHCP packet</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRelayInfo"> + <summary> + Returns relay info (option 82) + </summary> + <returns>Relay info</returns> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket"> + <summary> + Raw DHCP packet + </summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.op"> + <summary>Op code: 1 = boot request, 2 = boot reply</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.htype"> + <summary>Hardware address type</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.hlen"> + <summary>Hardware address length: length of MACID</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.hops"> + <summary>Hardware options</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.xid"> + <summary>Transaction id</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.secs"> + <summary>Elapsed time from trying to boot</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.flags"> + <summary>Flags</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.ciaddr"> + <summary>Client IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.yiaddr"> + <summary>Your client IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.siaddr"> + <summary>Server IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.giaddr"> + <summary>Relay agent IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.chaddr"> + <summary>Client HW address</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.sname"> + <summary>Optional server host name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.file"> + <summary>Boot file name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.mcookie"> + <summary>Magic cookie</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.options"> + <summary>Options (rest)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPServer"> + <summary> + DHCP Server + </summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.#ctor(System.Net.IPAddress)"> + <summary> + Creates DHCP server, it will be started instantly + </summary> + <param name="bindIp">IP address to bind</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.#ctor"> + <summary>Creates DHCP server, it will be started instantly</summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.Dispose"> + <summary>Disposes DHCP server</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDataReceived"> + <summary>Will be called on any DHCP message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDiscover"> + <summary>Will be called on any DISCOVER message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnRequest"> + <summary>Will be called on any REQUEST message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDecline"> + <summary>Will be called on any DECLINE message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnReleased"> + <summary>Will be called on any DECLINE released</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnInform"> + <summary>Will be called on any DECLINE inform</summary> + </member> + <member name="P:Cluster.SharpDHCPServer.DHCPServer.ServerName"> + <summary>Server name (optional)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPServer.DHCPDataReceivedEventHandler"> + <summary>Delegate for DHCP message</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPMsgType"> + <summary>DHCP message type</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPDISCOVER"> + <summary>DHCP DISCOVER message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPOFFER"> + <summary>DHCP OFFER message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPREQUEST"> + <summary>DHCP REQUEST message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPDECLINE"> + <summary>DHCP DECLINE message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPACK"> + <summary>DHCP ACK message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPNAK"> + <summary>DHCP NAK message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPRELEASE"> + <summary>DHCP RELEASE message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPINFORM"> + <summary>DHCP INFORM message</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPOption"> + <summary>DHCP option enum</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SubnetMask"> + <summary>Option 1</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TimeOffset"> + <summary>Option 2</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Router"> + <summary>Option 3</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TimeServer"> + <summary>Option 4</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NameServer"> + <summary>Option 5</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DomainNameServers"> + <summary>Option 6</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.LogServer"> + <summary>Option 7</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.CookieServer"> + <summary>Option 8</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.LPRServer"> + <summary>Option 9</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ImpressServer"> + <summary>Option 10</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ResourceLocServer"> + <summary>Option 11</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.HostName"> + <summary>Option 12</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BootFileSize"> + <summary>Option 13</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MeritDump"> + <summary>Option 14</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DomainName"> + <summary>Option 15</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SwapServer"> + <summary>Option 16</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RootPath"> + <summary>Option 17</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ExtensionsPath"> + <summary>Option 18</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.IpForwarding"> + <summary>Option 19</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NonLocalSourceRouting"> + <summary>Option 20</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PolicyFilter"> + <summary>Option 21</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaximumDatagramReAssemblySize"> + <summary>Option 22</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultIPTimeToLive"> + <summary>Option 23</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PathMTUAgingTimeout"> + <summary>Option 24</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PathMTUPlateauTable"> + <summary>Option 25</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.InterfaceMTU"> + <summary>Option 26</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.AllSubnetsAreLocal"> + <summary>Option 27</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BroadcastAddress"> + <summary>Option 28</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PerformMaskDiscovery"> + <summary>Option 29</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaskSupplier"> + <summary>Option 30</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PerformRouterDiscovery"> + <summary>Option 31</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RouterSolicitationAddress"> + <summary>Option 32</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoute"> + <summary>Option 33</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TrailerEncapsulation"> + <summary>Option 34</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ARPCacheTimeout"> + <summary>Option 35</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.EthernetEncapsulation"> + <summary>Option 36</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPDefaultTTL"> + <summary>Option 37</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPKeepaliveInterval"> + <summary>Option 38</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPKeepaliveGarbage"> + <summary>Option 39</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServiceDomain"> + <summary>Option 40</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServers"> + <summary>Option 41</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkTimeProtocolServers"> + <summary>Option 42</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.VendorSpecificInformation"> + <summary>Option 43</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPNameServer"> + <summary>Option 44</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPDatagramDistributionServer"> + <summary>Option 45</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPNodeType"> + <summary>Option 46</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPScope"> + <summary>Option 47</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.XWindowSystemFontServer"> + <summary>Option 48</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.XWindowSystemDisplayManager"> + <summary>Option 49</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RequestedIPAddress"> + <summary>Option 50</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.IPAddressLeaseTime"> + <summary>Option 51</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.OptionOverload"> + <summary>Option 52</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DHCPMessageTYPE"> + <summary>Option 53</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ServerIdentifier"> + <summary>Option 54</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ParameterRequestList"> + <summary>Option 55</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Message"> + <summary>Option 56</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaximumDHCPMessageSize"> + <summary>Option 57</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RenewalTimeValue_T1"> + <summary>Option 58</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RebindingTimeValue_T2"> + <summary>Option 59</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Vendorclassidentifier"> + <summary>Option 60</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ClientIdentifier"> + <summary>Option 61</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetWateIPDomainName"> + <summary>Option 62</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetWateIPInformation"> + <summary>Option 63</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServicePlusDomain"> + <summary>Option 64</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServicePlusServers"> + <summary>Option 65</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TFTPServerName"> + <summary>Option 66</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BootfileName"> + <summary>Option 67</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MobileIPHomeAgent"> + <summary>Option 68</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SMTPServer"> + <summary>Option 69</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.POP3Server"> + <summary>Option 70</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NNTPServer"> + <summary>Option 71</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultWWWServer"> + <summary>Option 72</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultFingerServer"> + <summary>Option 73</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultIRCServer"> + <summary>Option 74</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StreetTalkServer"> + <summary>Option 75</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.STDAServer"> + <summary>Option 76</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RelayInfo"> + <summary>Option 82</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoutes"> + <summary>Option 121</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoutesWin"> + <summary>Option 249</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.END_Option"> + <summary>Option 255 (END option)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPReplyOptions"> + <summary>Reply options</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.SubnetMask"> + <summary>IP address</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.IPAddressLeaseTime"> + <summary>IP address lease time (seconds)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RenewalTimeValue_T1"> + <summary>Renewal time (seconds)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RebindingTimeValue_T2"> + <summary>Rebinding time (seconds)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.DomainName"> + <summary>Domain name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.ServerIdentifier"> + <summary>IP address of DHCP server</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RouterIP"> + <summary>Router (gateway) IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.DomainNameServers"> + <summary>Domain name servers (DNS)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.LogServerIP"> + <summary>Log server IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.StaticRoutes"> + <summary>Static routes</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.OtherRequestedOptions"> + <summary>Other options which will be sent on request</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.NetworkRoute"> + <summary>Network route</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.Network"> + <summary>IP address of destination network</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.NetMaskLength"> + <summary>Subnet mask length</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.Gateway"> + <summary>Gateway</summary> + </member> + <member name="M:Cluster.SharpDHCPServer.NetworkRoute.#ctor(System.Net.IPAddress,System.Byte,System.Net.IPAddress)"> + <summary>Creates network route</summary> + <param name="network">IP address to bind</param> + <param name="netMaskLength">Subnet mask length</param> + <param name="gateway">Gateway</param> + </member> + <member name="M:Cluster.SharpDHCPServer.NetworkRoute.#ctor(System.Net.IPAddress,System.Net.IPAddress,System.Net.IPAddress)"> + <summary>Creates network route</summary> + <param name="network">IP address to bind</param> + <param name="netMask">Subnet mask</param> + <param name="gateway">Gateway</param> + </member> + <member name="T:Cluster.SharpDHCPServer.RelayInfo"> + <summary>DHCP relay information (option 82)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.RelayInfo.AgentCircuitID"> + <summary>Agent circuit ID</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.RelayInfo.AgentRemoteID"> + <summary>Agent remote ID</summary> + </member> + </members> +</doc> diff --git a/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.exe b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.exe Binary files differnew file mode 100644 index 0000000..006a484 --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.exe diff --git a/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.pdb b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.pdb Binary files differnew file mode 100644 index 0000000..b16fc76 --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.pdb diff --git a/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.vshost.exe b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.vshost.exe Binary files differnew file mode 100644 index 0000000..58da521 --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.vshost.exe diff --git a/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.vshost.exe.manifest b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Debug/SharpDHCPServer_Sample.vshost.exe.manifest @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> + <security> + <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> + <requestedExecutionLevel level="asInvoker" uiAccess="false"/> + </requestedPrivileges> + </security> + </trustInfo> +</assembly> diff --git a/SharpDHCPServer_Sample/bin/Release/SharpDHCPServerLib.dll b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServerLib.dll Binary files differnew file mode 100644 index 0000000..4726802 --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServerLib.dll diff --git a/SharpDHCPServer_Sample/bin/Release/SharpDHCPServerLib.pdb b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServerLib.pdb Binary files differnew file mode 100644 index 0000000..319e1c2 --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServerLib.pdb diff --git a/SharpDHCPServer_Sample/bin/Release/SharpDHCPServerLib.xml b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServerLib.xml new file mode 100644 index 0000000..a9d7598 --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServerLib.xml @@ -0,0 +1,515 @@ +<?xml version="1.0"?> +<doc> + <assembly> + <name>SharpDHCPServerLib</name> + </assembly> + <members> + <member name="T:Cluster.SharpDHCPServer.DHCPRequest"> + <summary> + DHCP request + </summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRequestedOptionsList"> + <summary> + Returns array of requested by client options + </summary> + <returns>Array of requested by client options</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.SendDHCPReply(Cluster.SharpDHCPServer.DHCPMsgType,System.Net.IPAddress,Cluster.SharpDHCPServer.DHCPReplyOptions)"> + <summary> + Sends DHCP reply + </summary> + <param name="msgType">Type of DHCP message to send</param> + <param name="ip">IP for client</param> + <param name="replyData">Reply options (will be sent if requested)</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.SendDHCPReply(Cluster.SharpDHCPServer.DHCPMsgType,System.Net.IPAddress,Cluster.SharpDHCPServer.DHCPReplyOptions,System.Collections.Generic.Dictionary{Cluster.SharpDHCPServer.DHCPOption,System.Byte[]})"> + <summary> + Sends DHCP reply + </summary> + <param name="msgType">Type of DHCP message to send</param> + <param name="ip">IP for client</param> + <param name="replyData">Reply options (will be sent if requested)</param> + <param name="otherForceOptions">Force reply options (will be sent anyway)</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetOptionData(Cluster.SharpDHCPServer.DHCPOption)"> + <summary> + Returns option content + </summary> + <param name="option">Option to retrieve</param> + <returns>Option content</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetAllOptions"> + <summary> + Returns all options + </summary> + <returns>Options dictionary</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetCiaddr"> + <summary> + Returns ciaddr (client IP address) + </summary> + <returns>ciaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetGiaddr"> + <summary> + Returns giaddr (gateway IP address switched by relay) + </summary> + <returns>giaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetChaddr"> + <summary> + Returns chaddr (client hardware address) + </summary> + <returns>chaddr</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetMsgType"> + <summary> + Returns type of DHCP request + </summary> + <returns>DHCP message type</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRawPacket"> + <summary> + Returns entire content of DHCP packet + </summary> + <returns>DHCP packet</returns> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPRequest.GetRelayInfo"> + <summary> + Returns relay info (option 82) + </summary> + <returns>Relay info</returns> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket"> + <summary> + Raw DHCP packet + </summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.op"> + <summary>Op code: 1 = boot request, 2 = boot reply</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.htype"> + <summary>Hardware address type</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.hlen"> + <summary>Hardware address length: length of MACID</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.hops"> + <summary>Hardware options</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.xid"> + <summary>Transaction id</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.secs"> + <summary>Elapsed time from trying to boot</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.flags"> + <summary>Flags</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.ciaddr"> + <summary>Client IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.yiaddr"> + <summary>Your client IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.siaddr"> + <summary>Server IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.giaddr"> + <summary>Relay agent IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.chaddr"> + <summary>Client HW address</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.sname"> + <summary>Optional server host name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.file"> + <summary>Boot file name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.mcookie"> + <summary>Magic cookie</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPRequest.DHCPPacket.options"> + <summary>Options (rest)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPServer"> + <summary> + DHCP Server + </summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.#ctor(System.Net.IPAddress)"> + <summary> + Creates DHCP server, it will be started instantly + </summary> + <param name="bindIp">IP address to bind</param> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.#ctor"> + <summary>Creates DHCP server, it will be started instantly</summary> + </member> + <member name="M:Cluster.SharpDHCPServer.DHCPServer.Dispose"> + <summary>Disposes DHCP server</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDataReceived"> + <summary>Will be called on any DHCP message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDiscover"> + <summary>Will be called on any DISCOVER message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnRequest"> + <summary>Will be called on any REQUEST message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnDecline"> + <summary>Will be called on any DECLINE message</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnReleased"> + <summary>Will be called on any DECLINE released</summary> + </member> + <member name="E:Cluster.SharpDHCPServer.DHCPServer.OnInform"> + <summary>Will be called on any DECLINE inform</summary> + </member> + <member name="P:Cluster.SharpDHCPServer.DHCPServer.ServerName"> + <summary>Server name (optional)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPServer.DHCPDataReceivedEventHandler"> + <summary>Delegate for DHCP message</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPMsgType"> + <summary>DHCP message type</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPDISCOVER"> + <summary>DHCP DISCOVER message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPOFFER"> + <summary>DHCP OFFER message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPREQUEST"> + <summary>DHCP REQUEST message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPDECLINE"> + <summary>DHCP DECLINE message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPACK"> + <summary>DHCP ACK message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPNAK"> + <summary>DHCP NAK message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPRELEASE"> + <summary>DHCP RELEASE message</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPMsgType.DHCPINFORM"> + <summary>DHCP INFORM message</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPOption"> + <summary>DHCP option enum</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SubnetMask"> + <summary>Option 1</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TimeOffset"> + <summary>Option 2</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Router"> + <summary>Option 3</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TimeServer"> + <summary>Option 4</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NameServer"> + <summary>Option 5</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DomainNameServers"> + <summary>Option 6</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.LogServer"> + <summary>Option 7</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.CookieServer"> + <summary>Option 8</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.LPRServer"> + <summary>Option 9</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ImpressServer"> + <summary>Option 10</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ResourceLocServer"> + <summary>Option 11</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.HostName"> + <summary>Option 12</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BootFileSize"> + <summary>Option 13</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MeritDump"> + <summary>Option 14</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DomainName"> + <summary>Option 15</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SwapServer"> + <summary>Option 16</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RootPath"> + <summary>Option 17</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ExtensionsPath"> + <summary>Option 18</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.IpForwarding"> + <summary>Option 19</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NonLocalSourceRouting"> + <summary>Option 20</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PolicyFilter"> + <summary>Option 21</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaximumDatagramReAssemblySize"> + <summary>Option 22</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultIPTimeToLive"> + <summary>Option 23</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PathMTUAgingTimeout"> + <summary>Option 24</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PathMTUPlateauTable"> + <summary>Option 25</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.InterfaceMTU"> + <summary>Option 26</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.AllSubnetsAreLocal"> + <summary>Option 27</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BroadcastAddress"> + <summary>Option 28</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PerformMaskDiscovery"> + <summary>Option 29</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaskSupplier"> + <summary>Option 30</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.PerformRouterDiscovery"> + <summary>Option 31</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RouterSolicitationAddress"> + <summary>Option 32</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoute"> + <summary>Option 33</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TrailerEncapsulation"> + <summary>Option 34</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ARPCacheTimeout"> + <summary>Option 35</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.EthernetEncapsulation"> + <summary>Option 36</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPDefaultTTL"> + <summary>Option 37</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPKeepaliveInterval"> + <summary>Option 38</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TCPKeepaliveGarbage"> + <summary>Option 39</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServiceDomain"> + <summary>Option 40</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServers"> + <summary>Option 41</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkTimeProtocolServers"> + <summary>Option 42</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.VendorSpecificInformation"> + <summary>Option 43</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPNameServer"> + <summary>Option 44</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPDatagramDistributionServer"> + <summary>Option 45</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPNodeType"> + <summary>Option 46</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetBIOSoverTCPIPScope"> + <summary>Option 47</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.XWindowSystemFontServer"> + <summary>Option 48</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.XWindowSystemDisplayManager"> + <summary>Option 49</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RequestedIPAddress"> + <summary>Option 50</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.IPAddressLeaseTime"> + <summary>Option 51</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.OptionOverload"> + <summary>Option 52</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DHCPMessageTYPE"> + <summary>Option 53</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ServerIdentifier"> + <summary>Option 54</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ParameterRequestList"> + <summary>Option 55</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Message"> + <summary>Option 56</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MaximumDHCPMessageSize"> + <summary>Option 57</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RenewalTimeValue_T1"> + <summary>Option 58</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RebindingTimeValue_T2"> + <summary>Option 59</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.Vendorclassidentifier"> + <summary>Option 60</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.ClientIdentifier"> + <summary>Option 61</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetWateIPDomainName"> + <summary>Option 62</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetWateIPInformation"> + <summary>Option 63</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServicePlusDomain"> + <summary>Option 64</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NetworkInformationServicePlusServers"> + <summary>Option 65</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.TFTPServerName"> + <summary>Option 66</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.BootfileName"> + <summary>Option 67</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.MobileIPHomeAgent"> + <summary>Option 68</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.SMTPServer"> + <summary>Option 69</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.POP3Server"> + <summary>Option 70</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.NNTPServer"> + <summary>Option 71</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultWWWServer"> + <summary>Option 72</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultFingerServer"> + <summary>Option 73</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.DefaultIRCServer"> + <summary>Option 74</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StreetTalkServer"> + <summary>Option 75</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.STDAServer"> + <summary>Option 76</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.RelayInfo"> + <summary>Option 82</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoutes"> + <summary>Option 121</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.StaticRoutesWin"> + <summary>Option 249</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPOption.END_Option"> + <summary>Option 255 (END option)</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.DHCPReplyOptions"> + <summary>Reply options</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.SubnetMask"> + <summary>IP address</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RenewalTimeValue_T1"> + <summary>Renewal time (seconds)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RebindingTimeValue_T2"> + <summary>Rebinding time (seconds)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.DomainName"> + <summary>Domain name</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.ServerIdentifier"> + <summary>IP address of DHCP server</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.RouterIP"> + <summary>Router (gateway) IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.DomainNameServers"> + <summary>Domain name servers (DNS)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.LogServerIP"> + <summary>Log server IP</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.StaticRoutes"> + <summary>Static routes</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.DHCPReplyOptions.OtherRequestedOptions"> + <summary>Other options which will be sent on request</summary> + </member> + <member name="T:Cluster.SharpDHCPServer.NetworkRoute"> + <summary>Network route</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.Network"> + <summary>IP address of destination network</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.NetMaskLength"> + <summary>Subnet mask length</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.NetworkRoute.Gateway"> + <summary>Gateway</summary> + </member> + <member name="M:Cluster.SharpDHCPServer.NetworkRoute.#ctor(System.Net.IPAddress,System.Byte,System.Net.IPAddress)"> + <summary>Creates network route</summary> + <param name="network">IP address to bind</param> + <param name="netMaskLength">Subnet mask length</param> + <param name="gateway">Gateway</param> + </member> + <member name="M:Cluster.SharpDHCPServer.NetworkRoute.#ctor(System.Net.IPAddress,System.Net.IPAddress,System.Net.IPAddress)"> + <summary>Creates network route</summary> + <param name="network">IP address to bind</param> + <param name="netMask">Subnet mask</param> + <param name="gateway">Gateway</param> + </member> + <member name="T:Cluster.SharpDHCPServer.RelayInfo"> + <summary>DHCP relay information (option 82)</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.RelayInfo.AgentCircuitID"> + <summary>Agent circuit ID</summary> + </member> + <member name="F:Cluster.SharpDHCPServer.RelayInfo.AgentRemoteID"> + <summary>Agent remote ID</summary> + </member> + </members> +</doc> diff --git a/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.exe b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.exe Binary files differnew file mode 100644 index 0000000..29e18f8 --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.exe diff --git a/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.pdb b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.pdb Binary files differnew file mode 100644 index 0000000..233abfb --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.pdb diff --git a/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.vshost.exe b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.vshost.exe Binary files differnew file mode 100644 index 0000000..58da521 --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.vshost.exe diff --git a/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.vshost.exe.manifest b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.vshost.exe.manifest new file mode 100644 index 0000000..061c9ca --- /dev/null +++ b/SharpDHCPServer_Sample/bin/Release/SharpDHCPServer_Sample.vshost.exe.manifest @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> + <security> + <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> + <requestedExecutionLevel level="asInvoker" uiAccess="false"/> + </requestedPrivileges> + </security> + </trustInfo> +</assembly> diff --git a/SharpDHCPServer_Sample/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/SharpDHCPServer_Sample/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache Binary files differnew file mode 100644 index 0000000..8131b39 --- /dev/null +++ b/SharpDHCPServer_Sample/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/SharpDHCPServer_Sample/obj/x86/Debug/ResolveAssemblyReference.cache b/SharpDHCPServer_Sample/obj/x86/Debug/ResolveAssemblyReference.cache Binary files differnew file mode 100644 index 0000000..05511d8 --- /dev/null +++ b/SharpDHCPServer_Sample/obj/x86/Debug/ResolveAssemblyReference.cache diff --git a/SharpDHCPServer_Sample/obj/x86/Debug/SharpDHCPServer_Sample.csproj.FileListAbsolute.txt b/SharpDHCPServer_Sample/obj/x86/Debug/SharpDHCPServer_Sample.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..525d399 --- /dev/null +++ b/SharpDHCPServer_Sample/obj/x86/Debug/SharpDHCPServer_Sample.csproj.FileListAbsolute.txt @@ -0,0 +1,15 @@ +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServer_Sample\bin\Debug\SharpDHCPServer_Sample.exe +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServer_Sample\bin\Debug\SharpDHCPServer_Sample.pdb +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServer_Sample\obj\x86\Debug\ResolveAssemblyReference.cache +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServer_Sample\obj\x86\Debug\SharpDHCPServer_Sample.exe +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServer_Sample\obj\x86\Debug\SharpDHCPServer_Sample.pdb +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServer_Sample\bin\Debug\SharpDHCPServerLib.dll +D:\Projects\SmallDHCPServer_CodeProject\SharpDHCPServer_Sample\bin\Debug\SharpDHCPServerLib.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\bin\Debug\SharpDHCPServer_Sample.exe +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\bin\Debug\SharpDHCPServer_Sample.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\bin\Debug\SharpDHCPServerLib.dll +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\bin\Debug\SharpDHCPServerLib.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\obj\x86\Debug\ResolveAssemblyReference.cache +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\obj\x86\Debug\SharpDHCPServer_Sample.exe +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\obj\x86\Debug\SharpDHCPServer_Sample.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\bin\Debug\SharpDHCPServerLib.xml diff --git a/SharpDHCPServer_Sample/obj/x86/Debug/SharpDHCPServer_Sample.exe b/SharpDHCPServer_Sample/obj/x86/Debug/SharpDHCPServer_Sample.exe Binary files differnew file mode 100644 index 0000000..006a484 --- /dev/null +++ b/SharpDHCPServer_Sample/obj/x86/Debug/SharpDHCPServer_Sample.exe diff --git a/SharpDHCPServer_Sample/obj/x86/Debug/SharpDHCPServer_Sample.pdb b/SharpDHCPServer_Sample/obj/x86/Debug/SharpDHCPServer_Sample.pdb Binary files differnew file mode 100644 index 0000000..b16fc76 --- /dev/null +++ b/SharpDHCPServer_Sample/obj/x86/Debug/SharpDHCPServer_Sample.pdb diff --git a/SharpDHCPServer_Sample/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache b/SharpDHCPServer_Sample/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache Binary files differnew file mode 100644 index 0000000..85d8b22 --- /dev/null +++ b/SharpDHCPServer_Sample/obj/x86/Release/DesignTimeResolveAssemblyReferencesInput.cache diff --git a/SharpDHCPServer_Sample/obj/x86/Release/ResolveAssemblyReference.cache b/SharpDHCPServer_Sample/obj/x86/Release/ResolveAssemblyReference.cache Binary files differnew file mode 100644 index 0000000..fae1c34 --- /dev/null +++ b/SharpDHCPServer_Sample/obj/x86/Release/ResolveAssemblyReference.cache diff --git a/SharpDHCPServer_Sample/obj/x86/Release/SharpDHCPServer_Sample.csproj.FileListAbsolute.txt b/SharpDHCPServer_Sample/obj/x86/Release/SharpDHCPServer_Sample.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..1edb7d6 --- /dev/null +++ b/SharpDHCPServer_Sample/obj/x86/Release/SharpDHCPServer_Sample.csproj.FileListAbsolute.txt @@ -0,0 +1,8 @@ +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\bin\Release\SharpDHCPServer_Sample.exe +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\bin\Release\SharpDHCPServer_Sample.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\bin\Release\SharpDHCPServerLib.dll +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\bin\Release\SharpDHCPServerLib.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\obj\x86\Release\ResolveAssemblyReference.cache +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\obj\x86\Release\SharpDHCPServer_Sample.exe +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\obj\x86\Release\SharpDHCPServer_Sample.pdb +D:\Projects\SharpDHCPServer\SharpDHCPServer_Sample\bin\Release\SharpDHCPServerLib.xml diff --git a/SharpDHCPServer_Sample/obj/x86/Release/SharpDHCPServer_Sample.exe b/SharpDHCPServer_Sample/obj/x86/Release/SharpDHCPServer_Sample.exe Binary files differnew file mode 100644 index 0000000..29e18f8 --- /dev/null +++ b/SharpDHCPServer_Sample/obj/x86/Release/SharpDHCPServer_Sample.exe diff --git a/SharpDHCPServer_Sample/obj/x86/Release/SharpDHCPServer_Sample.pdb b/SharpDHCPServer_Sample/obj/x86/Release/SharpDHCPServer_Sample.pdb Binary files differnew file mode 100644 index 0000000..233abfb --- /dev/null +++ b/SharpDHCPServer_Sample/obj/x86/Release/SharpDHCPServer_Sample.pdb |