Diff for /embedaddon/mpd/src/radsrv.c between versions 1.1.1.2 and 1.1.1.3

version 1.1.1.2, 2013/07/22 08:44:29 version 1.1.1.3, 2016/11/01 09:56:12
Line 8 Line 8
 #include "ppp.h"  #include "ppp.h"
 #include "radsrv.h"  #include "radsrv.h"
 #include "util.h"  #include "util.h"
   #include <stdint.h>
 #include <radlib.h>  #include <radlib.h>
 #include <radlib_vs.h>  #include <radlib_vs.h>
   
Line 97  RadsrvEvent(int type, void *cookie) Line 98  RadsrvEvent(int type, void *cookie)
     char        *username = NULL, *called = NULL, *calling = NULL, *sesid = NULL;      char        *username = NULL, *called = NULL, *calling = NULL, *sesid = NULL;
     char        *msesid = NULL, *link = NULL, *bundle = NULL, *iface = NULL;      char        *msesid = NULL, *link = NULL, *bundle = NULL, *iface = NULL;
     int         nasport = -1, serv_type = 0, ifindex = -1, i;      int         nasport = -1, serv_type = 0, ifindex = -1, i;
    u_int       session_timeout = -1, idle_timeout = -1, acct_update = -1;    u_int       session_timeout = UINT_MAX, idle_timeout = UINT_MAX;
    struct in_addr ip = { -1 };    u_int        acct_update = UINT_MAX;
    struct in_addr nas_ip = { -1 };    struct in_addr ip = { INADDR_BROADCAST };
     struct in_addr nas_ip = { INADDR_BROADCAST };
     char        buf[64];      char        buf[64];
     u_int32_t   vendor;      u_int32_t   vendor;
     u_char      *state = NULL, *rad_class = NULL;      u_char      *state = NULL, *rad_class = NULL;
Line 230  RadsrvEvent(int type, void *cookie) Line 232  RadsrvEvent(int type, void *cookie)
                 ip = rad_cvt_addr(data);                  ip = rad_cvt_addr(data);
                 Log(LG_RADIUS2, ("radsrv: Got RAD_FRAMED_IP_ADDRESS: %s",                  Log(LG_RADIUS2, ("radsrv: Got RAD_FRAMED_IP_ADDRESS: %s",
                     inet_ntoa(ip)));                      inet_ntoa(ip)));
                   if (ip.s_addr == INADDR_BROADCAST)
                       Log(LG_ERR, ("radsrv: incorrect Framed-IP-Address"));
                 break;                  break;
             case RAD_NAS_PORT:              case RAD_NAS_PORT:
                 anysesid = 1;                  anysesid = 1;
Line 439  RadsrvEvent(int type, void *cookie) Line 443  RadsrvEvent(int type, void *cookie)
         }          }
     }      }
     err = 0;      err = 0;
    if (w->addr.u.ip4.s_addr != 0 && nas_ip.s_addr != -1 && w->addr.u.ip4.s_addr != nas_ip.s_addr) {    if (w->addr.u.ip4.s_addr != 0 && nas_ip.s_addr != INADDR_BROADCAST
     && w->addr.u.ip4.s_addr != nas_ip.s_addr) {
         Log(LG_ERR, ("radsrv: incorrect NAS-IP-Address"));          Log(LG_ERR, ("radsrv: incorrect NAS-IP-Address"));
         err = 403;          err = 403;
     } else if (anysesid == 0) {      } else if (anysesid == 0) {
Line 487  RadsrvEvent(int type, void *cookie) Line 492  RadsrvEvent(int type, void *cookie)
                 continue;                  continue;
             if (iface && (!B || strcmp(iface, B->iface.ifname)))              if (iface && (!B || strcmp(iface, B->iface.ifname)))
                 continue;                  continue;
            if (ifindex >= 0 && (!B || ifindex != B->iface.ifindex))            if (ifindex >= 0 && (!B || (uint)ifindex != B->iface.ifindex))
                 continue;                  continue;
            if (ip.s_addr != -1 && (!B ||            if (ip.s_addr != INADDR_BROADCAST && (!B ||
                     ip.s_addr != B->iface.peer_addr.u.ip4.s_addr))                      ip.s_addr != B->iface.peer_addr.u.ip4.s_addr))
                 continue;                  continue;
                                   
Line 546  RadsrvEvent(int type, void *cookie) Line 551  RadsrvEvent(int type, void *cookie)
                 strcpy(L->lcp.auth.params.std_acct[0], std_acct[0]);                  strcpy(L->lcp.auth.params.std_acct[0], std_acct[0]);
                 strcpy(L->lcp.auth.params.std_acct[1], std_acct[1]);                  strcpy(L->lcp.auth.params.std_acct[1], std_acct[1]);
 #endif  #endif
                if (session_timeout != -1)                if (session_timeout != UINT_MAX)
                     L->lcp.auth.params.session_timeout = session_timeout;                      L->lcp.auth.params.session_timeout = session_timeout;
                if (idle_timeout != -1)                if (idle_timeout != UINT_MAX)
                     L->lcp.auth.params.idle_timeout = idle_timeout;                      L->lcp.auth.params.idle_timeout = idle_timeout;
                if (acct_update != -1) {                if (acct_update != UINT_MAX) {
                     L->lcp.auth.params.acct_update = acct_update;                      L->lcp.auth.params.acct_update = acct_update;
                     /* Stop accounting update timer if running. */                      /* Stop accounting update timer if running. */
                     TimerStop(&L->lcp.auth.acct_timer);                      TimerStop(&L->lcp.auth.acct_timer);

Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>