@@ -161,7 +161,7 @@ def get_lease(
161161 verbose : int = 0 ,
162162 ) -> Lease :
163163 mac_addr = mac_addr or utils .random_mac ()
164- logging .debug ("Sythensizing discover packet" )
164+ logging .debug ("Synthetizing discover packet" )
165165
166166 # D
167167 discover = packet .DHCPPacket .Discover (
@@ -177,8 +177,8 @@ def get_lease(
177177 # O
178178 tries = 0
179179 while not (offer := self .receive_offer (tx_id , verbose )):
180- logging .debug (f"Sleeping { self .retry_interval } ms then retyring discover" )
181- sleep (self .retry_interval // 1000 )
180+ logging .debug (f"Sleeping { self .retry_interval } ms then retrying discover" )
181+ sleep (self .retry_interval / 1000 )
182182 logging .debug (
183183 f"Attempt { tries } - Sending discover packet to { server } with { tx_id = } "
184184 )
@@ -197,6 +197,7 @@ def get_lease(
197197 tx_id ,
198198 use_broadcast = broadcast ,
199199 option_list = options_list ,
200+ client_ip = offer .yiaddr ,
200201 relay = relay ,
201202 )
202203 if verbose > 1 :
@@ -208,8 +209,8 @@ def get_lease(
208209 # A
209210 tries = 0
210211 while not (ack := self .receive_ack (tx_id , verbose )):
211- logging .debug (f"Sleeping { self .retry_interval } ms then retyring request" )
212- sleep (self .retry_interval // 1000 )
212+ logging .debug (f"Sleeping { self .retry_interval } ms then retrying request" )
213+ sleep (self .retry_interval / 1000 )
213214 logging .debug (
214215 f"Attempt { tries } - Sending request packet to { server } with { tx_id = } "
215216 )
@@ -299,7 +300,7 @@ def listen(
299300 if verbosity > 2 :
300301 print ("Did not receive packet, sleeping..." )
301302 tries += 1
302- sleep (self .socket_poll_interval // 1000 )
303+ sleep (self .socket_poll_interval / 1000 )
303304 return dhcp_packet , addr
304305
305306 def get_socket (self , host : str , port : int ) -> socket .socket :
@@ -311,7 +312,8 @@ def get_socket(self, host: str, port: int) -> socket.socket:
311312 try :
312313 # Option 25 is SO_BINDTODEVICE, allows us to specify a device
313314 # to bind to with this socket
314- sock .setsockopt (socket .SOL_SOCKET , 25 , self .interface .encode ())
315+ sock .setsockopt (socket .SOL_SOCKET , socket .SO_BINDTODEVICE , self .interface .encode ())
316+ logging .info (f"Binding to { self .interface } " )
315317 except :
316318 # Less reliable method of binding to interface, required where
317319 # socket option 25 does not exist (Windows)
@@ -320,6 +322,8 @@ def get_socket(self, host: str, port: int) -> socket.socket:
320322 sock .bind ((host , port ))
321323 else :
322324 sock .bind ((host , port ))
325+
326+ logging .info (f"Bound { socket } " )
323327 return sock
324328
325329 def get_writing_sockets (self ) -> List [socket .socket ]:
@@ -333,13 +337,15 @@ def get_listening_sockets(self) -> List[socket.socket]:
333337 socks = []
334338 host = ""
335339 for port in self .listening_ports :
340+ logging .debug (f"Creating socket to receiving data, binding to { (host , port )} " )
336341 server_sock = self .get_socket (host , port )
337342 socks .append (server_sock )
338343 return socks
339344
340345 def send (self , remote_addr : str , remote_port : int , data : bytes , verbosity : int ):
341346 tries = 0
342347 while tries < self .max_tries :
348+ logging .debug (f"Select: { select .select (self .listening_sockets , self .writing_sockets , self .except_sockets , self .select_timout ,)} " )
343349 if len (
344350 socks := select .select (
345351 self .listening_sockets ,
@@ -354,11 +360,12 @@ def send(self, remote_addr: str, remote_port: int, data: bytes, verbosity: int):
354360 if verbosity > 1 :
355361 print (f">> Sending packet { remote_addr } :{ remote_port } " )
356362 sock .sendto (data , (remote_addr , remote_port ))
363+ logging .debug (f"Packet Sent" )
357364 break
358365 else :
359- logging .debug (
366+ logging .warning (
360367 f"Attempt { tries } - No sockets available to write to... "
361368 f"sleeping for { self .socket_poll_interval } ms"
362369 )
363370 tries += 1
364- sleep (self .socket_poll_interval // 1000 )
371+ sleep (self .socket_poll_interval / 1000 )
0 commit comments