starter: Wait indefinitely for charon when using --attach-gdb
authorMartin Willi <martin@revosec.ch>
Fri, 8 Aug 2014 08:28:58 +0000 (10:28 +0200)
committerMartin Willi <martin@revosec.ch>
Fri, 8 Aug 2014 14:36:00 +0000 (16:36 +0200)
This makes sure the user has time to set break points etc. before it runs
charon under gdb.

src/starter/invokecharon.c

index d40ab8c..5d95305 100644 (file)
@@ -201,10 +201,14 @@ int starter_start_charon (starter_config_t *cfg, bool no_fork, bool attach_gdb)
                default:
                        /* father */
                        _charon_pid = pid;
-                       if (attach_gdb)
+                       while (attach_gdb)
                        {
-                               /* don't monitor pid file if gdb is attached */
-                               return 0;
+                               /* wait indefinitely if gdb is attached */
+                               usleep(10000);
+                               if (stat(pid_file, &stb) == 0)
+                               {
+                                       return 0;
+                               }
                        }
                        for (i = 0; i < 500 && _charon_pid; i++)
                        {