1 Index: squid/src/auth/ntlm/auth_ntlm.c
2 diff -c squid/src/auth/ntlm/auth_ntlm.c:1.17.2.13 squid/src/auth/ntlm/auth_ntlm.c:1.17.2.14
3 *** squid/src/auth/ntlm/auth_ntlm.c:1.17.2.13 Sat Jul 17 10:05:53 2004
4 --- squid/src/auth/ntlm/auth_ntlm.c Sat Jul 17 10:09:53 2004
9 static hash_table *ntlm_challenge_cache = NULL;
11 + static void authenticateNTLMReleaseServer(ntlm_request_t * ntlm_request);
17 xfree(ntlm_request->ntlmauthenticate);
18 if (ntlm_request->authserver != NULL) {
19 debug(29, 9) ("authenticateNTLMRequestFree: releasing server '%p'\n", ntlm_request->authserver);
20 ! helperStatefulReleaseServer(ntlm_request->authserver);
21 ! ntlm_request->authserver = NULL;
23 memPoolFree(ntlm_request_pool, ntlm_request);
26 xfree(ntlm_request->ntlmauthenticate);
27 if (ntlm_request->authserver != NULL) {
28 debug(29, 9) ("authenticateNTLMRequestFree: releasing server '%p'\n", ntlm_request->authserver);
29 ! authenticateNTLMReleaseServer(ntlm_request);
31 memPoolFree(ntlm_request_pool, ntlm_request);
36 helper_stateful_server *server = ntlm_request->authserver;
37 debug(29, 9) ("authenticateNTLMReleaseServer: releasing server '%p'\n", server);
38 ntlm_request->authserver = NULL;
39 + if (!ntlmConfig->challengeuses) {
40 + ntlm_helper_state_t *helperstate = helperStatefulServerGetData(server);
41 + helperstate->starve = 1;
43 helperStatefulReleaseServer(server);
49 helper_stateful_server *server = ntlm_request->authserver;
50 ntlm_helper_state_t *helperstate = helperStatefulServerGetData(server);
51 ! debug(29, 9) ("authenticateNTLMReleaseServer: releasing server '%p'\n", server);
52 ntlm_request->authserver = NULL;
53 helperstate->starve = 1;
54 helperStatefulReleaseServer(server);
57 helper_stateful_server *server = ntlm_request->authserver;
58 ntlm_helper_state_t *helperstate = helperStatefulServerGetData(server);
59 ! debug(29, 9) ("authenticateNTLMResetServer: releasing server '%p'\n", server);
60 ntlm_request->authserver = NULL;
61 helperstate->starve = 1;
62 helperStatefulReleaseServer(server);
65 while ((server != NULL) && authenticateNTLMChangeChallenge_p(helperstate)) {
66 /* flag this helper for challenge changing */
67 helperstate->starve = 1;
68 ! helperStatefulReset(server);
69 /* Get another server */
70 server = helperStatefulGetServer(ntlmauthenticators);
71 helperstate = server ? helperStatefulServerGetData(server) : NULL;
73 while ((server != NULL) && authenticateNTLMChangeChallenge_p(helperstate)) {
74 /* flag this helper for challenge changing */
75 helperstate->starve = 1;
76 ! helperStatefulReleaseServer(server);
77 /* Get another server */
78 server = helperStatefulGetServer(ntlmauthenticators);
79 helperstate = server ? helperStatefulServerGetData(server) : NULL;
83 helperStatefulSubmit(ntlmauthenticators, buf, authenticateNTLMHandleReply, r, ntlm_request->authserver);
86 + if (!ntlmConfig->challengeuses)
87 + debug(29, 0) ("authenticateNTLMStart: Reused challenge in server %p even if challenge reuse is disabled!", server);
88 /* (server != NULL and we have a valid challenge) */
89 /* TODO: turn the below into a function and call from here and handlereply */
90 /* increment the challenge uses */