@@ -131,6 +131,7 @@ public void destroy() throws Exception {
131131 * Starts internal server listening for shutdown requests.
132132 */
133133 public void start () {
134+ log .info ("Shutdown server start" );
134135 // dump to stdout
135136 System .out .printf ("Token: %s%n" , token );
136137 // write out the token to a file so that red5 may be shutdown external to this VM instance.
@@ -147,11 +148,20 @@ public void start() {
147148 log .warn ("Exception handling token file" , e );
148149 }
149150 final InetAddress loopbackAddr = InetAddress .getLoopbackAddress ();
151+ // handle format of localhost/127.0.0.1
152+ final String localAddr = loopbackAddr .getHostAddress ();
153+ int pos = localAddr .indexOf ('/' );
154+ final String localIPAddr = pos >= 0 ? localAddr .substring (pos ) : localAddr ;
155+ log .info ("Starting socket server on {}:{}" , localIPAddr , port );
150156 while (!shutdown .get ()) {
151157 // server socket on loopback address (127.0.0.1) with given port and a backlog of 8
152158 try (ServerSocket serverSocket = new ServerSocket (port , 8 , loopbackAddr ); Socket clientSocket = serverSocket .accept (); PrintWriter out = new PrintWriter (clientSocket .getOutputStream (), true ); BufferedReader in = new BufferedReader (new InputStreamReader (clientSocket .getInputStream ()));) {
153159 log .info ("Connected - local: {} remote: {}" , clientSocket .getLocalSocketAddress (), clientSocket .getRemoteSocketAddress ());
154- if (clientSocket .getRemoteSocketAddress ().toString ().startsWith (loopbackAddr .toString ())) {
160+ String remoteAddr = clientSocket .getRemoteSocketAddress ().toString ();
161+ // handle SocketAddress format of /127.0.0.1:9999
162+ String remoteIPAddr = remoteAddr .substring (1 , remoteAddr .indexOf (':' ));
163+ log .info ("IP addresses - local: {} remote: {}" , localIPAddr , remoteIPAddr );
164+ if (localIPAddr .equals (remoteIPAddr )) {
155165 String inputLine = in .readLine ();
156166 if (inputLine != null && token .equals (inputLine )) {
157167 log .info ("Shutdown request validated using token" );
0 commit comments