Przeglądaj źródła

NetBios: NodeStatusResponse: Added read constructor

Tal Aloni 5 lat temu
rodzic
commit
c3f00c5757

+ 17 - 0
SMBLibrary/NetBios/NameServicePackets/NodeStatusResponse.cs

@@ -19,6 +19,7 @@ namespace SMBLibrary.NetBios
     {
         public NameServicePacketHeader Header;
         public ResourceRecord Resource;
+        // Resource Data:
         // byte NumberOfNames;
         public KeyValuePairList<string, NameFlags> Names = new KeyValuePairList<string, NameFlags>();
         public NodeStatistics Statistics;
@@ -33,6 +34,22 @@ namespace SMBLibrary.NetBios
             Statistics = new NodeStatistics();
         }
 
+        public NodeStatusResponse(byte[] buffer, int offset)
+        {
+            Header = new NameServicePacketHeader(buffer, ref offset);
+            Resource = new ResourceRecord(buffer, ref offset);
+
+            int position = 0;
+            byte numberOfNames = ByteReader.ReadByte(Resource.Data, ref position);
+            for (int index = 0; index < numberOfNames; index++)
+            {
+                string name = ByteReader.ReadAnsiString(Resource.Data, ref position, 16);
+                NameFlags nameFlags = (NameFlags)BigEndianReader.ReadUInt16(Resource.Data, ref position);
+                Names.Add(name, nameFlags);
+            }
+            Statistics = new NodeStatistics(Resource.Data, ref position);
+        }
+
         public byte[] GetBytes()
         {
             Resource.Data = GetData();