From 9e28e23c2c514ecec4a67e900c378691b427edcd Mon Sep 17 00:00:00 2001
From: Runxi Yu <me@runxiyu.org>
Date: Wed, 15 Jan 2025 20:13:41 +0800
Subject: Put mx side parsing code into a block

---
 serve_mx.go | 37 ++++++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 17 deletions(-)

diff --git a/serve_mx.go b/serve_mx.go
index 8911486..b8e6d44 100644
--- a/serve_mx.go
+++ b/serve_mx.go
@@ -49,25 +49,28 @@ func (session *mx_recv_session) handle(ctx context.Context) error {
 	_ = session.buf_conn.Flush()
 	session.server_state = mx_server_state_begin
 	for {
-		line, err := session.buf_conn.ReadString('\n')
-		if err != nil {
-			if err == io.EOF {
-				return err_connection_handler_eof
+		var cmd, param string
+		{
+			line, err := session.buf_conn.ReadString('\n')
+			if err != nil {
+				if err == io.EOF {
+					return err_connection_handler_eof
+				}
+				return err
 			}
-			return err
-		}
-		line = strings.TrimSuffix(line, "\n")
-		line = strings.TrimSuffix(line, "\r")
-		cmd_end := strings.IndexByte(line, ' ')
-		var param_start int
-		if cmd_end == -1 {
-			cmd_end = len(line)
-			param_start = len(line)
-		} else {
-			param_start = cmd_end + 1
+			line = strings.TrimSuffix(line, "\n")
+			line = strings.TrimSuffix(line, "\r")
+			cmd_end := strings.IndexByte(line, ' ')
+			var param_start int
+			if cmd_end == -1 {
+				cmd_end = len(line)
+				param_start = len(line)
+			} else {
+				param_start = cmd_end + 1
+			}
+			cmd = strings.ToUpper(line[:cmd_end])
+			param = line[param_start:]
 		}
-		cmd := strings.ToUpper(line[:cmd_end])
-		param := line[param_start:]
 	switch_cmd:
 		switch cmd {
 		case "STARTTLS":
-- 
cgit v1.2.3