diff options
| author | root <root@debian11-vyos-build.polycomm.net> | 2021-12-28 12:50:44 +0300 |
|---|---|---|
| committer | root <root@debian11-vyos-build.polycomm.net> | 2021-12-28 12:50:44 +0300 |
| commit | 2804a115fc2cd0d785d9a6dcb0be247c97c32d69 (patch) | |
| tree | d05428468c6378ee58a23f9234feb8f23ee0f384 /accel-pppd/radius/req.c | |
| parent | cca47ac174d1f2a99ee4969423e2bbc4b2fb6af8 (diff) | |
| download | accel-ppp-2804a115fc2cd0d785d9a6dcb0be247c97c32d69.tar.gz accel-ppp-2804a115fc2cd0d785d9a6dcb0be247c97c32d69.zip | |
Added VRF support for radius request and DM/CoA server.
New configuration format:
[radius]
server=address,secret[,auth-port=1812][,acct-port=1813][,vrf=VRF_NAME][,req-limit=0][,fail-timeout=0,max-fail=0,][,weight=1][,backup]
dae-server=x.x.x.x:port,secret[,vrf=VRF_NAME]
By default, VRF name is undefined.
Diffstat (limited to 'accel-pppd/radius/req.c')
| -rw-r--r-- | accel-pppd/radius/req.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/accel-pppd/radius/req.c b/accel-pppd/radius/req.c index 8547653..716bb75 100644 --- a/accel-pppd/radius/req.c +++ b/accel-pppd/radius/req.c @@ -290,6 +290,12 @@ static int make_socket(struct rad_req_t *req) addr.sin_addr.s_addr = req->server_addr; addr.sin_port = htons(req->server_port); + if ( req->serv && !req->serv->vrf_default && ( 0 > setsockopt(req->hnd.fd, SOL_SOCKET, SO_BINDTODEVICE, req->serv->vrf_name, strlen(req->serv->vrf_name)) ) ) + { + log_ppp_error("radius:setsockopt: %s\n", strerror(errno)); + goto out_err; + } + if (connect(req->hnd.fd, (struct sockaddr *) &addr, sizeof(addr))) { log_ppp_error("radius:connect: %s\n", strerror(errno)); goto out_err; |
