diff --git a/coapthon/layers/forwardLayer.py b/coapthon/layers/forwardLayer.py index 22f521a..b7363f2 100644 --- a/coapthon/layers/forwardLayer.py +++ b/coapthon/layers/forwardLayer.py @@ -53,11 +53,12 @@ class ForwardLayer(object): :rtype : Transaction :return: the edited transaction """ + wkc_resource_is_defined = defines.DISCOVERY_URL in self._server.root path = str("/" + transaction.request.uri_path) transaction.response = Response() transaction.response.destination = transaction.request.source transaction.response.token = transaction.request.token - if path == defines.DISCOVERY_URL: + if path == defines.DISCOVERY_URL and not wkc_resource_is_defined: transaction = self._server.resourceLayer.discover(transaction) else: new = False diff --git a/coapthon/layers/requestlayer.py b/coapthon/layers/requestlayer.py index 0286b4c..e864436 100644 --- a/coapthon/layers/requestlayer.py +++ b/coapthon/layers/requestlayer.py @@ -52,11 +52,12 @@ class RequestLayer(object): :rtype : Transaction :return: the edited transaction with the response to the request """ + wkc_resource_is_defined = defines.DISCOVERY_URL in self._server.root path = str("/" + transaction.request.uri_path) transaction.response = Response() transaction.response.destination = transaction.request.source transaction.response.token = transaction.request.token - if path == defines.DISCOVERY_URL: + if path == defines.DISCOVERY_URL and not wkc_resource_is_defined: transaction = self._server.resourceLayer.discover(transaction) else: try: diff --git a/coapthon/utils.py b/coapthon/utils.py index dd99122..20948e4 100644 --- a/coapthon/utils.py +++ b/coapthon/utils.py @@ -201,3 +201,6 @@ class Tree(object): def __delitem__(self, key): del self.tree[key] + + def __contains__(self, item): + return item in self.tree