- current_server++;
- if (current_server >= num_servers)
- current_server = 0;
- if (current_server == start_server) {
- log_write(0, LOG_MAIN|LOG_PANIC, "spam acl condition: all spamd servers failed");
- (void)fclose(mbox_file);
- (void)close(spamd_sock);
- return DEFER;
- };
- };
+
+ (void)close(spamd_sock);
+
+ /* Remove the server from the list. XXX We should free the memory */
+ num_servers--;
+ for( i = current_server; i < num_servers; i++ )
+ spamd_address_vector[i] = spamd_address_vector[i+1];
+ }
+
+ if ( num_servers == 0 ) {
+ log_write(0, LOG_MAIN|LOG_PANIC, "spam acl condition: all spamd servers failed");
+ (void)fclose(mbox_file);
+ return DEFER;
+ }