[ SYSTEM ]: Linux srv.persadacompanies.com 4.18.0-553.56.1.el8_10.x86_64 #1 SMP Tue Jun 10 05:00:59 EDT 2025 x86_64
[ SERVER ]: Apache | PHP: 8.4.19
[ USER ]: persadamedika | IP: 45.64.1.108
GEFORCE FILE MANAGER
/
usr
/
lib
/
python3.6
/
site-packages
/
dns
/
UPLOAD:
NAME
SIZE
QUICK PERMS
ACTIONS
📁 __pycache__
SET
[ DEL ]
📁 rdtypes
SET
[ DEL ]
📄 __init__.py
1,327 B
SET
[ EDIT ]
|
[ DEL ]
📄 _compat.py
1,313 B
SET
[ EDIT ]
|
[ DEL ]
📄 dnssec.py
14,791 B
SET
[ EDIT ]
|
[ DEL ]
📄 e164.py
3,147 B
SET
[ EDIT ]
|
[ DEL ]
📄 edns.py
4,384 B
SET
[ EDIT ]
|
[ DEL ]
📄 entropy.py
4,465 B
SET
[ EDIT ]
|
[ DEL ]
📄 exception.py
4,626 B
SET
[ EDIT ]
|
[ DEL ]
📄 flags.py
2,664 B
SET
[ EDIT ]
|
[ DEL ]
📄 grange.py
1,973 B
SET
[ EDIT ]
|
[ DEL ]
📄 hash.py
1,100 B
SET
[ EDIT ]
|
[ DEL ]
📄 inet.py
3,242 B
SET
[ EDIT ]
|
[ DEL ]
📄 ipv4.py
2,031 B
SET
[ EDIT ]
|
[ DEL ]
📄 ipv6.py
5,293 B
SET
[ EDIT ]
|
[ DEL ]
📄 message.py
43,129 B
SET
[ EDIT ]
|
[ DEL ]
📄 name.py
29,425 B
SET
[ EDIT ]
|
[ DEL ]
📄 namedict.py
3,677 B
SET
[ EDIT ]
|
[ DEL ]
📄 node.py
6,056 B
SET
[ EDIT ]
|
[ DEL ]
📄 opcode.py
2,538 B
SET
[ EDIT ]
|
[ DEL ]
📄 query.py
19,645 B
SET
[ EDIT ]
|
[ DEL ]
📄 rcode.py
3,104 B
SET
[ EDIT ]
|
[ DEL ]
📄 rdata.py
14,997 B
SET
[ EDIT ]
|
[ DEL ]
📄 rdataclass.py
3,258 B
SET
[ EDIT ]
|
[ DEL ]
📄 rdataset.py
11,556 B
SET
[ EDIT ]
|
[ DEL ]
📄 rdatatype.py
5,339 B
SET
[ EDIT ]
|
[ DEL ]
📄 renderer.py
11,923 B
SET
[ EDIT ]
|
[ DEL ]
📄 resolver.py
52,105 B
SET
[ EDIT ]
|
[ DEL ]
📄 reversename.py
3,311 B
SET
[ EDIT ]
|
[ DEL ]
📄 rrset.py
5,995 B
SET
[ EDIT ]
|
[ DEL ]
📄 set.py
7,715 B
SET
[ EDIT ]
|
[ DEL ]
📄 tokenizer.py
18,313 B
SET
[ EDIT ]
|
[ DEL ]
📄 tsig.py
7,718 B
SET
[ EDIT ]
|
[ DEL ]
📄 tsigkeyring.py
1,737 B
SET
[ EDIT ]
|
[ DEL ]
📄 ttl.py
2,283 B
SET
[ EDIT ]
|
[ DEL ]
📄 update.py
10,012 B
SET
[ EDIT ]
|
[ DEL ]
📄 version.py
1,258 B
SET
[ EDIT ]
|
[ DEL ]
📄 wiredata.py
3,731 B
SET
[ EDIT ]
|
[ DEL ]
📄 zone.py
40,026 B
SET
[ EDIT ]
|
[ DEL ]
DELETE SELECTED
[ CLOSE ]
EDIT: 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)