Returns received DNS resolution request (if any) that has given prefix/suffix combination (e.g. prefix. .suffix.domain)
(self, prefix=None, suffix=None)
| 102 | raise socket.error("another DNS service already running on '0.0.0.0:53'") |
| 103 | |
| 104 | def pop(self, prefix=None, suffix=None): |
| 105 | """ |
| 106 | Returns received DNS resolution request (if any) that has given |
| 107 | prefix/suffix combination (e.g. prefix.<query result>.suffix.domain) |
| 108 | """ |
| 109 | |
| 110 | retVal = None |
| 111 | |
| 112 | if prefix and hasattr(prefix, "encode"): |
| 113 | prefix = prefix.encode() |
| 114 | |
| 115 | if suffix and hasattr(suffix, "encode"): |
| 116 | suffix = suffix.encode() |
| 117 | |
| 118 | with self._lock: |
| 119 | for _ in self._requests: |
| 120 | if prefix is None and suffix is None or re.search(b"%s\\..+\\.%s" % (prefix, suffix), _, re.I): |
| 121 | self._requests.remove(_) |
| 122 | retVal = _.decode() |
| 123 | break |
| 124 | |
| 125 | return retVal |
| 126 | |
| 127 | def run(self): |
| 128 | """ |