[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: X11 Forwarding
[Thread Prev] | [Thread Next]
- Subject: Re: X11 Forwarding
- From: Aris Adamantiadis <aris@xxxxxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Thu, 12 Sep 2013 19:36:09 +0200
- To: libssh@xxxxxxxxxx
Hi Dustin,
ssh_channel_accept_x11() is called shortly after request_x11 when you
know that you're going to receive an X11 socket. However since 0.6rc
there's a session-defined callback to handle new X11 connections:
/**
* @brief Handles an SSH new channel open X11 request. This happens when
the server
* sends back an X11 connection attempt. This is a client-side API
* @param session current session handler
* @param userdata Userdata to be passed to the callback function.
* @returns a valid ssh_channel handle if the request is to be allowed
* @returns NULL if the request should not be allowed
* @warning The channel pointer returned by this callback must be closed
by the application.
*/
typedef ssh_channel (*ssh_channel_open_request_x11_callback)
(ssh_session session,
const char * originator_address, int originator_port, void *userdata);
struct ssh_callbacks_struct {
/* ... */
/** This function will be called when an incoming X11 request is received.
*/
ssh_channel_open_request_x11_callback channel_open_request_x11_function;
};
I tested this in an application for a client but unfortunately don't
have any example around. However it's pretty simple if you look at the
other callback-based examples (like proxy.c or samplesshd-cb.c)
Kr,
Aris
Le 12/09/13 12:58, Dustin Oprea a écrit :
> Does someone have experience with X11 forwarding? I'm current fixing
> another anomaly, but I wanted to get my thoughts straight on this. This
> is the theoretical process as it makes sense to me:
>
> 1) ssh_channel_accept_x11(). Is this done between reads on the client,
> on a separate thread,.. or where?
> 2) At this point, we should have a X11 channel, returned from the accept
> call.
> 3) ssh_channel_request_pty()
> 4) ssh_channel_change_pty_size()
> 5) ssh_channel_request_x11()
> 6) ssh_channel_request_shell()
>
> What now? Loop over communication on the shell channel -as well as- the
> X11 channel?
>
> Are there any unnecessary steps, above (like the pty_size() call)?
>
>
> Thanks. This is just about the only principal function that isn't
> clearly covered by the tutorials.
>
> Dustin
>
| Re: X11 Forwarding | Dustin Oprea <myselfasunder@xxxxxxxxx> |
| X11 Forwarding | Dustin Oprea <myselfasunder@xxxxxxxxx> |