@@ -29,11 +29,8 @@ def format_dhcp_packet(pkt: packet.DHCPPacket) -> str:
29
29
broadcast = "BROADCAST" if pkt .flags else "UNICAST"
30
30
client_info_padding = 18
31
31
client_info = f"{ pkt .htype } - { pkt .chaddr } ({ utils .mac2vendor (pkt .chaddr )} )"
32
- if (
33
- visual_diff := (
34
- utils .visual_length (client_info ) - (COL_LEN - client_info_padding )
35
- )
36
- ) > 0 :
32
+ visual_diff = (utils .visual_length (client_info ) - (COL_LEN - client_info_padding ))
33
+ if visual_diff > 0 :
37
34
client_info = client_info [:- visual_diff ]
38
35
39
36
output = (
@@ -172,15 +169,16 @@ def get_lease(
172
169
if verbose > 1 :
173
170
print (format_dhcp_packet (discover ))
174
171
start = default_timer ()
175
- logging .debug (f"Sending discover packet to { server } with { tx_id = } " )
172
+ logging .debug (f"Sending discover packet to { server } with { tx_id } " )
176
173
self .send_discover (server , discover , verbose )
177
174
# O
178
175
tries = 0
179
- while not (offer := self .receive_offer (tx_id , verbose )):
176
+ offer = self .receive_offer (tx_id , verbose )
177
+ while not offer :
180
178
logging .debug (f"Sleeping { self .retry_interval } ms then retrying discover" )
181
179
sleep (self .retry_interval / 1000 )
182
180
logging .debug (
183
- f"Attempt { tries } - Sending discover packet to { server } with { tx_id = } "
181
+ f"Attempt { tries } - Sending discover packet to { server } with { tx_id } "
184
182
)
185
183
if verbose > 1 :
186
184
print ("Resending DISCOVER packet" )
@@ -190,6 +188,7 @@ def get_lease(
190
188
"Unable to obtain offer run client with -d for debug info"
191
189
)
192
190
tries += 1
191
+ offer = self .receive_offer (tx_id , verbose )
193
192
# R
194
193
request = packet .DHCPPacket .Request (
195
194
mac_addr ,
@@ -200,19 +199,21 @@ def get_lease(
200
199
client_ip = offer .yiaddr ,
201
200
relay = relay ,
202
201
)
202
+ print (request )
203
203
if verbose > 1 :
204
204
print ("REQUEST Packet" )
205
205
print (format_dhcp_packet (request ))
206
206
logging .debug (f"Constructed request packet: { request } " )
207
- logging .debug (f"Sending request packet to { server } with { tx_id = } " )
207
+ logging .debug (f"Sending request packet to { server } with { tx_id } " )
208
208
self .send_request (server , request , verbose )
209
209
# A
210
210
tries = 0
211
- while not (ack := self .receive_ack (tx_id , verbose )):
211
+ ack = self .receive_ack (tx_id , verbose )
212
+ while not ack :
212
213
logging .debug (f"Sleeping { self .retry_interval } ms then retrying request" )
213
214
sleep (self .retry_interval / 1000 )
214
215
logging .debug (
215
- f"Attempt { tries } - Sending request packet to { server } with { tx_id = } "
216
+ f"Attempt { tries } - Sending request packet to { server } with { tx_id } "
216
217
)
217
218
if verbose > 1 :
218
219
print ("Resending REQUEST packet" )
@@ -222,7 +223,7 @@ def get_lease(
222
223
"Unable to obtain ack run client with -d for debug info"
223
224
)
224
225
tries += 1
225
-
226
+ ack = self . receive_ack ( tx_id , verbose )
226
227
lease_time = default_timer () - start
227
228
lease = Lease (discover , offer , request , ack , lease_time , self .ack_server )
228
229
@@ -256,19 +257,19 @@ def listen(
256
257
logging .debug (
257
258
f"Select: { select .select (self .listening_sockets , self .writing_sockets , self .except_sockets , 0 )} "
258
259
)
259
- if len (
260
- socks := select .select (
260
+ socks = select .select (
261
261
self .listening_sockets ,
262
262
self .writing_sockets ,
263
263
self .except_sockets ,
264
264
self .select_timout ,
265
265
)[0 ]
266
- ):
266
+ if len ( socks ):
267
267
for sock in socks :
268
268
data , addr = sock .recvfrom (self .max_pkt_size )
269
269
logging .debug (f"Received data from { addr } : { data } " )
270
+ dhcp_packet = self .get_valid_pkt (data )
270
271
if (
271
- ( dhcp_packet := self . get_valid_pkt ( data )) is not None
272
+ dhcp_packet is not None
272
273
and dhcp_packet .xid == tx_id
273
274
and dhcp_packet .msg_type == msg_type
274
275
):
@@ -283,12 +284,14 @@ def listen(
283
284
logging .debug (
284
285
f"TX ID does not match expected ID { dhcp_packet .xid } != { tx_id } "
285
286
)
286
- elif (msg_type_actual := dhcp_packet .msg_type ) != msg_type :
287
- logging .debug (
288
- f"DHCP message type does not match expected: { msg_type_actual } != { msg_type } "
289
- )
290
287
else :
291
- logging .debug ("Something is wrong with this packet" )
288
+ msg_type_actual = dhcp_packet .msg_type
289
+ if msg_type_actual != msg_type :
290
+ logging .debug (
291
+ f"DHCP message type does not match expected: { msg_type_actual } != { msg_type } "
292
+ )
293
+ else :
294
+ logging .debug ("Something is wrong with this packet" )
292
295
logging .debug (dhcp_packet )
293
296
dhcp_packet = None
294
297
tries += 1
@@ -346,14 +349,13 @@ def send(self, remote_addr: str, remote_port: int, data: bytes, verbosity: int):
346
349
tries = 0
347
350
while tries < self .max_tries :
348
351
logging .debug (f"Select: { select .select (self .listening_sockets , self .writing_sockets , self .except_sockets , self .select_timout ,)} " )
349
- if len (
350
- socks := select .select (
352
+ socks = select .select (
351
353
self .listening_sockets ,
352
354
self .writing_sockets ,
353
355
self .except_sockets ,
354
356
self .select_timout ,
355
357
)[1 ]
356
- ) :
358
+ if socks :
357
359
sock = socks [0 ]
358
360
logging .debug (f"Connecting to { remote_addr } :{ remote_port } " )
359
361
logging .debug (f"Sending data { data !r} " )
0 commit comments