A.R Karthick
Committed by Gerrit Code Review

Enable SO_REUSEADDR option for radius server Datagram Sockets.

This helps in fixing "address in use" exceptions while creating the datagram sockets.
This was hit while triggering repeated radius server reconfigurations.

Change-Id: I084c1d83499c010036fcfbca0ad86d40f4e4db88
...@@ -19,6 +19,7 @@ import java.io.IOException; ...@@ -19,6 +19,7 @@ import java.io.IOException;
19 import java.net.DatagramPacket; 19 import java.net.DatagramPacket;
20 import java.net.DatagramSocket; 20 import java.net.DatagramSocket;
21 import java.net.InetAddress; 21 import java.net.InetAddress;
22 +import java.net.InetSocketAddress;
22 import java.nio.ByteBuffer; 23 import java.nio.ByteBuffer;
23 import java.util.concurrent.ExecutorService; 24 import java.util.concurrent.ExecutorService;
24 import java.util.concurrent.Executors; 25 import java.util.concurrent.Executors;
...@@ -165,7 +166,9 @@ public class AaaManager { ...@@ -165,7 +166,9 @@ public class AaaManager {
165 166
166 private void initializeLocalState() { 167 private void initializeLocalState() {
167 try { 168 try {
168 - radiusSocket = new DatagramSocket(radiusServerPort); 169 + radiusSocket = new DatagramSocket(null);
170 + radiusSocket.setReuseAddress(true);
171 + radiusSocket.bind(new InetSocketAddress(radiusServerPort));
169 } catch (Exception ex) { 172 } catch (Exception ex) {
170 log.error("Can't open RADIUS socket", ex); 173 log.error("Can't open RADIUS socket", ex);
171 } 174 }
......