From c4eb4f03931be9d798ab085981b2cee6c058d109 Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Sat, 16 Dec 2023 17:37:30 +0000 Subject: [PATCH] Testsuite: spilt testcase --- test/confs/0905 | 1 + test/log/0904 | 24 ---- test/log/0905 | 24 ++++ test/scripts/0000-Basic/0904 | 247 +---------------------------------- test/scripts/0000-Basic/0905 | 244 ++++++++++++++++++++++++++++++++++ test/stdout/0904 | 113 ---------------- test/stdout/0905 | 115 ++++++++++++++++ 7 files changed, 385 insertions(+), 383 deletions(-) create mode 120000 test/confs/0905 create mode 100644 test/log/0905 create mode 100644 test/scripts/0000-Basic/0905 create mode 100644 test/stdout/0905 diff --git a/test/confs/0905 b/test/confs/0905 new file mode 120000 index 000000000..1bb987150 --- /dev/null +++ b/test/confs/0905 @@ -0,0 +1 @@ +0900 \ No newline at end of file diff --git a/test/log/0904 b/test/log/0904 index af82b56bd..6b28fad3c 100644 --- a/test/log/0904 +++ b/test/log/0904 @@ -18,27 +18,3 @@ 2017-07-30 18:51:05.712 10HmbC-000000005vi-0000 ** ebad@test.ex R=to_server T=remote_smtp H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 550 sorry, no 2017-07-30 18:51:05.712 10HmbC-000000005vi-0000 ebad@test.ex: error ignored 2017-07-30 18:51:05.712 10HmbC-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbD-000000005vi-0000 <= sender@source.dom U=root Ci=p1240 P=local-bsmtp S=sss for p@test.ex -2017-07-30 18:51:05.712 10HmbD-000000005vi-0000 => p@test.ex R=to_server T=remote_smtp H=127.0.0.1 [127.0.0.1] K C="250 OK bdat" -2017-07-30 18:51:05.712 10HmbD-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbE-000000005vi-0000 <= sender@source.dom U=root Ci=p1241 P=local-bsmtp S=sss for r@test.ex -2017-07-30 18:51:05.712 10HmbE-000000005vi-0000 => r@test.ex R=to_server T=remote_smtp H=127.0.0.1 [127.0.0.1] K C="250 OK bdat" -2017-07-30 18:51:05.712 10HmbE-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbF-000000005vi-0000 <= sender@source.dom U=root Ci=p1242 P=local-bsmtp S=sss for s@test.ex -2017-07-30 18:51:05.712 10HmbF-000000005vi-0000 ** s@test.ex R=to_server T=remote_smtp H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 550 unacceptable mail-from -2017-07-30 18:51:05.712 10HmbF-000000005vi-0000 s@test.ex: error ignored -2017-07-30 18:51:05.712 10HmbF-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbG-000000005vi-0000 <= sender@source.dom U=root Ci=p1243 P=local-bsmtp S=sss for s1@test.ex -2017-07-30 18:51:05.712 10HmbG-000000005vi-0000 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 450 greylisted mail-from -2017-07-30 18:51:05.712 10HmbG-000000005vi-0000 == s1@test.ex R=to_server T=remote_smtp defer (-45) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 450 greylisted mail-from -2017-07-30 18:51:05.712 10HmbH-000000005vi-0000 <= sender@source.dom U=root Ci=p1244 P=local-bsmtp S=sss for t@test.ex -2017-07-30 18:51:05.712 10HmbH-000000005vi-0000 ** t@test.ex R=to_server T=remote_smtp H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 550 no such recipient -2017-07-30 18:51:05.712 10HmbH-000000005vi-0000 t@test.ex: error ignored -2017-07-30 18:51:05.712 10HmbH-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbI-000000005vi-0000 <= sender@source.dom U=root Ci=p1245 P=local-bsmtp S=sss for u@test.ex -2017-07-30 18:51:05.712 10HmbI-000000005vi-0000 ** u@test.ex R=to_server T=remote_smtp H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 500 oops bdat -2017-07-30 18:51:05.712 10HmbI-000000005vi-0000 u@test.ex: error ignored -2017-07-30 18:51:05.712 10HmbI-000000005vi-0000 Completed -2017-07-30 18:51:05.712 10HmbJ-000000005vi-0000 <= sender@source.dom U=root Ci=p1246 P=local-bsmtp S=sss for v@test.ex -2017-07-30 18:51:05.712 10HmbJ-000000005vi-0000 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 400 not right now bdat -2017-07-30 18:51:05.712 10HmbJ-000000005vi-0000 == v@test.ex R=to_server T=remote_smtp defer (-46) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 400 not right now bdat diff --git a/test/log/0905 b/test/log/0905 new file mode 100644 index 000000000..5f0c49bfa --- /dev/null +++ b/test/log/0905 @@ -0,0 +1,24 @@ +2017-07-30 18:51:05.712 10HmaX-000000005vi-0000 <= sender@source.dom U=root Ci=p1234 P=local-bsmtp S=sss for p@test.ex +2017-07-30 18:51:05.712 10HmaX-000000005vi-0000 => p@test.ex R=to_server T=remote_smtp H=127.0.0.1 [127.0.0.1] K C="250 OK bdat" +2017-07-30 18:51:05.712 10HmaX-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmaY-000000005vi-0000 <= sender@source.dom U=root Ci=p1235 P=local-bsmtp S=sss for r@test.ex +2017-07-30 18:51:05.712 10HmaY-000000005vi-0000 => r@test.ex R=to_server T=remote_smtp H=127.0.0.1 [127.0.0.1] K C="250 OK bdat" +2017-07-30 18:51:05.712 10HmaY-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmaZ-000000005vi-0000 <= sender@source.dom U=root Ci=p1236 P=local-bsmtp S=sss for s@test.ex +2017-07-30 18:51:05.712 10HmaZ-000000005vi-0000 ** s@test.ex R=to_server T=remote_smtp H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 550 unacceptable mail-from +2017-07-30 18:51:05.712 10HmaZ-000000005vi-0000 s@test.ex: error ignored +2017-07-30 18:51:05.712 10HmaZ-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbA-000000005vi-0000 <= sender@source.dom U=root Ci=p1237 P=local-bsmtp S=sss for s1@test.ex +2017-07-30 18:51:05.712 10HmbA-000000005vi-0000 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 450 greylisted mail-from +2017-07-30 18:51:05.712 10HmbA-000000005vi-0000 == s1@test.ex R=to_server T=remote_smtp defer (-45) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 450 greylisted mail-from +2017-07-30 18:51:05.712 10HmbB-000000005vi-0000 <= sender@source.dom U=root Ci=p1238 P=local-bsmtp S=sss for t@test.ex +2017-07-30 18:51:05.712 10HmbB-000000005vi-0000 ** t@test.ex R=to_server T=remote_smtp H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 550 no such recipient +2017-07-30 18:51:05.712 10HmbB-000000005vi-0000 t@test.ex: error ignored +2017-07-30 18:51:05.712 10HmbB-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbC-000000005vi-0000 <= sender@source.dom U=root Ci=p1239 P=local-bsmtp S=sss for u@test.ex +2017-07-30 18:51:05.712 10HmbC-000000005vi-0000 ** u@test.ex R=to_server T=remote_smtp H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 500 oops bdat +2017-07-30 18:51:05.712 10HmbC-000000005vi-0000 u@test.ex: error ignored +2017-07-30 18:51:05.712 10HmbC-000000005vi-0000 Completed +2017-07-30 18:51:05.712 10HmbD-000000005vi-0000 <= sender@source.dom U=root Ci=p1240 P=local-bsmtp S=sss for v@test.ex +2017-07-30 18:51:05.712 10HmbD-000000005vi-0000 H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 400 not right now bdat +2017-07-30 18:51:05.712 10HmbD-000000005vi-0000 == v@test.ex R=to_server T=remote_smtp defer (-46) H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after pipelined end of data: 400 not right now bdat diff --git a/test/scripts/0000-Basic/0904 b/test/scripts/0000-Basic/0904 index b505836d3..3b5a79dac 100644 --- a/test/scripts/0000-Basic/0904 +++ b/test/scripts/0000-Basic/0904 @@ -1,6 +1,4 @@ -# CHUNKING transmission, short messages -# -# Start with non-pipelined cases +# CHUNKING transmission, short messages, no PIPELINING # # Basic short message server PORT_S @@ -165,249 +163,6 @@ RCPT TO: DATA Subject: foo -data -. -QUIT -**** -# -# -################################################### -# -# Pipelined cases -# -# Basic short message -server PORT_S -220 Greetings -EHLO -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM -RCPT TO -BDAT 345 LAST -*data 345 -250 OK mail -250 OK rcpt -250 OK bdat -QUIT -225 OK -*eof -**** -sudo exim -odf -bS -EHLO test -MAIL FROM: -RCPT TO: -DATA -Subject: foo - -data -. -QUIT -**** -# -# Error case: server wrongly expected more data, client gets timeout for data-ack -# XXX This is a problem with data/quit pipelining. The succeeding SMTP command cannot -# be distinguished from the data, by the errroneous server. -# Of course, we could avoid such pipelining on the client side, when BDAT is used. -# But - is this any worse than a server failing to spot the data-dot under DATA? -# I think not; both are culpable, and there is only so much the client can do. -#server PORT_S -#220 Greetings -#EHLO -#250-Hello there -#250-PIPELINING -#250 CHUNKING -#MAIL FROM -#RCPT TO -#BDAT 345 LAST -#*data 346 -#250 good mail cmd -#**** -#sudo exim -odf -bS -#EHLO test -#MAIL FROM: -#RCPT TO: -#DATA -#Subject: foo -# -#data -#. -#QUIT -#**** -# -# Error case: server wrongly expected less data -# client get the data-ack, sends quit - but server -# sees a munged quit due to the outstanding data tail -server PORT_S -220 Greetings -EHLO -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM -RCPT TO -BDAT 345 LAST -*data 344 -250 OK mail -250 OK rcpt -250 OK bdat -QUIT -225 OK -**** -sudo exim -odf -bS -EHLO test -MAIL FROM: -RCPT TO: -DATA -Subject: foo - -data -. -QUIT -**** -# -# server rejects MAIL cmd -# transport coding does not handle the possible RSET-and-another transaction, -# but always QUITs -server PORT_S -220 Greetings -EHLO -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM -RCPT TO -BDAT 345 LAST -*data 345 -550 unacceptable mail-from -550 rcpt ungood lacking mail-from -500 bdat ungood lacking mail-from -QUIT -225 OK -**** -sudo exim -odf -bS -EHLO test -MAIL FROM: -RCPT TO: -DATA -Subject: foo - -data -. -QUIT -**** -# -# server tmp-rejects MAIL cmd -server PORT_S -220 Greetings -EHLO -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM -RCPT TO -BDAT 346 LAST -*data 346 -450 greylisted mail-from -550 rcpt ungood lacking mail-from -500 bdat ungood lacking mail-from -QUIT -225 OK -**** -sudo exim -odf -bS -EHLO test -MAIL FROM: -RCPT TO: -DATA -Subject: foo - -data -. -QUIT -**** -# -# server rejects RCPT cmd -server PORT_S -220 Greetings -EHLO -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM -RCPT TO -BDAT 345 LAST -*data 345 -250 OK mail -550 no such recipient -500 oops bdat -QUIT -225 OK -**** -sudo exim -odf -bS -EHLO test -MAIL FROM: -RCPT TO: -DATA -Subject: foo - -data -. -QUIT -**** -# -# server rejects BDAT cmd -server PORT_S -220 Greetings -EHLO -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM -RCPT TO -BDAT 345 LAST -*data 345 -250 OK mail -250 OK rcpt -500 oops bdat -QUIT -225 OK -**** -sudo exim -odf -bS -EHLO test -MAIL FROM: -RCPT TO: -DATA -Subject: foo - -data -. -QUIT -**** -# -# server tmp-rejects BDAT cmd -server PORT_S -220 Greetings -EHLO -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM -RCPT TO -BDAT 345 LAST -*data 345 -250 OK mail -250 OK rcpt -400 not right now bdat -QUIT -225 OK -**** -sudo exim -odf -bS -EHLO test -MAIL FROM: -RCPT TO: -DATA -Subject: foo - data . QUIT diff --git a/test/scripts/0000-Basic/0905 b/test/scripts/0000-Basic/0905 new file mode 100644 index 000000000..48f9574db --- /dev/null +++ b/test/scripts/0000-Basic/0905 @@ -0,0 +1,244 @@ +# CHUNKING transmission, short messages, PIPELINING +# +# Pipelined cases +# +# Basic short message +server PORT_S +220 Greetings +EHLO +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM +RCPT TO +BDAT 345 LAST +*data 345 +250 OK mail +250 OK rcpt +250 OK bdat +QUIT +225 OK +*eof +**** +sudo exim -odf -bS +EHLO test +MAIL FROM: +RCPT TO: +DATA +Subject: foo + +data +. +QUIT +**** +# +# Error case: server wrongly expected more data, client gets timeout for data-ack +# XXX This is a problem with data/quit pipelining. The succeeding SMTP command cannot +# be distinguished from the data, by the errroneous server. +# Of course, we could avoid such pipelining on the client side, when BDAT is used. +# But - is this any worse than a server failing to spot the data-dot under DATA? +# I think not; both are culpable, and there is only so much the client can do. +#server PORT_S +#220 Greetings +#EHLO +#250-Hello there +#250-PIPELINING +#250 CHUNKING +#MAIL FROM +#RCPT TO +#BDAT 345 LAST +#*data 346 +#250 good mail cmd +#**** +#sudo exim -odf -bS +#EHLO test +#MAIL FROM: +#RCPT TO: +#DATA +#Subject: foo +# +#data +#. +#QUIT +#**** +# +# Error case: server wrongly expected less data +# client get the data-ack, sends quit - but server +# sees a munged quit due to the outstanding data tail +server PORT_S +220 Greetings +EHLO +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM +RCPT TO +BDAT 345 LAST +*data 344 +250 OK mail +250 OK rcpt +250 OK bdat +QUIT +225 OK +**** +sudo exim -odf -bS +EHLO test +MAIL FROM: +RCPT TO: +DATA +Subject: foo + +data +. +QUIT +**** +# +# server rejects MAIL cmd +# transport coding does not handle the possible RSET-and-another transaction, +# but always QUITs +server PORT_S +220 Greetings +EHLO +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM +RCPT TO +BDAT 345 LAST +*data 345 +550 unacceptable mail-from +550 rcpt ungood lacking mail-from +500 bdat ungood lacking mail-from +QUIT +225 OK +**** +sudo exim -odf -bS +EHLO test +MAIL FROM: +RCPT TO: +DATA +Subject: foo + +data +. +QUIT +**** +# +# server tmp-rejects MAIL cmd +server PORT_S +220 Greetings +EHLO +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM +RCPT TO +BDAT 346 LAST +*data 346 +450 greylisted mail-from +550 rcpt ungood lacking mail-from +500 bdat ungood lacking mail-from +QUIT +225 OK +**** +sudo exim -odf -bS +EHLO test +MAIL FROM: +RCPT TO: +DATA +Subject: foo + +data +. +QUIT +**** +# +# server rejects RCPT cmd +server PORT_S +220 Greetings +EHLO +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM +RCPT TO +BDAT 345 LAST +*data 345 +250 OK mail +550 no such recipient +500 oops bdat +QUIT +225 OK +**** +sudo exim -odf -bS +EHLO test +MAIL FROM: +RCPT TO: +DATA +Subject: foo + +data +. +QUIT +**** +# +# server rejects BDAT cmd +server PORT_S +220 Greetings +EHLO +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM +RCPT TO +BDAT 345 LAST +*data 345 +250 OK mail +250 OK rcpt +500 oops bdat +QUIT +225 OK +**** +sudo exim -odf -bS +EHLO test +MAIL FROM: +RCPT TO: +DATA +Subject: foo + +data +. +QUIT +**** +# +# server tmp-rejects BDAT cmd +server PORT_S +220 Greetings +EHLO +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM +RCPT TO +BDAT 345 LAST +*data 345 +250 OK mail +250 OK rcpt +400 not right now bdat +QUIT +225 OK +**** +sudo exim -odf -bS +EHLO test +MAIL FROM: +RCPT TO: +DATA +Subject: foo + +data +. +QUIT +**** +# +# +no_msglog_check diff --git a/test/stdout/0904 b/test/stdout/0904 index b2eae3bf7..db112f277 100644 --- a/test/stdout/0904 +++ b/test/stdout/0904 @@ -85,116 +85,3 @@ RCPT TO: 550 sorry, no QUIT End of script -Listening on port 1224 ... -Connection request from [127.0.0.1] -220 Greetings -EHLO testhost.test.ex -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM:<> -RCPT TO: -BDAT 345 LAST -250 OK mail -250 OK rcpt -250 OK bdat -QUIT -225 OK -Expected EOF read from client -End of script -Listening on port 1224 ... -Connection request from [127.0.0.1] -220 Greetings -EHLO testhost.test.ex -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM:<> -RCPT TO: -BDAT 345 LAST -250 OK mail -250 OK rcpt -250 OK bdat - -Comparison failed - bailing out -Expected: QUIT -Listening on port 1224 ... -Connection request from [127.0.0.1] -220 Greetings -EHLO testhost.test.ex -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM:<> -RCPT TO: -BDAT 345 LAST -550 unacceptable mail-from -550 rcpt ungood lacking mail-from -500 bdat ungood lacking mail-from -QUIT -225 OK -End of script -Listening on port 1224 ... -Connection request from [127.0.0.1] -220 Greetings -EHLO testhost.test.ex -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM:<> -RCPT TO: -BDAT 346 LAST -450 greylisted mail-from -550 rcpt ungood lacking mail-from -500 bdat ungood lacking mail-from -QUIT -225 OK -End of script -Listening on port 1224 ... -Connection request from [127.0.0.1] -220 Greetings -EHLO testhost.test.ex -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM:<> -RCPT TO: -BDAT 345 LAST -250 OK mail -550 no such recipient -500 oops bdat -QUIT -225 OK -End of script -Listening on port 1224 ... -Connection request from [127.0.0.1] -220 Greetings -EHLO testhost.test.ex -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM:<> -RCPT TO: -BDAT 345 LAST -250 OK mail -250 OK rcpt -500 oops bdat -QUIT -225 OK -End of script -Listening on port 1224 ... -Connection request from [127.0.0.1] -220 Greetings -EHLO testhost.test.ex -250-Hello there -250-PIPELINING -250 CHUNKING -MAIL FROM:<> -RCPT TO: -BDAT 345 LAST -250 OK mail -250 OK rcpt -400 not right now bdat -QUIT -225 OK -End of script diff --git a/test/stdout/0905 b/test/stdout/0905 new file mode 100644 index 000000000..09c997ebf --- /dev/null +++ b/test/stdout/0905 @@ -0,0 +1,115 @@ + +******** SERVER ******** +Listening on port 1224 ... +Connection request from [127.0.0.1] +220 Greetings +EHLO testhost.test.ex +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM:<> +RCPT TO: +BDAT 345 LAST +250 OK mail +250 OK rcpt +250 OK bdat +QUIT +225 OK +Expected EOF read from client +End of script +Listening on port 1224 ... +Connection request from [127.0.0.1] +220 Greetings +EHLO testhost.test.ex +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM:<> +RCPT TO: +BDAT 345 LAST +250 OK mail +250 OK rcpt +250 OK bdat + +Comparison failed - bailing out +Expected: QUIT +Listening on port 1224 ... +Connection request from [127.0.0.1] +220 Greetings +EHLO testhost.test.ex +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM:<> +RCPT TO: +BDAT 345 LAST +550 unacceptable mail-from +550 rcpt ungood lacking mail-from +500 bdat ungood lacking mail-from +QUIT +225 OK +End of script +Listening on port 1224 ... +Connection request from [127.0.0.1] +220 Greetings +EHLO testhost.test.ex +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM:<> +RCPT TO: +BDAT 346 LAST +450 greylisted mail-from +550 rcpt ungood lacking mail-from +500 bdat ungood lacking mail-from +QUIT +225 OK +End of script +Listening on port 1224 ... +Connection request from [127.0.0.1] +220 Greetings +EHLO testhost.test.ex +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM:<> +RCPT TO: +BDAT 345 LAST +250 OK mail +550 no such recipient +500 oops bdat +QUIT +225 OK +End of script +Listening on port 1224 ... +Connection request from [127.0.0.1] +220 Greetings +EHLO testhost.test.ex +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM:<> +RCPT TO: +BDAT 345 LAST +250 OK mail +250 OK rcpt +500 oops bdat +QUIT +225 OK +End of script +Listening on port 1224 ... +Connection request from [127.0.0.1] +220 Greetings +EHLO testhost.test.ex +250-Hello there +250-PIPELINING +250 CHUNKING +MAIL FROM:<> +RCPT TO: +BDAT 345 LAST +250 OK mail +250 OK rcpt +400 not right now bdat +QUIT +225 OK +End of script -- 2.30.2