Revision a3db74e4 lib/confd/client.py
b/lib/confd/client.py | ||
---|---|---|
65 | 65 |
through asyncore or with your own handling. |
66 | 66 |
|
67 | 67 |
""" |
68 |
def __init__(self, hmac_key, peers, callback, port=None): |
|
68 |
def __init__(self, hmac_key, peers, callback, port=None, logger=None):
|
|
69 | 69 |
"""Constructor for ConfdClient |
70 | 70 |
|
71 | 71 |
@type hmac_key: string |
... | ... | |
76 | 76 |
@param callback: function to call when getting answers |
77 | 77 |
@type port: integer |
78 | 78 |
@keyword port: confd port (default: use GetDaemonPort) |
79 |
@type logger: L{logging.Logger} |
|
80 |
@keyword logger: optional logger for internal conditions |
|
79 | 81 |
|
80 | 82 |
""" |
81 | 83 |
if not isinstance(peers, list): |
... | ... | |
88 | 90 |
self._socket = ConfdAsyncUDPClient(self) |
89 | 91 |
self._callback = callback |
90 | 92 |
self._confd_port = port |
93 |
self._logger = logger |
|
91 | 94 |
self._requests = {} |
92 | 95 |
self._expire_requests = [] |
93 | 96 |
|
... | ... | |
184 | 187 |
try: |
185 | 188 |
try: |
186 | 189 |
answer, salt = self._UnpackReply(payload) |
187 |
except (errors.SignatureError, errors.ConfdMagicError): |
|
190 |
except (errors.SignatureError, errors.ConfdMagicError), err: |
|
191 |
if self._logger: |
|
192 |
self._logger.debug("Discarding broken package: %s" % err) |
|
188 | 193 |
return |
189 | 194 |
|
190 | 195 |
try: |
191 | 196 |
(request, args) = self._requests[salt] |
192 | 197 |
except KeyError: |
193 |
# If the salt is unkown the answer is probably a replay of an old
|
|
194 |
# expired query. Ignoring it.
|
|
198 |
if self._logger:
|
|
199 |
self._logger.debug("Discarding unknown (expired?) reply: %s" % err)
|
|
195 | 200 |
return |
196 | 201 |
|
197 | 202 |
client_reply = ConfdUpcallPayload(salt=salt, |
Also available in: Unified diff