Check for lost connection or unexpected input at end of message.
[exim.git] / test / scripts / 0000-Basic / 0300
1 # SMTP synchronization checks, with and without PIPELINING
2 need_ipv4
3 #
4 exim -DSERVER=server -bd -oX PORT_D
5 ****
6 client 127.0.0.1 PORT_D
7 ??? 220
8 ehlo abcd\r\nmail from:<userx@test.ex>
9 ??? 554
10 ****
11 # The pause (+++ 1) in the middle of this is to be sure the first message is
12 # delivered before generating the sync error; without it, there's a race.
13 client 127.0.0.1 PORT_D
14 ??? 220
15 ehlo abcd
16 ??? 250-
17 ??? 250-
18 ??? 250-
19 ??? 250
20 rset\r\nmail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>\r\ndata
21 ??? 250
22 ??? 250
23 ??? 250
24 ??? 354
25 the message
26 .
27 +++ 1
28 mail from:<userx@test.ex>
29 rcpt to:<userx@test.ex>\r\ndata\r\nthe message\r\nsecond line
30 ??? 250
31 ??? 250
32 ??? 250
33 ??? 554
34 ****
35 sleep 1
36 # This time, don't send EHLO
37 client 127.0.0.1 PORT_D
38 ??? 220
39 helo abcd
40 ??? 250
41 mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>
42 ??? 554
43 ****
44 # This shouldn't get advertised pipelining
45 client HOSTIPV4 PORT_D
46 ??? 220
47 ehlo abcd
48 ??? 250-
49 ??? 250-
50 ??? 250
51 mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>
52 ??? 554
53 ****
54 # Check on unrecognized commands
55 client HOSTIPV4 PORT_D
56 ??? 220
57 junk0
58 ??? 500
59 junk1\r\njunk2
60 ??? 554
61 ****
62 # Check on RSET and QUIT
63 client 127.0.0.1 PORT_D
64 ??? 220
65 ehlo abcd
66 ??? 250-
67 ??? 250-
68 ??? 250-
69 ??? 250
70 rset\r\nquit
71 ??? 250
72 ??? 221
73 ****
74 # Check on RSET and QUIT
75 client HOSTIPV4 PORT_D
76 ??? 220
77 ehlo abcd
78 ??? 250-
79 ??? 250-
80 ??? 250
81 rset\r\nquit
82 ??? 554
83 ****
84 # This one disables the check dynamically
85 client 127.0.0.1 PORT_D
86 ??? 220
87 ehlo dis.able
88 ??? 250-
89 ??? 250-
90 ??? 250-
91 ??? 250
92 mail from:<userx@test.ex>\r\nrcpt to:<userx@test.ex>\r\ndata\r\nthe message\r\nsecond line
93 .
94 ??? 250
95 ??? 250
96 ??? 354
97 ??? 250
98 quit
99 ??? 221
100 ****
101 killdaemon
102 # In these next tests, PIPELINING is not advertised, and the server delays for
103 # 1s before trying to send the banner to give the client time to send input.
104 exim -DPAH= -DDELAY=1s -DSERVER=server -bd -oX PORT_D
105 ****
106 # Send HELO without waiting for greeting
107 client -t2 127.0.0.1 PORT_D
108 helo abcd
109 ??? 554
110 ****
111 # Disconnect without waiting for the greeting. This should
112 # test the check for input that happens before sending the
113 # banner (there was a bug at one point; missing error check).
114 client -t2 127.0.0.1 PORT_D
115 ****
116 killdaemon