Преглед изворни кода

Fix callback server always using localhost

Billy Barrow пре 1 година
родитељ
комит
512d9aba55
3 измењених фајлова са 8 додато и 4 уклоњено
  1. 2 3
      src/lib/CallbackServer.vala
  2. 3 1
      src/lib/DaemonService.vala
  3. 3 0
      src/lib/StandaloneService.vala

+ 2 - 3
src/lib/CallbackServer.vala

@@ -7,11 +7,10 @@ namespace Riddle {
         private SocketService service;
         private Gee.HashMap<string, RiddleInfo> riddles = new Gee.HashMap<string, RiddleInfo>();
         
-        public CallbackServer(string address = "::1") throws Error {
-            var add = new InetAddress.from_string(address);
+        public CallbackServer(InetAddress server_address) throws Error {
             service = new SocketService ();
             SocketAddress effective;
-            service.add_address(new InetSocketAddress(add, 0), SocketType.STREAM, SocketProtocol.TCP, null, out effective);
+            service.add_address(new InetSocketAddress(server_address, 0), SocketType.STREAM, SocketProtocol.TCP, null, out effective);
             socket_address = (InetSocketAddress)effective;
         }
 

+ 3 - 1
src/lib/DaemonService.vala

@@ -10,13 +10,14 @@ namespace Riddle {
         private InetSocketAddress daemon_server_address;
 
         public DaemonService() throws Error {
-            callback_server = new CallbackServer();
             dbus_service = Bus.get_proxy_sync (BusType.SESSION, "nz.astrologue.RiddleService", "/nz/astrologue/RiddleService");
             client = new Client.with_dbus (dbus_service);
             riddles = new Invercargill.Sequence<Riddle> ();
+
             
             var daemon_inet_address = new InetAddress.from_string (dbus_service.local_server_address());
             daemon_server_address = new InetSocketAddress (daemon_inet_address, dbus_service.local_server_port());
+            callback_server = new CallbackServer(daemon_inet_address);
             
             dbus_service.received_riddle.connect (handle_riddle);
             callback_server.start.begin();
@@ -81,6 +82,7 @@ namespace Riddle {
 
         }
         private bool attempt_callback(Riddle riddle, SolutionEnvelope solution, InetSocketAddress server, uint8[] author_signing_key, uint8[] reply_public_key, uint8[] reply_secret_key) {
+            print(@"[DaemonService] Calling back $(server.to_string())\n");
             try {
                 var peer_socket = client.callback (solution, server, author_signing_key, reply_public_key, reply_secret_key);
 

+ 3 - 0
src/lib/StandaloneService.vala

@@ -23,6 +23,9 @@ namespace Riddle {
         public bool is_peer_local (GLib.InetAddress address) {
                 assert_not_reached ();
         }
+        public GLib.InetAddress get_home_address () {
+                assert_not_reached ();
+        }
 
     }