+ }
+#endif
+ wrote = send(spamd_sock,spamd_buffer + offset,read - offset,0);
+ if (wrote == -1)
+ {
+ log_write(0, LOG_MAIN|LOG_PANIC,
+ "spam acl condition: %s on spamd socket", strerror(errno));
+ (void)close(spamd_sock);
+ (void)fclose(mbox_file);
+ return DEFER;
+ }
+ if (offset + wrote != read) {
+ offset += wrote;
+ goto again;
+ }
+ }
+ }
+ while (!feof(mbox_file) && !ferror(mbox_file));
+ if (ferror(mbox_file)) {
+ log_write(0, LOG_MAIN|LOG_PANIC,
+ "spam acl condition: error reading spool file: %s", strerror(errno));
+ (void)close(spamd_sock);
+ (void)fclose(mbox_file);
+ return DEFER;