PNG  IHDR* pHYs+ IDATx]n#; cdLb Ǚ[at¤_:uP}>!Usă cag޿ ֵNu`ݼTâabO7uL&y^wFٝA"l[|ŲHLN밪4*sG3|Dv}?+y߉{OuOAt4Jj.u]Gz*҉sP'VQKbA1u\`& Af;HWj hsO;ogTu uj7S3/QzUr&wS`M$X_L7r2;aE+ώ%vikDA:dR+%KzƉo>eOth$z%: :{WwaQ:wz%4foɹE[9<]#ERINƻv溂E%P1i01 |Jvҗ&{b?9g=^wζXn/lK::90KwrюO\!ջ3uzuGv^;騢wq<Iatv09:tt~hEG`v;3@MNZD.1]L:{ծI3`L(÷ba")Y.iljCɄae#I"1 `3*Bdz>j<fU40⨬%O$3cGt]j%Fߠ_twJ;ABU8vP3uEԑwQ V:h%))LfraqX-ۿX]v-\9I gl8tzX ]ecm)-cgʒ#Uw=Wlێn(0hPP/ӨtQ“&J35 $=]r1{tLuǮ*i0_;NƝ8;-vݏr8+U-kruȕYr0RnC]*ެ(M:]gE;{]tg(#ZJ9y>utRDRMdr9㪩̞zֹb<ģ&wzJM"iI( .ꮅX)Qw:9,i좜\Ԛi7&N0:asϓc];=ΗOӣ APqz93 y $)A*kVHZwBƺnWNaby>XMN*45~ղM6Nvm;A=jֲ.~1}(9`KJ/V F9[=`~[;sRuk]rєT!)iQO)Y$V ی ۤmzWz5IM Zb )ˆC`6 rRa}qNmUfDsWuˤV{ Pݝ'=Kֳbg,UҘVz2ﴻnjNgBb{? ߮tcsͻQuxVCIY۠:(V뺕 ٥2;t`@Fo{Z9`;]wMzU~%UA蛚dI vGq\r82iu +St`cR.6U/M9IENDB` REDROOM
PHP 5.6.40
Preview: namedict.py Size: 3.59 KB
//lib/python3.6/site-packages/dns/namedict.py

# Copyright (C) 2003-2007, 2009-2011 Nominum, Inc.
# Copyright (C) 2016 Coresec Systems AB
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose with or without fee is hereby granted,
# provided that the above copyright notice and this permission notice
# appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES
# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR
# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND CORESEC SYSTEMS AB DISCLAIMS ALL
# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL CORESEC
# SYSTEMS AB BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
# OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

"""DNS name dictionary"""

import collections
import dns.name
from ._compat import xrange


class NameDict(collections.MutableMapping):

    """A dictionary whose keys are dns.name.Name objects.
    @ivar max_depth: the maximum depth of the keys that have ever been
    added to the dictionary.
    @type max_depth: int
    @ivar max_depth_items: the number of items of maximum depth
    @type max_depth_items: int
    """

    __slots__ = ["max_depth", "max_depth_items", "__store"]

    def __init__(self, *args, **kwargs):
        self.__store = dict()
        self.max_depth = 0
        self.max_depth_items = 0
        self.update(dict(*args, **kwargs))

    def __update_max_depth(self, key):
        if len(key) == self.max_depth:
            self.max_depth_items = self.max_depth_items + 1
        elif len(key) > self.max_depth:
            self.max_depth = len(key)
            self.max_depth_items = 1

    def __getitem__(self, key):
        return self.__store[key]

    def __setitem__(self, key, value):
        if not isinstance(key, dns.name.Name):
            raise ValueError('NameDict key must be a name')
        self.__store[key] = value
        self.__update_max_depth(key)

    def __delitem__(self, key):
        value = self.__store.pop(key)
        if len(value) == self.max_depth:
            self.max_depth_items = self.max_depth_items - 1
        if self.max_depth_items == 0:
            self.max_depth = 0
            for k in self.__store:
                self.__update_max_depth(k)

    def __iter__(self):
        return iter(self.__store)

    def __len__(self):
        return len(self.__store)

    def has_key(self, key):
        return key in self.__store

    def get_deepest_match(self, name):
        """Find the deepest match to I{name} in the dictionary.

        The deepest match is the longest name in the dictionary which is
        a superdomain of I{name}.

        @param name: the name
        @type name: dns.name.Name object
        @rtype: (key, value) tuple
        """

        depth = len(name)
        if depth > self.max_depth:
            depth = self.max_depth
        for i in xrange(-depth, 0):
            n = dns.name.Name(name[i:])
            if n in self:
                return (n, self[n])
        v = self[dns.name.empty]
        return (dns.name.empty, v)

Directory Contents

Dirs: 2 × Files: 37

Name Size Perms Modified Actions
rdtypes DIR
- drwxr-xr-x 2025-04-06 18:08:43
Edit Download
- drwxr-xr-x 2025-04-06 18:08:43
Edit Download
14.44 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
3.07 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
4.28 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
4.36 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
4.52 KB lrw-r--r-- 2016-09-20 19:13:40
Edit Download
2.60 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
1.93 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
1.07 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
3.17 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
1.98 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
5.17 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
42.12 KB lrw-r--r-- 2016-09-26 15:38:18
Edit Download
28.74 KB lrw-r--r-- 2024-05-23 10:29:27
Edit Download
3.59 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
5.91 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
2.48 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
19.18 KB lrw-r--r-- 2024-05-23 10:29:27
Edit Download
3.03 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
14.65 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
3.18 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
11.29 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
5.21 KB lrw-r--r-- 2016-09-20 19:54:45
Edit Download
11.64 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
50.88 KB lrw-r--r-- 2016-09-26 15:52:30
Edit Download
3.23 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
5.85 KB lrw-r--r-- 2016-09-25 19:25:33
Edit Download
7.53 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
17.88 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
7.54 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
1.70 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
2.23 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
9.78 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
1.23 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
3.64 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
39.09 KB lrw-r--r-- 2016-09-29 22:29:39
Edit Download
1.28 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download
1.30 KB lrw-r--r-- 2016-09-20 16:24:02
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).
© 2026 REDROOM — Secure File Manager. All rights reserved. Built with ❤️ & Red Dark UI