Exemplo n.º 1
0
    def __init__(self,
                 request_handler,
                 server_address,
                 base_uri,
                 reference_point,
                 require_auth,
                 etsi_version_v2,
                 etsi_compatibility,
                 uri_base="/m2m",
                 pretty_print=None,
                 prefer_xml=False,
                 *args,
                 **kw):
        self.request_handler = request_handler
        self.uri_base = uri_base
        self.reference_point = reference_point
        self.require_auth = require_auth
        self.etsi_version_v2 = etsi_version_v2
        self.etsi_compatibility_needed = etsi_compatibility
        self.base_uri = base_uri
        self.prefer_xml = prefer_xml
        self.__cache = set()
        self.pretty_print = pretty_print

        if server_address == "::":
            self.__addresses = self._get_addresses(AF_INET6) | \
                               self._get_addresses(AF_INET)
            self._resolve_host = self._resolve_host_ipv6
        elif server_address in ("", "0.0.0.0"):
            self.__addresses = self._get_addresses(AF_INET)
        else:
            self.__addresses = get_iterable(server_address)

        self.logger.debug("All listening addresses: %s", self.__addresses)
Exemplo n.º 2
0
    def __init__(self,
                 request_handler,
                 server_address,
                 default_content_type,
                 pretty=False,
                 require_cert=True):
        super(OpenMTCWSGIApplication, self).__init__()

        self.request_handler = request_handler
        self.__cache = set()

        if server_address == "::":
            self.__addresses = self._get_addresses(AF_INET6) | \
                               self._get_addresses(AF_INET)
            self._resolve_host = self._resolve_host_ipv6
        elif server_address in ("", "0.0.0.0"):
            self.__addresses = self._get_addresses(AF_INET)
        else:
            self.__addresses = get_iterable(server_address)

        self.logger.debug("All listening addresses: %s", self.__addresses)

        self.default_content_type = default_content_type
        self.pretty = pretty
        self.require_cert = require_cert
    def __init__(self,
                 request_handler,
                 connector,
                 address="0.0.0.0",
                 server_port=5682,
                 ssl_args=None,
                 *args,
                 **kw):
        """Initializes the CoAP server.

        :param request_handler: Handler called with generated RequestIndications
        :param connector: Base uri used to reach this server (coap://IP:PORT or
                         coaps://IP:PORT)
        :param address: IP listening to
        :param server_port: Port listening to
        :param ssl_args: contains two keywords: "keyfile" and "certfile"
                         containing paths to respective files, None for regular
                         CoAP
        """
        self.server_port = server_port
        self.connector = connector
        self.request_handler = request_handler
        self.subs = {}
        self.address = address
        if address == "::":
            self.__addresses = self._get_addresses(AF_INET6) | \
                               self._get_addresses(AF_INET)
            self._resolve_host = self._resolve_host_ipv6
        elif address in ("", "0.0.0.0"):
            self.__addresses = self._get_addresses(AF_INET)
        else:
            self.__addresses = get_iterable(address)

        do_patch()

        self.logger.debug("Starting Coap Server on %s:%s" %
                          (self.address, self.server_port))

        if ssl_args:
            self.server = DtlsServer((address, self.server_port),
                                     self.handle_request, **ssl_args)
        else:
            self.server = DatagramServer((address, self.server_port),
                                         self.handle_request)

        self.block1_pending_payload = {}
        self.block2_pending_payload = {}
        self.actual_requests = []
        self.req_queue = Queue.Queue()
        start_new_thread(self.request_runner, ())
    def create_type(self, name, base=(), dict={}, metaclass=type):
        try:
            existing = getattr(self, name)
            if not isinstance(existing, type):
                raise ValueError(name)
            return existing
        except AttributeError:
            pass

        base = get_iterable(base)
        self.logger.debug("Creating %s %s(%s) with %s", metaclass.__name__,
                          name, base, dict)
        dict["__module__"] = self.modulename
        type = metaclass(name, base, dict)
        setattr(self, name, type)
        return type
def sanitize_dict(d, keys=("password", ), replacement="*", inplace=False):
    keys = get_iterable(keys)
    if not inplace:
        d = dict(d)

    if replacement is None:
        for k in keys:
            d.pop(k, None)
    else:
        for k in keys:
            v = d[k]
            if isinstance(v, basestring):
                d[k] = replacement * len(v)
            else:
                d[k] = replacement
    return d
Exemplo n.º 6
0
    def __init__(self, request_handler, server_address, connector,
                 require_auth, *args, **kw):
        super(OpenMTCWSGIApplication, self).__init__(*args, **kw)

        self.request_handler = request_handler
        self.require_auth = require_auth
        self.__cache = set()
        self.connector = connector

        if server_address == "::":
            self.__addresses = self._get_addresses(AF_INET6) | \
                self._get_addresses(AF_INET)
            self._resolve_host = self._resolve_host_ipv6
        elif server_address in ("", "0.0.0.0"):
            self.__addresses = self._get_addresses(AF_INET)
        else:
            self.__addresses = get_iterable(server_address)

        self.__valid_hostnames = [c.hostname for c in connector.infos]

        self.logger.debug("All listening addresses: %s", self.__addresses)
    def register_client(self, schemes, get_client):
        """Registers a specific client for the given schemes."""
        schemes = set(map(str.lower, get_iterable(schemes)))

        for scheme in schemes:
            self._get_clients[scheme] = get_client
    def register_client(self, schemes, client):
        """Register a generic client for the given schemes"""
        schemes = set(map(str.lower, get_iterable(schemes)))

        for scheme in schemes:
            self.__generic_clients[scheme] = client
Exemplo n.º 9
0
def contentType(resource, value):
    try:
        return any(map(resource.contentType.__contains__, get_iterable(value)))
    except AttributeError:
        pass
def searchString(resource, value):
    try:
        return all(
            map(resource.searchStrings.__contains__, get_iterable(value)))
    except AttributeError:
        pass