From 7f2bfdc58f00322ac4c612445d3e9622b5d33c0b Mon Sep 17 00:00:00 2001 From: venaas Date: Wed, 3 Jan 2007 14:38:01 +0000 Subject: radsrv realm routing changes git-svn-id: https://svn.testnett.uninett.no/radsecproxy/trunk@10 e88ac4ed-0b26-0410-9574-a7f39faa03bf --- radsecproxy.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) 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; -- cgit v1.1