mirror of
https://github.com/Grasscutters/mitmproxy.git
synced 2024-11-27 02:24:18 +00:00
1ffc273c94
- Move more stuff that belongs in netlib.human - Move some stuff to near the only use - Zap mitmproxy.utils.timestamp(). I see the rationale, but we used it interchangeably with time.time() throughout the project. Since time.time() dominates in the codebase and timestamp() is such low utility, away it goes.
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
import os
|
|
import sys
|
|
import netlib.utils
|
|
|
|
|
|
class MemBool(object):
|
|
|
|
"""
|
|
Truth-checking with a memory, for use in chained if statements.
|
|
"""
|
|
|
|
def __init__(self):
|
|
self.v = None
|
|
|
|
def __call__(self, v):
|
|
self.v = v
|
|
return bool(v)
|
|
|
|
|
|
data = netlib.utils.Data(__name__)
|
|
|
|
|
|
def daemonize(stdin='/dev/null', stdout='/dev/null', stderr='/dev/null'): # pragma: no cover
|
|
try:
|
|
pid = os.fork()
|
|
if pid > 0:
|
|
sys.exit(0)
|
|
except OSError as e:
|
|
sys.stderr.write("fork #1 failed: (%d) %s\n" % (e.errno, e.strerror))
|
|
sys.exit(1)
|
|
os.chdir("/")
|
|
os.umask(0)
|
|
os.setsid()
|
|
try:
|
|
pid = os.fork()
|
|
if pid > 0:
|
|
sys.exit(0)
|
|
except OSError as e:
|
|
sys.stderr.write("fork #2 failed: (%d) %s\n" % (e.errno, e.strerror))
|
|
sys.exit(1)
|
|
si = open(stdin, 'rb')
|
|
so = open(stdout, 'a+b')
|
|
se = open(stderr, 'a+b', 0)
|
|
os.dup2(si.fileno(), sys.stdin.fileno())
|
|
os.dup2(so.fileno(), sys.stdout.fileno())
|
|
os.dup2(se.fileno(), sys.stderr.fileno())
|