@@ -181,19 +181,24 @@ def ToHex(obj):
181
181
182
182
class CAddress ():
183
183
def __init__ (self ):
184
+ self .time = 0
184
185
self .nServices = 1
185
186
self .pchReserved = b"\x00 " * 10 + b"\xff " * 2
186
187
self .ip = "0.0.0.0"
187
188
self .port = 0
188
189
189
- def deserialize (self , f ):
190
+ def deserialize (self , f , with_time = True ):
191
+ if with_time :
192
+ self .time = struct .unpack ("<i" , f .read (4 ))[0 ]
190
193
self .nServices = struct .unpack ("<Q" , f .read (8 ))[0 ]
191
194
self .pchReserved = f .read (12 )
192
195
self .ip = socket .inet_ntoa (f .read (4 ))
193
196
self .port = struct .unpack (">H" , f .read (2 ))[0 ]
194
197
195
- def serialize (self ):
198
+ def serialize (self , with_time = True ):
196
199
r = b""
200
+ if with_time :
201
+ r += struct .pack ("<i" , self .time )
197
202
r += struct .pack ("<Q" , self .nServices )
198
203
r += self .pchReserved
199
204
r += socket .inet_aton (self .ip )
@@ -853,11 +858,11 @@ def deserialize(self, f):
853
858
self .nServices = struct .unpack ("<Q" , f .read (8 ))[0 ]
854
859
self .nTime = struct .unpack ("<q" , f .read (8 ))[0 ]
855
860
self .addrTo = CAddress ()
856
- self .addrTo .deserialize (f )
861
+ self .addrTo .deserialize (f , False )
857
862
858
863
if self .nVersion >= 106 :
859
864
self .addrFrom = CAddress ()
860
- self .addrFrom .deserialize (f )
865
+ self .addrFrom .deserialize (f , False )
861
866
self .nNonce = struct .unpack ("<Q" , f .read (8 ))[0 ]
862
867
self .strSubVer = deser_string (f )
863
868
else :
@@ -885,8 +890,8 @@ def serialize(self):
885
890
r += struct .pack ("<i" , self .nVersion )
886
891
r += struct .pack ("<Q" , self .nServices )
887
892
r += struct .pack ("<q" , self .nTime )
888
- r += self .addrTo .serialize ()
889
- r += self .addrFrom .serialize ()
893
+ r += self .addrTo .serialize (False )
894
+ r += self .addrFrom .serialize (False )
890
895
r += struct .pack ("<Q" , self .nNonce )
891
896
r += ser_string (self .strSubVer )
892
897
r += struct .pack ("<i" , self .nStartingHeight )
0 commit comments