now only send reject when rejectmessage specified. empty message means rejet is sent...
authorvenaas <venaas>
Thu, 27 Sep 2007 14:47:07 +0000 (14:47 +0000)
committervenaas <venaas@e88ac4ed-0b26-0410-9574-a7f39faa03bf>
Thu, 27 Sep 2007 14:47:07 +0000 (14:47 +0000)
git-svn-id: https://svn.testnett.uninett.no/radsecproxy/trunk@171 e88ac4ed-0b26-0410-9574-a7f39faa03bf

radsecproxy.c

index dfe8141..0da8503 100644 (file)
@@ -1299,7 +1299,7 @@ void respondreject(struct request *rq, char *message) {
     unsigned char *resp;
     int len = 20;
 
-    if (message)
+    if (message && *message)
        len += 2 + strlen(message);
     
     resp = malloc(len);
@@ -1310,7 +1310,7 @@ void respondreject(struct request *rq, char *message) {
     memcpy(resp, rq->buf, 20);
     resp[0] = RAD_Access_Reject;
     *(uint16_t *)(resp + 2) = htons(len);
-    if (message) {
+    if (message && *message) {
        resp[20] = RAD_Attr_Reply_Message;
        resp[21] = len - 20;
        memcpy(resp + 22, message, len - 22);
@@ -1416,8 +1416,10 @@ void radsrv(struct request *rq) {
     }
 
     if (!to) {
-       debug(DBG_INFO, "radsrv: sending reject to %s for %s", rq->from->conf->host, username);
-       respondreject(rq, realm->message);
+       if (realm->message) {
+           debug(DBG_INFO, "radsrv: sending reject to %s for %s", rq->from->conf->host, username);
+           respondreject(rq, realm->message);
+       }
        free(buf);
        return;
     }