clarified signature;
authorwenzelm
Thu, 13 Dec 2018 17:37:14 +0100
changeset 69463 6439c9024dcc
parent 69462 fe125722f7a9
child 69464 2323dce4a0db
clarified signature;
src/Pure/General/http.scala
src/Pure/System/system_channel.scala
src/Pure/Tools/server.scala
src/Tools/Haskell/Haskell.thy
--- a/src/Pure/General/http.scala	Thu Dec 13 17:03:59 2018 +0100
+++ b/src/Pure/General/http.scala	Thu Dec 13 17:37:14 2018 +0100
@@ -119,8 +119,7 @@
 
   def server(handlers: List[Handler] = isabelle_resources): Server =
   {
-    val localhost = InetAddress.getByName("127.0.0.1")
-    val http_server = HttpServer.create(new InetSocketAddress(localhost, 0), 0)
+    val http_server = HttpServer.create(new InetSocketAddress(isabelle.Server.localhost, 0), 0)
     http_server.setExecutor(null)
 
     val server = new Server(http_server)
--- a/src/Pure/System/system_channel.scala	Thu Dec 13 17:03:59 2018 +0100
+++ b/src/Pure/System/system_channel.scala	Thu Dec 13 17:37:14 2018 +0100
@@ -18,9 +18,9 @@
 
 class System_Channel private
 {
-  private val server = new ServerSocket(0, 50, InetAddress.getByName("127.0.0.1"))
+  private val server = new ServerSocket(0, 50, Server.localhost)
 
-  val server_name: String = "127.0.0.1:" + server.getLocalPort
+  val server_name: String = Server.print_address(server.getLocalPort)
   override def toString: String = server_name
 
   def rendezvous(): (OutputStream, InputStream) =
--- a/src/Pure/Tools/server.scala	Thu Dec 13 17:03:59 2018 +0100
+++ b/src/Pure/Tools/server.scala	Thu Dec 13 17:37:14 2018 +0100
@@ -307,16 +307,20 @@
 
   /* server info */
 
-  def print_address(port: Int): String = "127.0.0.1:" + port
+  val localhost_name: String = "127.0.0.1"
+  def localhost: InetAddress = InetAddress.getByName(localhost_name)
+
+  def print_address(port: Int): String = localhost_name + ":" + port
 
   def print(port: Int, password: String): String =
     print_address(port) + " (password " + quote(password) + ")"
 
   object Info
   {
-    private val Pattern = """server "([^"]*)" = 127\.0\.0\.1:(\d+) \(password "([^"]*)"\)""".r
+    private val Pattern =
+      ("""server "([^"]*)" = \Q""" + localhost_name + """\E:(\d+) \(password "([^"]*)"\)""").r
 
-    def unapply(s: String): Option[Info] =
+    def parse(s: String): Option[Info] =
       s match {
         case Pattern(name, Value.Int(port), password) => Some(Info(name, port, password))
         case _ => None
@@ -335,7 +339,7 @@
 
     def connection(): Connection =
     {
-      val connection = Connection(new Socket(InetAddress.getByName("127.0.0.1"), port))
+      val connection = Connection(new Socket(localhost, port))
       connection.write_message(password)
       connection
     }
@@ -508,7 +512,7 @@
 {
   server =>
 
-  private val server_socket = new ServerSocket(_port, 50, InetAddress.getByName("127.0.0.1"))
+  private val server_socket = new ServerSocket(_port, 50, Server.localhost)
 
   private val _sessions = Synchronized(Map.empty[UUID.T, Headless.Session])
   def err_session(id: UUID.T): Nothing = error("No session " + Library.single_quote(id.toString))
--- a/src/Tools/Haskell/Haskell.thy	Thu Dec 13 17:03:59 2018 +0100
+++ b/src/Tools/Haskell/Haskell.thy	Thu Dec 13 17:37:14 2018 +0100
@@ -1589,7 +1589,7 @@
 TCP server on localhost.
 -}
 
-module Isabelle.Server (publish_text, publish_stdout, server) where
+module Isabelle.Server (localhost_name, localhost, publish_text, publish_stdout, server) where
 
 import Control.Monad (forever)
 import qualified Control.Exception as Exception
@@ -1603,12 +1603,12 @@
 
 {- server address -}
 
+localhost_name :: String
+localhost_name = "127.0.0.1"
+
 localhost :: Socket.HostAddress
 localhost = Socket.tupleToHostAddress (127, 0, 0, 1)
 
-localhost_name :: String
-localhost_name = "127.0.0.1"
-
 publish_text :: String -> String -> UUID.T -> String
 publish_text name address password =
   "server " ++ quote name ++ " = " ++ address ++ " (password " ++ quote (show password) ++ ")"