- else if (Ustrncmp(big_buffer, "-active_hostname", 16) == 0)
- smtp_active_hostname = string_copy(big_buffer + 17);
- else if (Ustrncmp(big_buffer, "-host_auth", 10) == 0)
- sender_host_authenticated = string_copy(big_buffer + 11);
- else if (Ustrncmp(big_buffer, "-host_name", 10) == 0)
- sender_host_name = string_copy(big_buffer + 11);
- else if (Ustrncmp(big_buffer, "-helo_name", 10) == 0)
- sender_helo_name = string_copy(big_buffer + 11);
- else if (Ustrncmp(big_buffer, "-ident", 6) == 0)
- sender_ident = string_copy(big_buffer + 7);
- else if (Ustrncmp(big_buffer, "-received_protocol", 18) == 0)
- received_protocol = string_copy(big_buffer + 19);
- else if (Ustrncmp(big_buffer, "-N", 2) == 0)
- dont_deliver = TRUE;
-
- /* To allow new versions of Exim that add additional flags to interwork
- with older versions that do not understand them, just ignore any flagged
- lines that we don't recognize. Otherwise it wouldn't be possible to back
- off a new version that left new-style flags written on the spool. That's
- why the following line is commented out. */
-
- /* else goto SPOOL_FORMAT_ERROR; */
+ case 's':
+ if (Ustrncmp(p, "ender_set_untrusted", 19) == 0)
+ f.sender_set_untrusted = TRUE;
+#ifdef WITH_CONTENT_SCAN
+ else if (Ustrncmp(p, "pam_bar ", 8) == 0)
+ spam_bar = string_copy(big_buffer + 10);
+ else if (Ustrncmp(p, "pam_score ", 10) == 0)
+ spam_score = string_copy(big_buffer + 12);
+ else if (Ustrncmp(p, "pam_score_int ", 14) == 0)
+ spam_score_int = string_copy(big_buffer + 16);
+#endif
+#ifndef COMPILE_UTILITY
+ else if (Ustrncmp(p, "pool_file_wireformat", 20) == 0)
+ f.spool_file_wireformat = TRUE;
+#endif
+#if defined(SUPPORT_I18N) && !defined(COMPILE_UTILITY)
+ else if (Ustrncmp(p, "mtputf8", 7) == 0)
+ message_smtputf8 = TRUE;
+#endif
+ break;
+
+#ifdef SUPPORT_TLS
+ case 't':
+ if (Ustrncmp(p, "ls_", 3) == 0)
+ {
+ uschar * q = p + 3;
+ if (Ustrncmp(q, "certificate_verified", 20) == 0)
+ tls_in.certificate_verified = TRUE;
+ else if (Ustrncmp(q, "cipher", 6) == 0)
+ tls_in.cipher = string_copy(big_buffer + 12);
+# ifndef COMPILE_UTILITY /* tls support fns not built in */
+ else if (Ustrncmp(q, "ourcert", 7) == 0)
+ (void) tls_import_cert(big_buffer + 13, &tls_in.ourcert);
+ else if (Ustrncmp(q, "peercert", 8) == 0)
+ (void) tls_import_cert(big_buffer + 14, &tls_in.peercert);
+# endif
+ else if (Ustrncmp(q, "peerdn", 6) == 0)
+ tls_in.peerdn = string_unprinting(string_copy(big_buffer + 12));
+ else if (Ustrncmp(q, "sni", 3) == 0)
+ tls_in.sni = string_unprinting(string_copy(big_buffer + 9));
+ else if (Ustrncmp(q, "ocsp", 4) == 0)
+ tls_in.ocsp = big_buffer[10] - '0';
+# ifdef EXPERIMENTAL_TLS_RESUME
+ else if (Ustrncmp(q, "resumption", 10) == 0)
+ tls_in.resumption = big_buffer[16] - 'A';
+# endif
+
+ }
+ break;
+#endif
+
+#if defined(SUPPORT_I18N) && !defined(COMPILE_UTILITY)
+ case 'u':
+ if (Ustrncmp(p, "tf8_downcvt", 11) == 0)
+ message_utf8_downconvert = 1;
+ else if (Ustrncmp(p, "tf8_optdowncvt", 15) == 0)
+ message_utf8_downconvert = -1;
+ break;
+#endif
+
+ default: /* Present because some compilers complain if all */
+ break; /* possibilities are not covered. */
+ }