MCPcopy
hub / github.com/shadowsocks/shadowsocks / handle_event

Method handle_event

shadowsocks/asyncdns.py:370–387  ·  view source on GitHub ↗
(self, sock, fd, event)

Source from the content-addressed store, hash-verified

368 break
369
370 def handle_event(self, sock, fd, event):
371 if sock != self._sock:
372 return
373 if event & eventloop.POLL_ERR:
374 logging.error('dns socket err')
375 self._loop.remove(self._sock)
376 self._sock.close()
377 # TODO when dns server is IPv6
378 self._sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM,
379 socket.SOL_UDP)
380 self._sock.setblocking(False)
381 self._loop.add(self._sock, eventloop.POLL_IN, self)
382 else:
383 data, addr = sock.recvfrom(1024)
384 if addr[0] not in self._servers:
385 logging.warn('received a packet other than our dns')
386 return
387 self._handle_data(data)
388
389 def handle_periodic(self):
390 self._cache.sweep()

Callers

nothing calls this directly

Calls 4

_handle_dataMethod · 0.95
removeMethod · 0.80
addMethod · 0.80
closeMethod · 0.45

Tested by

no test coverage detected