Skip to content

Commit ac9ea83

Browse files
author
zack-vii
committed
fixed for python3.7; replaced := and format {var=} syntax
1 parent b44466d commit ac9ea83

File tree

3 files changed

+30
-29
lines changed

3 files changed

+30
-29
lines changed

dhcppython/client.py

+26-24
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,8 @@ def format_dhcp_packet(pkt: packet.DHCPPacket) -> str:
2929
broadcast = "BROADCAST" if pkt.flags else "UNICAST"
3030
client_info_padding = 18
3131
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:
3734
client_info = client_info[:-visual_diff]
3835

3936
output = (
@@ -172,15 +169,16 @@ def get_lease(
172169
if verbose > 1:
173170
print(format_dhcp_packet(discover))
174171
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}")
176173
self.send_discover(server, discover, verbose)
177174
# O
178175
tries = 0
179-
while not (offer := self.receive_offer(tx_id, verbose)):
176+
offer = self.receive_offer(tx_id, verbose)
177+
while not offer:
180178
logging.debug(f"Sleeping {self.retry_interval} ms then retrying discover")
181179
sleep(self.retry_interval / 1000)
182180
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}"
184182
)
185183
if verbose > 1:
186184
print("Resending DISCOVER packet")
@@ -190,6 +188,7 @@ def get_lease(
190188
"Unable to obtain offer run client with -d for debug info"
191189
)
192190
tries += 1
191+
offer = self.receive_offer(tx_id, verbose)
193192
# R
194193
request = packet.DHCPPacket.Request(
195194
mac_addr,
@@ -200,19 +199,21 @@ def get_lease(
200199
client_ip=offer.yiaddr,
201200
relay=relay,
202201
)
202+
print(request)
203203
if verbose > 1:
204204
print("REQUEST Packet")
205205
print(format_dhcp_packet(request))
206206
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}")
208208
self.send_request(server, request, verbose)
209209
# A
210210
tries = 0
211-
while not (ack := self.receive_ack(tx_id, verbose)):
211+
ack = self.receive_ack(tx_id, verbose)
212+
while not ack:
212213
logging.debug(f"Sleeping {self.retry_interval} ms then retrying request")
213214
sleep(self.retry_interval / 1000)
214215
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}"
216217
)
217218
if verbose > 1:
218219
print("Resending REQUEST packet")
@@ -222,7 +223,7 @@ def get_lease(
222223
"Unable to obtain ack run client with -d for debug info"
223224
)
224225
tries += 1
225-
226+
ack = self.receive_ack(tx_id, verbose)
226227
lease_time = default_timer() - start
227228
lease = Lease(discover, offer, request, ack, lease_time, self.ack_server)
228229

@@ -256,19 +257,19 @@ def listen(
256257
logging.debug(
257258
f"Select: {select.select(self.listening_sockets, self.writing_sockets, self.except_sockets, 0)}"
258259
)
259-
if len(
260-
socks := select.select(
260+
socks = select.select(
261261
self.listening_sockets,
262262
self.writing_sockets,
263263
self.except_sockets,
264264
self.select_timout,
265265
)[0]
266-
):
266+
if len(socks):
267267
for sock in socks:
268268
data, addr = sock.recvfrom(self.max_pkt_size)
269269
logging.debug(f"Received data from {addr}: {data}")
270+
dhcp_packet = self.get_valid_pkt(data)
270271
if (
271-
(dhcp_packet := self.get_valid_pkt(data)) is not None
272+
dhcp_packet is not None
272273
and dhcp_packet.xid == tx_id
273274
and dhcp_packet.msg_type == msg_type
274275
):
@@ -283,12 +284,14 @@ def listen(
283284
logging.debug(
284285
f"TX ID does not match expected ID {dhcp_packet.xid} != {tx_id}"
285286
)
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-
)
290287
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")
292295
logging.debug(dhcp_packet)
293296
dhcp_packet = None
294297
tries += 1
@@ -346,14 +349,13 @@ def send(self, remote_addr: str, remote_port: int, data: bytes, verbosity: int):
346349
tries = 0
347350
while tries < self.max_tries:
348351
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(
351353
self.listening_sockets,
352354
self.writing_sockets,
353355
self.except_sockets,
354356
self.select_timout,
355357
)[1]
356-
):
358+
if socks:
357359
sock = socks[0]
358360
logging.debug(f"Connecting to {remote_addr}:{remote_port}")
359361
logging.debug(f"Sending data {data!r}")

dhcppython/options.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
import csv
5555
from abc import ABC, abstractmethod
5656
import collections.abc
57-
from typing import Dict, Union, List, Tuple, Optional, TypedDict
57+
from typing import Dict, Union, List, Tuple, Optional
5858
import ipaddress
5959
import struct
6060
import json
@@ -74,9 +74,7 @@
7474
}
7575

7676

77-
class CodeDataMapping(TypedDict):
78-
obj: Option
79-
index: int
77+
CodeDataMapping = dict
8078

8179

8280
class OptionList(collections.abc.MutableSequence):

dhcppython/packet.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,8 @@ def asbytes(self):
111111

112112
@property
113113
def msg_type(self) -> Optional[str]:
114-
if msg_type_option := self.options.by_code(53):
114+
msg_type_option = self.options.by_code(53)
115+
if msg_type_option:
115116
return list(msg_type_option.value.values())[0]
116117
else:
117118
return None

0 commit comments

Comments
 (0)