>>>>> "EAP" == Eloy A Paris <eparis@ven.ra.rockwell.com> writes:
EAP> Hi,
EAP> is there a way to expire an object before it is normally expired
EAP> by Squid?
EAP> I have an object that is cached as type "text/x-server-parsed-html" and
EAP> this is wrong because when I telnet to port 80 of the real server
EAP> I get content type "text/html". I don't know how the wrong information
EAP> got cached (it could be because I upgraded Apache yesterday and somebody
EAP> accessed this URL while the server wasn't properly configured) but
EAP> I need to get rid of this faulty cache entry.
You can purge the object. Telnet to your Squid port and do:
PURGE url_of_object HTTP/1.0
Make sure Squid is configured to allow purging, for example in squid.conf
acl purge method PURGE
...
http_access allow xxx purge
xxx being an acl for hosts from which purges will be allowed.
Much more convenient is using cachemgr.cgi, I am including a patch which will
allow purging of object. (Just a quick hack, I made REMOVE as similar
REFRESH as needed ;-) )
The patch is from Squid 1.1.11 (since cachemgr.c is the same in 1.1.11 and
1.1.14 there should be no problems using 1.1.14).
Regards,
        Peter Eisenhauer
--- cachemgr.c.orig	Fri Jun 13 19:00:08 1997
+++ cachemgr.c	Tue Jun 17 14:54:02 1997
@@ -234,9 +234,7 @@
     STATS_NETDB,
     SHUTDOWN,
     REFRESH,
-#ifdef REMOVE_OBJECT
     REMOVE,
-#endif
     MAXOP
 } op_t;
 
@@ -261,9 +259,7 @@
     "stats/netdb",
     "shutdown",
     "refresh",
-#ifdef REMOVE_OBJECT
     "remove",
-#endif
     "unknown"
 };
 
@@ -288,9 +284,7 @@
     "Network Probe Database",
     "Shutdown Cache",
     "Refresh Object (URL required)",
-#ifdef REMOVE_OBJECT
     "Remove Object (URL required)",
-#endif
     "Unknown Operation"
 };
 
@@ -382,9 +376,7 @@
     print_option(op, STATS_R);
     print_option(op, SHUTDOWN);
     print_option(op, REFRESH);
-#ifdef REMOVE_OBJECT
     print_option(op, REMOVE);
-#endif
     printf("</SELECT><BR>\n");
     printf("<HR>\n");
     printf("<INPUT TYPE=\"submit\"> <INPUT TYPE=\"reset\">\n");
@@ -750,12 +742,9 @@
     case REFRESH:
         sprintf(msg, "GET %s HTTP/1.0\r\nPragma: no-cache\r\nAccept: */*\r\n\r\n", url);
         break;
-#ifdef REMOVE_OBJECT
     case REMOVE:
-	printf("Remove not yet supported\n");
-	exit(0);
-	/* NOTREACHED */
-#endif
+      sprintf(msg, "PURGE %s HTTP/1.0\r\nPragma: no-cache\r\nAccept: */*\r\n\r\n", url);
+      break;
     default:
     case MAXOP:
         printf("Unknown operation: %s\n", operation);
@@ -840,6 +829,7 @@
     case STATS_NETDB:
     case SHUTDOWN:
     case REFRESH:
+    case REMOVE:
         break;
     case PARAM:
         if (hasTables) {
@@ -885,10 +875,12 @@
                 else		/* End of list */
                     p_state = 0;
             else if ((indx == 0) && (n_loops == 1)) {
-		if (op != REFRESH)
-		    printf("ERROR:%s\n", buf);	/* Must be an error message, pass it on */
-		else
+		if (op == REFRESH)
                     printf("Refreshed URL: %s\n", url);
+		else if (op == REMOVE)
+		    printf("Removed URL: %s\n", url);
+		else
+		    printf("ERROR:%s\n", buf);	/* Must be an error message, pass it on */
             } else
                 reserve[cpy_ind++] = buf[indx];
 
@@ -929,6 +921,7 @@
                     printf("%s", reserve);
                     break;
                 case REFRESH:
+		case REMOVE:
                     /* throw object away */
                     break;
                 case PARAM:
 
Received on Wed Jul 16 1997 - 00:04:45 MDT
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:35:46 MST