예제 #1
0
파일: Address.cs 프로젝트: rajeshwarn/mDNS
 internal override void Write(DNSOutgoing out_Renamed)
 {
     if (addr != null)
     {
         sbyte[] buffer = SupportClass.ToSByteArray(addr.GetAddressBytes());
         if (DNSConstants.TYPE_A == type)
         {
             // If we have a type A records we should answer with a IPv4 address
             if (addr.AddressFamily == AddressFamily.InterNetwork)
             {
                 // All is good
             }
             else
             {
                 // Get the last four bytes
                 sbyte[] tempbuffer = buffer;
                 buffer = new sbyte[4];
                 Array.Copy(tempbuffer, 12, buffer, 0, 4);
             }
         }
         else
         {
             // If we have a type AAAA records we should answer with a IPv6 address
             if (addr.AddressFamily == AddressFamily.InterNetwork)
             {
                 sbyte[] tempbuffer = buffer;
                 buffer = new sbyte[16];
                 for (int i = 0; i < 16; i++)
                 {
                     if (i < 11)
                     {
                         buffer[i] = tempbuffer[i - 12];
                     }
                     else
                     {
                         buffer[i] = 0;
                     }
                 }
             }
         }
         int length = buffer.Length;
         out_Renamed.WriteBytes(buffer, 0, length);
     }
 }
예제 #2
0
파일: Text.cs 프로젝트: rajeshwarn/mDNS
 internal override void Write(DNSOutgoing out_Renamed)
 {
     out_Renamed.WriteBytes(text, 0, text.Length);
 }
예제 #3
0
파일: Address.cs 프로젝트: pisker/mDNS
		internal override void Write(DNSOutgoing out_Renamed)
		{
			if (addr != null)
			{
				sbyte[] buffer = SupportClass.ToSByteArray(addr.GetAddressBytes());
				if (DNSConstants.TYPE_A == type)
				{
					// If we have a type A records we should answer with a IPv4 address
					if (addr.AddressFamily == AddressFamily.InterNetwork)
					{
						// All is good
					}
					else
					{
						// Get the last four bytes
						sbyte[] tempbuffer = buffer;
						buffer = new sbyte[4];
						Array.Copy(tempbuffer, 12, buffer, 0, 4);
					}
				}
				else
				{
					// If we have a type AAAA records we should answer with a IPv6 address
					if (addr.AddressFamily == AddressFamily.InterNetwork)
					{
						sbyte[] tempbuffer = buffer;
						buffer = new sbyte[16];
						for (int i = 0; i < 16; i++)
						{
							if (i < 11)
								buffer[i] = tempbuffer[i - 12];
							else
								buffer[i] = 0;
						}
					}
				}
				int length = buffer.Length;
				out_Renamed.WriteBytes(buffer, 0, length);
			}
		}
예제 #4
0
파일: Text.cs 프로젝트: pisker/mDNS
		internal override void Write(DNSOutgoing out_Renamed)
		{
			out_Renamed.WriteBytes(text, 0, text.Length);
		}