/*
- * $Id: acl.cc,v 1.209 1999/12/30 17:36:20 wessels Exp $
+ * $Id: acl.cc,v 1.210 2000/01/05 23:32:17 wessels Exp $
*
* DEBUG: section 28 Access Control
* AUTHOR: Duane Wessels
const char *fqdn = NULL;
char *esc_buf;
const char *header;
+ const char *browser;
int k;
if (!ae)
return 0;
return aclMatchInteger(ae->data, r->method);
/* NOTREACHED */
case ACL_BROWSER:
- return aclMatchRegex(ae->data, checklist->browser);
+ browser = httpHeaderGetStr(&checklist->request->header, HDR_USER_AGENT);
+ if (NULL == browser)
+ return 0;
+ return aclMatchRegex(ae->data, browser);
/* NOTREACHED */
case ACL_PROXY_AUTH:
if (NULL == r) {
aclCheck_t *
aclChecklistCreate(const acl_access * A,
request_t * request,
- const char *user_agent,
const char *ident)
{
int i;
}
for (i = 0; i < ACL_ENUM_MAX; i++)
checklist->state[i] = ACL_LOOKUP_NONE;
- if (user_agent)
- xstrncpy(checklist->browser, user_agent, BROWSERNAMELEN);
#if USE_IDENT
if (ident)
xstrncpy(checklist->ident, ident, USER_IDENT_SZ);
/*
- * $Id: client_side.cc,v 1.467 2000/01/05 22:44:00 wessels Exp $
+ * $Id: client_side.cc,v 1.468 2000/01/05 23:32:19 wessels Exp $
*
* DEBUG: section 33 Client-side Routines
* AUTHOR: Duane Wessels
{
clientHttpRequest *http = data;
ConnStateData *conn = http->conn;
- const char *browser;
if (checkAccelOnly(http)) {
clientAccessCheckDone(0, http);
return;
}
- browser = httpHeaderGetStr(&http->request->header, HDR_USER_AGENT);
http->acl_checklist = aclChecklistCreate(Config.accessList.http,
http->request,
- browser,
conn->ident);
#if USE_IDENT
/*
/*
- * $Id: peer_select.cc,v 1.103 2000/01/03 19:32:33 wessels Exp $
+ * $Id: peer_select.cc,v 1.104 2000/01/05 23:32:20 wessels Exp $
*
* DEBUG: section 44 Peer Selection Algorithm
* AUTHOR: Duane Wessels
ps->acl_checklist = aclChecklistCreate(
Config.accessList.AlwaysDirect,
request,
- NULL, /* user agent */
NULL); /* ident */
aclNBCheck(ps->acl_checklist,
peerCheckAlwaysDirectDone,
ps->acl_checklist = aclChecklistCreate(
Config.accessList.NeverDirect,
request,
- NULL, /* user agent */
NULL); /* ident */
aclNBCheck(ps->acl_checklist,
peerCheckNeverDirectDone,
/*
- * $Id: protos.h,v 1.351 2000/01/05 22:44:01 wessels Exp $
+ * $Id: protos.h,v 1.352 2000/01/05 23:32:21 wessels Exp $
*
*
* SQUID Internet Object Cache http://squid.nlanr.net/Squid/
extern aclCheck_t *aclChecklistCreate(const struct _acl_access *,
request_t *,
- const char *user_agent,
const char *ident);
extern void aclNBCheck(aclCheck_t *, PF *, void *);
extern int aclCheckFast(const struct _acl_access *A, aclCheck_t *);
/*
- * $Id: structs.h,v 1.309 2000/01/05 22:44:03 wessels Exp $
+ * $Id: structs.h,v 1.310 2000/01/05 23:32:22 wessels Exp $
*
*
* SQUID Internet Object Cache http://squid.nlanr.net/Squid/
ConnStateData *conn; /* hack for ident */
char ident[USER_IDENT_SZ];
#endif
- char browser[BROWSERNAMELEN];
acl_proxy_auth_user *auth_user;
acl_lookup_state state[ACL_ENUM_MAX];
#if SQUID_SNMP