From Fernando Nasser:
authorAndrew Cagney <cagney@redhat.com>
Sun, 19 May 2002 20:11:17 +0000 (20:11 +0000)
committerAndrew Cagney <cagney@redhat.com>
Sun, 19 May 2002 20:11:17 +0000 (20:11 +0000)
* remote.c (remote_async_open_1): Re-throw the exception when the
connection fails.
(remote_cisco_open): Ditto.
(remote_open_1): Ditto.

gdb/ChangeLog
gdb/remote.c

index a2d38da2c520d34e1f70a73160851dcd148206c0..8504cc4a0c7ae922b0072e5bc75cf057cbc3a54d 100644 (file)
@@ -1,3 +1,11 @@
+2002-05-19  Andrew Cagney  <ac131313@redhat.com>
+
+       From Fernando Nasser:
+       * remote.c (remote_async_open_1): Re-throw the exception when the
+       connection fails.
+       (remote_cisco_open): Ditto.
+       (remote_open_1): Ditto.
+
 2002-05-19  Andrew Cagney  <ac131313@redhat.com>
 
        * remote.c (remote_start_remote_dummy): Add uiout parameter.
index 04045c67c15890d668bb0d99ea61ba073f0b6910..a1b90b7a5a4f928cb98810c972cd68aaea0b1576 100644 (file)
@@ -2314,7 +2314,11 @@ remote_open_1 (char *name, int from_tty, struct target_ops *target,
 #endif
 
   /* Start the remote connection.  If error() or QUIT, discard this
-     target (we'd otherwise be in an inconsistent state).
+     target (we'd otherwise be in an inconsistent state) and then
+     propogate the error on up the exception chain.  This ensures that
+     the caller doesn't stumble along blindly assuming that the
+     function succeeded.  The CLI doesn't have this problem but other
+     UI's, such as MI do.
 
      FIXME: cagney/2002-05-19: Instead of re-throwing the exception,
      this function should return an error indication letting the
@@ -2332,7 +2336,7 @@ remote_open_1 (char *name, int from_tty, struct target_ops *target,
   if (ex < 0)
     {
       pop_target ();
-      return;
+      throw_exception (ex);
     }
 
   if (extended_p)
@@ -2437,7 +2441,8 @@ remote_async_open_1 (char *name, int from_tty, struct target_ops *target,
 #endif
 
   /* Start the remote connection; if error, discard this target.  See
-     the comments in remote_open_1() for further details.  */
+     the comments in remote_open_1() for further details such as the
+     need to re-throw the exception.  */
   ex = catch_exceptions (uiout,
                         remote_start_remote, NULL,
                         "Couldn't establish connection to remote"
@@ -2447,7 +2452,7 @@ remote_async_open_1 (char *name, int from_tty, struct target_ops *target,
     {
       pop_target ();
       wait_forever_enabled_p = 1;
-      return;
+      throw_exception (ex);
     }
 
   wait_forever_enabled_p = 1;
@@ -5555,7 +5560,8 @@ remote_cisco_open (char *name, int from_tty)
   inferior_ptid = pid_to_ptid (MAGIC_NULL_PID);
 
   /* Start the remote connection; if error, discard this target.  See
-     the comments in remote_open_1() for further details.  */
+     the comments in remote_open_1() for further details such as the
+     need to re-throw the exception.  */
   ex = catch_exceptions (uiout,
                         remote_start_remote_dummy, NULL,
                         "Couldn't establish connection to remote"
@@ -5564,7 +5570,7 @@ remote_cisco_open (char *name, int from_tty)
   if (ex < 0)
     {
       pop_target ();
-      return;
+      throw_exception (ex);
     }
 }