aboutsummaryrefslogtreecommitdiffstats
path: root/src/beaver-target.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/beaver-target.c')
-rw-r--r--src/beaver-target.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/beaver-target.c b/src/beaver-target.c
index c341827..9a3f52e 100644
--- a/src/beaver-target.c
+++ b/src/beaver-target.c
@@ -57,6 +57,7 @@ static guint signals[LAST_SIGNAL] = { 0 };
static const gchar *ssh_options[] = {
"ssh",
+ "-t",
"-l", "root",
"-o", "CheckHostIP no",
"-o", "StrictHostKeyChecking no",
@@ -77,6 +78,7 @@ static gboolean _beaver_target_remote_debug (BeaverTarget *target, gchar *cmd,
gchar *cmd_args, GError **out_err);
static gboolean _beaver_target_remote_debug_stop (BeaverTarget *target,
GError **out_err);
+static void _beaver_target_remote_stop (BeaverTarget *target);
static void
beaver_target_get_property (GObject *object, guint property_id,
@@ -156,6 +158,7 @@ beaver_target_class_init (BeaverTargetClass *klass)
klass->run_remote = _beaver_target_run_remote;
klass->remote_debug = _beaver_target_remote_debug;
klass->remote_debug_stop = _beaver_target_remote_debug_stop;
+ klass->remote_stop = _beaver_target_remote_stop;
signals[STATE_CHANGED] = g_signal_new ("state-changed",
G_OBJECT_CLASS_TYPE (object_class),
@@ -237,6 +240,12 @@ beaver_target_run_remote (BeaverTarget *target, gchar *cmd, GError **error)
return BEAVER_TARGET_GET_CLASS (target)->run_remote (target, cmd, error);
}
+void
+beaver_target_remote_stop (BeaverTarget *target)
+{
+ BEAVER_TARGET_GET_CLASS (target)->remote_stop (target);
+}
+
gboolean
beaver_target_remote_debug (BeaverTarget *target, gchar *cmd, gchar *cmd_args,
GError **error)
@@ -314,7 +323,7 @@ _beaver_target_run_remote_v (BeaverTarget *target, gchar **in_args,
if (anjuta_launcher_execute_v (priv->launcher, args, launcher_data_cb, target))
{
- beaver_target_set_state (target, TARGET_STATE_BUSY);
+ beaver_target_set_state (target, TARGET_STATE_REMOTE_RUNNING);
return TRUE;
} else {
gchar *debug_str = NULL;
@@ -427,6 +436,14 @@ _beaver_target_remote_debug_stop (BeaverTarget *target, GError **out_err)
}
static void
+_beaver_target_remote_stop (BeaverTarget *target)
+{
+ BeaverTargetPrivate *priv = TARGET_PRIVATE (target);
+
+ anjuta_launcher_reset (priv->launcher);
+}
+
+static void
launcher_child_exited_cb (AnjutaLauncher *launcher, gint child_pid,
gint status, gulong time, gpointer userdata)
{