Re: g_file_read fails when running on a remote machine via ssh



On Tue, Feb 8, 2011 at 11:11 PM, Tristan Van Berkom <tvb gnome org> wrote:
> On Wed, Feb 9, 2011 at 4:19 AM, Jim George <jimgeorge gmail com> wrote:
>> Hi all,
>> In a larger GTK application that needs to do HTTP gets, I replaced use
>> of cURL and some helper functions called "glibcurl" with GIO calls. I
>> now face a strange problem that when the program runs locally,
>> everything is fine, but when run over an SSH tunnel with X forwarding,
>> the call to g_file_read fails, with a GError->message of "Operation
>> not supported".
>>
>> To investigate this further, I wrote a small test program pasted below:
>>
>> #include <glib.h>
>> #include <gio/gio.h>
>> #include <stdio.h>
>> #include <string.h>
>>
>> int main(int argc, char *argv[])
>> {
>>        char url[256] = "http://www.google.com";;
>>        GFile *file;
>>        GFileInputStream *istream;
>>        GError *err = NULL;
>>
>>        if (argc > 1) {
>>                strncpy(url, argv[1], 256);
>>        }
>>
>>        printf("Opening %s\n", url);
>>        file = g_file_new_for_uri(url);
>>        istream = g_file_read(file, NULL, &err);
>>
>>        if (err != NULL) {
>>                g_error("Could not open %s for reading: %s\n", url, err->message);
>>                g_error_free(err);
>>                return 1;
>>        }
>>
>>        g_input_stream_close(G_INPUT_STREAM(istream), NULL, &err);
>>        g_object_unref(file);
>>
>>        return 0;
>> }
>>
>> I compiled this using: gcc -g -O0 `pkg-config --cflags --libs gio-2.0
>> gtk+-2.0` -o test test.c
>>
>> Running ./test locally gives me the "Opening http://www.google.com";
>> message, and a normal exit.
>> When I run the program on a different machine, to which I have opened
>> an ssh connection, I get this:
>>
>> Opening http://www.google.com
>>
>> ** ERROR **: Could not open http://www.google.com for reading:
>> Operation not supported
>>
>> aborting...
>> Aborted (core dumped)
>>
>> This matches the behavior on my main gtk program. As a test, the
>> behavior of the test program is identical when trying to access a text
>> file on one of our local web servers.
>>
>> I couldn't find much documentation on gfile and gio by way of a
>> tutorial, so I'm pretty much feeling my way around right now. What am
>> I doing wrong?
>
> I'm the wrong person to answer you directly about GIO, but I did
> hear that the tls support is only very recently added to GIO.
>
> Check that you are indeed using the unstable and unreleased new
> glib package that includes this support.
>
> Cheers,
>         -Tristan
>

Hi Tristan,
Sorry, I forgot to mention, first system (where I did the build and
initial test that succeeded) is running Fedora 14, with gtk2 package
version of 2.22.0, the second one from where I did the "ssh" runs
Fedora 13, with gtk2 package version 2.20.1.

I believe these versions do support http via GIO, what stumps me is
why things should behave differently when I'm running my program
remotely (over a pts), as opposed to running it locally (from tty).
The connection to the webserver is still plain http, and should not be
using TLS in both cases.

Sequence of operations: log in locally on my F13 box, use ssh to
connect to the F14 box and run the test program included in the
previous email. In this case, I get an error message ("Operation not
supported"). If I log in locally at the F14 box and run the same
program, it works fine.

Thanks,
-Jim


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]