diff options
author | venaas <venaas> | 2007-01-03 14:38:01 +0000 |
---|---|---|
committer | venaas <venaas@e88ac4ed-0b26-0410-9574-a7f39faa03bf> | 2007-01-03 14:38:01 +0000 |
commit | 7f2bfdc58f00322ac4c612445d3e9622b5d33c0b (patch) | |
tree | a566da392400800c513b073127678703c939921d | |
parent | 6c733c89f244f5f6260c3f8e96ad93b8d4b4530d (diff) |
radsrv realm routing changes
git-svn-id: https://svn.testnett.uninett.no/radsecproxy/trunk@10 e88ac4ed-0b26-0410-9574-a7f39faa03bf
-rw-r--r-- | radsecproxy.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/radsecproxy.c b/radsecproxy.c index 6933614..e8a50bf 100644 --- a/radsecproxy.c +++ b/radsecproxy.c @@ -478,6 +478,7 @@ struct peer *radsrv(struct request *rq, char *buf, struct peer *from) { int left; struct peer *to; unsigned char newauth[16]; + char **realm; code = *(uint8_t *)buf; id = *(uint8_t *)(buf + 1); @@ -524,6 +525,17 @@ struct peer *radsrv(struct request *rq, char *buf, struct peer *from) { TLS peer if UDP, and first UDP peer if TLS */ i = peer_count; + + for (i = 0; i < peer_count; i++) { + for (realm = peers[i].realms; realm; realm++) { + /* assume test@domain */ + if (!strcmp(usernameattr + 5, *realm)) { + printf("found matching realm: %s, host %s\n", *realm, peers[i].host); + break; + } + } + } +#if 0 switch (from->type) { case 'U': for (i = 0; i < peer_count; i++) @@ -536,7 +548,8 @@ struct peer *radsrv(struct request *rq, char *buf, struct peer *from) { break; break; } - +#endif + if (i == peer_count) { printf("radsrv: ignoring request, don't know where to send it\n"); return NULL; |