Hi Marc,

Thanks for the update.

I dont like that design when we use rdp_reconnect as a seperate function,
for second connection.

What do you think about merging it to the rdp_connect function so well not
have to maintain them both?

Maybe we can do full cleanup and jump again to connect.
On May 1, 2014 1:00 AM, "Marc-André Moreau" <marcandre.mor...@gmail.com>
wrote:

> 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