Temporary fix to pass myportname to adaptation_access ACLs.
peer_login = NULL; // not allocated/deallocated by this class
peer_domain = NULL; // not allocated/deallocated by this class
vary_headers = NULL;
+ myportname = null_string;
tag = null_string;
extacl_user = null_string;
extacl_passwd = null_string;
if (pinned_connection)
cbdataReferenceDone(pinned_connection);
+ myportname.clean();
+
tag.clean();
extacl_user.clean();
copy->vary_headers = vary_headers ? xstrdup(vary_headers) : NULL;
// XXX: what to do with copy->peer_domain?
+ copy->myportname = myportname;
copy->tag = tag;
copy->extacl_user = extacl_user;
copy->extacl_passwd = extacl_passwd;
char *peer_domain; /* Configured peer forceddomain */
+ String myportname; // Internal tag name= value from port this requests arrived in.
+
String tag; /* Internal tag for this request */
String extacl_user; /* User name returned by extacl lookup */
#include "acl/MyPortName.h"
#include "acl/StringData.h"
#include "acl/Checklist.h"
+#include "HttpRequest.h"
/* for ConnStateData */
#include "client_side.h"
-
-
-
int
-ACLMyPortNameStrategy::match (ACLData<MatchType> * &data, ACLFilledChecklist *checklist)
+ACLMyPortNameStrategy::match(ACLData<MatchType> * &data, ACLFilledChecklist *checklist)
{
if (checklist->conn() != NULL)
- return data->match (checklist->conn()->port->name);
+ return data->match(checklist->conn()->port->name);
+ if (checklist->request != NULL)
+ return data->match(checklist->request->myportname.termedBuf());
return 0;
}
request->indirect_client_addr = conn->peer;
#endif /* FOLLOW_X_FORWARDED_FOR */
request->my_addr = conn->me;
+ request->myportname = conn->port->name;
request->http_ver = http_ver;
if (request->header.chunked()) {