git://git.exim.org
/
exim.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Use enum for cutthrough receive processing state.
[exim.git]
/
src
/
src
/
receive.c
diff --git
a/src/src/receive.c
b/src/src/receive.c
index 372747360df308259b51d2401b2376cc6ce79016..48c83db03c4b1bb0cdb6596536ffedc9464574bd 100644
(file)
--- a/
src/src/receive.c
+++ b/
src/src/receive.c
@@
-1453,7
+1453,7
@@
BOOL resents_exist = FALSE;
uschar *resent_prefix = US"";
uschar *blackholed_by = NULL;
uschar *blackhole_log_msg = US"";
uschar *resent_prefix = US"";
uschar *blackholed_by = NULL;
uschar *blackhole_log_msg = US"";
-
int cutthrough_done = 0
;
+
enum {NOT_TRIED, TMP_REJ, PERM_REJ, ACCEPTED} cutthrough_done
;
flock_t lock_data;
error_block *bad_addresses = NULL;
flock_t lock_data;
error_block *bad_addresses = NULL;
@@
-3250,6
+3250,7
@@
else
}
}
}
}
}
}
+#endif /* DISABLE_DKIM */
#ifdef WITH_CONTENT_SCAN
if (recipients_count > 0 &&
#ifdef WITH_CONTENT_SCAN
if (recipients_count > 0 &&
@@
-3426,8
+3427,6
@@
else
}
}
}
}
-#endif /* DISABLE_DKIM */
-
/* The applicable ACLs have been run */
if (deliver_freeze) frozen_by = US"ACL"; /* for later logging */
/* The applicable ACLs have been run */
if (deliver_freeze) frozen_by = US"ACL"; /* for later logging */
@@
-3949,7
+3948,7
@@
for this message. */
XXX We do not handle queue-only, freezing, or blackholes.
*/
XXX We do not handle queue-only, freezing, or blackholes.
*/
-cutthrough_done =
0
;
+cutthrough_done =
NOT_TRIED
;
if(cutthrough_fd >= 0)
{
uschar * msg= cutthrough_finaldot(); /* Ask the target system to accept the messsage */
if(cutthrough_fd >= 0)
{
uschar * msg= cutthrough_finaldot(); /* Ask the target system to accept the messsage */
@@
-3957,17
+3956,17
@@
if(cutthrough_fd >= 0)
switch(msg[0])
{
case '2': /* Accept. Do the same to the source; dump any spoolfiles. */
switch(msg[0])
{
case '2': /* Accept. Do the same to the source; dump any spoolfiles. */
- cutthrough_done =
3
;
+ cutthrough_done =
ACCEPTED
;
break; /* message_id needed for SMTP accept below */
default: /* Unknown response, or error. Treat as temp-reject. */
case '4': /* Temp-reject. Keep spoolfiles and accept. */
break; /* message_id needed for SMTP accept below */
default: /* Unknown response, or error. Treat as temp-reject. */
case '4': /* Temp-reject. Keep spoolfiles and accept. */
- cutthrough_done =
1;
/* Avoid the usual immediate delivery attempt */
+ cutthrough_done =
TMP_REJ;
/* Avoid the usual immediate delivery attempt */
break; /* message_id needed for SMTP accept below */
case '5': /* Perm-reject. Do the same to the source. Dump any spoolfiles */
smtp_reply= msg; /* Pass on the exact error */
break; /* message_id needed for SMTP accept below */
case '5': /* Perm-reject. Do the same to the source. Dump any spoolfiles */
smtp_reply= msg; /* Pass on the exact error */
- cutthrough_done =
2
;
+ cutthrough_done =
PERM_REJ
;
break;
}
}
break;
}
}
@@
-4081,8
+4080,8
@@
if (smtp_input)
switch (cutthrough_done)
{
switch (cutthrough_done)
{
- case
3: log_write(0, LOG_MAIN, "Completed");
/* Delivery was done */
- case
2: {
/* Delete spool files */
+ case
ACCEPTED: log_write(0, LOG_MAIN, "Completed");
/* Delivery was done */
+ case
PERM_REJ: {
/* Delete spool files */
sprintf(CS spool_name, "%s/input/%s/%s-D", spool_directory,
message_subdir, message_id);
Uunlink(spool_name);
sprintf(CS spool_name, "%s/input/%s/%s-D", spool_directory,
message_subdir, message_id);
Uunlink(spool_name);
@@
-4093,7
+4092,7
@@
if (smtp_input)
message_subdir, message_id);
Uunlink(spool_name);
}
message_subdir, message_id);
Uunlink(spool_name);
}
- case
1: message_id[0] = 0;
/* Prevent a delivery from starting */
+ case
TMP_REJ: message_id[0] = 0;
/* Prevent a delivery from starting */
default:break;
}
cutthrough_delivery = FALSE;
default:break;
}
cutthrough_delivery = FALSE;