-const char filters_rcs[] = "$Id: filters.c,v 1.7 2001/05/26 15:26:15 jongfoster Exp $";
+const char filters_rcs[] = "$Id: filters.c,v 1.8 2001/05/26 17:13:28 jongfoster Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/filters.c,v $
*
* Revisions :
* $Log: filters.c,v $
+ * Revision 1.8 2001/05/26 17:13:28 jongfoster
+ * Filled in a function comment.
+ *
* Revision 1.7 2001/05/26 15:26:15 jongfoster
* ACL feature now provides more security by immediately dropping
* connections from untrusted hosts.
* Function : re_process_buffer
*
* Description : Apply all jobs from the joblist (aka. Perl regexp's) to
- * the text buffer that's been accumulated in csp->iob->buf.
- * Then, write the modified buffer out to the client
- * (Maybe this should happen from jcc.c via flush_socket
- * for better readability).
+ * the text buffer that's been accumulated in csp->iob->buf
+ * and set csp->content_length to the modified size.
*
* Parameters :
* 1 : csp = Current client state (buffers, headers, etc...)
*
- * Returns : N/A
+ * Returns : a pointer to the (newly allocated) modified buffer.
+ *
*
*********************************************************************/
-void re_process_buffer(struct client_state *csp)
+char *re_process_buffer(struct client_state *csp)
{
int hits=0;
int size = csp->iob->eod - csp->iob->cur;
log_error(LOG_LEVEL_RE_FILTER, " produced %d hits (new size %d).", hits, size);
- if (write_socket(csp->cfd, old, size) != size)
- {
- log_error(LOG_LEVEL_ERROR, "write to client failed.");
- }
+ csp->content_length = size;
/* fwiw, reset the iob */
IOB_RESET(csp);
- freez(new);
- return;
+ return(new);
}
#endif /* def PCRS */