Hi Idan,

I just found another problem, which I fixed here:
https://github.com/awakecoding/FreeRDP/commit/5b0822a43769c7e00fdbdbd0e3a2af83a8e85dfe

On reconnection, we weren't getting rid of the initial
settings->LoadBalanceInfo, which caused it to be reused even if the
redirected packet did not contain it. I modified the code to free it and
set it to null so it doesn't get reused when redirected without the
LoadBalanceInfo. I'm now getting further, but the test environment I have
access to is behind a gateway, and I'm thinking there's another issue
involving the gateway.

There's a chance you get better results after this fix in your scenario
which does not involve the gateway.

To summarize, here is how this particular test environment is setup:

There is a connection broker behind a gateway. You connect first to that
broker with an initial LoadBalanceInfo string. The broker sends a
redirection packet, which is IP-based, not cookie-based. The client then
reconnects through the gateway but targeting that new host which is behind
the gateway. The problem I previously had was that the original
LoadBalanceInfo string was reused for that redirection session when it
shouldn't have been, causing it to hang. Now it seems to correctly do the
X224 negotiation, but it hangs, and I'm wondering if this isn't a problem
with the gateway code and reconnection. If I manually start a new
connection from scratch with the redirected information is connects
properly though, which is why I'm thinking there might be a problem in the
reconnection code for reinitializing some other variables.



On Wed, Apr 30, 2014 at 12:53 PM, Idan Freiberg <spe...@gmail.com> wrote:

> Hi,
>
> Afak, you shouldn't connect to the connection broker directly.
> The process is :
> 1. Connect to a RDSH server which is a farm member.
> 2. That server should query the broker whether to connect you to this
> server or another.
> 3. If the broker says that you may connect to another RDSH, then the first
> server is sending back an Server Redirection packet to mstsc client.
> 4. If redirected, New rdp connection is set.
> On Apr 30, 2014 5:46 PM, "Marc-André Moreau" <marcandre.mor...@gmail.com>
> wrote:
>
>> Hi Alexis,
>>
>> From my understanding, your deployment does not use a TS Gateway, which
>> should make debugging easier for us. Knowing this, here's what you can do:
>>
>> 1) Get mstsc to connect through the broker correctly
>> 2) Capture traffic with wireshark while mstsc connects
>>
>> There should be two TCP connections done by mstsc. The first connection is
>> done with the broker, and the broker sends a redirection packet to the
>> client. The client then disconnects and reconnects based on that
>> redirection packet. Information related to connection brokering is present
>> in the very first packet sent over TCP in an RDP connection, the X224
>> Connection Request. In wireshark, look for the beginning of of those tcp
>> connections, and copy those X224 connection requests. I'd like to inspect
>> them, as the specs are very vague as to what should happen in practice for
>> brokering.
>>
>> In addition to this, if you can have FreeRDP build with WITH_DEBUG_REDIR,
>> I'd have a sample redirection packet to look at. From there we can try to
>> figure out what FreeRDP is doing differently from mstsc.
>>
>>
>> On Wed, Apr 30, 2014 at 9:17 AM, Marc-André Moreau <
>> marcandre.mor...@gmail.com> wrote:
>>
>> > Hi Alexis,
>> >
>> > You can build with WITH_DEBUG_REDIR, and see what redirection packet you
>> > are getting. You are getting the redirection packet, but reconnection to
>> > the redirected machine fails. In the case of the person I was assisting
>> the
>> > other day, I had issues connecting with mstsc, so it was hard to figure
>> out
>> > what was truly wrong. Also, I assume this should be cookie-based
>> > redirection, not ip-based redirection, correct? The main difference is
>> that
>> > with cookie based, the client reconnect to the broker a second time but
>> > with a cookie that was provided in the redirection packet. In ip-based,
>> the
>> > client reconnects directly to the address provided in the redirection
>> > packet.
>> >
>> >
>> > On Wed, Apr 30, 2014 at 3:03 AM, Alexis Moinet <
>> alexis.moi...@umons.ac.be>wrote:
>> >
>> >> Hello
>> >>
>> >> On 29/04/14 17:02, Marc-André Moreau wrote:
>> >> > I've been investigating this all of yesterday with someone on IRC. I
>> >> fixed
>> >> > the double free issue on my branch.
>> >> >
>> >>
>> https://github.com/awakecoding/FreeRDP/commit/c2a59c23a7b8eb262209bdadb66fe1e429ec943e
>> >>
>> >> Indeed, I can confirm no double free anymore, thanks!
>> >>
>> >> > This problem would only occur in the case of a failed redirection.
>> >>
>> >> $ ./xfreerdp -u username -d domain -v rdsserver
>> >> connected to rdsserver:3389
>> >> Password:
>> >> freerdp_set_last_error 0x2000C
>> >> Error: protocol security negotiation or connection failure
>> >> recv: Bad file descriptor
>> >>
>> >> what kind of debug info would be useful to figure this out ? or at
>> least
>> >> to know whether it's a freerdp bug or a server-side problem
>> >>
>> >> so far as I know, microsoft client is working fine, but I cannot test
>> it
>> >> right now.
>> >>
>> >> thanks,
>> >>
>> >> Alexis
>> >>
>> >
>> >
>>
>> ------------------------------------------------------------------------------
>> "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
>> Instantly run your Selenium tests across 300+ browser/OS combos.  Get
>> unparalleled scalability from the best Selenium testing platform
>> available.
>> Simple to use. Nothing to install. Get started now for free."
>> http://p.sf.net/sfu/SauceLabs
>> _______________________________________________
>> Freerdp-devel mailing list
>> Freerdp-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/freerdp-devel
>>
>
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.  Get 
unparalleled scalability from the best Selenium testing platform available.
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Freerdp-devel mailing list
Freerdp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to