Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.47
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
lib /
python3 /
dist-packages /
mercurial /
[ HOME SHELL ]
Name
Size
Permission
Action
__pycache__
[ DIR ]
drwxr-xr-x
cext
[ DIR ]
drwxr-xr-x
cffi
[ DIR ]
drwxr-xr-x
defaultrc
[ DIR ]
drwxr-xr-x
dirstateutils
[ DIR ]
drwxr-xr-x
helptext
[ DIR ]
drwxr-xr-x
hgweb
[ DIR ]
drwxr-xr-x
interfaces
[ DIR ]
drwxr-xr-x
locale
[ DIR ]
drwxr-xr-x
pure
[ DIR ]
drwxr-xr-x
revlogutils
[ DIR ]
drwxr-xr-x
templates
[ DIR ]
drwxr-xr-x
testing
[ DIR ]
drwxr-xr-x
thirdparty
[ DIR ]
drwxr-xr-x
upgrade_utils
[ DIR ]
drwxr-xr-x
utils
[ DIR ]
drwxr-xr-x
__init__.py
416
B
-rw-r--r--
__modulepolicy__.py
61
B
-rw-r--r--
__version__.py
60
B
-rw-r--r--
ancestor.py
12.51
KB
-rw-r--r--
archival.py
11.59
KB
-rw-r--r--
bookmarks.py
34.74
KB
-rw-r--r--
branchmap.py
31.58
KB
-rw-r--r--
bundle2.py
86.74
KB
-rw-r--r--
bundlecaches.py
13.6
KB
-rw-r--r--
bundlerepo.py
23.29
KB
-rw-r--r--
cacheutil.py
827
B
-rw-r--r--
changegroup.py
65.72
KB
-rw-r--r--
changelog.py
19.72
KB
-rw-r--r--
chgserver.py
26.25
KB
-rw-r--r--
cmdutil.py
131.98
KB
-rw-r--r--
color.py
17.93
KB
-rw-r--r--
commands.py
257.93
KB
-rw-r--r--
commandserver.py
24.59
KB
-rw-r--r--
commit.py
18.52
KB
-rw-r--r--
config.py
8.59
KB
-rw-r--r--
configitems.py
46.49
KB
-rw-r--r--
context.py
100.53
KB
-rw-r--r--
copies.py
46.01
KB
-rw-r--r--
crecord.py
70.99
KB
-rw-r--r--
dagop.py
39.57
KB
-rw-r--r--
dagparser.py
15.13
KB
-rw-r--r--
debugcommands.py
154.84
KB
-rw-r--r--
destutil.py
17.07
KB
-rw-r--r--
diffhelper.py
2.32
KB
-rw-r--r--
diffutil.py
4.52
KB
-rw-r--r--
dirstate.py
51.01
KB
-rw-r--r--
dirstateguard.py
3.09
KB
-rw-r--r--
dirstatemap.py
23.77
KB
-rw-r--r--
discovery.py
22
KB
-rw-r--r--
dispatch.py
46.19
KB
-rw-r--r--
dummycert.pem
2.19
KB
-rw-r--r--
encoding.py
22.89
KB
-rw-r--r--
error.py
17.88
KB
-rw-r--r--
exchange.py
94.65
KB
-rw-r--r--
extensions.py
30.6
KB
-rw-r--r--
exthelper.py
11.83
KB
-rw-r--r--
fancyopts.py
11.3
KB
-rw-r--r--
filelog.py
8.58
KB
-rw-r--r--
filemerge.py
39.67
KB
-rw-r--r--
fileset.py
18.66
KB
-rw-r--r--
filesetlang.py
10.34
KB
-rw-r--r--
formatter.py
26.34
KB
-rw-r--r--
graphmod.py
16.76
KB
-rw-r--r--
grep.py
7.26
KB
-rw-r--r--
hbisect.py
10.89
KB
-rw-r--r--
help.py
36.74
KB
-rw-r--r--
hg.py
51.95
KB
-rw-r--r--
hook.py
11.53
KB
-rw-r--r--
httpconnection.py
4.27
KB
-rw-r--r--
httppeer.py
20.71
KB
-rw-r--r--
i18n.py
4.05
KB
-rw-r--r--
keepalive.py
27.1
KB
-rw-r--r--
linelog.py
14.94
KB
-rw-r--r--
localrepo.py
140.97
KB
-rw-r--r--
lock.py
11.89
KB
-rw-r--r--
logcmdutil.py
42.53
KB
-rw-r--r--
logexchange.py
4.98
KB
-rw-r--r--
loggingutil.py
3.93
KB
-rw-r--r--
lsprof.py
4.25
KB
-rw-r--r--
lsprofcalltree.py
2.74
KB
-rw-r--r--
mail.py
17.09
KB
-rw-r--r--
manifest.py
75.45
KB
-rw-r--r--
match.py
52.06
KB
-rw-r--r--
mdiff.py
17.37
KB
-rw-r--r--
merge.py
90.09
KB
-rw-r--r--
mergestate.py
31.37
KB
-rw-r--r--
mergeutil.py
502
B
-rw-r--r--
metadata.py
32.33
KB
-rw-r--r--
minifileset.py
3.54
KB
-rw-r--r--
minirst.py
29.13
KB
-rw-r--r--
namespaces.py
8.19
KB
-rw-r--r--
narrowspec.py
11.57
KB
-rw-r--r--
node.py
2.07
KB
-rw-r--r--
obsolete.py
36.76
KB
-rw-r--r--
obsutil.py
35.84
KB
-rw-r--r--
parser.py
25.68
KB
-rw-r--r--
patch.py
102
KB
-rw-r--r--
pathutil.py
12.21
KB
-rw-r--r--
phases.py
32.54
KB
-rw-r--r--
policy.py
4.74
KB
-rw-r--r--
posix.py
23.05
KB
-rw-r--r--
profiling.py
8.64
KB
-rw-r--r--
progress.py
10.92
KB
-rw-r--r--
pushkey.py
1.67
KB
-rw-r--r--
pvec.py
6.01
KB
-rw-r--r--
pycompat.py
16.33
KB
-rw-r--r--
rcutil.py
3.57
KB
-rw-r--r--
registrar.py
17.78
KB
-rw-r--r--
repair.py
18.46
KB
-rw-r--r--
repocache.py
4.49
KB
-rw-r--r--
repoview.py
16.89
KB
-rw-r--r--
requirements.py
4.64
KB
-rw-r--r--
revlog.py
117.08
KB
-rw-r--r--
revset.py
87.27
KB
-rw-r--r--
revsetlang.py
28.47
KB
-rw-r--r--
rewriteutil.py
8.47
KB
-rw-r--r--
scmposix.py
2.57
KB
-rw-r--r--
scmutil.py
75.72
KB
-rw-r--r--
scmwindows.py
3.37
KB
-rw-r--r--
server.py
7.05
KB
-rw-r--r--
setdiscovery.py
18
KB
-rw-r--r--
shelve.py
38.04
KB
-rw-r--r--
similar.py
3.97
KB
-rw-r--r--
simplemerge.py
16.86
KB
-rw-r--r--
smartset.py
33.65
KB
-rw-r--r--
sparse.py
26.37
KB
-rw-r--r--
sshpeer.py
22.56
KB
-rw-r--r--
sslutil.py
35.54
KB
-rw-r--r--
stack.py
762
B
-rw-r--r--
state.py
11.99
KB
-rw-r--r--
statichttprepo.py
7.92
KB
-rw-r--r--
statprof.py
32.16
KB
-rw-r--r--
store.py
25.27
KB
-rw-r--r--
streamclone.py
30.73
KB
-rw-r--r--
strip.py
8.72
KB
-rw-r--r--
subrepo.py
70.89
KB
-rw-r--r--
subrepoutil.py
17.42
KB
-rw-r--r--
tagmerge.py
11.29
KB
-rw-r--r--
tags.py
29.67
KB
-rw-r--r--
templatefilters.py
15.11
KB
-rw-r--r--
templatefuncs.py
30.14
KB
-rw-r--r--
templatekw.py
34.12
KB
-rw-r--r--
templater.py
37.7
KB
-rw-r--r--
templateutil.py
35.66
KB
-rw-r--r--
transaction.py
25.97
KB
-rw-r--r--
treediscovery.py
5.92
KB
-rw-r--r--
txnutil.py
1.02
KB
-rw-r--r--
ui.py
80.23
KB
-rw-r--r--
unionrepo.py
9.72
KB
-rw-r--r--
upgrade.py
14.59
KB
-rw-r--r--
url.py
24.56
KB
-rw-r--r--
urllibcompat.py
5.94
KB
-rw-r--r--
util.py
95.18
KB
-rw-r--r--
verify.py
21.8
KB
-rw-r--r--
vfs.py
24.93
KB
-rw-r--r--
win32.py
22.04
KB
-rw-r--r--
windows.py
21.77
KB
-rw-r--r--
wireprotoframing.py
64.95
KB
-rw-r--r--
wireprotoserver.py
17.38
KB
-rw-r--r--
wireprototypes.py
13.07
KB
-rw-r--r--
wireprotov1peer.py
21.51
KB
-rw-r--r--
wireprotov1server.py
26.33
KB
-rw-r--r--
worker.py
15.47
KB
-rw-r--r--
zstd.cpython-310-x86_64-linux-...
570.78
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : server.py
# server.py - utility and factory of server # # Copyright 2005-2007 Olivia Mackall <olivia@selenic.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import absolute_import import os from .i18n import _ from .pycompat import open from . import ( chgserver, cmdutil, commandserver, error, hgweb, pycompat, util, ) from .utils import ( procutil, urlutil, ) def runservice( opts, parentfn=None, initfn=None, runfn=None, logfile=None, runargs=None, appendpid=False, ): '''Run a command as a service.''' postexecargs = {} if opts[b'daemon_postexec']: for inst in opts[b'daemon_postexec']: if inst.startswith(b'unlink:'): postexecargs[b'unlink'] = inst[7:] elif inst.startswith(b'chdir:'): postexecargs[b'chdir'] = inst[6:] elif inst != b'none': raise error.Abort( _(b'invalid value for --daemon-postexec: %s') % inst ) # When daemonized on Windows, redirect stdout/stderr to the lockfile (which # gets cleaned up after the child is up and running), so that the parent can # read and print the error if this child dies early. See 594dd384803c. On # other platforms, the child can write to the parent's stdio directly, until # it is redirected prior to runfn(). if pycompat.iswindows and opts[b'daemon_postexec']: if b'unlink' in postexecargs and os.path.exists( postexecargs[b'unlink'] ): procutil.stdout.flush() procutil.stderr.flush() fd = os.open( postexecargs[b'unlink'], os.O_WRONLY | os.O_APPEND | os.O_BINARY ) try: os.dup2(fd, procutil.stdout.fileno()) os.dup2(fd, procutil.stderr.fileno()) finally: os.close(fd) def writepid(pid): if opts[b'pid_file']: if appendpid: mode = b'ab' else: mode = b'wb' fp = open(opts[b'pid_file'], mode) fp.write(b'%d\n' % pid) fp.close() if opts[b'daemon'] and not opts[b'daemon_postexec']: # Signal child process startup with file removal lockfd, lockpath = pycompat.mkstemp(prefix=b'hg-service-') os.close(lockfd) try: if not runargs: runargs = procutil.hgcmd() + pycompat.sysargv[1:] runargs.append(b'--daemon-postexec=unlink:%s' % lockpath) # Don't pass --cwd to the child process, because we've already # changed directory. for i in pycompat.xrange(1, len(runargs)): if runargs[i].startswith(b'--cwd='): del runargs[i] break elif runargs[i].startswith(b'--cwd'): del runargs[i : i + 2] break def condfn(): return not os.path.exists(lockpath) pid = procutil.rundetached(runargs, condfn) if pid < 0: # If the daemonized process managed to write out an error msg, # report it. if pycompat.iswindows and os.path.exists(lockpath): with open(lockpath, b'rb') as log: for line in log: procutil.stderr.write(line) raise error.Abort(_(b'child process failed to start')) writepid(pid) finally: util.tryunlink(lockpath) if parentfn: return parentfn(pid) else: return if initfn: initfn() if not opts[b'daemon']: writepid(procutil.getpid()) if opts[b'daemon_postexec']: try: os.setsid() except AttributeError: pass if b'chdir' in postexecargs: os.chdir(postexecargs[b'chdir']) procutil.hidewindow() procutil.stdout.flush() procutil.stderr.flush() nullfd = os.open(os.devnull, os.O_RDWR) logfilefd = nullfd if logfile: logfilefd = os.open( logfile, os.O_RDWR | os.O_CREAT | os.O_APPEND, 0o666 ) os.dup2(nullfd, procutil.stdin.fileno()) os.dup2(logfilefd, procutil.stdout.fileno()) os.dup2(logfilefd, procutil.stderr.fileno()) stdio = ( procutil.stdin.fileno(), procutil.stdout.fileno(), procutil.stderr.fileno(), ) if nullfd not in stdio: os.close(nullfd) if logfile and logfilefd not in stdio: os.close(logfilefd) # Only unlink after redirecting stdout/stderr, so Windows doesn't # complain about a sharing violation. if b'unlink' in postexecargs: os.unlink(postexecargs[b'unlink']) if runfn: return runfn() _cmdservicemap = { b'chgunix': chgserver.chgunixservice, b'pipe': commandserver.pipeservice, b'unix': commandserver.unixforkingservice, } def _createcmdservice(ui, repo, opts): mode = opts[b'cmdserver'] try: servicefn = _cmdservicemap[mode] except KeyError: raise error.Abort(_(b'unknown mode %s') % mode) commandserver.setuplogging(ui, repo) return servicefn(ui, repo, opts) def _createhgwebservice(ui, repo, opts): # this way we can check if something was given in the command-line if opts.get(b'port'): opts[b'port'] = urlutil.getport(opts.get(b'port')) alluis = {ui} if repo: baseui = repo.baseui alluis.update([repo.baseui, repo.ui]) else: baseui = ui webconf = opts.get(b'web_conf') or opts.get(b'webdir_conf') if webconf: if opts.get(b'subrepos'): raise error.Abort(_(b'--web-conf cannot be used with --subrepos')) # load server settings (e.g. web.port) to "copied" ui, which allows # hgwebdir to reload webconf cleanly servui = ui.copy() servui.readconfig(webconf, sections=[b'web']) alluis.add(servui) elif opts.get(b'subrepos'): servui = ui # If repo is None, hgweb.createapp() already raises a proper abort # message as long as webconf is None. if repo: webconf = dict() cmdutil.addwebdirpath(repo, b"", webconf) else: servui = ui optlist = ( b"name templates style address port prefix ipv6" b" accesslog errorlog certificate encoding" ) for o in optlist.split(): val = opts.get(o, b'') if val in (None, b''): # should check against default options instead continue for u in alluis: u.setconfig(b"web", o, val, b'serve') app = hgweb.createapp(baseui, repo, webconf) return hgweb.httpservice(servui, app, opts) def createservice(ui, repo, opts): if opts[b"cmdserver"]: return _createcmdservice(ui, repo, opts) else: return _createhgwebservice(ui, repo, opts)
Close