--------------------- PatchSet 8358 Date: 2006/07/08 10:44:02 Author: hno Branch: concurrency-2_6 Tag: (none) Log: Add the concurrency parameter parsing to the negotiate scheme as well. All missing now is actual support in the stateful helper code to use this.. Members: src/cf.data.pre:1.139.4.1->1.139.4.2 src/auth/negotiate/auth_negotiate.c:1.3->1.3.24.1 src/auth/negotiate/auth_negotiate.h:1.2->1.2.28.1 Index: squid/src/cf.data.pre =================================================================== RCS file: /cvsroot/squid-sf//squid/src/cf.data.pre,v retrieving revision 1.139.4.1 retrieving revision 1.139.4.2 diff -u -r1.139.4.1 -r1.139.4.2 --- squid/src/cf.data.pre 7 Jul 2006 17:43:47 -0000 1.139.4.1 +++ squid/src/cf.data.pre 8 Jul 2006 10:44:02 -0000 1.139.4.2 @@ -1,6 +1,6 @@ # -# $Id: cf.data.pre,v 1.139.4.1 2006/07/07 17:43:47 hno Exp $ +# $Id: cf.data.pre,v 1.139.4.2 2006/07/08 10:44:02 hno Exp $ # # # SQUID Web Proxy Cache http://www.squid-cache.org/ @@ -2006,6 +2006,13 @@ authenticator processes. auth_param negotiate children 5 + "concurrency" numberofconcurrentrequests + The number of concurrent requests/channels the helper supports. + Changes the protocol used to include a channel number first on + the request/response line, allowing multiple requests to be sent + to the same helper in parallell without wating for the response. + Must not be set unless it's known the helper supports this. + "keep_alive" on|off If you experience problems with PUT/POST requests when using the Negotiate authentication scheme then you can try setting this to Index: squid/src/auth/negotiate/auth_negotiate.c =================================================================== RCS file: /cvsroot/squid-sf//squid/src/auth/negotiate/auth_negotiate.c,v retrieving revision 1.3 retrieving revision 1.3.24.1 diff -u -r1.3 -r1.3.24.1 --- squid/src/auth/negotiate/auth_negotiate.c 16 May 2006 01:47:08 -0000 1.3 +++ squid/src/auth/negotiate/auth_negotiate.c 8 Jul 2006 10:44:04 -0000 1.3.24.1 @@ -1,6 +1,6 @@ /* - * $Id: auth_negotiate.c,v 1.3 2006/05/16 01:47:08 squidadm Exp $ + * $Id: auth_negotiate.c,v 1.3.24.1 2006/07/08 10:44:04 hno Exp $ * * DEBUG: section 29 Negotiate Authenticator * AUTHOR: Robert Collins @@ -140,6 +140,7 @@ } storeAppendPrintf(entry, "\n"); storeAppendPrintf(entry, "%s %s children %d\n", name, "negotiate", config->authenticateChildren); + storeAppendPrintf(entry, "%s %s concurrency %d\n", name, "negotiate", config->authenticateConcurrency); storeAppendPrintf(entry, "%s %s keep_alive %s\n", name, "negotiate", config->keep_alive ? "on" : "off"); } @@ -163,6 +164,8 @@ requirePathnameExists("authparam negotiate program", negotiateConfig->authenticate->key); } else if (strcasecmp(param_str, "children") == 0) { parse_int(&negotiateConfig->authenticateChildren); + } else if (strcasecmp(param_str, "concurrency") == 0) { + parse_int(&negotiateConfig->authenticateConcurrency); } else if (strcasecmp(param_str, "keep_alive") == 0) { parse_onoff(&negotiateConfig->keep_alive); } else { @@ -224,6 +227,7 @@ negotiateauthenticators = helperStatefulCreate("negotiateauthenticator"); negotiateauthenticators->cmdline = negotiateConfig->authenticate; negotiateauthenticators->n_to_start = negotiateConfig->authenticateChildren; + negotiateauthenticators->concurrency = negotiateConfig->authenticateConcurrency; negotiateauthenticators->ipc_type = IPC_STREAM; helperStatefulOpenServers(negotiateauthenticators); if (!negotiateinit) { Index: squid/src/auth/negotiate/auth_negotiate.h =================================================================== RCS file: /cvsroot/squid-sf//squid/src/auth/negotiate/auth_negotiate.h,v retrieving revision 1.2 retrieving revision 1.2.28.1 diff -u -r1.2 -r1.2.28.1 --- squid/src/auth/negotiate/auth_negotiate.h 15 May 2006 22:50:49 -0000 1.2 +++ squid/src/auth/negotiate/auth_negotiate.h 8 Jul 2006 10:44:04 -0000 1.2.28.1 @@ -31,7 +31,7 @@ struct _negotiate_request { /*we need to store the helper server between requests */ - helper_stateful_server *authserver; + void *authserver; /* how far through the authentication process are we? */ auth_state_t auth_state; /* currently waiting for helper response */ @@ -47,6 +47,7 @@ /* configuration runtime data */ struct _auth_negotiate_config { int authenticateChildren; + int authenticateConcurrency; int keep_alive; wordlist *authenticate; };