Codebase list ssh-contact / upstream/0.6
Imported Upstream version 0.6 Laurent Bigonville 12 years ago
15 changed file(s) with 49 addition(s) and 350 deletion(s). Raw diff Collapse all Expand all
0 NEW in 0.6
1 ==========
2
3 - Depend on glib 2.28 to use g_io_stream_splice_async() instead of local copy.
4
05 NEW in 0.5
16 ==========
27
7878 /* Define to 1 if you have the ANSI C header files. */
7979 #undef STDC_HEADERS
8080
81 /* Define the tube service name */
82 #undef TUBE_SERVICE
83
8184 /* Define to 1 if the X Window System is missing or not being used. */
8285 #undef X_DISPLAY_MISSING
00 #! /bin/sh
11 # Guess values for system-dependent variables and create Makefiles.
2 # Generated by GNU Autoconf 2.67 for ssh-contact 0.5.
2 # Generated by GNU Autoconf 2.67 for ssh-contact 0.6.
33 #
44 # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=ssh-contact>.
55 #
705705 # Identity of this package.
706706 PACKAGE_NAME='ssh-contact'
707707 PACKAGE_TARNAME='ssh-contact'
708 PACKAGE_VERSION='0.5'
709 PACKAGE_STRING='ssh-contact 0.5'
708 PACKAGE_VERSION='0.6'
709 PACKAGE_STRING='ssh-contact 0.6'
710710 PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=ssh-contact'
711711 PACKAGE_URL=''
712712
15001500 # Omit some internal or obsolete options to make the list less imposing.
15011501 # This message is too long to be a string in the A/UX 3.1 sh.
15021502 cat <<_ACEOF
1503 \`configure' configures ssh-contact 0.5 to adapt to many kinds of systems.
1503 \`configure' configures ssh-contact 0.6 to adapt to many kinds of systems.
15041504
15051505 Usage: $0 [OPTION]... [VAR=VALUE]...
15061506
15741574
15751575 if test -n "$ac_init_help"; then
15761576 case $ac_init_help in
1577 short | recursive ) echo "Configuration of ssh-contact 0.5:";;
1577 short | recursive ) echo "Configuration of ssh-contact 0.6:";;
15781578 esac
15791579 cat <<\_ACEOF
15801580
16981698 test -n "$ac_init_help" && exit $ac_status
16991699 if $ac_init_version; then
17001700 cat <<\_ACEOF
1701 ssh-contact configure 0.5
1701 ssh-contact configure 0.6
17021702 generated by GNU Autoconf 2.67
17031703
17041704 Copyright (C) 2010 Free Software Foundation, Inc.
20712071 This file contains any messages produced by compilers while
20722072 running configure, to aid debugging if configure makes a mistake.
20732073
2074 It was created by ssh-contact $as_me 0.5, which was
2074 It was created by ssh-contact $as_me 0.6, which was
20752075 generated by GNU Autoconf 2.67. Invocation command line was
20762076
20772077 $ $0 $@
29182918
29192919 # Define the identity of the package.
29202920 PACKAGE='ssh-contact'
2921 VERSION='0.5'
2921 VERSION='0.6'
29222922
29232923
29242924 # Some tools Automake needs.
1290312903 if test -n "$PKG_CONFIG" && \
1290412904 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
1290512905 telepathy-glib >= 0.13.9
12906 glib-2.0 >= 2.24
12906 glib-2.0 >= 2.28
1290712907 gio-2.0
1290812908 \""; } >&5
1290912909 ($PKG_CONFIG --exists --print-errors "
1291012910 telepathy-glib >= 0.13.9
12911 glib-2.0 >= 2.24
12911 glib-2.0 >= 2.28
1291212912 gio-2.0
1291312913 ") 2>&5
1291412914 ac_status=$?
1291612916 test $ac_status = 0; }; then
1291712917 pkg_cv_SSH_CONTACT_CFLAGS=`$PKG_CONFIG --cflags "
1291812918 telepathy-glib >= 0.13.9
12919 glib-2.0 >= 2.24
12919 glib-2.0 >= 2.28
1292012920 gio-2.0
1292112921 " 2>/dev/null`
1292212922 else
1293112931 if test -n "$PKG_CONFIG" && \
1293212932 { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"
1293312933 telepathy-glib >= 0.13.9
12934 glib-2.0 >= 2.24
12934 glib-2.0 >= 2.28
1293512935 gio-2.0
1293612936 \""; } >&5
1293712937 ($PKG_CONFIG --exists --print-errors "
1293812938 telepathy-glib >= 0.13.9
12939 glib-2.0 >= 2.24
12939 glib-2.0 >= 2.28
1294012940 gio-2.0
1294112941 ") 2>&5
1294212942 ac_status=$?
1294412944 test $ac_status = 0; }; then
1294512945 pkg_cv_SSH_CONTACT_LIBS=`$PKG_CONFIG --libs "
1294612946 telepathy-glib >= 0.13.9
12947 glib-2.0 >= 2.24
12947 glib-2.0 >= 2.28
1294812948 gio-2.0
1294912949 " 2>/dev/null`
1295012950 else
1296812968 if test $_pkg_short_errors_supported = yes; then
1296912969 SSH_CONTACT_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "
1297012970 telepathy-glib >= 0.13.9
12971 glib-2.0 >= 2.24
12971 glib-2.0 >= 2.28
1297212972 gio-2.0
1297312973 " 2>&1`
1297412974 else
1297512975 SSH_CONTACT_PKG_ERRORS=`$PKG_CONFIG --print-errors "
1297612976 telepathy-glib >= 0.13.9
12977 glib-2.0 >= 2.24
12977 glib-2.0 >= 2.28
1297812978 gio-2.0
1297912979 " 2>&1`
1298012980 fi
1298312983
1298412984 as_fn_error $? "Package requirements (
1298512985 telepathy-glib >= 0.13.9
12986 glib-2.0 >= 2.24
12986 glib-2.0 >= 2.28
1298712987 gio-2.0
1298812988 ) were not met:
1298912989
1420714207
1420814208
1420914209 # -----------------------------------------------------------
14210
14211
14212 $as_echo "#define TUBE_SERVICE \"x-ssh-contact\"" >>confdefs.h
14213
1421014214
1421114215 ac_config_files="$ac_config_files Makefile po/Makefile.in src/Makefile src/vinagre/Makefile"
1421214216
1474814752 # report actual input values of CONFIG_FILES etc. instead of their
1474914753 # values after options handling.
1475014754 ac_log="
14751 This file was extended by ssh-contact $as_me 0.5, which was
14755 This file was extended by ssh-contact $as_me 0.6, which was
1475214756 generated by GNU Autoconf 2.67. Invocation command line was
1475314757
1475414758 CONFIG_FILES = $CONFIG_FILES
1481414818 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
1481514819 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
1481614820 ac_cs_version="\\
14817 ssh-contact config.status 0.5
14821 ssh-contact config.status 0.6
1481814822 configured by $0, generated by GNU Autoconf 2.67,
1481914823 with options \\"\$ac_cs_config\\"
1482014824
00 m4_define(released, 1)
1 AC_INIT(ssh-contact, 0.5, https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=ssh-contact)
1 AC_INIT(ssh-contact, 0.6, https://bugs.freedesktop.org/enter_bug.cgi?product=Telepathy&component=ssh-contact)
22 AC_PREREQ(2.59)
33 AC_COPYRIGHT([
44 Copyright (C) 2010 Collabora Ltd.
2727 PKG_CHECK_MODULES(SSH_CONTACT,
2828 [
2929 telepathy-glib >= 0.13.9
30 glib-2.0 >= 2.24
30 glib-2.0 >= 2.28
3131 gio-2.0
3232 ])
3333
109109
110110 # -----------------------------------------------------------
111111
112 AC_DEFINE(TUBE_SERVICE, "x-ssh-contact", [Define the tube service name])
113
112114 AC_OUTPUT([
113115 Makefile
114116 po/Makefile.in
6464 # compiler: $LTCC
6565 # compiler flags: $LTCFLAGS
6666 # linker: $LD (gnu? $with_gnu_ld)
67 # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1
67 # $progname: (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu3
6868 # automake: $automake_version
6969 # autoconf: $autoconf_version
7070 #
7272
7373 PROGRAM=ltmain.sh
7474 PACKAGE=libtool
75 VERSION="2.2.6b Debian-2.2.6b-2ubuntu1"
75 VERSION="2.2.6b Debian-2.2.6b-2ubuntu3"
7676 TIMESTAMP=""
7777 package_revision=1.3017
7878
1414 libexec_PROGRAMS = ssh-contact-service
1515
1616 ssh_contact_SOURCES = \
17 common.c common.h \
1817 client-helpers.c client-helpers.h \
1918 client.c
2019
2120 ssh_contact_service_SOURCES = \
22 common.c common.h \
2321 service.c
2422
2523 servicefiledir = $(datadir)/dbus-1/services
5252 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \
5353 "$(DESTDIR)$(clientfiledir)" "$(DESTDIR)$(servicefiledir)"
5454 PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS)
55 am_ssh_contact_OBJECTS = common.$(OBJEXT) client-helpers.$(OBJEXT) \
56 client.$(OBJEXT)
55 am_ssh_contact_OBJECTS = client-helpers.$(OBJEXT) client.$(OBJEXT)
5756 ssh_contact_OBJECTS = $(am_ssh_contact_OBJECTS)
5857 ssh_contact_LDADD = $(LDADD)
5958 am__DEPENDENCIES_1 =
6160 AM_V_lt = $(am__v_lt_$(V))
6261 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
6362 am__v_lt_0 = --silent
64 am_ssh_contact_service_OBJECTS = common.$(OBJEXT) service.$(OBJEXT)
63 am_ssh_contact_service_OBJECTS = service.$(OBJEXT)
6564 ssh_contact_service_OBJECTS = $(am_ssh_contact_service_OBJECTS)
6665 ssh_contact_service_LDADD = $(LDADD)
6766 ssh_contact_service_DEPENDENCIES = $(am__DEPENDENCIES_1)
321320 $(NULL)
322321
323322 ssh_contact_SOURCES = \
324 common.c common.h \
325323 client-helpers.c client-helpers.h \
326324 client.c
327325
328326 ssh_contact_service_SOURCES = \
329 common.c common.h \
330327 service.c
331328
332329 servicefiledir = $(datadir)/dbus-1/services
482479
483480 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client-helpers.Po@am__quote@
484481 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client.Po@am__quote@
485 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common.Po@am__quote@
486482 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/service.Po@am__quote@
487483
488484 .c.o:
2020 #include "config.h"
2121
2222 #include "client-helpers.h"
23 #include "common.h"
2423
2524 typedef struct
2625 {
2727 #include <telepathy-glib/telepathy-glib.h>
2828
2929 #include "client-helpers.h"
30 #include "common.h"
3130
3231 typedef struct
3332 {
107106 ClientContext *context = user_data;
108107 GError *error = NULL;
109108
110 if (!_g_io_stream_splice_finish (res, &error))
109 if (!g_io_stream_splice_finish (res, &error))
111110 throw_error (context, error);
112111 else
113112 leave (context);
134133 }
135134
136135 /* Splice tube and ssh connections */
137 _g_io_stream_splice_async (G_IO_STREAM (context->tube_connection),
138 G_IO_STREAM (context->ssh_connection), _G_IO_STREAM_SPLICE_NONE,
136 g_io_stream_splice_async (G_IO_STREAM (context->tube_connection),
137 G_IO_STREAM (context->ssh_connection), G_IO_STREAM_SPLICE_NONE,
139138 G_PRIORITY_DEFAULT, NULL, splice_cb, context);
140139 }
141140
+0
-243
src/common.c less more
0 /*
1 * Copyright (C) 2010 Xavier Claessens <xclaesse@gmail.com>
2 * Copyright (C) 2010 Collabora Ltd.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public
15 * License along with this program; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17 * Boston, MA 02110-1301 USA
18 */
19
20 #include "config.h"
21
22 #include "common.h"
23
24 typedef struct
25 {
26 GIOStream *stream1;
27 GIOStream *stream2;
28 _GIOStreamSpliceFlags flags;
29 gint io_priority;
30 GCancellable *cancellable;
31 gulong cancelled_id;
32 GCancellable *op1_cancellable;
33 GCancellable *op2_cancellable;
34 guint completed;
35 GError *error;
36 } SpliceContext;
37
38 static void
39 splice_context_free (SpliceContext *ctx)
40 {
41 g_object_unref (ctx->stream1);
42 g_object_unref (ctx->stream2);
43 if (ctx->cancellable != NULL)
44 g_object_unref (ctx->cancellable);
45 g_object_unref (ctx->op1_cancellable);
46 g_object_unref (ctx->op2_cancellable);
47 g_clear_error (&ctx->error);
48 g_slice_free (SpliceContext, ctx);
49 }
50
51 static void
52 splice_complete (GSimpleAsyncResult *simple,
53 SpliceContext *ctx)
54 {
55 if (ctx->cancelled_id != 0)
56 g_cancellable_disconnect (ctx->cancellable, ctx->cancelled_id);
57 ctx->cancelled_id = 0;
58
59 if (ctx->error != NULL)
60 g_simple_async_result_set_from_error (simple, ctx->error);
61 g_simple_async_result_complete (simple);
62 }
63
64 static void
65 splice_close_cb (GObject *iostream,
66 GAsyncResult *res,
67 gpointer user_data)
68 {
69 GSimpleAsyncResult *simple = user_data;
70 SpliceContext *ctx;
71 GError *error = NULL;
72
73 g_io_stream_close_finish (G_IO_STREAM (iostream), res, &error);
74
75 ctx = g_simple_async_result_get_op_res_gpointer (simple);
76 ctx->completed++;
77
78 /* Keep the first error that occured */
79 if (error != NULL && ctx->error == NULL)
80 ctx->error = error;
81 else
82 g_clear_error (&error);
83
84 /* If all operations are done, complete now */
85 if (ctx->completed == 4)
86 splice_complete (simple, ctx);
87
88 g_object_unref (simple);
89 }
90
91 static void
92 splice_cb (GObject *ostream,
93 GAsyncResult *res,
94 gpointer user_data)
95 {
96 GSimpleAsyncResult *simple = user_data;
97 SpliceContext *ctx;
98 GError *error = NULL;
99
100 g_output_stream_splice_finish (G_OUTPUT_STREAM (ostream), res, &error);
101
102 ctx = g_simple_async_result_get_op_res_gpointer (simple);
103 ctx->completed++;
104
105 /* ignore cancellation error if it was not requested by the user */
106 if (error != NULL &&
107 g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED) &&
108 (ctx->cancellable == NULL ||
109 !g_cancellable_is_cancelled (ctx->cancellable)))
110 g_clear_error (&error);
111
112 /* Keep the first error that occured */
113 if (error != NULL && ctx->error == NULL)
114 ctx->error = error;
115 else
116 g_clear_error (&error);
117
118 if (ctx->completed == 1 &&
119 (ctx->flags & _G_IO_STREAM_SPLICE_WAIT_FOR_BOTH) == 0)
120 {
121 /* We don't want to wait for the 2nd operation to finish, cancel it */
122 g_cancellable_cancel (ctx->op1_cancellable);
123 g_cancellable_cancel (ctx->op2_cancellable);
124 }
125 else if (ctx->completed == 2)
126 {
127 if (ctx->cancellable == NULL ||
128 !g_cancellable_is_cancelled (ctx->cancellable))
129 {
130 g_cancellable_reset (ctx->op1_cancellable);
131 g_cancellable_reset (ctx->op2_cancellable);
132 }
133
134 /* Close the IO streams if needed */
135 if ((ctx->flags & _G_IO_STREAM_SPLICE_CLOSE_STREAM1) != 0)
136 g_io_stream_close_async (ctx->stream1, ctx->io_priority,
137 ctx->op1_cancellable, splice_close_cb, g_object_ref (simple));
138 else
139 ctx->completed++;
140
141 if ((ctx->flags & _G_IO_STREAM_SPLICE_CLOSE_STREAM2) != 0)
142 g_io_stream_close_async (ctx->stream2, ctx->io_priority,
143 ctx->op2_cancellable, splice_close_cb, g_object_ref (simple));
144 else
145 ctx->completed++;
146
147 /* If all operations are done, complete now */
148 if (ctx->completed == 4)
149 splice_complete (simple, ctx);
150 }
151
152 g_object_unref (simple);
153 }
154
155 static void
156 splice_cancelled_cb (GCancellable *cancellable,
157 GSimpleAsyncResult *simple)
158 {
159 SpliceContext *ctx;
160
161 ctx = g_simple_async_result_get_op_res_gpointer (simple);
162 g_cancellable_cancel (ctx->op1_cancellable);
163 g_cancellable_cancel (ctx->op2_cancellable);
164 }
165
166 void
167 _g_io_stream_splice_async (GIOStream *stream1,
168 GIOStream *stream2,
169 _GIOStreamSpliceFlags flags,
170 gint io_priority,
171 GCancellable *cancellable,
172 GAsyncReadyCallback callback,
173 gpointer user_data)
174 {
175 GSimpleAsyncResult *simple;
176 SpliceContext *ctx;
177 GInputStream *istream;
178 GOutputStream *ostream;
179
180 if (cancellable != NULL && g_cancellable_is_cancelled (cancellable))
181 {
182 g_simple_async_report_error_in_idle (NULL, callback,
183 user_data, G_IO_ERROR, G_IO_ERROR_CANCELLED,
184 "Operation has been cancelled");
185 return;
186 }
187
188 ctx = g_slice_new0 (SpliceContext);
189 ctx->stream1 = g_object_ref (stream1);
190 ctx->stream2 = g_object_ref (stream2);
191 ctx->flags = flags;
192 ctx->io_priority = io_priority;
193 ctx->op1_cancellable = g_cancellable_new ();
194 ctx->op2_cancellable = g_cancellable_new ();
195 ctx->completed = 0;
196
197 simple = g_simple_async_result_new (NULL, callback, user_data,
198 _g_io_stream_splice_finish);
199 g_simple_async_result_set_op_res_gpointer (simple, ctx,
200 (GDestroyNotify) splice_context_free);
201
202 if (cancellable != NULL)
203 {
204 ctx->cancellable = g_object_ref (cancellable);
205 ctx->cancelled_id = g_cancellable_connect (cancellable,
206 G_CALLBACK (splice_cancelled_cb), g_object_ref (simple),
207 g_object_unref);
208 }
209
210 istream = g_io_stream_get_input_stream (stream1);
211 ostream = g_io_stream_get_output_stream (stream2);
212 g_output_stream_splice_async (ostream, istream, G_OUTPUT_STREAM_SPLICE_NONE,
213 io_priority, ctx->op1_cancellable, splice_cb,
214 g_object_ref (simple));
215
216 istream = g_io_stream_get_input_stream (stream2);
217 ostream = g_io_stream_get_output_stream (stream1);
218 g_output_stream_splice_async (ostream, istream, G_OUTPUT_STREAM_SPLICE_NONE,
219 io_priority, ctx->op2_cancellable, splice_cb,
220 g_object_ref (simple));
221
222 g_object_unref (simple);
223 }
224
225 gboolean
226 _g_io_stream_splice_finish (GAsyncResult *result,
227 GError **error)
228 {
229 GSimpleAsyncResult *simple;
230
231 g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (result), FALSE);
232
233 simple = G_SIMPLE_ASYNC_RESULT (result);
234
235 if (g_simple_async_result_propagate_error (simple, error))
236 return FALSE;
237
238 g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL,
239 _g_io_stream_splice_finish), FALSE);
240
241 return TRUE;
242 }
+0
-50
src/common.h less more
0 /*
1 * Copyright (C) 2010 Xavier Claessens <xclaesse@gmail.com>
2 * Copyright (C) 2010 Collabora Ltd.
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License as
6 * published by the Free Software Foundation; either version 2 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public
15 * License along with this program; if not, write to the
16 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
17 * Boston, MA 02110-1301 USA
18 */
19
20 #ifndef __COMMON_H__
21 #define __COMMON_H__
22
23 #include <gio/gio.h>
24
25 #define TUBE_SERVICE "x-ssh-contact"
26
27 G_BEGIN_DECLS
28
29 typedef enum {
30 _G_IO_STREAM_SPLICE_NONE = 0,
31 _G_IO_STREAM_SPLICE_CLOSE_STREAM1 = (1 << 0),
32 _G_IO_STREAM_SPLICE_CLOSE_STREAM2 = (1 << 1),
33 _G_IO_STREAM_SPLICE_WAIT_FOR_BOTH = (1 << 2),
34 } _GIOStreamSpliceFlags;
35
36 void _g_io_stream_splice_async (GIOStream *stream1,
37 GIOStream *stream2,
38 _GIOStreamSpliceFlags flags,
39 int io_priority,
40 GCancellable *cancellable,
41 GAsyncReadyCallback callback,
42 gpointer user_data);
43
44 gboolean _g_io_stream_splice_finish (GAsyncResult *result,
45 GError **error);
46
47 G_END_DECLS
48
49 #endif /* #ifndef __COMMON_H__*/
2323
2424 #include <gio/gio.h>
2525 #include <telepathy-glib/telepathy-glib.h>
26
27 #include "common.h"
2826
2927 static GMainLoop *loop = NULL;
3028 static GList *channel_list = NULL;
6260 {
6361 GError *error = NULL;
6462
65 _g_io_stream_splice_finish (res, &error);
63 g_io_stream_splice_finish (res, &error);
6664 session_complete (channel, error);
6765 g_clear_error (&error);
6866 }
10098 sshd_connection = g_socket_connection_factory_create_connection (socket);
10199
102100 /* Splice tube and ssh connections */
103 _g_io_stream_splice_async (G_IO_STREAM (tube_connection),
104 G_IO_STREAM (sshd_connection), _G_IO_STREAM_SPLICE_NONE,
101 g_io_stream_splice_async (G_IO_STREAM (tube_connection),
102 G_IO_STREAM (sshd_connection), G_IO_STREAM_SPLICE_NONE,
105103 G_PRIORITY_DEFAULT, NULL, splice_cb, channel);
106104
107105 OUT:
1919 tab.h tab.c \
2020 tree-view.h tree-view.c \
2121 ../client-helpers.h ../client-helpers.c \
22 ../common.h ../common.c \
2322 $(NULL)
2423
2524 plugin_in_files = ssh-contact.vinagre-plugin.desktop.in
7474 libssh_contact_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
7575 $(am__DEPENDENCIES_1)
7676 am_libssh_contact_la_OBJECTS = plugin.lo connection.lo tab.lo \
77 tree-view.lo client-helpers.lo common.lo
77 tree-view.lo client-helpers.lo
7878 libssh_contact_la_OBJECTS = $(am_libssh_contact_la_OBJECTS)
7979 AM_V_lt = $(am__v_lt_$(V))
8080 am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
286286 tab.h tab.c \
287287 tree-view.h tree-view.c \
288288 ../client-helpers.h ../client-helpers.c \
289 ../common.h ../common.c \
290289 $(NULL)
291290
292291 plugin_in_files = ssh-contact.vinagre-plugin.desktop.in
369368 -rm -f *.tab.c
370369
371370 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/client-helpers.Plo@am__quote@
372 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/common.Plo@am__quote@
373371 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/connection.Plo@am__quote@
374372 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin.Plo@am__quote@
375373 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tab.Plo@am__quote@
406404 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../client-helpers.c' object='client-helpers.lo' libtool=yes @AMDEPBACKSLASH@
407405 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
408406 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o client-helpers.lo `test -f '../client-helpers.c' || echo '$(srcdir)/'`../client-helpers.c
409
410 common.lo: ../common.c
411 @am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT common.lo -MD -MP -MF $(DEPDIR)/common.Tpo -c -o common.lo `test -f '../common.c' || echo '$(srcdir)/'`../common.c
412 @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/common.Tpo $(DEPDIR)/common.Plo
413 @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
414 @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='../common.c' object='common.lo' libtool=yes @AMDEPBACKSLASH@
415 @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
416 @am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o common.lo `test -f '../common.c' || echo '$(srcdir)/'`../common.c
417407
418408 mostlyclean-libtool:
419409 -rm -f *.lo
2929 #include "tab.h"
3030 #include "connection.h"
3131 #include "../client-helpers.h"
32 #include "../common.h"
3332
3433 struct _SshContactTabPrivate
3534 {
143142 SshContactTab *self = user_data;
144143 GError *error = NULL;
145144
146 if (!_g_io_stream_splice_finish (res, &error))
145 if (!g_io_stream_splice_finish (res, &error))
147146 throw_error (self, error);
148147 else
149148 leave (self);
173172 self->priv->connected = TRUE;
174173
175174 /* Splice tube and ssh connections */
176 _g_io_stream_splice_async (G_IO_STREAM (self->priv->tube_connection),
177 G_IO_STREAM (self->priv->ssh_connection), _G_IO_STREAM_SPLICE_NONE,
175 g_io_stream_splice_async (G_IO_STREAM (self->priv->tube_connection),
176 G_IO_STREAM (self->priv->ssh_connection), G_IO_STREAM_SPLICE_NONE,
178177 G_PRIORITY_DEFAULT, NULL, splice_cb, self);
179178 }
180179