You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by so...@apache.org on 2005/09/09 16:58:39 UTC
svn commit: r279790 - /httpd/mod_smtpd/trunk/smtp_protocol.c
Author: soc-rian
Date: Fri Sep 9 07:58:37 2005
New Revision: 279790
URL: http://svn.apache.org/viewcvs?rev=279790&view=rev
Log:
If a brigade has a EOS bucket, now write to file everything before EOS
Modified:
httpd/mod_smtpd/trunk/smtp_protocol.c
Modified: httpd/mod_smtpd/trunk/smtp_protocol.c
URL: http://svn.apache.org/viewcvs/httpd/mod_smtpd/trunk/smtp_protocol.c?rev=279790&r1=279789&r2=279790&view=diff
==============================================================================
--- httpd/mod_smtpd/trunk/smtp_protocol.c (original)
+++ httpd/mod_smtpd/trunk/smtp_protocol.c Fri Sep 9 07:58:37 2005
@@ -465,7 +465,7 @@
ap_get_module_config(scr->s->module_config,
&smtpd_module);
smtpd_header_filter_ctx header_ctx = {0, scr};
- int rv, retval = 0;
+ int rv, retval = 0, saw_eos = 0;
char *tempfile;
char our_buffer[BUFFER_STR_LEN];
const char *string;
@@ -546,7 +546,8 @@
bb = apr_brigade_create(str->p, scr->c->bucket_alloc);
/* wait until there is no more data
or until we have too much data */
- while (total_data < pConfig->max_data) {
+ while ((total_data < pConfig->max_data) &&
+ (!saw_eos)) {
apr_size_t line_size;
ap_get_brigade(scr->transaction->input_filters, bb, AP_MODE_GETLINE,
@@ -556,8 +557,10 @@
e != APR_BRIGADE_SENTINEL(bb);
e = APR_BUCKET_NEXT(e)) {
- if (APR_BUCKET_IS_EOS(e))
- goto data_done;
+ if (APR_BUCKET_IS_EOS(e)) {
+ saw_eos = 1;
+ break;
+ }
rv = apr_bucket_read(e, &string, &len, APR_BLOCK_READ);
if (rv != APR_SUCCESS) {
@@ -572,8 +575,6 @@
apr_file_write(tfp, our_buffer, &line_size);
}
-
- data_done:
str->tfp = tfp;