]>
Commit | Line | Data |
---|---|---|
58934a46 AM |
1 | Index: squid/lib/rfc2617.c |
2 | diff -c squid/lib/rfc2617.c:1.5 squid/lib/rfc2617.c:1.5.2.1 | |
3 | *** squid/lib/rfc2617.c:1.5 Wed Oct 17 07:30:50 2001 | |
4 | --- squid/lib/rfc2617.c Tue Sep 23 10:05:41 2003 | |
5 | *************** | |
6 | *** 79,89 **** | |
7 | unsigned char j; | |
8 | ||
9 | for (i = 0; i < HASHHEXLEN; i++) { | |
10 | j = Hex[i]; | |
11 | if (('0' <= j) && (j <= '9')) | |
12 | ! Bin[i / 2] |= ((j - '0') << ((i % 2 == 0) ? 4 : 0)); | |
13 | else | |
14 | ! Bin[i / 2] |= ((j - 'a' + 10) << ((i % 2 == 0) ? 4 : 0)); | |
15 | } | |
16 | Bin[HASHLEN] = '\0'; | |
17 | } | |
18 | --- 79,94 ---- | |
19 | unsigned char j; | |
20 | ||
21 | for (i = 0; i < HASHHEXLEN; i++) { | |
22 | + unsigned char n; | |
23 | j = Hex[i]; | |
24 | if (('0' <= j) && (j <= '9')) | |
25 | ! n = j - '0'; | |
26 | else | |
27 | ! n = j - 'a' + 10; | |
28 | ! if (i % 2 == 0) | |
29 | ! Bin[i / 2] = n << 4; | |
30 | ! else | |
31 | ! Bin[i / 2] |= n; | |
32 | } | |
33 | Bin[HASHLEN] = '\0'; | |
34 | } | |
35 | Index: squid/src/auth/digest/auth_digest.c | |
36 | diff -c squid/src/auth/digest/auth_digest.c:1.10.2.7 squid/src/auth/digest/auth_digest.c:1.10.2.8 | |
37 | *** squid/src/auth/digest/auth_digest.c:1.10.2.7 Sun Aug 10 01:31:33 2003 | |
38 | --- squid/src/auth/digest/auth_digest.c Tue Sep 23 10:05:41 2003 | |
39 | *************** | |
40 | *** 695,701 **** | |
41 | debug(29, 9) ("\nResponse = '%s'\n" | |
42 | "squid is = '%s'\n", digest_request->response, Response); | |
43 | ||
44 | ! if (strcasecmp(digest_request->response, Response)) { | |
45 | if (digestConfig->PostWorkaround && request->method != METHOD_GET) { | |
46 | /* Ugly workaround for certain very broken browsers using the | |
47 | * wrong method to calculate the request-digest on POST request. | |
48 | --- 695,707 ---- | |
49 | debug(29, 9) ("\nResponse = '%s'\n" | |
50 | "squid is = '%s'\n", digest_request->response, Response); | |
51 | ||
52 | ! if (strcasecmp(digest_request->response, Response) != 0) { | |
53 | ! if (!digest_request->flags.helper_queried) { | |
54 | ! /* Query the helper in case the password has changed */ | |
55 | ! digest_request->flags.helper_queried = 1; | |
56 | ! digest_request->flags.credentials_ok = 2; | |
57 | ! return; | |
58 | ! } | |
59 | if (digestConfig->PostWorkaround && request->method != METHOD_GET) { | |
60 | /* Ugly workaround for certain very broken browsers using the | |
61 | * wrong method to calculate the request-digest on POST request. | |
62 | Index: squid/src/auth/digest/auth_digest.h | |
63 | diff -c squid/src/auth/digest/auth_digest.h:1.5.2.3 squid/src/auth/digest/auth_digest.h:1.5.2.4 | |
64 | *** squid/src/auth/digest/auth_digest.h:1.5.2.3 Sun May 18 15:49:20 2003 | |
65 | --- squid/src/auth/digest/auth_digest.h Tue Sep 23 10:05:42 2003 | |
66 | *************** | |
67 | *** 44,49 **** | |
68 | --- 44,50 ---- | |
69 | unsigned int authinfo_sent:1; | |
70 | unsigned int credentials_ok:2; /*0=unchecked,1=ok,2=helper,3=failed */ | |
71 | unsigned int nonce_stale:1; | |
72 | + unsigned int helper_queried:1; | |
73 | } flags; | |
74 | digest_nonce_h *nonce; | |
75 | }; |