Skip to content

Commit

Permalink
Fix actions
Browse files Browse the repository at this point in the history
  • Loading branch information
mosquito committed Jun 3, 2024
1 parent fc9f514 commit 645dcc4
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 23 deletions.
46 changes: 23 additions & 23 deletions aiomisc/service/dns_server/service.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,29 +15,6 @@
log = logging.getLogger(__name__)


class DNSServer(UDPServer):
store: DNSStore

def __init__(
self, store: DNSStore, binds: Iterable[str] = (), **kwargs: Any,
) -> None:
self.make_socket = partial(socket_factory, binds)
self.store = store
super().__init__(**kwargs)

async def handle_datagram(self, data: bytes, addr: tuple) -> None:
record = dnslib.DNSRecord.parse(data)
question: dnslib.DNSQuestion = record.get_q()
reply = record.reply()
query_name = str(question.get_qname())
query_type = question.qtype

records = self.store.query(query_name, RecordType(query_type))
for rec in records:
reply.add_answer(rec.rr(query_type))
self.sendto(reply.pack(), addr)


def socket_factory(binds: Iterable[str]) -> socket.socket:
sock = socket.socket(socket.AF_UNSPEC, socket.SOCK_DGRAM)
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
Expand All @@ -60,3 +37,26 @@ def socket_factory(binds: Iterable[str]) -> socket.socket:
sock.bind((address, port))

return sock


class DNSServer(UDPServer):
store: DNSStore

def __init__(
self, store: DNSStore, binds: Iterable[str] = (), **kwargs: Any,
) -> None:
self.make_socket = partial(socket_factory, binds)
self.store = store
super().__init__(**kwargs)

async def handle_datagram(self, data: bytes, addr: tuple) -> None:
record = dnslib.DNSRecord.parse(data)
question: dnslib.DNSQuestion = record.get_q()
reply = record.reply()
query_name = str(question.get_qname())
query_type = question.qtype

records = self.store.query(query_name, RecordType(query_type))
for rec in records:
reply.add_answer(rec.rr(query_type))
self.sendto(reply.pack(), addr)
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ types-setuptools = "^65.6.0.1"
grpc-stubs = "^1.53.0.2"
uvicorn = "^0.27"
asgiref = "^3.7"
dnslib = "^0.9"

[tool.poetry.group.uvloop.dependencies]
uvloop = "^0.19.0"
Expand Down

0 comments on commit 645dcc4

Please sign in to comment.