from Mat Hostetter <mat@lcs.mit.edu>
[deliverable/binutils-gdb.git] / gdb / gdbserver / remote-utils.c
index 6a9a176c07e308e9ceb1bc6f8845a68cfad4adb1..b9a0733067b173778d17f9b64848e6d563ef0461 100644 (file)
@@ -209,6 +209,17 @@ remote_open (char *name)
          || listen (tmp_desc, 1))
        perror_with_name ("Can't bind address");
 
+      /* If port is zero, a random port will be selected, and the
+        fprintf below needs to know what port was selected.  */
+      if (port == 0)
+       {
+         socklen_t len = sizeof (sockaddr);
+         if (getsockname (tmp_desc, (struct sockaddr *) &sockaddr, &len) < 0
+             || len < sizeof (sockaddr))
+           perror_with_name ("Can't determine port");
+         port = ntohs (sockaddr.sin_port);
+       }
+
       fprintf (stderr, "Listening on port %d\n", port);
       fflush (stderr);
 
This page took 0.024919 seconds and 4 git commands to generate.