Linux anchor 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64
Apache/2.4.18 (Ubuntu)
Server IP : 10.10.100.4 & Your IP : 216.73.217.150
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
lib /
python2.7 /
dist-packages /
samba /
tests /
Delete
Unzip
Name
Size
Permission
Date
Action
blackbox
[ DIR ]
drwxr-xr-x
2021-05-01 07:33
dcerpc
[ DIR ]
drwxr-xr-x
2021-05-01 07:33
kcc
[ DIR ]
drwxr-xr-x
2021-05-01 07:33
samba_tool
[ DIR ]
drwxr-xr-x
2021-05-01 07:33
__init__.py
31.8
KB
-rw-r--r--
2016-03-30 12:19
__init__.pyc
30.32
KB
-rw-r--r--
2021-05-01 07:33
auth.py
1.02
KB
-rw-r--r--
2015-07-21 11:47
auth.pyc
837
B
-rw-r--r--
2021-05-01 07:33
common.py
1.51
KB
-rw-r--r--
2015-07-21 11:47
common.pyc
1.43
KB
-rw-r--r--
2021-05-01 07:33
core.py
2.7
KB
-rw-r--r--
2016-02-22 10:36
core.pyc
3.77
KB
-rw-r--r--
2021-05-01 07:33
credentials.py
3.58
KB
-rw-r--r--
2015-07-21 11:47
credentials.pyc
4.74
KB
-rw-r--r--
2021-05-01 07:33
dns.py
47.51
KB
-rw-r--r--
2016-02-24 11:43
dns.pyc
34.97
KB
-rw-r--r--
2021-05-01 07:33
docs.py
15.16
KB
-rw-r--r--
2015-07-21 11:47
docs.pyc
12.77
KB
-rw-r--r--
2021-05-01 07:33
dsdb.py
6.98
KB
-rw-r--r--
2015-09-08 15:45
dsdb.pyc
6.91
KB
-rw-r--r--
2021-05-01 07:33
gensec.py
6.25
KB
-rw-r--r--
2015-07-21 11:47
gensec.pyc
4.55
KB
-rw-r--r--
2021-05-01 07:33
get_opt.py
1.86
KB
-rw-r--r--
2016-02-24 11:43
get_opt.pyc
1.75
KB
-rw-r--r--
2021-05-01 07:33
hostconfig.py
2.15
KB
-rw-r--r--
2015-07-21 11:47
hostconfig.pyc
3.45
KB
-rw-r--r--
2021-05-01 07:33
libsmb_samba_internal.py
2.36
KB
-rw-r--r--
2015-07-21 11:47
libsmb_samba_internal.pyc
2.69
KB
-rw-r--r--
2021-05-01 07:33
messaging.py
2.26
KB
-rw-r--r--
2015-07-21 11:47
messaging.pyc
3.09
KB
-rw-r--r--
2021-05-01 07:33
netcmd.py
3
KB
-rw-r--r--
2015-07-21 11:47
netcmd.pyc
3.95
KB
-rw-r--r--
2021-05-01 07:33
ntacls.py
4.09
KB
-rw-r--r--
2015-07-21 11:47
ntacls.pyc
4.69
KB
-rw-r--r--
2021-05-01 07:33
param.py
1.84
KB
-rw-r--r--
2015-07-21 11:47
param.pyc
2.38
KB
-rw-r--r--
2021-05-01 07:33
policy.py
1.15
KB
-rw-r--r--
2015-07-21 11:47
policy.pyc
1.03
KB
-rw-r--r--
2021-05-01 07:33
posixacl.py
36.93
KB
-rw-r--r--
2015-07-21 11:47
posixacl.pyc
26.27
KB
-rw-r--r--
2021-05-01 07:33
provision.py
6.3
KB
-rw-r--r--
2015-07-21 11:47
provision.pyc
9.99
KB
-rw-r--r--
2021-05-01 07:33
registry.py
1.73
KB
-rw-r--r--
2015-07-21 11:47
registry.pyc
2.37
KB
-rw-r--r--
2021-05-01 07:33
samba3.py
8.24
KB
-rw-r--r--
2015-07-21 11:47
samba3.pyc
11.52
KB
-rw-r--r--
2021-05-01 07:33
samba3sam.py
48.3
KB
-rw-r--r--
2015-07-21 11:47
samba3sam.pyc
31.62
KB
-rw-r--r--
2021-05-01 07:33
samdb.py
3.51
KB
-rw-r--r--
2015-07-21 11:47
samdb.pyc
3.11
KB
-rw-r--r--
2021-05-01 07:33
security.py
5.36
KB
-rw-r--r--
2015-07-21 11:47
security.pyc
7.81
KB
-rw-r--r--
2021-05-01 07:33
source.py
8.06
KB
-rw-r--r--
2015-07-21 11:47
source.pyc
7.48
KB
-rw-r--r--
2021-05-01 07:33
strings.py
4.12
KB
-rw-r--r--
2015-07-21 11:47
strings.pyc
3.03
KB
-rw-r--r--
2021-05-01 07:33
subunitrun.py
2.33
KB
-rw-r--r--
2015-07-21 11:47
subunitrun.pyc
1.84
KB
-rw-r--r--
2021-05-01 07:33
unicodenames.py
1.07
KB
-rw-r--r--
2015-07-21 11:47
unicodenames.pyc
555
B
-rw-r--r--
2021-05-01 07:33
upgrade.py
1.36
KB
-rw-r--r--
2015-07-21 11:47
upgrade.pyc
1.28
KB
-rw-r--r--
2021-05-01 07:33
upgradeprovision.py
6.66
KB
-rw-r--r--
2015-07-21 11:47
upgradeprovision.pyc
6.57
KB
-rw-r--r--
2021-05-01 07:33
upgradeprovisionneeddc.py
7.29
KB
-rw-r--r--
2015-07-21 11:47
upgradeprovisionneeddc.pyc
8.08
KB
-rw-r--r--
2021-05-01 07:33
xattr.py
4.11
KB
-rw-r--r--
2015-07-21 11:47
xattr.pyc
4.57
KB
-rw-r--r--
2021-05-01 07:33
Save
Rename
# Unix SMB/CIFS implementation. # Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2011 # # Loosely based on bzrlib's test_source.py # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # """Source level Python tests.""" import errno import os import re import warnings from samba.tests import ( TestCase, ) def get_python_source_files(): """Iterate over all Python source files.""" library_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "samba")) assert os.path.isdir(library_dir), library_dir for root, dirs, files in os.walk(library_dir): for f in files: if f.endswith(".py"): yield os.path.abspath(os.path.join(root, f)) bindir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "..", "..", "bin")) assert os.path.isdir(bindir), bindir for f in os.listdir(bindir): p = os.path.abspath(os.path.join(bindir, f)) if not os.path.islink(p): continue target = os.readlink(p) if os.path.dirname(target).endswith("scripting/bin"): yield p wafsambadir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "..", "..", "..", "buildtools", "wafsamba")) assert os.path.isdir(wafsambadir), wafsambadir for root, dirs, files in os.walk(wafsambadir): for f in files: if f.endswith(".py"): yield os.path.abspath(os.path.join(root, f)) def get_source_file_contents(): """Iterate over the contents of all python files.""" for fname in get_python_source_files(): try: f = open(fname, 'rb') except IOError, e: if e.errno == errno.ENOENT: warnings.warn("source file %s broken link?" % fname) continue else: raise try: text = f.read() finally: f.close() yield fname, text class TestSource(TestCase): def test_copyright(self): """Test that all Python files have a valid copyright statement.""" incorrect = [] copyright_re = re.compile('#\\s*copyright.*(?=\n)', re.I) for fname, text in get_source_file_contents(): if fname.endswith("ms_schema.py"): # FIXME: Not sure who holds copyright on ms_schema.py continue if "wafsamba" in fname: # FIXME: No copyright headers in wafsamba continue match = copyright_re.search(text) if not match: incorrect.append((fname, 'no copyright line found\n')) if incorrect: help_text = [ "Some files have missing or incorrect copyright" " statements.", ""] for fname, comment in incorrect: help_text.append(fname) help_text.append((' ' * 4) + comment) self.fail('\n'.join(help_text)) def test_gpl(self): """Test that all .py files have a GPL disclaimer.""" incorrect = [] gpl_txt = """ # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. """ gpl_re = re.compile(re.escape(gpl_txt), re.MULTILINE) for fname, text in get_source_file_contents(): if "wafsamba" in fname: # FIXME: License to wafsamba hasn't been clarified yet continue if fname.endswith("/python/samba/subunit/run.py"): # Imported from subunit/testtools, which are dual # Apache2/BSD-3. continue if not gpl_re.search(text): incorrect.append(fname) if incorrect: help_text = ['Some files have missing or incomplete GPL statement', gpl_txt] for fname in incorrect: help_text.append((' ' * 4) + fname) self.fail('\n'.join(help_text)) def _push_file(self, dict_, fname, line_no): if fname not in dict_: dict_[fname] = [line_no] else: dict_[fname].append(line_no) def _format_message(self, dict_, message): files = ["%s: %s" % (f, ', '.join([str(i + 1) for i in lines])) for f, lines in dict_.items()] files.sort() return message + '\n\n %s' % ('\n '.join(files)) def _iter_source_files_lines(self): for fname, text in get_source_file_contents(): lines = text.splitlines(True) last_line_no = len(lines) - 1 for line_no, line in enumerate(lines): yield fname, line_no, line def test_no_tabs(self): """Check that there are no tabs in Python files.""" tabs = {} for fname, line_no, line in self._iter_source_files_lines(): if '\t' in line: self._push_file(tabs, fname, line_no) if tabs: self.fail(self._format_message(tabs, 'Tab characters were found in the following source files.' '\nThey should either be replaced by "\\t" or by spaces:')) def test_unix_newlines(self): """Check for unix new lines.""" illegal_newlines = {} for fname, line_no, line in self._iter_source_files_lines(): if not line.endswith('\n') or line.endswith('\r\n'): self._push_file(illegal_newlines, fname, line_no) if illegal_newlines: self.fail(self._format_message(illegal_newlines, 'Non-unix newlines were found in the following source files:')) def test_trailing_whitespace(self): """Check that there is not trailing whitespace in Python files.""" trailing_whitespace = {} for fname, line_no, line in self._iter_source_files_lines(): if line.rstrip("\n").endswith(" "): self._push_file(trailing_whitespace, fname, line_no) if trailing_whitespace: self.fail(self._format_message(trailing_whitespace, 'Trailing whitespace was found in the following source files.')) def test_shebang_lines(self): """Check that files with shebang lines and only those are executable.""" files_with_shebang = {} files_without_shebang= {} for fname, line_no, line in self._iter_source_files_lines(): if line_no >= 1: continue executable = (os.stat(fname).st_mode & 0111) has_shebang = line.startswith("#!") if has_shebang and not executable: self._push_file(files_with_shebang, fname, line_no) if not has_shebang and executable: self._push_file(files_without_shebang, fname, line_no) if files_with_shebang: self.fail(self._format_message(files_with_shebang, 'Files with shebang line that are not executable:')) if files_without_shebang: self.fail(self._format_message(files_without_shebang, 'Files without shebang line that are executable:'))