--- libwww/Library/src/HTRules.c 1996/04/12 17:48:44 2.50 +++ libwww/Library/src/HTRules.c 1996/07/02 22:55:04 2.51 @@ -3,7 +3,7 @@ ** ** (c) COPYRIGHT MIT 1995. ** Please first read the full copyright statement in the file COPYRIGH. -** @(#) $Id: HTRules.c,v 2.50 1996/04/12 17:48:44 frystyk Exp $ +** @(#) $Id: HTRules.c,v 2.51 1996/07/02 22:55:04 frystyk Exp $ ** ** This module manages rule files in the Library ** @@ -36,7 +36,6 @@ struct _HTStream { const HTStreamClass * isa; HTRequest * request; - HTStream * target; HTChunk * buffer; HTEOLState EOLstate; }; @@ -325,31 +324,36 @@ PRIVATE int HTRule_put_string (HTStream PRIVATE int HTRule_flush (HTStream * me) { - return (*me->target->isa->flush)(me->target); + if (me) { + char * flush = HTChunk_data(me->buffer); + if (flush) HTRule_parseLine(rules, flush); + HTChunk_clear(me->buffer); + } + return HT_OK; } PRIVATE int HTRule_free (HTStream * me) { - int status = HT_OK; - if (me->target) { - if ((status = (*me->target->isa->_free)(me->target)) == HT_WOULD_BLOCK) - return HT_WOULD_BLOCK; + if (me) { + int status = HTRule_flush(me); + if (APP_TRACE) HTTrace("Rules....... FREEING....\n"); + HTChunk_delete(me->buffer); + HT_FREE(me); + return status; } - if (APP_TRACE) - HTTrace("Rules....... FREEING....\n"); - HTChunk_delete(me->buffer); - HT_FREE(me); - return status; + return HT_ERROR; } PRIVATE int HTRule_abort (HTStream * me, HTList * e) { - int status = HT_ERROR; - if (me->target) status = (*me->target->isa->abort)(me->target, e); - if (APP_TRACE) HTTrace("Rules....... ABORTING...\n"); - HTChunk_delete(me->buffer); - HT_FREE(me); - return status; + if (me) { + int status = HT_ERROR; + if (APP_TRACE) HTTrace("Rules....... ABORTING...\n"); + HTChunk_delete(me->buffer); + HT_FREE(me); + return status; + } + return HT_ERROR; } /* Structured Object Class @@ -381,7 +385,6 @@ PUBLIC HTStream * HTRules (HTRequest * r HT_OUTOFMEM("HTRules"); me->isa = &HTRuleClass; me->request = request; - me->target = output_stream; me->buffer = HTChunk_new(512); me->EOLstate = EOL_BEGIN; if (!rules) rules = HTList_new();