diff --git a/daemon/gvfsbackendsftp.c b/daemon/gvfsbackendsftp.c index f463f0a..05d5244 100644 --- a/daemon/gvfsbackendsftp.c +++ b/daemon/gvfsbackendsftp.c @@ -1017,10 +1017,26 @@ read_reply_async_got_data (GObject *source_object, if (res <= 0) { + GHashTableIter iter; + gpointer key, value; + + g_hash_table_iter_init (&iter, backend->expected_replies); + while (g_hash_table_iter_next (&iter, &key, &value)) + { + expected_reply = (ExpectedReply *) value; + + g_vfs_job_failed (G_VFS_JOB (expected_reply->job), + G_IO_ERROR, G_IO_ERROR_FAILED, + _("Interanl Error: %s"), "The underlying ssh process died"); + } + /* TODO: unmount, etc */ g_warning ("Error reading results: %s", res < 0 ? error->message : "end of stream"); + if (error) g_error_free (error); + + _exit (1); return; } @@ -1071,12 +1087,26 @@ read_reply_async_got_len (GObject *source_object, if (res <= 0) { + GHashTableIter iter; + gpointer key, value; + + g_hash_table_iter_init (&iter, backend->expected_replies); + while (g_hash_table_iter_next (&iter, &key, &value)) + { + ExpectedReply *expected_reply = (ExpectedReply *) value; + + g_vfs_job_failed (G_VFS_JOB (expected_reply->job), + G_IO_ERROR, G_IO_ERROR_FAILED, + _("Interanl Error: %s"), "The underlying ssh process died"); + } + /* TODO: unmount, etc */ g_warning ("Error reading results: %s", res < 0 ? error->message : "end of stream"); if (error) g_error_free (error); error = NULL; look_for_stderr_errors (G_VFS_BACKEND (backend), &error); + _exit (1); return; }