--- squid-3.0-PRE2-20030805/src/external_acl.cc	2003-08-04 17:14:42.000000000 -0500
+++ squid-3.0-PRE2-20030805-new/src/external_acl.cc	2003-08-10 14:59:39.000000000 -0500
@@ -53,6 +53,7 @@
 #endif
 #include "client_side.h"
 #include "HttpRequest.h"
+#include "HttpReply.h"
 
 #ifndef DEFAULT_EXTERNAL_ACL_TTL
 #define DEFAULT_EXTERNAL_ACL_TTL 1 * 60 * 60
@@ -682,6 +683,7 @@
     wordlist *arg;
     external_acl_format *format;
     request_t *request = ch->request;
+    HttpReply *reply = ch->reply;
     memBufReset(&mb);
 
     for (format = acl_data->def->format; format; format = format->next) {
@@ -746,22 +748,34 @@
             break;
 
         case _external_acl_format::EXT_ACL_HEADER:
-            sb = httpHeaderGetByName(&request->header, format->header);
+            if (reply)
+	            sb = httpHeaderGetByName(&reply->header, format->header);
+            if (request)
+        	    sb = httpHeaderGetByName(&request->header, format->header);
             str = sb.buf();
             break;
 
         case _external_acl_format::EXT_ACL_HEADER_ID:
-            sb = httpHeaderGetStrOrList(&request->header, format->header_id);
+	    if (reply)
+           	 sb = httpHeaderGetStrOrList(&reply->header, format->header_id);
+	    if (request)
+            	sb = httpHeaderGetStrOrList(&request->header, format->header_id);
             str = sb.buf();
             break;
 
         case _external_acl_format::EXT_ACL_HEADER_MEMBER:
-            sb = httpHeaderGetByNameListMember(&request->header, format->header, format->member, format->separator);
+            if (reply)
+	            sb = httpHeaderGetByNameListMember(&reply->header, format->header, format->member, format->separator);
+            if (request)
+	            sb = httpHeaderGetByNameListMember(&request->header, format->header, format->member, format->separator);
             str = sb.buf();
             break;
 
         case _external_acl_format::EXT_ACL_HEADER_ID_MEMBER:
-            sb = httpHeaderGetListMember(&request->header, format->header_id, format->member, format->separator);
+	    if (reply)
+	            sb = httpHeaderGetListMember(&reply->header, format->header_id, format->member, format->separator);
+	    if (request)
+	            sb = httpHeaderGetListMember(&request->header, format->header_id, format->member, format->separator);
             str = sb.buf();
             break;
 #if USE_SSL
@@ -800,6 +814,8 @@
             break;
         }
 
+	debug(82, 3) ("external_acl: sending '%s' from %d\n", str, format->type);
+
         if (str)
             if (!*str)
                 str = NULL;
