{
int result = RLM_MODULE_OK;
+
+#ifdef WITH_PROXY
+#define WAS_PROXIED (request->proxy)
+#else
+#define WAS_PROXIED (0)
+#endif
+
/*
* Run the modules only once, before proxying.
*/
- if (!request->proxy) {
+ if (!WAS_PROXIED) {
VALUE_PAIR *vp;
int acct_type = 0;
* that means it is accepted and we do no further
* authentication
*/
- if ((auth_type == PW_AUTHTYPE_ACCEPT) || (request->proxy)) {
+ if ((auth_type == PW_AUTHTYPE_ACCEPT)
+#ifdef WITH_PROXY
+ || (request->proxy)
+#endif
+ ) {
DEBUG2(" rad_check_password: Auth-Type = Accept, accepting the user");
return 0;
}
password = "";
+#ifdef WITH_PROXY
/*
* If this request got proxied to another server, we need
* to check whether it authenticated the request or not.
return RLM_MODULE_REJECT;
}
}
+#endif
/*
* Get the username from the request.
* modules has decided that a proxy should be used. If
* so, get out of here and send the packet.
*/
- if ((request->proxy == NULL) &&
+ if (
+#ifdef WITH_PROXY
+ (request->proxy == NULL) &&
+#endif
((tmp = pairfind(request->config_items, PW_PROXY_TO_REALM)) != NULL)) {
REALM *realm;
}
}
+#ifdef WITH_PROXY
authenticate:
+#endif
+
/*
* Perhaps there is a Stripped-User-Name now.
*/
vp_name += 6;
vps = myrequest->reply->vps;
+#ifdef WITH_PROXY
} else if (strncmp(vp_name, "proxy-request:", 14) == 0) {
vp_name += 14;
if (request->proxy) vps = myrequest->proxy->vps;
} else if (strncmp(vp_name, "proxy-reply:", 12) == 0) {
vp_name += 12;
if (request->proxy_reply) vps = myrequest->proxy_reply->vps;
+#endif
} else if (strncmp(vp_name, "config:", 7) == 0) {
vp_name += 7;
} else if (strcmp(name, "reply") == 0) {
output_vps = &request_vps->reply->vps;
+#ifdef WITH_PROXY
} else if (strcmp(name, "proxy-request") == 0) {
if (request->proxy) output_vps = &request_vps->proxy->vps;
} else if (strcmp(name, "proxy-reply") == 0) {
if (request->proxy_reply) output_vps = &request->proxy_reply->vps;
+#endif
} else if (strcmp(name, "config") == 0) {
output_vps = &request_vps->config_items;
return 1;
}
+#ifdef WITH_PROXY
/*
* Put the decoded packet into it's proper place.
*/
if (request->proxy_reply != NULL) {
rcode = request->proxy_listener->decode(request->proxy_listener,
request);
- } else if (request->packet->vps == NULL) {
+ } else
+#endif
+ if (request->packet->vps == NULL) {
rcode = request->listener->decode(request->listener, request);
} else {
return 0;
}
- if (!request->proxy) {
- request->username = pairfind(request->packet->vps,
+#ifdef WITH_PROXY
+ if (!request->proxy)
+#endif
+ {
+ request->username = pairfind(request->packet->vps,
PW_USER_NAME);
#ifdef WITH_PROXY
if (request->packet)
rad_free(&request->packet);
+#ifdef WITH_PROXY
if (request->proxy)
rad_free(&request->proxy);
+#endif
if (request->reply)
rad_free(&request->reply);
+#ifdef WITH_PROXY
if (request->proxy_reply)
rad_free(&request->proxy_reply);
+#endif
if (request->config_items)
pairfree(&request->config_items);
request->magic = 0x01020304; /* set the request to be nonsense */
#endif
request->client = NULL;
+#ifdef WITH_PROXY
request->home_server = NULL;
+#endif
free(request);
*request_ptr = NULL;
#ifndef NDEBUG
request->magic = REQUEST_MAGIC;
#endif
+#ifdef WITH_PROXY
request->proxy = NULL;
+#endif
request->reply = NULL;
+#ifdef WITH_PROXY
request->proxy_reply = NULL;
+#endif
request->config_items = NULL;
request->username = NULL;
request->password = NULL;
break;
case 3:
+#ifdef WITH_PROXY
if (request->proxy) vps = request->proxy->vps;
packet = request->proxy;
+#endif
break;
case 4:
+#ifdef WITH_PROXY
if (request->proxy_reply) vps = request->proxy_reply->vps;
packet = request->proxy_reply;
+#endif
break;
case 5: