Skip to content

Commit 3ec2e2c

Browse files
committed
bind to localhost by default, allow overwriting per command line arg
1 parent dee4366 commit 3ec2e2c

3 files changed

Lines changed: 8 additions & 3 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,5 @@ Usage
1212

1313
Supported options:
1414

15+
* `-b, --bind [ADDRESS]` IP addresses to listen on, defaults to 127.0.0.1
1516
* `-p, --port [PORT]` SMTP port to listen on

fakesmtpd/args.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
def parse_args(argv: List[str]) -> Any:
77
parser = argparse.ArgumentParser(
88
description="SMTP server for testing mail functionality")
9+
parser.add_argument(
10+
"--bind", "-b", nargs="?", default="127.0.0.1",
11+
help="IP address range to listen to")
912
parser.add_argument(
1013
"--port", "-p", type=int, nargs="?", default=SMTP_PORT,
1114
help="SMTP port to listen on")

fakesmtpd/server.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import logging
33
import signal
44
import sys
5+
from typing import Optional
56

67
from fakesmtpd.args import parse_args
78
from fakesmtpd.connection import handle_connection
@@ -11,16 +12,16 @@ def main() -> None:
1112
logging.basicConfig(level=logging.INFO)
1213
args = parse_args(sys.argv)
1314
try:
14-
run_server(args.port)
15+
run_server(args.bind, args.port)
1516
except PermissionError as exc:
1617
print(str(exc), file=sys.stderr)
1718
sys.exit(1)
1819

1920

20-
def run_server(port: int) -> None:
21+
def run_server(host: Optional[str], port: int) -> None:
2122
loop = asyncio.get_event_loop()
2223
loop.add_signal_handler(signal.SIGINT, loop.stop)
2324
loop.add_signal_handler(signal.SIGTERM, loop.stop)
24-
s = asyncio.start_server(handle_connection, port=port)
25+
s = asyncio.start_server(handle_connection, host=host, port=port)
2526
loop.run_until_complete(s)
2627
loop.run_forever()

0 commit comments

Comments
 (0)