Using squid-2.4-200011210000 under cygwin1.1.5 modified the http.c file,
enums.h file and url.c files as below.
Changes are marked with the comment /* Added this line to accomodate
Microsoft Exchange 2000 Outlook Web Access*/
The solution was sourced partially from the archive but i couldn't
understand all the references to RFC's (Sorry I don't understand much C)
so found the similiar entries that were talked about eg METHOD_BMOVE and
METHOD_BDELETE and it worked. so here is 8-)
Modified http.c
httpMaybeRemovePublic(StoreEntry * e, http_status status)
{
int remove = 0;
int forbidden = 0;
StoreEntry *pe;
if (!EBIT_TEST(e->flags, KEY_PRIVATE))
return;
switch (status) {
case HTTP_OK:
case HTTP_NON_AUTHORITATIVE_INFORMATION:
case HTTP_MULTIPLE_CHOICES:
case HTTP_MOVED_PERMANENTLY:
case HTTP_MOVED_TEMPORARILY:
case HTTP_GONE:
case HTTP_NOT_FOUND:
remove = 1;
break;
case HTTP_FORBIDDEN:
case HTTP_METHOD_NOT_ALLOWED:
forbidden = 1;
break;
#if WORK_IN_PROGRESS
case HTTP_UNAUTHORIZED:
forbidden = 1;
break;
#endif
default:
#if QUESTIONABLE
/*
* Any 2xx response should eject previously cached entities...
*/
if (status >= 200 && status < 300)
remove = 1;
#endif
break;
}
if (!remove && !forbidden)
return;
assert(e->mem_obj);
if ((pe = storeGetPublic(e->mem_obj->url, e->mem_obj->method)) !=
NULL) {
assert(e != pe);
storeRelease(pe);
}
/*
* Also remove any cached HEAD response in case the object has
* changed.
*/
if ((pe = storeGetPublic(e->mem_obj->url, METHOD_HEAD)) != NULL) {
assert(e != pe);
storeRelease(pe);
}
if (forbidden)
return;
switch (e->mem_obj->method) {
case METHOD_PUT:
case METHOD_DELETE:
case METHOD_PROPPATCH:
case METHOD_MKCOL:
case METHOD_MOVE:
case METHOD_BMOVE:
case METHOD_BDELETE:
case METHOD_SEARCH: /* Added this line to accomodate Microsoft
Exchange 2000 Outlook Web Access*/
/*
* Remove any cached GET object if it is beleived that the
* object may have changed as a result of other methods
*/
if ((pe = storeGetPublic(e->mem_obj->url, METHOD_GET)) != NULL)
{
assert(e != pe);
storeRelease(pe);
}
break;
}
}
modified the url.c file to look like this:
const char *RequestMethodStr[] =
{
"NONE",
"GET",
"POST",
"PUT",
"HEAD",
"CONNECT",
"TRACE",
"PURGE",
"OPTIONS",
"DELETE",
"PROPFIND",
"PROPPATCH",
"MKCOL",
"COPY",
"MOVE",
"LOCK",
"UNLOCK",
"BMOVE",
"BDELETE",
"BPROPFIND",
"%EXT00",
"%EXT01",
"%EXT02",
"%EXT03",
"%EXT04",
"%EXT05",
"%EXT06",
"%EXT07",
"%EXT08",
"%EXT09",
"%EXT10",
"%EXT11",
"%EXT12",
"%EXT13",
"%EXT14",
"%EXT15",
"%EXT16",
"%EXT17",
"%EXT18",
"%EXT19",
"SEARCH", /* Added this line to accomodate Microsoft Exchange 2000
Outlook Web Access*/
"ERROR"
};
The "SEARCH" was the method added.
and then in enums.h changed
enum {
METHOD_NONE, /* 000 */
METHOD_GET, /* 001 */
METHOD_POST, /* 010 */
METHOD_PUT, /* 011 */
METHOD_HEAD, /* 100 */
METHOD_CONNECT, /* 101 */
METHOD_TRACE, /* 110 */
METHOD_PURGE, /* 111 */
METHOD_OPTIONS,
METHOD_DELETE, /* RFC2616 section 9.7 */
METHOD_PROPFIND,
METHOD_PROPPATCH,
METHOD_MKCOL,
METHOD_COPY,
METHOD_MOVE,
METHOD_LOCK,
METHOD_UNLOCK,
METHOD_BMOVE,
METHOD_BDELETE,
METHOD_BPROPFIND,
METHOD_EXT00,
METHOD_EXT01,
METHOD_EXT02,
METHOD_EXT03,
METHOD_EXT04,
METHOD_EXT05,
METHOD_EXT06,
METHOD_EXT07,
METHOD_EXT08,
METHOD_EXT09,
METHOD_EXT10,
METHOD_EXT11,
METHOD_EXT12,
METHOD_EXT13,
METHOD_EXT14,
METHOD_EXT15,
METHOD_EXT16,
METHOD_EXT17,
METHOD_EXT18,
METHOD_EXT19,
METHOD_SEARCH, /* Added this line to accomodate Microsoft Exchange
2000 Outlook Web Access*/
METHOD_ENUM_END
};
-----Original Message-----
From: Robert Collins [mailto:robert.collins@itdomain.com.au]
Sent: Friday, 24 November 2000 12:43
To: Timothy L. Minahan
Subject: RE: [SQU] Squid and Exchange Outlook Web Access
You're not being a pain :]
How did you fix it?
Rob
> -----Original Message-----
> From: Timothy L. Minahan [mailto:sysop@scc.edu.au]
> Sent: Friday, 24 November 2000 12:30 PM
> To: Robert Collins
> Subject: RE: [SQU] Squid and Exchange Outlook Web Access
>
>
> Thanks Robert,
> Fixed sorry to be a pain
> Timothy
>
> -----Original Message-----
> From: Robert Collins [mailto:robert.collins@itdomain.com.au]
> Sent: Friday, 24 November 2000 10:14
> To: Timothy L. Minahan; Squid-Users@Ircache. Net (E-mail)
> Subject: Re: [SQU] Squid and Exchange Outlook Web Access
>
>
> Timothy, you are running into a MS
> lets-use-this-before-industry-acceptance-occurs.
>
> SEARCH is one of the WEBDAV nethods, see the squid mailing
> list archives
> for
> (at least one) previous threads on it.
>
> http://www.webdav.org/dasl/protocol/draft-dasl-protocol-00.html
>
> Rob
>
-- To unsubscribe, see http://www.squid-cache.org/mailing-lists.htmlReceived on Thu Nov 23 2000 - 19:03:56 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:56:34 MST