/*
- * $Id: acl.cc,v 1.141 1998/02/25 11:16:38 kostas Exp $
+ * $Id: acl.cc,v 1.142 1998/02/25 19:15:05 kostas Exp $
*
* DEBUG: section 28 Access Control
* AUTHOR: Duane Wessels
fqdncacheUnregister(checklist->dst_addr, checklist);
if (checklist->state[ACL_DST_IP] == ACL_LOOKUP_PENDING)
ipcacheUnregister(checklist->request->host, checklist);
+ if (checklist->request)
requestUnlink(checklist->request);
checklist->request = NULL;
cbdataFree(checklist);
* pointer, so lock it.
*/
cbdataLock(A);
- checklist->request = requestLink(request);
+ if (checklist->request)
+ checklist->request = requestLink(request);
checklist->src_addr = src_addr;
for (i = 0; i < ACL_ENUM_MAX; i++)
checklist->state[i] = ACL_LOOKUP_NONE;
/*
- * $Id: cache_cf.cc,v 1.251 1998/02/25 11:16:39 kostas Exp $
+ * $Id: cache_cf.cc,v 1.252 1998/02/25 19:15:06 kostas Exp $
*
* DEBUG: section 3 Configuration File Parsing
* AUTHOR: Harvest Derived
aclDestroyAcls(acl);
}
+#if SQUID_SNMP
+
static void
dump_snmp_access(StoreEntry * entry, const char *name, communityEntry * Head)
{
}
}
}
+#endif
static void
dump_acl_access(StoreEntry * entry, const char *name, acl_access * head)
}
}
+#if SQUID_SNMP
+
static void
parse_snmp_access(communityEntry **head)
{
for (cp = *Head; cp; cp = cp->next)
aclDestroyAccessList(&cp->acls);
}
+#endif
static void
parse_acl_access(acl_access ** head)
u_char *Community;
/* Now that we have the data, turn it into a PDU */
+ cbdataAdd(rq,MEM_NONE);
PDU = snmp_pdu_create(0);
Community = snmp_parse(Session, PDU, buf, len);
rq->community=Community;
snmp_free_pdu(PDU);
snmp_agent_parse_done(0, rq);
+ return;
}
snmpAclCheckStart(rq);
}
snmpAclCheckStart(snmp_request_t *rq)
{
communityEntry *cp;
- cbdataAdd(rq,MEM_NONE);
for (cp=Config.Snmp.communities;cp!=NULL;cp=cp->next)
if (!strcmp(rq->community, cp->name) && cp->acls) {
rq->acl_checklist= aclChecklistCreate(cp->acls,
debug(49,5)("snmpAclCheckDone: called with answer=%d.\n",answer);
rq->acl_checklist = NULL;
- cbdataFree(rq);
PDU=rq->PDU;
Community=rq->community;
if (answer==ACCESS_DENIED) {
- xfree(Community);
debug(49,5)("snmpAclCheckDone: failed on acl.\n");
snmp_agent_parse_done(0, rq);
return;
/* access check for each variable */
if (!community_check(Community, VarPtr->name, VarPtr->name_length)) {
- xfree(Community);
debug(49,5)("snmpAclCheckDone: failed on community_check.\n");
snmp_agent_parse_done(0, rq);
return;
}
}
- xfree(Session->community);
Session->community=xstrdup(Community);
Session->community_len=strlen(Community);
RespPDU = snmp_agent_response(PDU);
snmp_free_pdu(PDU);
if (RespPDU == NULL) {
debug(49, 8) ("snmpAclCheckDone: RespPDU == NULL. Returning code 2.\n");
- xfree(Community);
debug(49,5)("snmpAclCheckDone: failed on RespPDU==NULL.\n");
snmp_agent_parse_done(2, rq);
return;
ret = snmp_build(Session, RespPDU, outbuf, &rq->outlen);
/* XXXXX Handle failure */
snmp_free_pdu(RespPDU);
- xfree(Community);
+ /* XXX maybe here */
debug(49,5)("snmpAclCheckDone: ok!\n");
snmp_agent_parse_done(1, rq);
}