mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
Issue #9168: now smtpd is able to bind privileged port.
This commit is contained in:
parent
5e30fa5f56
commit
47fb192dda
2 changed files with 12 additions and 10 deletions
20
Lib/smtpd.py
20
Lib/smtpd.py
|
@ -524,6 +524,16 @@ def parseargs():
|
|||
if __name__ == '__main__':
|
||||
options = parseargs()
|
||||
# Become nobody
|
||||
classname = options.classname
|
||||
if "." in classname:
|
||||
lastdot = classname.rfind(".")
|
||||
mod = __import__(classname[:lastdot], globals(), locals(), [""])
|
||||
classname = classname[lastdot+1:]
|
||||
else:
|
||||
import __main__ as mod
|
||||
class_ = getattr(mod, classname)
|
||||
proxy = class_((options.localhost, options.localport),
|
||||
(options.remotehost, options.remoteport))
|
||||
if options.setuid:
|
||||
try:
|
||||
import pwd
|
||||
|
@ -539,16 +549,6 @@ if __name__ == '__main__':
|
|||
print >> sys.stderr, \
|
||||
'Cannot setuid "nobody"; try running with -n option.'
|
||||
sys.exit(1)
|
||||
classname = options.classname
|
||||
if "." in classname:
|
||||
lastdot = classname.rfind(".")
|
||||
mod = __import__(classname[:lastdot], globals(), locals(), [""])
|
||||
classname = classname[lastdot+1:]
|
||||
else:
|
||||
import __main__ as mod
|
||||
class_ = getattr(mod, classname)
|
||||
proxy = class_((options.localhost, options.localport),
|
||||
(options.remotehost, options.remoteport))
|
||||
try:
|
||||
asyncore.loop()
|
||||
except KeyboardInterrupt:
|
||||
|
|
|
@ -66,6 +66,8 @@ Core and Builtins
|
|||
Library
|
||||
-------
|
||||
|
||||
- Issue #9168: now smtpd is able to bind privileged port.
|
||||
|
||||
- Issue #12529: fix cgi.parse_header issue on strings with double-quotes and
|
||||
semicolons together. Patch by Ben Darnell and Petri Lehtinen.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue