--- /home/files/icradius-0.18.1/src-orlogic/proxy.c Wed Jun 6 20:21:33 2001 +++ /home/files/icradius-0.18.1/src-execacct/proxy.c Mon Feb 11 18:42:01 2002 @@ -243,7 +243,8 @@ char *realmname; REALM *realm; CLIENT *client; - char *ptr; + char *ptr, *ptr2; + int realm_type=0; /* if type=1, the "REALM/username" type realm */ short rport; struct sockaddr_in saremote, *sin; char *what = "unknown"; @@ -277,8 +278,21 @@ */ ptr = authreq->username[0] ? (char *)authreq->username : namepair->strvalue; + + /* vi@maks.net: Also treat "something/" in the beggining like a realm */ + + if ((ptr2 = strchr(ptr, '/')) != NULL) { + realm_type=1; + ptr2[0]=0; ptr2++; + sprintf(saved_username, "%s@%s", ptr2, ptr); + strcpy(ptr, saved_username); + DEBUG2("Rewritten REALM/username into standard realm format: %s", ptr); + } + if ((realmname = strrchr(ptr, '@')) != NULL) realmname++; + + if ((realm = realm_find(realmname ? realmname : "NULL")) == NULL) return 0;