Skip to content

Commit 9a73e67

Browse files
committed
Ensure lines end with \r\n
1 parent 3cc79a3 commit 9a73e67

3 files changed

Lines changed: 9 additions & 3 deletions

File tree

NEWS.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
Changes in FakeSMTPd 0.2.1
22
==========================
33

4+
Improvements
5+
------------
6+
7+
* Ensure that lines end with \r\n.
8+
49
Bug fixes
510
---------
611

fakesmtpd/connection.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ async def _handle_connection(self) -> None:
4949
self._write_reply(SMTPStatus.SERVICE_READY,
5050
"{} FakeSMTPd Service ready".format(getfqdn()))
5151
while not self.reader.at_eof():
52-
line = await self.reader.readline()
52+
line = await self.reader.readuntil(b"\r\n")
5353
try:
5454
decoded = line.decode("ascii").rstrip()
5555
except UnicodeDecodeError:
@@ -99,7 +99,7 @@ async def _handle_mail_text(self) -> None:
9999

100100
async def _read_mail_text(self) -> None:
101101
while not self.reader.at_eof():
102-
line = await self.reader.readline()
102+
line = await self.reader.readuntil(b"\r\n")
103103
if len(line) > SMTP_TEXT_LINE_LIMIT:
104104
raise ValueError()
105105
if line == b".\r\n":

fakesmtpd_test/connection.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ def __init__(self) -> None:
2020

2121
# SUT Interface
2222

23-
async def readline(self) -> bytes:
23+
async def readuntil(self, separator: bytes = b"\n") -> bytes:
24+
assert_equal(b"\r\n", separator)
2425
if not self.lines:
2526
return b""
2627
line = self.lines[0].encode("latin1") + b"\r\n"

0 commit comments

Comments
 (0)