/*
- * $Id: enums.h,v 1.118 1998/08/17 22:04:58 wessels Exp $
+ * $Id: enums.h,v 1.119 1998/08/19 06:05:51 wessels Exp $
*
*
* SQUID Internet Object Cache http://squid.nlanr.net/Squid/
ENTRY_CACHABLE,
ENTRY_DISPATCHED,
KEY_PRIVATE,
+#ifndef PPNR_WIP
ENTRY_UNUSED_08,
+#else
+ ENTRY_FWD_HDR_WAIT,
+#endif /* PPNR_WIP */
ENTRY_NEGCACHED,
ENTRY_VALIDATED,
ENTRY_BAD_LENGTH
/*
- * $Id: forward.cc,v 1.24 1998/08/17 23:50:16 wessels Exp $
+ * $Id: forward.cc,v 1.25 1998/08/19 06:05:52 wessels Exp $
*
* DEBUG: section 17 Request Forwarding
* AUTHOR: Duane Wessels
void
fwdFail(FwdState * fwdState, int err_code, http_status http_code, int xerrno)
{
+#ifdef PPNR_WIP
+ assert(EBIT_TEST(fwdState->entry->flag, ENTRY_FWD_HDR_WAIT));
+#endif /* PPNR_WIP */
debug(17, 3) ("fwdFail: %s \"%s\"\n\t%s\n",
err_type_str[err_code],
httpStatusString(http_code),
/*
- * $Id: http.cc,v 1.308 1998/08/18 22:42:19 wessels Exp $
+ * $Id: http.cc,v 1.309 1998/08/19 06:05:53 wessels Exp $
*
* DEBUG: section 11 Hypertext Transfer Protocol (HTTP)
* AUTHOR: Harvest Derived
* we want to process the reply headers.
*/
httpProcessReplyHeader(httpState, buf, len);
+#ifdef PPNR_WIP
+ storePPNR(entry);
+#endif /* PPNR_WIP */
storeComplete(entry); /* deallocates mem_obj->request */
comm_close(fd);
} else {
+#ifndef PPNR_WIP
if (httpState->reply_hdr_state < 2)
+#else
+ if (httpState->reply_hdr_state < 2) {
+#endif /* PPNR_WIP */
httpProcessReplyHeader(httpState, buf, len);
+#ifdef PPNR_WIP
+ if (httpState->reply_hdr_state == 2)
+ storePPNR(entry);
+ }
+#endif /* PPNR_WIP */
storeAppend(entry, buf, len);
#ifdef OPTIMISTIC_IO
if (entry->store_status == STORE_ABORTED) {
/*
- * $Id: protos.h,v 1.250 1998/08/17 23:00:39 wessels Exp $
+ * $Id: protos.h,v 1.251 1998/08/19 06:05:54 wessels Exp $
*
*
* SQUID Internet Object Cache http://squid.nlanr.net/Squid/
extern StoreEntry *storeCreateEntry(const char *, const char *, int, method_t);
extern void storeSetPublicKey(StoreEntry *);
extern void storeComplete(StoreEntry *);
+#ifdef PPNR_WIP
+extern void storePPNR(StoreEntry *);
+#endif /* PPNR_WIP */
extern void storeInit(void);
extern int storeClientWaiting(const StoreEntry *);
extern void storeAbort(StoreEntry *, int);
/*
- * $Id: store.cc,v 1.445 1998/08/18 22:42:21 wessels Exp $
+ * $Id: store.cc,v 1.446 1998/08/19 06:05:55 wessels Exp $
*
* DEBUG: section 20 Storage Manager
* AUTHOR: Harvest Derived
e->timestamp = 0; /* set in storeTimestampsSet() */
e->ping_status = PING_NONE;
EBIT_SET(e->flag, ENTRY_VALIDATED);
+#ifdef PPNR_WIP
+ EBIT_SET(e->flag, ENTRY_FWD_HDR_WAIT);
+#endif /* PPNR_WIP */
return e;
}
#endif
InvokeHandlers(e);
storeCheckSwapOut(e);
+#ifdef PPNR_WIP
+}
+
+void
+storePPNR(StoreEntry *e)
+{
+ assert(EBIT_TEST(e->flag, ENTRY_FWD_HDR_WAIT));
+ EBIT_CLR(e->flag, ENTRY_FWD_HDR_WAIT);
+#endif /* PPNR_WIP */
}
/*
/*
- * $Id: store_client.cc,v 1.37 1998/08/18 22:42:22 wessels Exp $
+ * $Id: store_client.cc,v 1.38 1998/08/19 06:05:56 wessels Exp $
*
* DEBUG: section 20 Storage Manager Client-Side Interface
* AUTHOR: Duane Wessels
size_t sz;
if (sc->flags.copy_event_pending)
return;
+#ifdef PPNR_WIP
+ if (EBIT_TEST(e->flag, ENTRY_FWD_HDR_WAIT))
+ return;
+#endif /* PPNR_WIP */
if (sc->flags.store_copying) {
sc->flags.copy_event_pending = 1;
debug(20, 3) ("storeClientCopy2: Queueing storeClientCopyEvent()\n");