X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Frlm_realm%2Frlm_realm.c;h=6006769725657b4eb87b79b930ea0394708de28d;hb=94dc4bb60ec649ce899c1d5e32b575d9523a48f2;hp=4592c1bc71801f75eb492e05c8ce688968f6f170;hpb=c43099c9aaea0e6f7e3ab8d0db8f5660725ba862;p=freeradius.git diff --git a/src/modules/rlm_realm/rlm_realm.c b/src/modules/rlm_realm/rlm_realm.c index 4592c1b..6006769 100644 --- a/src/modules/rlm_realm/rlm_realm.c +++ b/src/modules/rlm_realm/rlm_realm.c @@ -60,7 +60,7 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm { char namebuf[MAX_STRING_LEN]; char *username; - char *realmname = NULL; + const char *realmname = NULL; char *ptr; VALUE_PAIR *vp; REALM *realm; @@ -80,11 +80,13 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm * Also, if there's no User-Name attribute, we can't * proxy it, either. */ +#ifdef WITH_PROXY if ((request->proxy != NULL) || (request->username == NULL)) { RDEBUG2("Proxy reply, or no User-Name. Ignoring."); return RLM_MODULE_OK; } +#endif /* * Check for 'Realm' attribute. If it exists, then we've proxied @@ -109,10 +111,10 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm case REALM_FORMAT_SUFFIX: /* DEBUG2(" rlm_realm: Checking for suffix after \"%c\"", inst->delim[0]); */ - realmname = strrchr(username, inst->delim[0]); - if (realmname) { - *realmname = '\0'; - realmname++; + ptr = strrchr(username, inst->delim[0]); + if (ptr) { + *ptr = '\0'; + realmname = ptr + 1; } break; @@ -180,7 +182,7 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm */ if (request->username->attribute != PW_STRIPPED_USER_NAME) { vp = radius_paircreate(request, &request->packet->vps, - PW_STRIPPED_USER_NAME, + PW_STRIPPED_USER_NAME, 0, PW_TYPE_STRING); RDEBUG2("Adding Stripped-User-Name = \"%s\"", username); } else { @@ -236,6 +238,7 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm break; } +#ifdef WITH_PROXY RDEBUG2("Proxying request from user %s to realm %s", username, realm->name); @@ -310,11 +313,13 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm } } +#endif /* * We got this far, which means we have a realm, set returnrealm */ *returnrealm = realm; + return RLM_MODULE_UPDATED; }