From libssh2-devel-bounces@cool.haxx.se  Tue Apr  3 23:42:24 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33Lg3tg006064;
	Tue, 3 Apr 2012 23:42:20 +0200
Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com
 [209.85.160.54])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33LfxY3005702
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 3 Apr 2012 23:42:01 +0200
Received: by pbcwz17 with SMTP id wz17so327090pbc.41
 for <libssh2-devel@cool.haxx.se>; Tue, 03 Apr 2012 14:41:56 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:x-originating-ip:in-reply-to:references:date
 :message-id:subject:from:to:content-type:x-gm-message-state;
 bh=znlI+VIH/xYx40VGx/Q0DR56j3sb2OpPlITd0q/cVCg=;
 b=HgkFWVVn4lGojsGUnnJY6RX8UX5AjdWLZq6Px1SLZHhr+CvMkpQbQbhuY/So5zCYGU
 0wVLkM+HJNUcsP1zycNzSgf0ZLdbTDYbdGYgB3bbsrmxkSG/MtoKxoTWRNcR4Y5Du/+f
 kulv49zdQmHF1pk3ZxoZbv3lb9Ok53L/zLk8MeJ/3mQTJXVPWyf9lDUrHC22om8sSP4/
 lZsiPyZbABQZW1yJCYNb2yqJnv+lWD8z6y8hXJxg8DLDXpN4Yshkd5LWIFPOxE1DxeRU
 V0bCzG/tsE926nHIHhKzTGgj4aYnXtH9PKsfpxXoOmVwUJQnaOe90O62VUhcFykQk6gF
 BHRw==
MIME-Version: 1.0
Received: by 10.68.129.133 with SMTP id nw5mr32179789pbb.159.1333489315920;
 Tue, 03 Apr 2012 14:41:55 -0700 (PDT)
Received: by 10.68.130.230 with HTTP; Tue, 3 Apr 2012 14:41:55 -0700 (PDT)
X-Originating-IP: [69.226.47.131]
In-Reply-To: <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
Date: Tue, 3 Apr 2012 14:41:55 -0700
Message-ID: <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
From: Adam Craig <adamgcraig@accessnoexcuse.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Gm-Message-State: ALoCoQmcGnZdBAAYs+xzbadbTvD1L57ZRZu3+xdJ1zJ4ZUxbCP3ouZ251Kqqe+jaDPF7MzNwlfoJ
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Mr. Lamaison,

I apologize for not replying sooner. Gmail hid your reply for some
reason, and I did not notice it until just now.

On 3/29/12, Alexander Lamaison <swish@lammy.co.uk> wrote:
> On 29 March 2012 01:19, Adam Craig <adamgcraig@accessnoexcuse.org> wrote:
>> Hello Libssh2 Dev Mailing List,
>>
>> I am working on a cocoa application that uses libssh2 to SFTP files to
>> and from a server.
>
> ... snip
>
>> I have been testing this method with both small text files of a few kB
>> each and Quicktime .mov files of up to 1MB. I am running the app on
>> 64-bit Intel OS X 10.6.8 on the client side and communicating with a
>> server running the standard linux sftp-server on Redhat Enterprise
>> Linux Server 5.6. The version of libssh2 I am using is 1.4.0-20120229.
>>
>> For all files I have tested, the method downloads and returns the
>> correct data, but it always returns it in chunks no larger than 2K,
>> regardless of how large I make the buffer and regardless of the size
>> of the file. More precisely, if the file is smaller than 2K, the first
>> call downloads the complete file and returns the number of bytes in
>> the file, but, if the file is larger than 2K, libssh2_sftp_read
>> returns a value of 2000 after every call except for the second-to-last
>> call, which returns (file size)%2000, and the last call, which returns
>> 0, indicating we have read all the bytes in the file. At first, I
>> thought it might be a peculiarity of the server's configuration, but I
>> do not see any hard limit on sent packet size in sftp-server's
>> documentation. Is this an inherent limitation of the libssh2_sftp_read
>> method?
>
> So just to summarise, you're not reporting that the transfer is
> incomplete?  Just that you wish the transfer used bigger chunks at a
> time?  This is a perfectly valid thing to report, I just want to check
> I'm understanding you correctly.
>

That is correct.

> ... snip
>
>> I am testing this with the same client macbook and server and the same
>> version of libssh2. If I upload a file smaller than 30K,
>> libssh2_sftp_write, the program tries to upload it all in one call,
>> succeeds, and returns the correct number of bytes. If I upload a file
>> larger than 30K but smaller than packet_size, it attempts to upload
>> all the data in one call. The complete file appears on the server, but
>> libssh2_sftp_write only returns 30000. If I upload a file larger than
>> the packet size, each full-packet call returns 30000, causing the loop
>> to slide the window forward by 30000. Once it gets to a point where
>> fewer than packet_size bytes remains, it jumps to the last call and
>> tries to upload all the remaining bytes. This call returns up to
>> 30000. When I check the server, it has the complete file.
>> It appears that the return value and the amount of data uploaded do not
>> match.
>
> This sounds like the expected behaviour of libssh2's pipelined SFTP
> architecture.  The return value doesn't have to correspond to the
> amount uploaded on _that_ call as long as the overall total is
> correct.  The last call that doesn't appear to do anything allows
> libssh2 to do some housekeeping.
What do you mean by the "overall total?"
If I upload a file of 200K all in one call to libssh2_sftp_write and
it returns 30K when it actually uploaded all 200K, what does the 30K
return value mean?
Does the documentation explain this somewhere?
All te information on this I could find was
http://www.libssh2.org/libssh2_sftp_write.html:
"RETURN VALUE

Actual number of bytes written or negative on failure.

If used in non-blocking mode, it returns LIBSSH2_ERROR_EAGAIN when it
would otherwise block. While LIBSSH2_ERROR_EAGAIN is a negative
number, it isn't really a failure per se.

If this function returns 0 (zero) it should not be considered an
error, but simply that there was no error but yet no payload data got
sent to the other end."

>
>> I would like to be able to download larger packets
>
> I'm not sure why yours are limited to 2K but I believe this is
> negotiated with the server (jump in here guys if I'm wrong) so it's
> possible your server is refusing to send bigger packets.

That was my first guess, and it may be the case. After looking at the
documentation for the server-side SFTP tool and not finding any
information about a maximum packet size, I decided to look into
whether it was an issue with Libssh2.

Documentation I read for the SFTP server utility to which the app is connecting:
http://www.openbsd.org/cgi-bin/man.cgi?query=sftp-server&sektion=8
http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&sektion=5

Adam

>
> Alex
>
> --
> Swish - Easy SFTP for Windows Explorer (http://www.swish-sftp.org)
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Apr  3 23:47:33 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33LlUYe011581;
	Tue, 3 Apr 2012 23:47:32 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33LlSMa011468
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 3 Apr 2012 23:47:28 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q33LlSsJ011465
 for <libssh2-devel@cool.haxx.se>; Tue, 3 Apr 2012 23:47:28 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Tue, 3 Apr 2012 23:47:28 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
In-Reply-To: <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Tue, 3 Apr 2012, Adam Craig wrote:

> If I upload a file of 200K all in one call to libssh2_sftp_write and it 
> returns 30K when it actually uploaded all 200K, what does the 30K return 
> value mean?

It means 30K was sent off and that you need to call it again with the 
remaining 170K. In a very similar fashion to how write() and similar function 
calls work.

> Does the documentation explain this somewhere?
> All te information on this I could find was
> http://www.libssh2.org/libssh2_sftp_write.html:
> "RETURN VALUE
>
> Actual number of bytes written or negative on failure.

Based on your questions, I figure we need to expand this to explain it with 
more detail!

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Apr  3 23:51:34 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33LpXvW014378;
	Tue, 3 Apr 2012 23:51:34 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q33LpVGN014370
 for <libssh2-devel@cool.haxx.se>; Tue, 3 Apr 2012 23:51:31 +0200
Received: (qmail 11301 invoked by uid 501); 3 Apr 2012 21:51:33 -0000
Message-ID: <20120403215133.11300.qmail@stuge.se>
Date: Tue, 3 Apr 2012 23:51:33 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both
 the file size and the specified buffer size
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Adam Craig wrote:
> > This sounds like the expected behaviour of libssh2's pipelined SFTP
> > architecture.  The return value doesn't have to correspond to the
> > amount uploaded on _that_ call as long as the overall total is
> > correct.  The last call that doesn't appear to do anything allows
> > libssh2 to do some housekeeping.
> 
> What do you mean by the "overall total?"

Number of bytes transfered once libssh2 returns 0 to indicate
completion.


> If I upload a file of 200K all in one call to libssh2_sftp_write and
> it returns 30K when it actually uploaded all 200K, what does the 30K
> return value mean?

It means that libssh2 has sent some data but not all, and you need to
call libssh2 again.


> > I'm not sure why yours are limited to 2K but I believe this is
> > negotiated with the server (jump in here guys if I'm wrong) so
> > it's possible your server is refusing to send bigger packets.

I don't think this is negotiable.


> That was my first guess, and it may be the case. After looking at
> the documentation for the server-side SFTP tool and not finding any
> information about a maximum packet size, I decided to look into
> whether it was an issue with Libssh2.
> 
> Documentation I read for the SFTP server utility to which the app
> is connecting:
> http://www.openbsd.org/cgi-bin/man.cgi?query=sftp-server&sektion=8

In any case, OpenSSH sftp-server has pretty much zero tunables.

Is the server OpenBSD, or OpenSSH portable on some other unix?


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Apr  3 23:53:11 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33Lr8ws015189;
	Tue, 3 Apr 2012 23:53:11 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q33Lr6aP015153
 for <libssh2-devel@cool.haxx.se>; Tue, 3 Apr 2012 23:53:06 +0200
Received: (qmail 11469 invoked by uid 501); 3 Apr 2012 21:53:08 -0000
Message-ID: <20120403215308.11468.qmail@stuge.se>
Date: Tue, 3 Apr 2012 23:53:08 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both
 the file size and the specified buffer size
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Daniel Stenberg wrote:
> On Tue, 3 Apr 2012, Adam Craig wrote:
>
>> If I upload a file of 200K all in one call to libssh2_sftp_write and it 
>> returns 30K when it actually uploaded all 200K, what does the 30K return 
>> value mean?
>
> It means 30K was sent off and that you need to call it again with the 
> remaining 170K. In a very similar fashion to how write() and similar 
> function calls work.

So _sftp_write() is different from _channel_write() here? It does not
need to be called again with the same data, when it reports some
success - only when it returns EAGAIN?


> Based on your questions, I figure we need to expand this to explain
> it with more detail!

Or maybe refer to some examples which show how to do it right.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 00:03:00 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33M2up7021666;
	Wed, 4 Apr 2012 00:02:59 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33M2sVu021657
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 00:02:54 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q33M2s3m021647
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 00:02:54 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Wed, 4 Apr 2012 00:02:54 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
In-Reply-To: <20120403215308.11468.qmail@stuge.se>
Message-ID: <alpine.DEB.2.00.1204032359150.5003@tvnag.unkk.fr>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <20120403215308.11468.qmail@stuge.se>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Tue, 3 Apr 2012, Peter Stuge wrote:

>> It means 30K was sent off and that you need to call it again with the 
>> remaining 170K. In a very similar fashion to how write() and similar 
>> function calls work.
>
> So _sftp_write() is different from _channel_write() here? It does not need 
> to be called again with the same data, when it reports some success - only 
> when it returns EAGAIN?

None of them should be called again with the same data when success has been 
returned and some amount of data has been sent off.

The SCP and SFTP examples are pretty similar in this aspect and show this.

In the SFTP upload case, an application will even work faster if it 
"top-fills" the buffer and passes in 200K in the subsequent call again (if 
there is more data to send).

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 01:12:51 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33NCccZ001951;
	Wed, 4 Apr 2012 01:12:49 +0200
Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com
 [209.85.160.54])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33NCYFi001893
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 01:12:36 +0200
Received: by pbcwz17 with SMTP id wz17so390380pbc.41
 for <libssh2-devel@cool.haxx.se>; Tue, 03 Apr 2012 16:12:31 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:x-originating-ip:in-reply-to:references:date
 :message-id:subject:from:to:content-type:x-gm-message-state;
 bh=mvzC5GAlywi/I781KpJfbPwxodjWt7ffJzkIobVosls=;
 b=cpOi2vF1UYsn7xTOCQJsjDdDvQ5Tgb/TLFdQ9Dd/uqqKpMhntV33ctEzng0WE3+4IU
 5A40xL7iilcQPB8eQBpHV9cnVOKhWVEJgZf1gDvYEmBmCTr1Itt+URU0p+WOwLTGmSwl
 Kx9Rn2uS/nLqeuCeq603UI8ZmEo4o+IuNpD9lyMjq8XTu9z5j290T/rZ5E0iEVNCtlh9
 d36IsK1b+a63ica49ygUjQguaasXvEFmkjacfy0KORTEXtnORcpW9omO9Cs6MEZ5+m5i
 emfklxi5U+2hQho7MPqqqvNYC81l4KV26WOwRSJse4MxaT4QbHk1/p+ij5y2vflQejuD
 3nsQ==
MIME-Version: 1.0
Received: by 10.68.130.227 with SMTP id oh3mr19330215pbb.12.1333494751126;
 Tue, 03 Apr 2012 16:12:31 -0700 (PDT)
Received: by 10.68.130.230 with HTTP; Tue, 3 Apr 2012 16:12:31 -0700 (PDT)
X-Originating-IP: [69.226.47.131]
In-Reply-To: <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
Date: Tue, 3 Apr 2012 16:12:31 -0700
Message-ID: <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
From: Adam Craig <adamgcraig@accessnoexcuse.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Gm-Message-State: ALoCoQmSSZb90KXzmiK9Uvuad2sGOwrdBFUxK/8n2Biqk4TpLhn1sanM1mDOLJDzf5rPoErLTtEs
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Mr. Stenberg,

On 4/3/12, Daniel Stenberg <daniel@haxx.se> wrote:
> On Tue, 3 Apr 2012, Adam Craig wrote:
>
>> If I upload a file of 200K all in one call to libssh2_sftp_write and it
>> returns 30K when it actually uploaded all 200K, what does the 30K return
>> value mean?
>
> It means 30K was sent off and that you need to call it again with the
> remaining 170K. In a very similar fashion to how write() and similar
> function
> calls work.
>
This is what I had originally interpreted it to mean, but, when I
tested it, even if my application did not call libssh2_sftp_write
again with the remaining 170K, the whole 200K still show up on the
server, even though the function only returned 30K on the first call.
That is, the amount of data it reported sending was less than what
actually showed up on the server.

>> Does the documentation explain this somewhere?
>> All te information on this I could find was
>> http://www.libssh2.org/libssh2_sftp_write.html:
>> "RETURN VALUE
>>
>> Actual number of bytes written or negative on failure.
>
> Based on your questions, I figure we need to expand this to explain it with
> more detail!
>
> --
>
>   / daniel.haxx.se
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 01:19:16 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33NJE4N005753;
	Wed, 4 Apr 2012 01:19:16 +0200
Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com
 [209.85.160.54])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q33NJAIT005734
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 01:19:11 +0200
Received: by pbcwz17 with SMTP id wz17so394289pbc.41
 for <libssh2-devel@cool.haxx.se>; Tue, 03 Apr 2012 16:19:07 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:x-originating-ip:in-reply-to:references:date
 :message-id:subject:from:to:content-type:x-gm-message-state;
 bh=olthoUsSTKznp3XcFEKiDjRJK9Nff9KqIeMLtabHNjQ=;
 b=ic8v+a2kfBrKWRbbAvOanecERUVsNPHBF9aYDm9/B5QCh2t8LJGfEZITwsPILBdiKV
 yzED4EQGYyQ3Io537czUtQBjNjefWi0cisEYTr1qV9nUVOrXf6Non3bcCtuBrNA2yZso
 HjjxqeKHo6vSzx5FovjXJa4EJ5FALaeEBd2z0mUHFtl/l+PMI9Y8AMUySM46yklzi8xv
 j0JYcQ9D6qYVsPvAQ2S29NYqEdgWQBFV6giZqIqo1EhYzJuCKrd/CpVuRnwOK07KYpvm
 fw5TvD25LHqjRakCL1VZ4DjSoYUJjFud6oif9w25TMjSWIho/s6iQBCALcif6JlFEcsM
 LpbQ==
MIME-Version: 1.0
Received: by 10.68.227.73 with SMTP id ry9mr32803119pbc.33.1333495147138; Tue,
 03 Apr 2012 16:19:07 -0700 (PDT)
Received: by 10.68.130.230 with HTTP; Tue, 3 Apr 2012 16:19:07 -0700 (PDT)
X-Originating-IP: [69.226.47.131]
In-Reply-To: <20120403215133.11300.qmail@stuge.se>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <20120403215133.11300.qmail@stuge.se>
Date: Tue, 3 Apr 2012 16:19:07 -0700
Message-ID: <CAMS93LD2Tar7TCo_MVB9ZZCCdoJg19Tv9U4cv2ZTkbRYR9=BLQ@mail.gmail.com>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
From: Adam Craig <adamgcraig@accessnoexcuse.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Gm-Message-State: ALoCoQmbm7SNGFpWdwFTSKZaYKYSG9SvNLxXD84DhN/0v0Lh4gYxVpB+gR/ljnqOS0Q+OoQRpS/U
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 4/3/12, Peter Stuge <peter@stuge.se> wrote:
> Adam Craig wrote:
>> > This sounds like the expected behaviour of libssh2's pipelined SFTP
>> > architecture.  The return value doesn't have to correspond to the
>> > amount uploaded on _that_ call as long as the overall total is
>> > correct.  The last call that doesn't appear to do anything allows
>> > libssh2 to do some housekeeping.
>>
>> What do you mean by the "overall total?"
>
> Number of bytes transfered once libssh2 returns 0 to indicate
> completion.
>
Do you mean the number of bytes transferred in that function call,
with that file handle, with that session handle, or something else?

>
>> If I upload a file of 200K all in one call to libssh2_sftp_write and
>> it returns 30K when it actually uploaded all 200K, what does the 30K
>> return value mean?
>
> It means that libssh2 has sent some data but not all, and you need to
> call libssh2 again.
That is what I thought it meant, but, even if I do not call _write
again, all 200K bytes show up in the file on the server.

>
>
>> > I'm not sure why yours are limited to 2K but I believe this is
>> > negotiated with the server (jump in here guys if I'm wrong) so
>> > it's possible your server is refusing to send bigger packets.
>
> I don't think this is negotiable.
>
>
>> That was my first guess, and it may be the case. After looking at
>> the documentation for the server-side SFTP tool and not finding any
>> information about a maximum packet size, I decided to look into
>> whether it was an issue with Libssh2.
>>
>> Documentation I read for the SFTP server utility to which the app
>> is connecting:
>> http://www.openbsd.org/cgi-bin/man.cgi?query=sftp-server&sektion=8
>
> In any case, OpenSSH sftp-server has pretty much zero tunables.
>
> Is the server OpenBSD, or OpenSSH portable on some other unix?
>
The server is Red Hat. Would you recommend trying a different SFTP
server utility?

Adam

>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 02:22:00 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q340LkmN011971;
	Wed, 4 Apr 2012 02:21:58 +0200
Received: from mail-qc0-f182.google.com (mail-qc0-f182.google.com
 [209.85.216.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q340Lh29011731
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 02:21:44 +0200
Received: by qcsg15 with SMTP id g15so202194qcs.41
 for <libssh2-devel@cool.haxx.se>; Tue, 03 Apr 2012 17:21:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:sender:in-reply-to:references:date
 :x-google-sender-auth:message-id:subject:from:to:content-type;
 bh=5eDAFWJK2VzCcZI59QI/+Vdbc8D7KZ5LgS0rycHUtqw=;
 b=tn4ggkQ8O6vzHbxbbfHRVnMjrptxIf4KD9e7PqTty28BL0WTZfCDwjDSkY4ycEgyY2
 WIqpH/vsABwxq5opkW65tO1P92Grp4f6QV/hO5H4j7E4O4pcOxwwPkphFHYXplErB9xj
 /1GmX6Bl57BehHcocGfTZRn+CYGSYfp66jc1wYXmMcv/0JLYZhG7S+Y+S+aIWqQ+V3Hm
 pJV4fF4KJyrOXbgkwCmi6EkL4Hy3MlFRbBsdjn1NHd4Pj0V/H8GC7rfhV/s4LR90z2Q9
 u13PnWZbSnDQOEHUsLb1yVszLJw/hHIzUrZQAl60IpIThytd7irVpiYXgxLjdFhm6yUH
 ucEw==
MIME-Version: 1.0
Received: by 10.224.181.197 with SMTP id bz5mr19854346qab.64.1333498899526;
 Tue, 03 Apr 2012 17:21:39 -0700 (PDT)
Received: by 10.229.144.211 with HTTP; Tue, 3 Apr 2012 17:21:39 -0700 (PDT)
In-Reply-To: <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
Date: Wed, 4 Apr 2012 01:21:39 +0100
X-Google-Sender-Auth: OXzLmFaVTghP0wlDEPZzwwKbHqM
Message-ID: <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
From: Alexander Lamaison <swish@lammy.co.uk>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 4 April 2012 00:12, Adam Craig <adamgcraig@accessnoexcuse.org> wrote:
> Mr. Stenberg,
>
> On 4/3/12, Daniel Stenberg <daniel@haxx.se> wrote:
>> On Tue, 3 Apr 2012, Adam Craig wrote:
>>
>>> If I upload a file of 200K all in one call to libssh2_sftp_write and it
>>> returns 30K when it actually uploaded all 200K, what does the 30K return
>>> value mean?
>>
>> It means 30K was sent off and that you need to call it again with the
>> remaining 170K. In a very similar fashion to how write() and similar
>> function
>> calls work.
>>
> This is what I had originally interpreted it to mean, but, when I
> tested it, even if my application did not call libssh2_sftp_write
> again with the remaining 170K, the whole 200K still show up on the
> server, even though the function only returned 30K on the first call.
> That is, the amount of data it reported sending was less than what
> actually showed up on the server.

That's ok.  Just keep calling libssh2_sftp_write until the total of
all the calls adds up to the amount you wanted to write. What's
happening here is that libssh2 did 'write ahead' meaning it sent of a
large number of packets to the server but didn't wait for them all to
be acknowleged before returning.  In this case it looks like the first
packet (usually around 30K big) was acknowleged and while it returned
the others arrived at the server.  You still have to keep calling
libssh2_sftp_write so that libssh2 can collect (and eventually flush)
all the acknowledgements.

In short, just forget about what has actually arrived at the server
and pretend libssh2_sftp_write is telling the truth.

>>> Does the documentation explain this somewhere?
>>> All te information on this I could find was
>>> http://www.libssh2.org/libssh2_sftp_write.html:
>>> "RETURN VALUE
>>>
>>> Actual number of bytes written or negative on failure.
>>
>> Based on your questions, I figure we need to expand this to explain it with
>> more detail!

We do!  In particular, I think the documentation needs to stop
referring people to POSIX read/write and instead spell out exactly
what their behaviour is.

Alex

-- 
Swish - Easy SFTP for Windows Explorer (http://www.swish-sftp.org)
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 02:52:15 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q340q4OL000607;
	Wed, 4 Apr 2012 02:52:13 +0200
Received: from mail-pz0-f42.google.com (mail-pz0-f42.google.com
 [209.85.210.42])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q340q1IR000459
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 02:52:02 +0200
Received: by dang27 with SMTP id g27so328980dan.15
 for <libssh2-devel@cool.haxx.se>; Tue, 03 Apr 2012 17:51:57 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:x-originating-ip:in-reply-to:references:date
 :message-id:subject:from:to:content-type:x-gm-message-state;
 bh=7MwwwAsV7aeaNd37iL/539tNtlXxS83bpqzclCE4hvc=;
 b=I/HHf1rCkIvzVCCtQmhN/DxvsK0lcbUG/FErvKzsqRXGi9dH91tcCQnw8XvpkyAo8W
 dC/tKOqJE9LC9/y+0KVO16GSc1KHfUsuTGcLWqBRhPKfEmZsk0mz24HrWcxprDVA6UMC
 VTxG0HaGuCSrpun9iwFoIAZvRLzAIRr1yzGWbhhgXtNQ8V+8YRAFOjv1rNbNENPCycFJ
 wWE0wV8w3IsrOjy3/tIE9zW4i23FIWIhWbqZPQhZrI92kNSczINSyWzYuUWbUhHI3Xht
 u9VPC6Bn/84TlHPzB8ZdGFBcfvlqUHAiAR2Uy6qVU3xUJO8IZl0iWw0PL5vbUHnFqQSg
 UUCg==
MIME-Version: 1.0
Received: by 10.68.226.5 with SMTP id ro5mr32440534pbc.138.1333500717341; Tue,
 03 Apr 2012 17:51:57 -0700 (PDT)
Received: by 10.68.130.230 with HTTP; Tue, 3 Apr 2012 17:51:57 -0700 (PDT)
X-Originating-IP: [69.226.47.131]
In-Reply-To: <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
 <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
Date: Tue, 3 Apr 2012 17:51:57 -0700
Message-ID: <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
From: Adam Craig <adamgcraig@accessnoexcuse.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Gm-Message-State: ALoCoQlsV08wdAZtABI1VwDec2N1qjaKT5pqqatpfwT8ev66dSnYOv/fu0eFRtWLXIAOUposXUOS
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 4/3/12, Alexander Lamaison <swish@lammy.co.uk> wrote:
> On 4 April 2012 00:12, Adam Craig <adamgcraig@accessnoexcuse.org> wrote:
>> Mr. Stenberg,
>>
>> On 4/3/12, Daniel Stenberg <daniel@haxx.se> wrote:
>>> On Tue, 3 Apr 2012, Adam Craig wrote:
>>>
>>>> If I upload a file of 200K all in one call to libssh2_sftp_write and it
>>>> returns 30K when it actually uploaded all 200K, what does the 30K return
>>>> value mean?
>>>
>>> It means 30K was sent off and that you need to call it again with the
>>> remaining 170K. In a very similar fashion to how write() and similar
>>> function
>>> calls work.
>>>
>> This is what I had originally interpreted it to mean, but, when I
>> tested it, even if my application did not call libssh2_sftp_write
>> again with the remaining 170K, the whole 200K still show up on the
>> server, even though the function only returned 30K on the first call.
>> That is, the amount of data it reported sending was less than what
>> actually showed up on the server.
>
> That's ok.  Just keep calling libssh2_sftp_write until the total of
> all the calls adds up to the amount you wanted to write. What's
> happening here is that libssh2 did 'write ahead' meaning it sent of a
> large number of packets to the server but didn't wait for them all to
> be acknowleged before returning.  In this case it looks like the first
> packet (usually around 30K big) was acknowleged and while it returned
> the others arrived at the server.  You still have to keep calling
> libssh2_sftp_write so that libssh2 can collect (and eventually flush)
> all the acknowledgements.
>
> In short, just forget about what has actually arrived at the server
> and pretend libssh2_sftp_write is telling the truth.
>

Thank you. That makes sense. I will do as you suggest. This would be a
good thing to explain in the documentation for the function.

That still does not explain why the file downloads in 2K chunks, but
that might have something to do with the server. I will try a
different server-side program as soon as I can
 set up one.

-Adam

>>>> Does the documentation explain this somewhere?
>>>> All te information on this I could find was
>>>> http://www.libssh2.org/libssh2_sftp_write.html:
>>>> "RETURN VALUE
>>>>
>>>> Actual number of bytes written or negative on failure.
>>>
>>> Based on your questions, I figure we need to expand this to explain it
>>> with
>>> more detail!
>
> We do!  In particular, I think the documentation needs to stop
> referring people to POSIX read/write and instead spell out exactly
> what their behaviour is.
>
> Alex
>
> --
> Swish - Easy SFTP for Windows Explorer (http://www.swish-sftp.org)
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 03:44:33 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q341iKdt020273;
	Wed, 4 Apr 2012 03:44:31 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q341iIjp020261
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 03:44:18 +0200
Received: (qmail 29831 invoked by uid 501); 4 Apr 2012 01:44:19 -0000
Message-ID: <20120404014419.29830.qmail@stuge.se>
Date: Wed, 4 Apr 2012 03:44:19 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both
 the file size and the specified buffer size
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
 <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
 <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Adam Craig wrote:
> > In short, just forget about what has actually arrived at the server
> > and pretend libssh2_sftp_write is telling the truth.
> 
> Thank you. That makes sense. I will do as you suggest. This would
> be a good thing to explain in the documentation for the function.

I do not understand why anyone would want to do anything else.


> That still does not explain why the file downloads in 2K chunks,
> but that might have something to do with the server. I will try
> a different server-side program as soon as I can set up one.

You will find it difficult to find many other SFTP servers than
OpenSSH, but it's not a bad idea to try some different versions.
The newer the better, of course.

Also, you can build libssh2 with debug logging, and call
libssh2_trace(session, ~0); in order to get lots of debug output,
which among other things will show exactly what the server is
sending.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 08:52:44 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q346qL5k015836;
	Wed, 4 Apr 2012 08:52:40 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q346qJQ0015815
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 08:52:19 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q346qIeL015806
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 08:52:18 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Wed, 4 Apr 2012 08:52:18 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
In-Reply-To: <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204040848040.12939@tvnag.unkk.fr>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
 <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
 <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Tue, 3 Apr 2012, Adam Craig wrote:

> That still does not explain why the file downloads in 2K chunks, but that 
> might have something to do with the server. I will try a different 
> server-side program as soon as I can set up one.

Why is that an issue at all? That's just a detail of the libssh2 
implementation and nothing that your application should worry about, right?

see src/sftp.h:

#define MAX_SFTP_READ_SIZE 2000

2K is not a magic number in any way, but I did a series of SFTP transfer 
experiments with high latency high bandwidth transfers and I found this to be 
a decent size. You're free to experiment with it and tell us if you get 
different results. I wouldn't mind changing it if we find a better value, or 
somehow make it changable if we deem that to be a good idea.

As for documentation, now that you've learned how the functions work, please 
feel free to improve them and send us patches of the improvements.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 13:07:31 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34B73BQ002614;
	Wed, 4 Apr 2012 13:07:25 +0200
Received: from mail-qc0-f182.google.com (mail-qc0-f182.google.com
 [209.85.216.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34B70wL002427
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 13:07:01 +0200
Received: by qcsg15 with SMTP id g15so65634qcs.41
 for <libssh2-devel@cool.haxx.se>; Wed, 04 Apr 2012 04:06:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:sender:in-reply-to:references:date
 :x-google-sender-auth:message-id:subject:from:to:content-type
 :content-transfer-encoding;
 bh=Y8hrRKXCS9d3xlyKKwBlDGc1DoDajEUJ9mZRRJOsHaI=;
 b=l920h2b6PWhLMBplHMXfJ+L7piKrEKZPq1nF7u55bIC/Xf2v+C3AHpwozbY7KgJ3DY
 bH/NYcVDC9JD2Dy3+KBrEQBPmLDh442rZFud4h2MlJuFN3CO3rMc7Z6faMgF5MNjUDnQ
 7lifuuHCKDQo+TKRBmlVMRK+xvFd2JRzGJ8dnJcJLZtF6W/e3eRqztlGnff4fUF0JLAO
 15FzQlcrqTg3uEBvdDAibfL95ap39PsoteWQQZd+mBuFZWdBgzseWXY2oo9gsjU+MrBA
 X2X2Q0MgFM9jle1nJwKpJ9umLrSZpaOVv1IOoR0hfIGuhFUIP7L6n/MFFwsrTko3cbi3
 ltvQ==
MIME-Version: 1.0
Received: by 10.224.41.206 with SMTP id p14mr21726479qae.90.1333537614452;
 Wed, 04 Apr 2012 04:06:54 -0700 (PDT)
Received: by 10.229.144.211 with HTTP; Wed, 4 Apr 2012 04:06:54 -0700 (PDT)
In-Reply-To: <20120403204452.16663.qmail@earth.stuge.se>
References: <20120403204452.16663.qmail@earth.stuge.se>
Date: Wed, 4 Apr 2012 12:06:54 +0100
X-Google-Sender-Auth: WheSAzuzojHIjX2qammQfaAQ3sE
Message-ID: <CADyPeTOWzwRO4aws+A1tE5vX7+h5p4UPAQtig5PixsFLZcRJ4A@mail.gmail.com>
Subject: Re: libssh2 master acd9bd6 always do "forced" window updates
From: Alexander Lamaison <swish@lammy.co.uk>
To: libssh2-devel@cool.haxx.se
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q34B70wL002427
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id q34B73BQ002614

On 3 April 2012 21:44,  <libssh2@git.stuge.se> wrote:
> - Log -----------------------------------------------------------------
> commit acd9bd6104a8e9427293bcdf67b4850f7982b1d4
> Author: Daniel Stenberg <daniel@haxx.se>
> Commit: Daniel Stenberg <daniel@haxx.se>
>
>    always do "forced" window updates
>
>    When calling _libssh2_channel_receive_window_adjust() internally, we now
>    always use the 'force' option to prevent libssh2 to avoid sending the
>    update if the update isn't big enough.
>
>    It isn't fully analyzed but we have seen corner cases which made a
>    necessary window update not get send due to this and then the other side
>    doesn't send data our side then sits waiting for forever.
>
> diff --git a/src/channel.c b/src/channel.c
> index 5181f6f..63e5d5b 100644
> --- a/src/channel.c
> +++ b/src/channel.c
> @@ -1418,7 +1418,7 @@ _libssh2_channel_flush(LIBSSH2_CHANNEL *channel, int streamid)
>

... snip

Somehow, this fixes the problems on Windows where writing would block
after around 90MB.  I'm not sure I understand the logic but it works!

Alex

-- 
Swish - Easy SFTP for Windows Explorer (http://www.swish-sftp.org)

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 13:07:51 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34B7opJ002825;
	Wed, 4 Apr 2012 13:07:51 +0200
Received: from mail-qc0-f182.google.com (mail-qc0-f182.google.com
 [209.85.216.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34B7mP2002790
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 13:07:49 +0200
Received: by qcsg15 with SMTP id g15so66020qcs.41
 for <libssh2-devel@cool.haxx.se>; Wed, 04 Apr 2012 04:07:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:sender:in-reply-to:references:date
 :x-google-sender-auth:message-id:subject:from:to:content-type
 :content-transfer-encoding;
 bh=zZo6H6DLUHG61v/kK6tcGTnbhDk9uIljUWDgf9p+LlU=;
 b=IXt8tMZk3Q5N/6AvCNhD7KbaD4oKa4y42NOxmA9Dyt4AQLrT3M29nH4C1b0J1SCQgo
 NhYuwHfKt+knKpDhW3z4eCEW6PhNODdUzfGfXyXpnNnst+SqosPfLWfCcZ42L/o6cyL4
 7O05YxgE42tX7hpOImPY4rxR4uOyN7mqjzT0HeWpHplVtdZBViydCNGiONaPf1hBR7/c
 3bGPZWXqgrJ7ltbtlmEkDSwa3EP2lzqyKgqziTO2G2tlQi/EgbWDcP83Tn9x1SbKhlz8
 zPtsy8QRhDRZmY1e5JwmcN+KBBi8Z+qefVjg5uU7Sn4R5jeXOkPLunZeKgLQRpdVHzZ2
 sZ1g==
MIME-Version: 1.0
Received: by 10.224.181.197 with SMTP id bz5mr21831919qab.64.1333537663895;
 Wed, 04 Apr 2012 04:07:43 -0700 (PDT)
Received: by 10.229.144.211 with HTTP; Wed, 4 Apr 2012 04:07:43 -0700 (PDT)
In-Reply-To: <CADyPeTOWzwRO4aws+A1tE5vX7+h5p4UPAQtig5PixsFLZcRJ4A@mail.gmail.com>
References: <20120403204452.16663.qmail@earth.stuge.se>
 <CADyPeTOWzwRO4aws+A1tE5vX7+h5p4UPAQtig5PixsFLZcRJ4A@mail.gmail.com>
Date: Wed, 4 Apr 2012 12:07:43 +0100
X-Google-Sender-Auth: -6DNLtnoQP7SL5n7FNy2woqt41E
Message-ID: <CADyPeTO=__PONHXN0TGW+sms--D+_sLpFnWjetucxzd90=7vNg@mail.gmail.com>
Subject: Re: libssh2 master acd9bd6 always do "forced" window updates
From: Alexander Lamaison <swish@lammy.co.uk>
To: libssh2-devel@cool.haxx.se
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q34B7mP2002790
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id q34B7opJ002825

On 4 April 2012 12:06, Alexander Lamaison <swish@lammy.co.uk> wrote:
> On 3 April 2012 21:44,  <libssh2@git.stuge.se> wrote:
>> - Log -----------------------------------------------------------------
>> commit acd9bd6104a8e9427293bcdf67b4850f7982b1d4
>> Author: Daniel Stenberg <daniel@haxx.se>
>> Commit: Daniel Stenberg <daniel@haxx.se>
>>
>>    always do "forced" window updates
>>
>>    When calling _libssh2_channel_receive_window_adjust() internally, we now
>>    always use the 'force' option to prevent libssh2 to avoid sending the
>>    update if the update isn't big enough.
>>
>>    It isn't fully analyzed but we have seen corner cases which made a
>>    necessary window update not get send due to this and then the other side
>>    doesn't send data our side then sits waiting for forever.
>>
>> diff --git a/src/channel.c b/src/channel.c
>> index 5181f6f..63e5d5b 100644
>> --- a/src/channel.c
>> +++ b/src/channel.c
>> @@ -1418,7 +1418,7 @@ _libssh2_channel_flush(LIBSSH2_CHANNEL *channel, int streamid)
>>
>
> ... snip
>
> Somehow, this fixes the problems on Windows where writing would block
> after around 90MB.  I'm not sure I understand the logic but it works!

I should have said by 'writing' I mean libssh2_sftp_write.

Alex

-- 
Swish - Easy SFTP for Windows Explorer (http://www.swish-sftp.org)

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 13:16:02 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34BG0Xi007369;
	Wed, 4 Apr 2012 13:16:02 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34BFwcv007361
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 13:15:58 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q34BFwc9007358
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 13:15:58 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Wed, 4 Apr 2012 13:15:58 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2 master acd9bd6 always do "forced" window updates
In-Reply-To: <CADyPeTOWzwRO4aws+A1tE5vX7+h5p4UPAQtig5PixsFLZcRJ4A@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204041309100.6325@tvnag.unkk.fr>
References: <20120403204452.16663.qmail@earth.stuge.se>
 <CADyPeTOWzwRO4aws+A1tE5vX7+h5p4UPAQtig5PixsFLZcRJ4A@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Wed, 4 Apr 2012, Alexander Lamaison wrote:

> Somehow, this fixes the problems on Windows where writing would block after 
> around 90MB.  I'm not sure I understand the logic but it works!

Lovely. I'm not entirely sure why this fixes the problem we were chasing (on 
IRC). It might be as trivial as LIBSSH2_CHANNEL_MINADJUST being too small so 
that the remote at some point wants more space to be available before it sends 
more.

Right now I went with "safe and seems to work" rather than "fully analyzed and 
optimized".

The way the channel window updates can be done without "force" set (to avoid 
small unnecessary updates) should also be less relevant these days as we do 
less spurious updates than we used to do previously as the code flow has been 
changed a bit recently when it comes to how the window updates are done. 
Meaning there might not even be a noticable impact on performance at all.

I'm aiming for a 1.4.1 release ASAP.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 22:20:09 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34KJoUC028987;
	Wed, 4 Apr 2012 22:20:07 +0200
Received: from mail-pz0-f42.google.com (mail-pz0-f42.google.com
 [209.85.210.42])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34KJlqa028936
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 22:19:48 +0200
Received: by dang27 with SMTP id g27so808927dan.15
 for <libssh2-devel@cool.haxx.se>; Wed, 04 Apr 2012 13:19:43 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:x-originating-ip:in-reply-to:references:date
 :message-id:subject:from:to:content-type:x-gm-message-state;
 bh=YZUzu0bapHKvv6xrZJI7uIPC4h++0aePShBjQUErMMI=;
 b=a+09nHwwd+813hZJpkiLuCdHBBIx6FsC/q3GpIMhxQQlS8+F8dse4E+aA4Kr69TrQ4
 fd4YdJ6HaPO2ng8fSVA60kO3csai6r3PsIxkk2PiYuseE104bNvMsZg9ovmCKmHIyulM
 qQxRCMir2GpOp/7LA3lQn8kwt8vLrXu3+AF6SqZpAU1Galbw/1VtpmQE3acQmQlIwYB9
 qvp0WPpDMkbSYC+xRcWw7y2SwFi+7C20+uesrMvdiE3/HI1DneQNcf+OO3Qq9GVGwXWH
 +WTxU9lmS6ffBT44tHP+fefKvcEjK1144uSruMrYFH3WONb7Rad1u9o5aNMWVgR6mYcj
 f55Q==
MIME-Version: 1.0
Received: by 10.68.129.133 with SMTP id nw5mr540780pbb.159.1333570782919; Wed,
 04 Apr 2012 13:19:42 -0700 (PDT)
Received: by 10.68.130.230 with HTTP; Wed, 4 Apr 2012 13:19:42 -0700 (PDT)
X-Originating-IP: [69.226.47.131]
In-Reply-To: <alpine.DEB.2.00.1204040848040.12939@tvnag.unkk.fr>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
 <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
 <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
 <alpine.DEB.2.00.1204040848040.12939@tvnag.unkk.fr>
Date: Wed, 4 Apr 2012 13:19:42 -0700
Message-ID: <CAMS93LD7J2GLDi4NC9Kxde9Ee5cZZQDbsUHmSH_V9-3pTyLmKQ@mail.gmail.com>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
From: Adam Craig <adamgcraig@accessnoexcuse.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Gm-Message-State: ALoCoQmAF4wVQmUOxd0oT/NoO9P5e4EITpr498/OBJ+ESlLfyhopOMmDcx3jW8TGB65NTy37NQ71
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 4/3/12, Daniel Stenberg <daniel@haxx.se> wrote:
> On Tue, 3 Apr 2012, Adam Craig wrote:
>
>> That still does not explain why the file downloads in 2K chunks, but that
>> might have something to do with the server. I will try a different
>> server-side program as soon as I can set up one.
>
> Why is that an issue at all? That's just a detail of the libssh2
> implementation and nothing that your application should worry about, right?
>
> see src/sftp.h:
>
> #define MAX_SFTP_READ_SIZE 2000
>
> 2K is not a magic number in any way, but I did a series of SFTP transfer
> experiments with high latency high bandwidth transfers and I found this to
> be
> a decent size. You're free to experiment with it and tell us if you get
> different results. I wouldn't mind changing it if we find a better value, or
> somehow make it changable if we deem that to be a good idea.
>
> As for documentation, now that you've learned how the functions work, please
> feel free to improve them and send us patches of the improvements.
>

Thank you. That resolves my original question. I suppose most users of
the API would not need to worry about chunk size. In my case, speed is
a factor, and I wanted to see how downloading in larger chunks would
affect performance. My understanding is that using larger packets and
thus uploading or downloading in fewer calls can be faster up to a
point but that it also increases the cost of lost packets and
increases the chance that some of the data in a given packet will
become corrupted in transit. I will try some other sizes and see.

Adam Craig

> --
>
>   / daniel.haxx.se
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 22:53:32 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34KrORG019001;
	Wed, 4 Apr 2012 22:53:31 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34KrMhm018984
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 22:53:22 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q34KrMek018981
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 22:53:22 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Wed, 4 Apr 2012 22:53:22 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: ANNOUNCE: libssh2 version 1.4.1
Message-ID: <alpine.DEB.2.00.1204042251540.18281@tvnag.unkk.fr>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Hi friends,

I'm happy to tell you that I've just uploaded libssh2 1.4.1 to the web site 
where it sits waiting for you as usual:

 	http://www.libssh2.org/

libssh2 1.4.1

This release includes the following bugfixes:

  o build error with gcrypt backend
  o always do "forced" window updates to avoid corner case stalls
  o aes: the init function fails when OpenSSL has AES support
  o transport_send: Finish in-progress key exchange before sending data
  o channel_write: acknowledge transport errors
  o examples/x11.c: Make sure sizeof passed to read operation is correct
  o examples/x11.c:,Fix suspicious sizeof usage
  o sftp_packet_add: verify the packet before accepting it
  o SFTP: preserve the original error code more
  o sftp_packet_read: adjust window size as necessary
  o Use safer snprintf rather then sprintf in several places
  o Define and use LIBSSH2_INVALID_SOCKET instead of INVALID_SOCKET
  o sftp_write: cannot return acked data *and* EAGAIN
  o sftp_read: avoid data *and* EAGAIN
  o libssh2.h: Add missing prototype for libssh2_session_banner_set()

This release would not have looked like this without help, code, reports and
advice from friends like these:

  Armen Babakhanian, Paul Howarth, Matthew Booth, Steven Dake, Peter Stuge,
  Matt Lawson, Tom Weber, Alexander Lamaison

         Thanks! (and sorry if I forgot to mention someone)

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 22:57:08 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34Kv6Np021709;
	Wed, 4 Apr 2012 22:57:07 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34Kv3WH021548
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 22:57:04 +0200
Received: by iahk25 with SMTP id k25so953332iah.41
 for <libssh2-devel@cool.haxx.se>; Wed, 04 Apr 2012 13:56:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:sender:in-reply-to:references:from:date
 :x-google-sender-auth:message-id:subject:to:content-type;
 bh=ZPJYt3m6gBYak9FSD16mSkItKs91UJMS3L195d+Bu2g=;
 b=K49/MvHtXkFFtD/LadZUDQd2cKyLWe78zxZGEwj/a7Cj9nDqpAHzXSa6VcUbZwiON/
 gLx1twti74P9NilIBs/KSw+HPJchU186HqAdecgIDb8qAaUPWu17JQGSwUqkTglyMs+C
 U9q3SdLDy6yijQZV948DnLJFFnRkXqGET6hh6+4HhzJcw2MztQ0khha5bLVE/rpzWwfv
 RrhWvilHPGoiSUfqOjKHTaMrl8wCqKGs4tgH9pxR8yCU9rGhGblOmsTmsJYEqcnuj4Cc
 q5Mb0DWtlZeV+s3Wrx+6AIle1zM95EfqDT7uEMzpmPdrAP17gaxsCycwHz81m+vetJ7/
 lq6g==
Received: by 10.42.203.67 with SMTP id fh3mr10955088icb.44.1333573018279; Wed,
 04 Apr 2012 13:56:58 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.42.96.6 with HTTP; Wed, 4 Apr 2012 13:56:37 -0700 (PDT)
In-Reply-To: <CACOXMX5_kTfx1Zyxoeg5VQy=hUU4deWDHRja7oQZnbs7w3vQxw@mail.gmail.com>
References: <1332002997-73770-1-git-send-email-mitchell.hashimoto@gmail.com>
 <20120317173127.20564.qmail@stuge.se>
 <CACOXMX7knskL1eQCStjkz=1Dijvp=0nPzwpVpWUu30jas1pGGA@mail.gmail.com>
 <20120317174444.21543.qmail@stuge.se>
 <CACOXMX5EnUq0c04O8pq5wBb=pGeUMQQB9u=MNGgRZLVrteYaeA@mail.gmail.com>
 <20120317191333.27982.qmail@stuge.se>
 <CACOXMX5_kTfx1Zyxoeg5VQy=hUU4deWDHRja7oQZnbs7w3vQxw@mail.gmail.com>
From: Mitchell Hashimoto <mitchell.hashimoto@gmail.com>
Date: Wed, 4 Apr 2012 13:56:37 -0700
X-Google-Sender-Auth: XLuBOOUYZL-wBh8iFgG-HXnqKbw
Message-ID: <CACOXMX54TOYRF0mQ3YxXBQec_yQEC-1XZN2u_6YwusXT=yMT5Q@mail.gmail.com>
Subject: Re: [PATCH] libssh2_channel_request_auth_agent
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Sat, Mar 17, 2012 at 12:49 PM, Mitchell Hashimoto
<mitchell.hashimoto@gmail.com> wrote:
> Peter,
>
> On Sat, Mar 17, 2012 at 12:13 PM, Peter Stuge <peter@stuge.se> wrote:
>> Mitchell Hashimoto wrote:
>>> > Not only the man page, look at how the existing API works, and make
>>> > the new one for agent forwarding channels work the same.
>>>
>>> Hm, I took a look at libssh2_channel_process_startup and I'm not quite
>>> sure I see the difference in what I'm doing vs what it is doing? What
>>> was the problem you saw?
>>
>> There is no way you can reuse the existing code?
>
> Unless I'm missing something then no, it looks different enough that I
> can't. I based most of my code from channel_request_pty since that is
> a very similar call (but again, too different to share code).
>
> If this isn't reusable, and besides the example code, are there any
> issues you can see with the patch? Would it be possible to get this
> patch merged and I can submit another patch to clean up the examples?
>
> Best,
> Mitchell

Resurrecting this because I realized I never got a response here. What
is the status of this patch? Was there some issue somewhere I was
supposed to be looking at?

Mitchell

>
>>
>>
>> //Peter
>> _______________________________________________
>> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr  4 23:04:33 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34L4TSt026993;
	Wed, 4 Apr 2012 23:04:32 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34L4Ror026970
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 23:04:27 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q34L4RAT026965
 for <libssh2-devel@cool.haxx.se>; Wed, 4 Apr 2012 23:04:27 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Wed, 4 Apr 2012 23:04:27 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
In-Reply-To: <CAMS93LD7J2GLDi4NC9Kxde9Ee5cZZQDbsUHmSH_V9-3pTyLmKQ@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204042253480.18281@tvnag.unkk.fr>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
 <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
 <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
 <alpine.DEB.2.00.1204040848040.12939@tvnag.unkk.fr>
 <CAMS93LD7J2GLDi4NC9Kxde9Ee5cZZQDbsUHmSH_V9-3pTyLmKQ@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Wed, 4 Apr 2012, Adam Craig wrote:

> Thank you. That resolves my original question. I suppose most users of the 
> API would not need to worry about chunk size.

The API is designed and intended to make _no_ users have to care about it.

> In my case, speed is a factor

I suspect most users want it to run as fast as possible!

> I wanted to see how downloading in larger chunks would affect performance. 
> My understanding is that using larger packets and thus uploading or 
> downloading in fewer calls can be faster up to a point but that it also 
> increases the cost of lost packets and increases the chance that some of the 
> data in a given packet will become corrupted in transit. I will try some 
> other sizes and see.

You need the complete picture of what is going on to be able to draw such 
conclusions and given the above explanation it seems to me that you're 
simplifying way too much.

Since SFTP packets need to be individually acked, and libssh2 won't consider 
such a packet complete until the ACK has been received, you need to consider 
how fast you can send N bytes over a connection with a certain RTT and a 
maximum packet size of 32K or so, using this API.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Apr  5 01:14:30 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q34NEFop013946;
	Thu, 5 Apr 2012 01:14:28 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q34NEErY013936
 for <libssh2-devel@cool.haxx.se>; Thu, 5 Apr 2012 01:14:14 +0200
Received: (qmail 3890 invoked by uid 501); 4 Apr 2012 23:14:15 -0000
Message-ID: <20120404231415.3889.qmail@stuge.se>
Date: Thu, 5 Apr 2012 01:14:15 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both
 the file size and the specified buffer size
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
 <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
 <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
 <alpine.DEB.2.00.1204040848040.12939@tvnag.unkk.fr>
 <CAMS93LD7J2GLDi4NC9Kxde9Ee5cZZQDbsUHmSH_V9-3pTyLmKQ@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CAMS93LD7J2GLDi4NC9Kxde9Ee5cZZQDbsUHmSH_V9-3pTyLmKQ@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Adam Craig wrote:
> My understanding is that using larger packets and thus uploading or
> downloading in fewer calls can be faster up to a point

SFTP is fairly low-level. Consider that across the internet you
rarely have larger MTUs than 1500 bytes.


> I will try some other sizes and see.

Looking forward to your results! Will you try both short and long
links?


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Apr  5 13:09:52 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q35B9TNj016079;
	Thu, 5 Apr 2012 13:09:48 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q35B9Si8016069
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 5 Apr 2012 13:09:28 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q35B9Sjk016066
 for <libssh2-devel@cool.haxx.se>; Thu, 5 Apr 2012 13:09:28 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Thu, 5 Apr 2012 13:09:27 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: [PATCH] libssh2_channel_request_auth_agent
In-Reply-To: <CACOXMX54TOYRF0mQ3YxXBQec_yQEC-1XZN2u_6YwusXT=yMT5Q@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204051304560.14659@tvnag.unkk.fr>
References: <1332002997-73770-1-git-send-email-mitchell.hashimoto@gmail.com>
 <20120317173127.20564.qmail@stuge.se>
 <CACOXMX7knskL1eQCStjkz=1Dijvp=0nPzwpVpWUu30jas1pGGA@mail.gmail.com>
 <20120317174444.21543.qmail@stuge.se>
 <CACOXMX5EnUq0c04O8pq5wBb=pGeUMQQB9u=MNGgRZLVrteYaeA@mail.gmail.com>
 <20120317191333.27982.qmail@stuge.se>
 <CACOXMX5_kTfx1Zyxoeg5VQy=hUU4deWDHRja7oQZnbs7w3vQxw@mail.gmail.com>
 <CACOXMX54TOYRF0mQ3YxXBQec_yQEC-1XZN2u_6YwusXT=yMT5Q@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Wed, 4 Apr 2012, Mitchell Hashimoto wrote:

> Resurrecting this because I realized I never got a response here. What is 
> the status of this patch? Was there some issue somewhere I was supposed to 
> be looking at?

I read the question roughly like this:

   Why does this function take an existing channel and use it, rather than
   creating a completely new channel in the same style many other functions
   work?

Is there a particular benefit from using an existing channel rather than to 
creating a new one?

I haven't read up the specs on this thing, but after you've sent this auth 
agent request over the channel, is there a limitation to how this channel is 
to be used or what is the application supposed to do (or not to do) with the 
channel after a successful return?

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Apr  7 07:27:32 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q375R3F9001372;
	Sat, 7 Apr 2012 07:27:26 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q375R0K2001218
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Sat, 7 Apr 2012 07:27:00 +0200
Received: by iahk25 with SMTP id k25so4498652iah.41
 for <libssh2-devel@cool.haxx.se>; Fri, 06 Apr 2012 22:26:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:sender:in-reply-to:references:from:date
 :x-google-sender-auth:message-id:subject:to:content-type
 :content-transfer-encoding;
 bh=HczRy4Fib4pCoA31NMWYh9jOVYXnH/4ggczQjaG7J18=;
 b=aYHbKe/QGsl9pPt5EMi1wo3ginZMPFT+Zvpb6unastnYf4tIxYWFgtpL1Jc2P1y3BB
 NNQ4r48wzioim8gjUYQ3anjYKGv2eNj0AhF8fjrMKPxSWk0W+mR8Jvv09O/sc/LLSfEp
 1ik9RAv30m9tIeyVF8oxYNvSnTriN9ucCdqKJEuq4gRBobzZA7BXY2BLCe8hBCxX+M1x
 /N9G3URTmQts+JGnpv/XOPqtadWRPOA/lcu6KBqLf/ibxbH3u4Hp7oD72SrzF60CGSQP
 0+wV5tYNF7LxdA6rfZ4++RACMzl4LlvQyLKatHKpvgiYovFWy5Doa+ZTqoyEcckPv/kd
 btow==
Received: by 10.50.149.131 with SMTP id ua3mr318552igb.41.1333776414698; Fri,
 06 Apr 2012 22:26:54 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.42.96.6 with HTTP; Fri, 6 Apr 2012 22:26:34 -0700 (PDT)
In-Reply-To: <alpine.DEB.2.00.1204051304560.14659@tvnag.unkk.fr>
References: <1332002997-73770-1-git-send-email-mitchell.hashimoto@gmail.com>
 <20120317173127.20564.qmail@stuge.se>
 <CACOXMX7knskL1eQCStjkz=1Dijvp=0nPzwpVpWUu30jas1pGGA@mail.gmail.com>
 <20120317174444.21543.qmail@stuge.se>
 <CACOXMX5EnUq0c04O8pq5wBb=pGeUMQQB9u=MNGgRZLVrteYaeA@mail.gmail.com>
 <20120317191333.27982.qmail@stuge.se>
 <CACOXMX5_kTfx1Zyxoeg5VQy=hUU4deWDHRja7oQZnbs7w3vQxw@mail.gmail.com>
 <CACOXMX54TOYRF0mQ3YxXBQec_yQEC-1XZN2u_6YwusXT=yMT5Q@mail.gmail.com>
 <alpine.DEB.2.00.1204051304560.14659@tvnag.unkk.fr>
From: Mitchell Hashimoto <mitchell.hashimoto@gmail.com>
Date: Fri, 6 Apr 2012 22:26:34 -0700
X-Google-Sender-Auth: aPNoBLshTCgdFfysJNZ2lEGdctU
Message-ID: <CACOXMX6X0BZzi8pPGhpaNn__P8mYTV07=WCVC2MpEAFSjCqpkw@mail.gmail.com>
Subject: Re: [PATCH] libssh2_channel_request_auth_agent
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q375R0K2001218
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id q375R3F9001372

On Thu, Apr 5, 2012 at 4:09 AM, Daniel Stenberg <daniel@haxx.se> wrote:
> On Wed, 4 Apr 2012, Mitchell Hashimoto wrote:
>
>> Resurrecting this because I realized I never got a response here. What is
>> the status of this patch? Was there some issue somewhere I was supposed to
>> be looking at?
>
>
> I read the question roughly like this:
>
>  Why does this function take an existing channel and use it, rather than
>  creating a completely new channel in the same style many other functions
>  work?
>
> Is there a particular benefit from using an existing channel rather than to
> creating a new one?
>

Ah got it, I'll take a look again, sorry about that.

> I haven't read up the specs on this thing, but after you've sent this auth
> agent request over the channel, is there a limitation to how this channel is
> to be used or what is the application supposed to do (or not to do) with the
> channel after a successful return?

There is no limitation at all. The channel is still fully functional.

Best,
Mitchell

>
> --
>
>  / daniel.haxx.se
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 11 09:13:53 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3B7DSPY023103;
	Wed, 11 Apr 2012 09:13:47 +0200
Received: from smtp.volz.ua (smtp.volz.ua [213.160.134.23])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3B7DQZZ023017
 for <libssh2-devel@cool.haxx.se>; Wed, 11 Apr 2012 09:13:26 +0200
Received: from [10.20.0.32] (unknown [213.160.140.228])
 by smtp.volz.ua (Postfix) with ESMTP id EE8907AEB33
 for <libssh2-devel@cool.haxx.se>; Wed, 11 Apr 2012 10:13:21 +0300 (EEST)
Message-ID: <4F852F11.4030007@i.ua>
Date: Wed, 11 Apr 2012 10:13:21 +0300
From: Oleksiy Zagorskyi <zalex_ua@i.ua>
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64;
 rv:11.0) Gecko/20120327 Thunderbird/11.0.1
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: [BUG]: perform check/rewrite the function to not hang if the library
 receives a path to a folder in the "publickey" value
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

NOTE: it's second attempt to send this mail *after* subscribing and 
waiting 16 hours after first sent mail.

First of all, you can find more details (including some attachments) 
here: https://support.zabbix.com/browse/ZBX-4857


When any tool  passes a path to a directory as the "publickey" value - 
the tool hangs ! and consumes 100% of cpu/core.
A strace command shows constant attempts to read a directory with crazy 
speed:
# strace -p 18694
read(10, 0x7fdc565fa000, 4096)          = -1 EISDIR (Is a directory)
read(10, 0x7fdc565fa000, 4096)          = -1 EISDIR (Is a directory)
read(10, 0x7fdc565fa000, 4096)          = -1 EISDIR (Is a directory)
read(10, 0x7fdc565fa000, 4096)          = -1 EISDIR (Is a directory)
...


At the link mentioned above I attached two outputs of "ltrace -tt -n2 -s 
80 -T -S  -p <PID>"

ltrace_12507_empty_pub_key_ssh2-141ssl.out - with the empty **public** 
key *in zabbix configuration*
where we can see that problem occurs in the libssh2 namely.
When the key file field is empty - zabbix_server pass only path to 
folder (/home/zabbix/.ssh/) to the libssh2's 
"libssh2_userauth_publickey_fromfile_ex" function and it hangs as I 
explained above !
Moreover, I have reproduced this bug without zabbix_server (libssh2 has 
many code examples which can be used).

ltrace_12741_empty_priv_key_ssh2-141ssl.out - with the empty **private** 
key *in zabbix configuration*
we can see than libssh2's function "file_read_privatekey" doesn't affect 
by this problem when the *private* key file it's only a path to a folder.


I used latest release 1.4.1 of libssh2 (from April 4, 2012) compiled 
from sources.

I suppose the problem in a libssh2's function "file_read_publickey"
lines:
     /* Read Public Key */
     fd = fopen(pubkeyfile, "r");
     if (!fd) {
         return _libssh2_error(session, LIBSSH2_ERROR_FILE,
                               "Unable to open public key file");
     }
     while (!feof(fd) && (c = fgetc(fd)) != '\r' && c != '\n')
         pubkey_len++;

Would be nice to perform check/rewrite the function to not hang if the 
library receives a path to a folder in the "publickey" value.

Thanks.

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 11 11:39:49 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3B9dRRR021463;
	Wed, 11 Apr 2012 11:39:45 +0200
Received: from mail-yx0-f182.google.com (mail-yx0-f182.google.com
 [209.85.213.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3B9dPqp021345
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 11 Apr 2012 11:39:26 +0200
Received: by yenl9 with SMTP id l9so361692yen.41
 for <libssh2-devel@cool.haxx.se>; Wed, 11 Apr 2012 02:39:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to:content-type;
 bh=Ft7YAIF4xnBNXFj8ZWvsdoSaSkx17tDAvyZgQBr6TlU=;
 b=oPl9iWBQzcbQ4eBblV0MzvfgYJOsGXc28NkgNY+2Q+qJ93wCqIHqOcLsV+Ix0enWZJ
 0XHRU+/unYqaSrn2ZAO+ajWmEYNDzx7a6DfPOJVPnxqJjqnSBTFLWB77ynlNnG2zRhm2
 3Aawz7w1vRf0AcgkL0HTqq/DFW3uYHXADpranB4ikqwtFKgPoPSpvQTtXIBzsmi9yTX5
 H87u4p7G8ocgbYu5uhIeYiaI86pbRk7PeeWWhmzCcE48hEi9wCpfC3OpUX5zSCeG37ce
 Na9UhiwKLHelfD54j+Rk5hHqvOQqHxgb9oA8+NyvBVt9LX8bUZ53ksqZITBFV0tWb6nv
 mRcg==
MIME-Version: 1.0
Received: by 10.236.46.195 with SMTP id r43mr8736313yhb.85.1334137159855; Wed,
 11 Apr 2012 02:39:19 -0700 (PDT)
Received: by 10.147.168.1 with HTTP; Wed, 11 Apr 2012 02:39:19 -0700 (PDT)
Date: Wed, 11 Apr 2012 13:39:19 +0400
Message-ID: <CAJ9p1N6VbyxATjH3i0R9jF1hC0ZbDp-VNHCUGhPirBqgECu05w@mail.gmail.com>
Subject: Remote using command line
From: Dmitry <russiankickingbear@gmail.com>
To: libssh2-devel@cool.haxx.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0421224539=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0421224539==
Content-Type: multipart/alternative; boundary=20cf303bfad07ead8604bd6403b3

--20cf303bfad07ead8604bd6403b3
Content-Type: text/plain; charset=ISO-8859-1

Hi!

Try to send to remote server command "tar cf test.tar test_file.txt"
As a result of this operation creates archive test.tar in folder
/home/username. But I want to be able to execute commands not only in
/home/username directory, but in any directory. How can I implement this
feature? Before create archive i tried to send command like "cd /
target_directory" But as a result archive anyway created in /home/username
directory.

Dmitry

--20cf303bfad07ead8604bd6403b3
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div><font><font>Hi!<br><br>Try to send to remote server command &quot;tar =
cf test.tar test_file.txt&quot;<br>As a result of this operation creates ar=
chive test.tar in folder /home/username. But I want to be able to execute c=
ommands not only in /home/username directory, but in any directory. How can=
 I implement this feature?  Before create archive i tried to send command l=
ike &quot;cd / target_directory&quot; But as a result archive anyway create=
d in  /home/username directory.  <br>
<br>Dmitry</font></font><font></font></div>

--20cf303bfad07ead8604bd6403b3--

--===============0421224539==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0421224539==--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 11 12:23:17 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3BAMw83026355;
	Wed, 11 Apr 2012 12:23:11 +0200
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3BAMu9I026337
 for <libssh2-devel@cool.haxx.se>; Wed, 11 Apr 2012 12:22:57 +0200
Received: from int-mx02.intmail.prod.int.phx2.redhat.com
 (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12])
 by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q3BAMsNE023281
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
 Wed, 11 Apr 2012 06:22:54 -0400
Received: from kdudka.brq.redhat.com (kdudka.brq.redhat.com [10.34.24.8])
 by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id
 q3BAMrAY014987; Wed, 11 Apr 2012 06:22:54 -0400
From: Kamil Dudka <kdudka@redhat.com>
To: libssh2-devel@cool.haxx.se
Subject: Re: Remote using command line
Date: Wed, 11 Apr 2012 12:22:47 +0200
User-Agent: KMail/1.12.4 (Linux/2.6.32-238.el6.x86_64; KDE/4.3.4; x86_64; ; )
References: <CAJ9p1N6VbyxATjH3i0R9jF1hC0ZbDp-VNHCUGhPirBqgECu05w@mail.gmail.com>
In-Reply-To: <CAJ9p1N6VbyxATjH3i0R9jF1hC0ZbDp-VNHCUGhPirBqgECu05w@mail.gmail.com>
MIME-Version: 1.0
Message-Id: <201204111222.47485.kdudka@redhat.com>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12
Cc: Dmitry <russiankickingbear@gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Wednesday 11 April 2012 11:39:19 Dmitry wrote:
> Try to send to remote server command "tar cf test.tar test_file.txt"
> As a result of this operation creates archive test.tar in folder
> /home/username. But I want to be able to execute commands not only in
> /home/username directory, but in any directory. How can I implement this
> feature? Before create archive i tried to send command like "cd /
> target_directory" But as a result archive anyway created in /home/username
> directory.

How about specifying an absolute path to the archive?

Kamil
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 11 17:05:48 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3BF54gr020486;
	Wed, 11 Apr 2012 17:05:42 +0200
Received: from mail-gx0-f182.google.com (mail-gx0-f182.google.com
 [209.85.161.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3BF51IY019849
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 11 Apr 2012 17:05:02 +0200
Received: by ggnk4 with SMTP id k4so537991ggn.41
 for <libssh2-devel@cool.haxx.se>; Wed, 11 Apr 2012 08:04:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=DjV5a7D4pzY7G2ea7nmNsm3Un5AupqSrwyydIQmnNBM=;
 b=SNu9MjP6DsQqDS/q05M+ScZgbB+5ZJTIDPrG6YvZzliVj790JVtveCvWAF7YGnwQmD
 d3YsqB0o24o8MZywp9IMFlpD7FeVAIawqYwIYQ3fBAOjVG2VtSJn6qflZPW+RDZqURSG
 FFE1dP1MrjfF9r7g3EL6BQFqIFIpM/RhZtBSQE1Xf3ANzPkF7Gk3gZBhXyxP9U3HYXKp
 QTVvXWCnuAnsJX2DyLE5Kiydb70mybnbwwXOgMzjJEBtnWQcWLVgV7zCDHUyAS8XDzNA
 WtDcJcN8gU5+qyMN+SHvALR1PeJ0Z1JW6HJx6dLSEwH4M97sATtLWH9IxbVBsqaYdu8S
 FBrg==
MIME-Version: 1.0
Received: by 10.236.170.165 with SMTP id p25mr13119414yhl.123.1334156696516;
 Wed, 11 Apr 2012 08:04:56 -0700 (PDT)
Received: by 10.147.168.1 with HTTP; Wed, 11 Apr 2012 08:04:56 -0700 (PDT)
In-Reply-To: <CAJ9p1N6VbyxATjH3i0R9jF1hC0ZbDp-VNHCUGhPirBqgECu05w@mail.gmail.com>
References: <CAJ9p1N6VbyxATjH3i0R9jF1hC0ZbDp-VNHCUGhPirBqgECu05w@mail.gmail.com>
Date: Wed, 11 Apr 2012 19:04:56 +0400
Message-ID: <CAJ9p1N6Wq2H0EqEBPbuudu__PGEobu0qjSxWB3-VxjLVrVNvSw@mail.gmail.com>
Subject: Re: Remote using command line
From: Dmitry <russiankickingbear@gmail.com>
To: libssh2-devel@cool.haxx.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1042512815=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============1042512815==
Content-Type: multipart/alternative; boundary=20cf305b0ab0f878f404bd688ff1

--20cf305b0ab0f878f404bd688ff1
Content-Type: text/plain; charset=ISO-8859-1

Ok. I read about channel and session in libssh. So, if i understood
correctly, one channel for one command. And if i change working directory
in one (like send "cd working_directory)", other channel will do not now
about my changes anything. So, if i want to do smth like this:
cd new_dir
tar cf test.tar test.txt
cd old_dir
i must to use the same channel.
Ok!
But this way leads me to LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED when call
libssh2_channel_exec(..)
So, what else i don't understand or don't know about libssh. And, maybe, i
try to solve problem, by using wrong way? If so, in what way i can remote
execute shell command in specified (by me) directory?

I would be very grateful for any advice.

2012/4/11 Dmitry <russiankickingbear@gmail.com>

> Hi!
>
> Try to send to remote server command "tar cf test.tar test_file.txt"
> As a result of this operation creates archive test.tar in folder
> /home/username. But I want to be able to execute commands not only in
> /home/username directory, but in any directory. How can I implement this
> feature? Before create archive i tried to send command like "cd /
> target_directory" But as a result archive anyway created in /home/username
> directory.
>
> Dmitry
>

--20cf305b0ab0f878f404bd688ff1
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div><font>Ok. I read about channel and session in libssh. So, if i underst=
ood correctly, one channel for one command. And if i change working directo=
ry in one (like send &quot;cd working_directory)&quot;, other channel will =
do not now about my changes anything. So, if i want to do smth like this:</=
font><br>
</div><div><font>cd new_dir<br></font></div><div><font>tar cf test.tar test=
.txt<br></font></div><div><font>cd old_dir<br></font></div><div><font>i mus=
t to use the same channel.<br></font></div><div><font>Ok!<br></font></div>
<div><font>But this way leads me to LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED wh=
en call libssh2_channel_exec(..)<br></font></div><div><font>So, what else i=
 don&#39;t understand or don&#39;t know about libssh. And, maybe, i try to =
solve problem, by using wrong way? If so, in what way i can remote execute =
shell command in specified (by me) directory?<br>
</font></div><div><font><br></font></div><div><font>I would be very gratefu=
l for any advice.<br></font></div><br><div class=3D"gmail_quote">2012/4/11 =
Dmitry <span dir=3D"ltr">&lt;<a href=3D"mailto:russiankickingbear@gmail.com=
">russiankickingbear@gmail.com</a>&gt;</span><br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div><font><font>Hi!<br><br>Try to send to r=
emote server command &quot;tar cf test.tar test_file.txt&quot;<br>As a resu=
lt of this operation creates archive test.tar in folder /home/username. But=
 I want to be able to execute commands not only in /home/username directory=
, but in any directory. How can I implement this feature?  Before create ar=
chive i tried to send command like &quot;cd / target_directory&quot; But as=
 a result archive anyway created in  /home/username directory.  <br>
<span class=3D"HOEnZb"><font color=3D"#888888">
<br>Dmitry</font></span></font></font></div>
</blockquote></div><br>

--20cf305b0ab0f878f404bd688ff1--

--===============1042512815==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1042512815==--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 11 18:56:14 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3BGu3hE003658;
	Wed, 11 Apr 2012 18:56:11 +0200
Received: from mail-wg0-f54.google.com (mail-wg0-f54.google.com [74.125.82.54])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3BGu1OZ003487
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 11 Apr 2012 18:56:01 +0200
Received: by wgbdq13 with SMTP id dq13so885183wgb.11
 for <libssh2-devel@cool.haxx.se>; Wed, 11 Apr 2012 09:55:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to:content-type;
 bh=klhqCq7/fJLfXzLVaIhZp8rtUR6j+ELy+RpU/vM0exE=;
 b=GNMg6frJJkFvbNr8AfEldJXnanbMywEtHKwZeOPkjsLQfiDYyZZUTvaZZFhoAlRNZt
 IWk0IGkvgEsKJJV/EoY9xOd0hNFKBT04cZvEfiERakVje4Emqpt6gzdvCZpHrvfRivNv
 H4L8FA3Yw37Z1bfNMxQFb/wIk+QkwZCFfLaiakwLE8cjctBBJEtnQ6uWIcEW3bircSVJ
 7g83grZn+HIY82TbstAykHELNRj8dUoxPe+NccID5Y6WuVsatZBr9z6aGdqs26WlBWZj
 G1k3v76ez6vRl/tYTZESmmi2YTR1T0iEXgfHUBB7/bxFMBTomb+79jwcapHcaK8uT8nr
 1kVA==
MIME-Version: 1.0
Received: by 10.216.139.29 with SMTP id b29mr9303577wej.55.1334163357052; Wed,
 11 Apr 2012 09:55:57 -0700 (PDT)
Received: by 10.180.8.196 with HTTP; Wed, 11 Apr 2012 09:55:57 -0700 (PDT)
Date: Wed, 11 Apr 2012 17:55:57 +0100
Message-ID: <CAKB5FPrdD4Z73THc+abGkhKcvP1tGs9Pnzt_9CE624+RH=sp8A@mail.gmail.com>
Subject: libssh2_channel_read issues
From: Zulfiqar Malik <zulfiqar.malik@gmail.com>
To: libssh2-devel@cool.haxx.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1915258697=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============1915258697==
Content-Type: multipart/alternative; boundary=0016e6d7e94bf82eff04bd6a1ccf

--0016e6d7e94bf82eff04bd6a1ccf
Content-Type: text/plain; charset=ISO-8859-1

I am trying to write a very small shell client for some automation related
things and am running into problems with libssh2_channel_read. Here are the
two scenarios (application has to be single threaded.):

1. Blocking mode: libssh2_channel_read blocks if there's no data and never
returns. Its impossible to use this function reliably.
2. Non-blocking mode: libssh2_channel_read doesn't block but keeps on
returning -37 (LIBSSH2_ERROR_EAGAIN) and I end up with essentially the same
problem i.e. stuck in an infinite loop. To top it off libssh2_channel_eof
doesn't work and always returns 0.

I don't know what's wrong or what needs to be done but I cannot seem to
find a way through this problem. I have tried libssh2 v 1.3.1 and the
latest one 1.4.1 with the same result. Given below is my readOutput method
which reads the output:

    for (;;count++)
    {
        /* loop until we block */
        int rc;
        do {
            char buffer[1024];
            rc = libssh2_channel_read(channel, buffer, sizeof(buffer));
            if (rc > 0) {
                bytecount += rc;
                buffer[rc] = '\0';
                fprintf(stderr, "%s", buffer);
                count = 0;
            }
            else {
                if (rc != LIBSSH2_ERROR_EAGAIN)
                    fprintf(stderr, "libssh2_channel_read returned %d\n",
rc);
            }
            if (libssh2_channel_eof(channel)) {
                rc = 0;
                break;
            }
        }
        while(rc > 0);
        //::Sleep(3);
        /* this is due to blocking that would occur otherwise so we loop on
           this condition */
        if(rc == LIBSSH2_ERROR_EAGAIN)
        {
            ::Sleep(5);
            //waitsocket(sock, sshSession);
        }
        else
            break;
    }
--
Regards,
Zulfiqar Inayat Malik.

for (;;count++)

--0016e6d7e94bf82eff04bd6a1ccf
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>I am trying to write a very small shell client for some automation rel=
ated things and am running into problems with libssh2_channel_read. Here ar=
e the two scenarios (application has to be single threaded.):</div>
<div>=A0</div>
<div>1. Blocking mode: libssh2_channel_read blocks if there&#39;s no data a=
nd never returns. Its impossible to use this function reliably.</div>
<div>2. Non-blocking mode: libssh2_channel_read doesn&#39;t block but keeps=
 on returning -37 (LIBSSH2_ERROR_EAGAIN) and I end up with essentially the =
same problem i.e. stuck in an infinite loop. To top it off libssh2_channel_=
eof doesn&#39;t work and always returns 0.</div>

<div>=A0</div>
<div>I don&#39;t know what&#39;s wrong or what needs to be done but I canno=
t seem to find a way through this problem.=A0I have tried libssh2 v 1.3.1 a=
nd the latest one 1.4.1 with the same result.=A0Given below is my readOutpu=
t method which reads the output:</div>

<div>=A0</div>
<div><font face=3D"courier new,monospace">=A0=A0=A0 for (;;count++)<br>=A0=
=A0=A0 {<br>=A0=A0=A0=A0=A0=A0=A0 /* loop until we block */<br>=A0=A0=A0=A0=
=A0=A0=A0 int rc;<br>=A0=A0=A0=A0=A0=A0=A0 do {<br>=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0 char buffer[1024];<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 rc =3D li=
bssh2_channel_read(channel, buffer, sizeof(buffer));</font></div>

<div><font face=3D"courier new,monospace">=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
 if (rc &gt; 0) {<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 bytecoun=
t +=3D rc;<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 buffer[rc] =3D =
&#39;\0&#39;;<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 fprintf(stde=
rr, &quot;%s&quot;, buffer);<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=
=A0 count =3D 0;<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 el=
se {<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if (rc !=3D LIBSSH2_E=
RROR_EAGAIN)<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 f=
printf(stderr, &quot;libssh2_channel_read returned %d\n&quot;, rc);<br>=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if (l=
ibssh2_channel_eof(channel)) {<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 rc =3D 0;<br>=A0=A0=A0=A0=A0=
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 break;<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =
}<br>=A0=A0=A0=A0=A0=A0=A0 }<br>=A0=A0=A0=A0=A0=A0=A0 while(rc &gt; 0);</fo=
nt></div>
<div><font face=3D"courier new,monospace">=A0=A0=A0=A0=A0=A0=A0 //::Sleep(3=
);<br>=A0=A0=A0=A0=A0=A0=A0 /* this is due to blocking that would occur oth=
erwise so we loop on<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 this condition */<br=
>=A0=A0=A0=A0=A0=A0=A0 if(rc =3D=3D LIBSSH2_ERROR_EAGAIN)<br>=A0=A0=A0=A0=
=A0=A0=A0 {<br>
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 ::Sleep(5);<br>=A0=A0=A0=A0=A0=A0=A0=A0=
=A0=A0=A0 //waitsocket(sock, sshSession);<br>=A0=A0=A0=A0=A0=A0=A0 }<br>=A0=
=A0=A0=A0=A0=A0=A0 else<br>=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 break;<br>=A0=
=A0=A0 }<br></font></div>
<div>--</div>
<div>Regards,</div>
<div>Zulfiqar Inayat Malik.</div>
<div>=A0</div>
<div>for (;;count++)</div>

--0016e6d7e94bf82eff04bd6a1ccf--

--===============1915258697==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1915258697==--

From libssh2-devel-bounces@cool.haxx.se  Thu Apr 12 12:26:07 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3CAPQqH021804;
	Thu, 12 Apr 2012 12:26:00 +0200
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3CAPN6G021772
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Apr 2012 12:25:24 +0200
Received: from int-mx10.intmail.prod.int.phx2.redhat.com
 (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23])
 by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q3CAPHYq010113
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
 Thu, 12 Apr 2012 06:25:17 -0400
Received: from t500.mbooth (vpn1-5-160.ams2.redhat.com [10.36.5.160])
 by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id
 q3CAPFAZ026569; Thu, 12 Apr 2012 06:25:16 -0400
Message-ID: <4F86AD8B.7020701@redhat.com>
Date: Thu, 12 Apr 2012 11:25:15 +0100
From: Matthew Booth <mbooth@redhat.com>
Organization: Red Hat
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:11.0) Gecko/20120329 Thunderbird/11.0.1
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2_channel_read issues
References: <CAKB5FPrdD4Z73THc+abGkhKcvP1tGs9Pnzt_9CE624+RH=sp8A@mail.gmail.com>
In-Reply-To: <CAKB5FPrdD4Z73THc+abGkhKcvP1tGs9Pnzt_9CE624+RH=sp8A@mail.gmail.com>
X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23
Cc: Zulfiqar Malik <zulfiqar.malik@gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 04/11/2012 05:55 PM, Zulfiqar Malik wrote:
> I am trying to write a very small shell client for some automation
> related things and am running into problems with libssh2_channel_read.
> Here are the two scenarios (application has to be single threaded.):
> 1. Blocking mode: libssh2_channel_read blocks if there's no data and
> never returns. Its impossible to use this function reliably.
> 2. Non-blocking mode: libssh2_channel_read doesn't block but keeps on
> returning -37 (LIBSSH2_ERROR_EAGAIN) and I end up with essentially the
> same problem i.e. stuck in an infinite loop. To top it off
> libssh2_channel_eof doesn't work and always returns 0.

You don't say what's happening at the other end. Can we assuming it's 
something like:

libssh2_channel_exec(channel, "cat foo");

and that you want to exit when the contents of foo have been returned? 
Is is possible, for example, that your channel is not returning eof 
because it isn't eof?

> I don't know what's wrong or what needs to be done but I cannot seem to
> find a way through this problem. I have tried libssh2 v 1.3.1 and the
> latest one 1.4.1 with the same result. Given below is my readOutput
> method which reads the output:
>      for (;;count++)
>      {
>          /* loop until we block */
>          int rc;
>          do {
>              char buffer[1024];
>              rc = libssh2_channel_read(channel, buffer, sizeof(buffer));
>              if (rc > 0) {
>                  bytecount += rc;
>                  buffer[rc] = '\0';

Probably not related, but ^^^ corrupts the stack if libssh2_channel_read 
returns a full buffer. If you're going to explicitly null terminate the 
buffer, you need:

rc = libssh2_channel_read(channel, buffer, sizeof(buffer) - 1);

>                  fprintf(stderr, "%s", buffer);
>                  count = 0;
>              }
>              else {
>                  if (rc != LIBSSH2_ERROR_EAGAIN)
>                      fprintf(stderr, "libssh2_channel_read returned
> %d\n", rc);
>              }
>              if (libssh2_channel_eof(channel)) {
>                  rc = 0;
>                  break;
>              }
>          }
>          while(rc > 0);
>          //::Sleep(3);
>          /* this is due to blocking that would occur otherwise so we loop on
>             this condition */
>          if(rc == LIBSSH2_ERROR_EAGAIN)
>          {
>              ::Sleep(5);
>              //waitsocket(sock, sshSession);

I'm assuming this references something like the waitsocket() example at 
http://www.libssh2.org/examples/ssh2_exec.html. Why the sleep instead?

>          }
>          else
>              break;
>      }

Matt
-- 
Matthew Booth, RHCA, RHCSS
Red Hat Engineering, Virtualisation Team

GPG ID:  D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Apr 12 13:18:08 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3CBHwA6027317;
	Thu, 12 Apr 2012 13:18:04 +0200
Received: from mail-gx0-f182.google.com (mail-gx0-f182.google.com
 [209.85.161.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3CBHuCT027249
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Apr 2012 13:17:57 +0200
Received: by ggnk4 with SMTP id k4so1062627ggn.41
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Apr 2012 04:17:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=uhDu4mRruJ7raz5wAOFe6IY6Jt3L42ueSs1bB720Zyo=;
 b=qwUA7cmOwBLICKk2Z06DPOFVutmQ32dx/FzeYHNoW2kRWSEdX2bqCLNA9t7RWC+eIr
 LjfffACS0rvoTXLGqepUYqEhmbMVaAvauzosHF13ITz7yf07GlqumURd+6DWLX1s+9LV
 MGn9DJBt4cLbem05Re9pyFA3k6LmVgd9vG75vWbw8EE6OzE/jfN+Cs8KjFxqabSZEuXo
 JLcpl4FEeBnfkHOV+6BAhnS+qR6YIn67dUG3Em+1NCnAdrPsqmnX2xBF+U1J22U7XBmH
 6cMeVgAlgXiTtkxqVgxjXfbrxEenttcoNEb5FKiYOVlTzeiGTyyxsazQO8a3uu0yjqoh
 yzew==
MIME-Version: 1.0
Received: by 10.236.170.165 with SMTP id p25mr1544025yhl.123.1334229472067;
 Thu, 12 Apr 2012 04:17:52 -0700 (PDT)
Received: by 10.147.168.1 with HTTP; Thu, 12 Apr 2012 04:17:52 -0700 (PDT)
In-Reply-To: <CAJ9p1N6Wq2H0EqEBPbuudu__PGEobu0qjSxWB3-VxjLVrVNvSw@mail.gmail.com>
References: <CAJ9p1N6VbyxATjH3i0R9jF1hC0ZbDp-VNHCUGhPirBqgECu05w@mail.gmail.com>
 <CAJ9p1N6Wq2H0EqEBPbuudu__PGEobu0qjSxWB3-VxjLVrVNvSw@mail.gmail.com>
Date: Thu, 12 Apr 2012 15:17:52 +0400
Message-ID: <CAJ9p1N7NJc4UbEdaNQVq_n8N-BTgMNJZGjx-ow+tQxrkazsq_A@mail.gmail.com>
Subject: Re: Remote using command line
From: Dmitry <russiankickingbear@gmail.com>
To: libssh2-devel@cool.haxx.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0445812696=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0445812696==
Content-Type: multipart/alternative; boundary=20cf305b0ab0bb400404bd7981ba

--20cf305b0ab0bb400404bd7981ba
Content-Type: text/plain; charset=ISO-8859-1

So...
Find solution - send command like this: libssh2_channel_exec(channel, "cd
target_dir; tar cf test.tar test_file.txt");

>
>

--20cf305b0ab0bb400404bd7981ba
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>So...</div><div>Find solution - send command like this: libssh2_channe=
l_exec(channel, &quot;cd target_dir; tar cf test.tar test_file.txt&quot;);<=
/div><div class=3D"gmail_quote"><blockquote class=3D"gmail_quote" style=3D"=
margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class=3D"HOEnZb"><div class=3D"h5"><div class=3D"gmail_quote"><blockqu=
ote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc s=
olid;padding-left:1ex">
</blockquote></div><br>
</div></div></blockquote></div><br>

--20cf305b0ab0bb400404bd7981ba--

--===============0445812696==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0445812696==--

From libssh2-devel-bounces@cool.haxx.se  Thu Apr 12 16:00:37 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3CE08Gp012123;
	Thu, 12 Apr 2012 16:00:30 +0200
Received: from mail-wi0-f170.google.com (mail-wi0-f170.google.com
 [209.85.212.170])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3CE05mb011007
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Apr 2012 16:00:06 +0200
Received: by wibhr17 with SMTP id hr17so4987312wib.5
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Apr 2012 07:00:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :cc:content-type;
 bh=Qt8/TNW5KIz6NJxU1bAPUjinEmIKJn6rw37Iofp71Ec=;
 b=Hs/DyoWkFqepxR7geOhui7AvcV1TmcRfxslCAwzlTq3U39WE32jnjEeg3xEuKcMULu
 2N+/kHwPYRqgBZuaM5Bs4Gd2bscxp9Uy4AlZGvR1gvqCFLFPWUTXG7ZirDoyMjMh9s/e
 ztMoPiaTWCJkUu7p5xCNbEfgp0Oge/lp/p4kvUO5pZD0M981/KvdDCkt38+KbLdlUB79
 zVazRiWSid5L1eEF9N7X3oujfat81oZH7nWdAhObLQ/wQayCbFe1C3JWLB3MgaFqzs1B
 JOScqkRDRdM3xCfxE6s9UkME7PWmj21/lXoivs4Ui0K55TB9i7RMxY6l/ywCUT4rUQHv
 P7VA==
MIME-Version: 1.0
Received: by 10.180.101.136 with SMTP id fg8mr4861365wib.4.1334239200678; Thu,
 12 Apr 2012 07:00:00 -0700 (PDT)
Received: by 10.180.105.6 with HTTP; Thu, 12 Apr 2012 07:00:00 -0700 (PDT)
In-Reply-To: <4F86AD8B.7020701@redhat.com>
References: <CAKB5FPrdD4Z73THc+abGkhKcvP1tGs9Pnzt_9CE624+RH=sp8A@mail.gmail.com>
 <4F86AD8B.7020701@redhat.com>
Date: Thu, 12 Apr 2012 15:00:00 +0100
Message-ID: <CAKB5FPpBxarq_Zdwn=s-8pjfnpwj=7nOj5pgKvt0nNuL_XB51Q@mail.gmail.com>
Subject: Re: libssh2_channel_read issues
From: Zulfiqar Malik <zulfiqar.malik@gmail.com>
To: Matthew Booth <mbooth@redhat.com>
Cc: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============2064488173=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============2064488173==
Content-Type: multipart/alternative; boundary=f46d04462e4c9a126904bd7bc58e

--f46d04462e4c9a126904bd7bc58e
Content-Type: text/plain; charset=ISO-8859-1

I am actually using libssh2_channel_write. I am basically just doing a cd
<somedir> and then reading the output. The cd finishes and yet I am stuck
in my loop since I never receive an EOF.
I can use waitsocket. The Sleep is just test code. waitsocket doesn't
imrpove the situation.

On Thu, Apr 12, 2012 at 11:25 AM, Matthew Booth <mbooth@redhat.com> wrote:

> On 04/11/2012 05:55 PM, Zulfiqar Malik wrote:
>
>> I am trying to write a very small shell client for some automation
>> related things and am running into problems with libssh2_channel_read.
>> Here are the two scenarios (application has to be single threaded.):
>> 1. Blocking mode: libssh2_channel_read blocks if there's no data and
>> never returns. Its impossible to use this function reliably.
>> 2. Non-blocking mode: libssh2_channel_read doesn't block but keeps on
>> returning -37 (LIBSSH2_ERROR_EAGAIN) and I end up with essentially the
>> same problem i.e. stuck in an infinite loop. To top it off
>> libssh2_channel_eof doesn't work and always returns 0.
>>
>
> You don't say what's happening at the other end. Can we assuming it's
> something like:
>
> libssh2_channel_exec(channel, "cat foo");
>
> and that you want to exit when the contents of foo have been returned? Is
> is possible, for example, that your channel is not returning eof because it
> isn't eof?
>
>
> I don't know what's wrong or what needs to be done but I cannot seem to
>> find a way through this problem. I have tried libssh2 v 1.3.1 and the
>> latest one 1.4.1 with the same result. Given below is my readOutput
>> method which reads the output:
>>     for (;;count++)
>>     {
>>         /* loop until we block */
>>         int rc;
>>         do {
>>             char buffer[1024];
>>             rc = libssh2_channel_read(channel, buffer, sizeof(buffer));
>>             if (rc > 0) {
>>                 bytecount += rc;
>>                 buffer[rc] = '\0';
>>
>
> Probably not related, but ^^^ corrupts the stack if libssh2_channel_read
> returns a full buffer. If you're going to explicitly null terminate the
> buffer, you need:
>
> rc = libssh2_channel_read(channel, buffer, sizeof(buffer) - 1);
>
>
>                 fprintf(stderr, "%s", buffer);
>>                 count = 0;
>>             }
>>             else {
>>                 if (rc != LIBSSH2_ERROR_EAGAIN)
>>                     fprintf(stderr, "libssh2_channel_read returned
>> %d\n", rc);
>>             }
>>             if (libssh2_channel_eof(channel)) {
>>                 rc = 0;
>>                 break;
>>             }
>>         }
>>         while(rc > 0);
>>         //::Sleep(3);
>>         /* this is due to blocking that would occur otherwise so we loop
>> on
>>            this condition */
>>         if(rc == LIBSSH2_ERROR_EAGAIN)
>>         {
>>             ::Sleep(5);
>>             //waitsocket(sock, sshSession);
>>
>
> I'm assuming this references something like the waitsocket() example at
> http://www.libssh2.org/**examples/ssh2_exec.html<http://www.libssh2.org/examples/ssh2_exec.html>.
> Why the sleep instead?
>
>         }
>>         else
>>             break;
>>     }
>>
>
> Matt
> --
> Matthew Booth, RHCA, RHCSS
> Red Hat Engineering, Virtualisation Team
>
> GPG ID:  D33C3490
> GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490
>



-- 
Regards,
Zulfiqar Inayat Malik.

--f46d04462e4c9a126904bd7bc58e
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>I am actually using libssh2_channel_write. I am basically just doing a=
 cd &lt;somedir&gt; and then reading the output. The cd finishes and yet I =
am stuck in my loop since I never receive an EOF. <br>I can use waitsocket.=
 The Sleep is just test code. waitsocket doesn&#39;t imrpove the situation.=
 <br>
<br></div>
<div class=3D"gmail_quote">On Thu, Apr 12, 2012 at 11:25 AM, Matthew Booth =
<span dir=3D"ltr">&lt;<a href=3D"mailto:mbooth@redhat.com">mbooth@redhat.co=
m</a>&gt;</span> wrote:<br>
<blockquote style=3D"BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PA=
DDING-LEFT:1ex" class=3D"gmail_quote">
<div class=3D"im">On 04/11/2012 05:55 PM, Zulfiqar Malik wrote:<br>
<blockquote style=3D"BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PA=
DDING-LEFT:1ex" class=3D"gmail_quote">I am trying to write a very small she=
ll client for some automation<br>related things and am running into problem=
s with libssh2_channel_read.<br>
Here are the two scenarios (application has to be single threaded.):<br>1. =
Blocking mode: libssh2_channel_read blocks if there&#39;s no data and<br>ne=
ver returns. Its impossible to use this function reliably.<br>2. Non-blocki=
ng mode: libssh2_channel_read doesn&#39;t block but keeps on<br>
returning -37 (LIBSSH2_ERROR_EAGAIN) and I end up with essentially the<br>s=
ame problem i.e. stuck in an infinite loop. To top it off<br>libssh2_channe=
l_eof doesn&#39;t work and always returns 0.<br></blockquote><br></div>
You don&#39;t say what&#39;s happening at the other end. Can we assuming it=
&#39;s something like:<br><br>libssh2_channel_exec(channel, &quot;cat foo&q=
uot;);<br><br>and that you want to exit when the contents of foo have been =
returned? Is is possible, for example, that your channel is not returning e=
of because it isn&#39;t eof?=20
<div class=3D"im"><br><br>
<blockquote style=3D"BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PA=
DDING-LEFT:1ex" class=3D"gmail_quote">I don&#39;t know what&#39;s wrong or =
what needs to be done but I cannot seem to<br>find a way through this probl=
em. I have tried libssh2 v 1.3.1 and the<br>
latest one 1.4.1 with the same result. Given below is my readOutput<br>meth=
od which reads the output:<br>=A0 =A0 for (;;count++)<br>=A0 =A0 {<br>=A0 =
=A0 =A0 =A0 /* loop until we block */<br>=A0 =A0 =A0 =A0 int rc;<br>=A0 =A0=
 =A0 =A0 do {<br>=A0 =A0 =A0 =A0 =A0 =A0 char buffer[1024];<br>
=A0 =A0 =A0 =A0 =A0 =A0 rc =3D libssh2_channel_read(channel, buffer, sizeof=
(buffer));<br>=A0 =A0 =A0 =A0 =A0 =A0 if (rc &gt; 0) {<br>=A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 bytecount +=3D rc;<br>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 buffe=
r[rc] =3D &#39;\0&#39;;<br></blockquote><br></div>Probably not related, but=
 ^^^ corrupts the stack if libssh2_channel_read returns a full buffer. If y=
ou&#39;re going to explicitly null terminate the buffer, you need:<br>
<br>rc =3D libssh2_channel_read(channel, buffer, sizeof(buffer) - 1);=20
<div class=3D"im"><br><br>
<blockquote style=3D"BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PA=
DDING-LEFT:1ex" class=3D"gmail_quote">=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 fprin=
tf(stderr, &quot;%s&quot;, buffer);<br>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 coun=
t =3D 0;<br>=A0 =A0 =A0 =A0 =A0 =A0 }<br>=A0 =A0 =A0 =A0 =A0 =A0 else {<br>
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 if (rc !=3D LIBSSH2_ERROR_EAGAIN)<br>=A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 fprintf(stderr, &quot;libssh2_channel_r=
ead returned<br>%d\n&quot;, rc);<br>=A0 =A0 =A0 =A0 =A0 =A0 }<br>=A0 =A0 =
=A0 =A0 =A0 =A0 if (libssh2_channel_eof(channel)) {<br>=A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 rc =3D 0;<br>
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 break;<br>=A0 =A0 =A0 =A0 =A0 =A0 }<br>=A0 =
=A0 =A0 =A0 }<br>=A0 =A0 =A0 =A0 while(rc &gt; 0);<br>=A0 =A0 =A0 =A0 //::S=
leep(3);<br>=A0 =A0 =A0 =A0 /* this is due to blocking that would occur oth=
erwise so we loop on<br>=A0 =A0 =A0 =A0 =A0 =A0this condition */<br>
=A0 =A0 =A0 =A0 if(rc =3D=3D LIBSSH2_ERROR_EAGAIN)<br>=A0 =A0 =A0 =A0 {<br>=
=A0 =A0 =A0 =A0 =A0 =A0 ::Sleep(5);<br>=A0 =A0 =A0 =A0 =A0 =A0 //waitsocket=
(sock, sshSession);<br></blockquote><br></div>I&#39;m assuming this referen=
ces something like the waitsocket() example at <a href=3D"http://www.libssh=
2.org/examples/ssh2_exec.html" target=3D"_blank">http://www.libssh2.org/<u>=
</u>examples/ssh2_exec.html</a>. Why the sleep instead?<br>
<br>
<blockquote style=3D"BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PA=
DDING-LEFT:1ex" class=3D"gmail_quote">=A0 =A0 =A0 =A0 }<br>=A0 =A0 =A0 =A0 =
else<br>=A0 =A0 =A0 =A0 =A0 =A0 break;<br>=A0 =A0 }<br></blockquote><br>Mat=
t<span class=3D"HOEnZb"><font color=3D"#888888"><br>
-- <br>Matthew Booth, RHCA, RHCSS<br>Red Hat Engineering, Virtualisation Te=
am<br><br>GPG ID: =A0D33C3490<br>GPG FPR: 3733 612D 2D05 5458 8A8A 1600 344=
1 EA19 D33C 3490<br></font></span></blockquote></div><br><br clear=3D"all">
<br>-- <br>Regards,<br>Zulfiqar Inayat Malik.<br>

--f46d04462e4c9a126904bd7bc58e--

--===============2064488173==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============2064488173==--

From libssh2-devel-bounces@cool.haxx.se  Thu Apr 12 16:28:42 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3CESX5U032442;
	Thu, 12 Apr 2012 16:28:40 +0200
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3CESVbL032430
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Apr 2012 16:28:32 +0200
Received: from int-mx01.intmail.prod.int.phx2.redhat.com
 (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11])
 by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q3CESVt6010521
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
 Thu, 12 Apr 2012 10:28:31 -0400
Received: from t500.mbooth (vpn1-5-160.ams2.redhat.com [10.36.5.160])
 by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id
 q3CESTEG002909; Thu, 12 Apr 2012 10:28:30 -0400
Message-ID: <4F86E68D.3090602@redhat.com>
Date: Thu, 12 Apr 2012 15:28:29 +0100
From: Matthew Booth <mbooth@redhat.com>
Organization: Red Hat
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:11.0) Gecko/20120329 Thunderbird/11.0.1
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2_channel_read issues
References: <CAKB5FPrdD4Z73THc+abGkhKcvP1tGs9Pnzt_9CE624+RH=sp8A@mail.gmail.com>
 <4F86AD8B.7020701@redhat.com>
 <CAKB5FPpBxarq_Zdwn=s-8pjfnpwj=7nOj5pgKvt0nNuL_XB51Q@mail.gmail.com>
In-Reply-To: <CAKB5FPpBxarq_Zdwn=s-8pjfnpwj=7nOj5pgKvt0nNuL_XB51Q@mail.gmail.com>
X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11
Cc: Zulfiqar Malik <zulfiqar.malik@gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 04/12/2012 03:00 PM, Zulfiqar Malik wrote:
> I am actually using libssh2_channel_write. I am basically just doing a
> cd <somedir> and then reading the output. The cd finishes and yet I am
> stuck in my loop since I never receive an EOF.

Can you paste some code? I'm not clear on what you mean here.

Matt

> I can use waitsocket. The Sleep is just test code. waitsocket doesn't
> imrpove the situation.
>
> On Thu, Apr 12, 2012 at 11:25 AM, Matthew Booth <mbooth@redhat.com
> <mailto:mbooth@redhat.com>> wrote:
>
>     On 04/11/2012 05:55 PM, Zulfiqar Malik wrote:
>
>         I am trying to write a very small shell client for some automation
>         related things and am running into problems with
>         libssh2_channel_read.
>         Here are the two scenarios (application has to be single threaded.):
>         1. Blocking mode: libssh2_channel_read blocks if there's no data and
>         never returns. Its impossible to use this function reliably.
>         2. Non-blocking mode: libssh2_channel_read doesn't block but
>         keeps on
>         returning -37 (LIBSSH2_ERROR_EAGAIN) and I end up with
>         essentially the
>         same problem i.e. stuck in an infinite loop. To top it off
>         libssh2_channel_eof doesn't work and always returns 0.
>
>
>     You don't say what's happening at the other end. Can we assuming
>     it's something like:
>
>     libssh2_channel_exec(channel, "cat foo");
>
>     and that you want to exit when the contents of foo have been
>     returned? Is is possible, for example, that your channel is not
>     returning eof because it isn't eof?
>
>
>         I don't know what's wrong or what needs to be done but I cannot
>         seem to
>         find a way through this problem. I have tried libssh2 v 1.3.1
>         and the
>         latest one 1.4.1 with the same result. Given below is my readOutput
>         method which reads the output:
>              for (;;count++)
>              {
>                  /* loop until we block */
>                  int rc;
>                  do {
>                      char buffer[1024];
>                      rc = libssh2_channel_read(channel, buffer,
>         sizeof(buffer));
>                      if (rc > 0) {
>                          bytecount += rc;
>                          buffer[rc] = '\0';
>
>
>     Probably not related, but ^^^ corrupts the stack if
>     libssh2_channel_read returns a full buffer. If you're going to
>     explicitly null terminate the buffer, you need:
>
>     rc = libssh2_channel_read(channel, buffer, sizeof(buffer) - 1);
>
>
>                          fprintf(stderr, "%s", buffer);
>                          count = 0;
>                      }
>                      else {
>                          if (rc != LIBSSH2_ERROR_EAGAIN)
>                              fprintf(stderr, "libssh2_channel_read returned
>         %d\n", rc);
>                      }
>                      if (libssh2_channel_eof(channel)) {
>                          rc = 0;
>                          break;
>                      }
>                  }
>                  while(rc > 0);
>                  //::Sleep(3);
>                  /* this is due to blocking that would occur otherwise
>         so we loop on
>                     this condition */
>                  if(rc == LIBSSH2_ERROR_EAGAIN)
>                  {
>                      ::Sleep(5);
>                      //waitsocket(sock, sshSession);
>
>
>     I'm assuming this references something like the waitsocket() example
>     at http://www.libssh2.org/__examples/ssh2_exec.html
>     <http://www.libssh2.org/examples/ssh2_exec.html>. Why the sleep instead?
>
>                  }
>                  else
>                      break;
>              }
>
>
>     Matt
>     --
>     Matthew Booth, RHCA, RHCSS
>     Red Hat Engineering, Virtualisation Team
>
>     GPG ID:  D33C3490
>     GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490
>
>
>
>
> --
> Regards,
> Zulfiqar Inayat Malik.
>
>
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel


-- 
Matthew Booth, RHCA, RHCSS
Red Hat Engineering, Virtualisation Team

GPG ID:  D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Apr 12 16:38:35 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3CEcUYo006044;
	Thu, 12 Apr 2012 16:38:34 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3CEcSEp006032
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Apr 2012 16:38:28 +0200
Received: (qmail 29454 invoked by uid 501); 12 Apr 2012 14:38:29 -0000
Message-ID: <20120412143829.29453.qmail@stuge.se>
Date: Thu, 12 Apr 2012 16:38:29 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Remote using command line
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CAJ9p1N6VbyxATjH3i0R9jF1hC0ZbDp-VNHCUGhPirBqgECu05w@mail.gmail.com>
 <CAJ9p1N6Wq2H0EqEBPbuudu__PGEobu0qjSxWB3-VxjLVrVNvSw@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CAJ9p1N6Wq2H0EqEBPbuudu__PGEobu0qjSxWB3-VxjLVrVNvSw@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Dmitry wrote:
> Ok. I read about channel and session in libssh. So, if i understood
> correctly, one channel for one command.

That is not correct.

Also, please note that this project is called libssh2.

There are several different channel types. I think you need to study
the SSH RFCs in order to understand the SSH protocol correctly. They
are very easy to read. They are linked from here:

http://trac.libssh2.org/wiki/FAQ#WhatistheSSH-2protocol

Study RFC 4251 and 4253 to understand channels.


> But this way leads me to LIBSSH2_ERROR_CHANNEL_REQUEST_DENIED when
> call libssh2_channel_exec(..)
> So, what else i don't understand

You need to understand exactly what a channel means, currently you
don't, and it means that you can not use libssh2 (or any other SSH
library) in very good ways.

You must of course also understand in detail how the server side
functions and all relevant details about what happens when a user
logs into a UNIX-like system, specifically how the user's shell is
involved. There is no RFC for this, that's more about experience in
the systems administration domain. I guess there may be some books
about it though, but unfortunately I can't make any recommendations.
:\


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Apr 12 16:50:05 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3CEnxfn013559;
	Thu, 12 Apr 2012 16:50:04 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3CEnvk0013547
 for <libssh2-devel@cool.haxx.se>; Thu, 12 Apr 2012 16:49:57 +0200
Received: (qmail 30649 invoked by uid 501); 12 Apr 2012 14:49:58 -0000
Message-ID: <20120412144958.30648.qmail@stuge.se>
Date: Thu, 12 Apr 2012 16:49:58 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2_channel_read issues
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CAKB5FPrdD4Z73THc+abGkhKcvP1tGs9Pnzt_9CE624+RH=sp8A@mail.gmail.com>
 <4F86AD8B.7020701@redhat.com>
 <CAKB5FPpBxarq_Zdwn=s-8pjfnpwj=7nOj5pgKvt0nNuL_XB51Q@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CAKB5FPpBxarq_Zdwn=s-8pjfnpwj=7nOj5pgKvt0nNuL_XB51Q@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Hi.

Zulfiqar Malik wrote:
> I am actually using libssh2_channel_write. I am basically just doing a cd
> <somedir> and then reading the output. The cd finishes and yet I am stuck
> in my loop since I never receive an EOF.

Seriously. You need to think about what is actually happening on the
server side.

Now, you do not say which kind of channel you have created, which is
absolutely neccessary information when you are asking about behavior
within a channel. However, since you start talking about shell I am
going to guess that you have created a shell channel.

If you start a shell *without* ssh and you run a cd command in that
shell does that shell close it's input and output channels? Obviously
it does not. That would be the most retarded shell ever.

Since you do not get an EOF when running the shell without ssh WHY
would get an EOF *with* SSH?

There is NO difference.

SSH provides an authenticated and encrypted transport to a server.

In this transport you can open various types of channels. Each
channel type may have completely different characteristics. If you
open a shell channel then it will behave EXACTLY like a shell running
without SSH.

Your program is talking to a shell, nothing more nothing less.
libssh2 is not an API for remote controlling shells. I wish that
people would understand this, there are countless posts to this
mailing list by people who do not understand this at all. We
desperately need to write a FAQ about it.


> I can use waitsocket. The Sleep is just test code. waitsocket
> doesn't imrpove the situation.

Seriously. There are several examples in the example/ directory
which demonstrate how you can correctly deal with multiple sources
of input in your program, which I believe is what you want to do
although you don't say it.

Please study those examples. In particular you want to study
direct_tcpip.c and tcpip-forward.c in detail.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Apr 13 10:39:59 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3D8dM6C030952;
	Fri, 13 Apr 2012 10:39:53 +0200
Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com
 [209.85.212.176])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3D8dK42030893
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 10:39:21 +0200
Received: by wibhm17 with SMTP id hm17so5503054wib.11
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 01:39:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=H4AQNNPs+VJgMaZ5gUwfhKAAxFA7Dx10Bw2FgKVRoTU=;
 b=soBIkAhTq4mt2I5C0TSOzyuC+xTP4jk6g8gtg6ewygjWT04E80r5FykMgZnQLqm9Gg
 jojAyeNiFxPiPw/OJrU8JbyS2mdNtSKKAVCY8hyasaDFRYaBES4D6nAHKgn2kWanTOrB
 4P07DVtN4gpvcJl9GDpKkzW/wXW+GMcSpknqm+5YGp37jWHYIsXoQZ3DSChmf5rRkok/
 G1Nfc5BYfTlLPHjmAGZAl+S08CFTF4VaQvu7ChAeTJRFkd24fHhfuOMUpHKSL80/KeES
 KAoOR8OgQxhCIntCznpOTnWmhnbGcjy5EqkSCdSoABfRFvahNk7ShTA07cxssUg4q+Lv
 7Gjg==
MIME-Version: 1.0
Received: by 10.180.101.136 with SMTP id fg8mr2639917wib.4.1334306356807; Fri,
 13 Apr 2012 01:39:16 -0700 (PDT)
Received: by 10.180.105.6 with HTTP; Fri, 13 Apr 2012 01:39:16 -0700 (PDT)
In-Reply-To: <20120412144958.30648.qmail@stuge.se>
References: <CAKB5FPrdD4Z73THc+abGkhKcvP1tGs9Pnzt_9CE624+RH=sp8A@mail.gmail.com>
 <4F86AD8B.7020701@redhat.com>
 <CAKB5FPpBxarq_Zdwn=s-8pjfnpwj=7nOj5pgKvt0nNuL_XB51Q@mail.gmail.com>
 <20120412144958.30648.qmail@stuge.se>
Date: Fri, 13 Apr 2012 09:39:16 +0100
Message-ID: <CAKB5FPoBx6OmXUC7quJh3n9L9ZDNzB8esZH+YroGWNo7qr=nHg@mail.gmail.com>
Subject: Re: libssh2_channel_read issues
From: Zulfiqar Malik <zulfiqar.malik@gmail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1488608972=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============1488608972==
Content-Type: multipart/alternative; boundary=f46d04462e4c6b482004bd8b684d

--f46d04462e4c6b482004bd8b684d
Content-Type: text/plain; charset=ISO-8859-1

Hi,

My understanding was that the EOF was completely incorrect it seems. That's
fine. I think I really should be using libssh2_channel_exec. However, I
have a slight problem. I think exec only allows you to exec one command and
then you have to recreate the channel if you wish to exec another one. This
is a bit of a problem for me since our remote cluster setup requires you to
specify the name of the specific host that you wish to connect to after
you've connected to the main server. I don't know how to give this
information in one go to libssh2 so that I can then exec the command of my
choice and be done with it.

I might be missing something very basic here or maybe this isn't possible
at all. Thanks for the help.

On Thu, Apr 12, 2012 at 3:49 PM, Peter Stuge <peter@stuge.se> wrote:

> Hi.
>
> Zulfiqar Malik wrote:
> > I am actually using libssh2_channel_write. I am basically just doing a cd
> > <somedir> and then reading the output. The cd finishes and yet I am stuck
> > in my loop since I never receive an EOF.
>
> Seriously. You need to think about what is actually happening on the
> server side.
>
> Now, you do not say which kind of channel you have created, which is
> absolutely neccessary information when you are asking about behavior
> within a channel. However, since you start talking about shell I am
> going to guess that you have created a shell channel.
>
> If you start a shell *without* ssh and you run a cd command in that
> shell does that shell close it's input and output channels? Obviously
> it does not. That would be the most retarded shell ever.
>
> Since you do not get an EOF when running the shell without ssh WHY
> would get an EOF *with* SSH?
>
> There is NO difference.
>
> SSH provides an authenticated and encrypted transport to a server.
>
> In this transport you can open various types of channels. Each
> channel type may have completely different characteristics. If you
> open a shell channel then it will behave EXACTLY like a shell running
> without SSH.
>
> Your program is talking to a shell, nothing more nothing less.
> libssh2 is not an API for remote controlling shells. I wish that
> people would understand this, there are countless posts to this
> mailing list by people who do not understand this at all. We
> desperately need to write a FAQ about it.
>
>
> > I can use waitsocket. The Sleep is just test code. waitsocket
> > doesn't imrpove the situation.
>
> Seriously. There are several examples in the example/ directory
> which demonstrate how you can correctly deal with multiple sources
> of input in your program, which I believe is what you want to do
> although you don't say it.
>
> Please study those examples. In particular you want to study
> direct_tcpip.c and tcpip-forward.c in detail.
>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>



-- 
Regards,
Zulfiqar Inayat Malik.

--f46d04462e4c6b482004bd8b684d
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div>Hi,<br><br>My understanding was that the EOF was completely incorrect =
it seems. That&#39;s fine. I think I really should be using libssh2_channel=
_exec. However, I have=A0a slight problem. I think exec only allows you to =
exec one command and then you have to recreate the channel if you wish to e=
xec another one. This is a bit of a problem for me since our remote cluster=
 setup requires you to specify the name of the specific host that you wish =
to connect to after you&#39;ve connected to the main server. I don&#39;t kn=
ow how to give this information in one go to libssh2 so that I can then exe=
c the command of my choice and be done with it. </div>

<div><br>I might be missing something very basic here or maybe this isn&#39=
;t possible at all. Thanks for the help. <br><br></div>
<div class=3D"gmail_quote">On Thu, Apr 12, 2012 at 3:49 PM, Peter Stuge <sp=
an dir=3D"ltr">&lt;<a href=3D"mailto:peter@stuge.se">peter@stuge.se</a>&gt;=
</span> wrote:<br>
<blockquote style=3D"BORDER-LEFT:#ccc 1px solid;MARGIN:0px 0px 0px 0.8ex;PA=
DDING-LEFT:1ex" class=3D"gmail_quote">Hi.<br>
<div class=3D"im"><br>Zulfiqar Malik wrote:<br>&gt; I am actually using lib=
ssh2_channel_write. I am basically just doing a cd<br>&gt; &lt;somedir&gt; =
and then reading the output. The cd finishes and yet I am stuck<br>&gt; in =
my loop since I never receive an EOF.<br>
<br></div>Seriously. You need to think about what is actually happening on =
the<br>server side.<br><br>Now, you do not say which kind of channel you ha=
ve created, which is<br>absolutely neccessary information when you are aski=
ng about behavior<br>
within a channel. However, since you start talking about shell I am<br>goin=
g to guess that you have created a shell channel.<br><br>If you start a she=
ll *without* ssh and you run a cd command in that<br>shell does that shell =
close it&#39;s input and output channels? Obviously<br>
it does not. That would be the most retarded shell ever.<br><br>Since you d=
o not get an EOF when running the shell without ssh WHY<br>would get an EOF=
 *with* SSH?<br><br>There is NO difference.<br><br>SSH provides an authenti=
cated and encrypted transport to a server.<br>
<br>In this transport you can open various types of channels. Each<br>chann=
el type may have completely different characteristics. If you<br>open a she=
ll channel then it will behave EXACTLY like a shell running<br>without SSH.=
<br>
<br>Your program is talking to a shell, nothing more nothing less.<br>libss=
h2 is not an API for remote controlling shells. I wish that<br>people would=
 understand this, there are countless posts to this<br>mailing list by peop=
le who do not understand this at all. We<br>
desperately need to write a FAQ about it.<br>
<div class=3D"im"><br><br>&gt; I can use waitsocket. The Sleep is just test=
 code. waitsocket<br>&gt; doesn&#39;t imrpove the situation.<br><br></div>S=
eriously. There are several examples in the example/ directory<br>which dem=
onstrate how you can correctly deal with multiple sources<br>
of input in your program, which I believe is what you want to do<br>althoug=
h you don&#39;t say it.<br><br>Please study those examples. In particular y=
ou want to study<br>direct_tcpip.c and tcpip-forward.c in detail.<br><br>
<br>//Peter<br>_______________________________________________<br>libssh2-d=
evel <a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel"=
 target=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-dev=
el</a><br>
</blockquote></div><br><br clear=3D"all"><br>-- <br>Regards,<br>Zulfiqar In=
ayat Malik.<br>

--f46d04462e4c6b482004bd8b684d--

--===============1488608972==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1488608972==--

From libssh2-devel-bounces@cool.haxx.se  Fri Apr 13 21:01:59 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3DJ1OHB027204;
	Fri, 13 Apr 2012 21:01:52 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3DJ1LmK027004
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 21:01:22 +0200
Received: by iahk25 with SMTP id k25so5430178iah.41
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 12:01:17 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:from:date:message-id:subject:to:content-type;
 bh=AAG+48AnY6SrQSJhMkwXaSRnTjR20KUsbHED7tO/Ie8=;
 b=bYxTvXJXB8R6dUR3+em8Zx47SR7dotdeXM3BTkvcbd1Oj2WgvcKU52iCyE82XmTd2V
 Dvd+BpSSq81flwaHd5GF8z4SW4TcjHP8hcczmGlLap4Ojp+B03/RzKm955+MWwEz+aCo
 ILQgPeYqe+vZFw3mrNwHmMCXlEaNckWJcD3JDoqtk03tD3yn7u5V3dB7oWnjzbmvTTNH
 yIOnTnOOE+UT82cegadpet3H6M/C7pyfojaRwlEAcG9S77N5CB4mLyADnCAIC065gDUF
 Meu/PhIzUPPNDXVeylbmJNau/cevU6YaNWFYlveDyhK+32WMncU7umjaVtPnqKgOqYBq
 /HiA==
Received: by 10.50.10.225 with SMTP id l1mr2698812igb.1.1334343677915; Fri, 13
 Apr 2012 12:01:17 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.42.133.132 with HTTP; Fri, 13 Apr 2012 12:00:57 -0700 (PDT)
From: =?ISO-8859-1?Q?Juan_Pablo_V=E9liz_Garc=EDa?= <juan.veliz@gmail.com>
Date: Fri, 13 Apr 2012 16:00:57 -0300
Message-ID: <CADRoNK=jM1tfogpL_DdQ=ZiARXSPuB8HwxK58WZhfsPKW=sYvw@mail.gmail.com>
Subject: Problems linking the test aplication for VC
To: libssh2-devel@cool.haxx.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1099007620=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============1099007620==
Content-Type: multipart/alternative; boundary=14dae9340e73ee314504bd94189f

--14dae9340e73ee314504bd94189f
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi

I'm beginning to use the library and have problems in the link step in the
Test aplication for VC

I compiled the library successfully and I putted the library in the lib
directory of Visual C++ 6.0

--------------------Configuration: tests - Win32 Debug--------------------
Compiling...
simple.c
Linking...
simple.obj : error LNK2001: unresolved external symbol __imp__libssh2_exit
simple.obj : error LNK2001: unresolved external symbol
__imp__libssh2_session_free
simple.obj : error LNK2001: unresolved external symbol
__imp__libssh2_session_init_ex
simple.obj : error LNK2001: unresolved external symbol __imp__libssh2_init
simple.obj : error LNK2001: unresolved external symbol
__imp__libssh2_base64_decode
simple.exe : fatal error LNK1120: 5 unresolved externals
Error executing link.exe.

Thanks in advance

Juan Pablo V=E9liz

--14dae9340e73ee314504bd94189f
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Hi<div><br></div><div>I&#39;m beginning to use the library and have problem=
s in the link step in the Test aplication for VC</div><div><br></div><div>I=
 compiled the library successfully and I putted the library in the lib dire=
ctory of Visual C++ 6.0</div>

<div><br></div><div><div>--------------------Configuration: tests - Win32 D=
ebug--------------------</div><div>Compiling...</div><div>simple.c</div><di=
v>Linking...</div><div>simple.obj : error LNK2001: unresolved external symb=
ol __imp__libssh2_exit</div>

<div>simple.obj : error LNK2001: unresolved external symbol __imp__libssh2_=
session_free</div><div>simple.obj : error LNK2001: unresolved external symb=
ol __imp__libssh2_session_init_ex</div><div>simple.obj : error LNK2001: unr=
esolved external symbol __imp__libssh2_init</div>

<div>simple.obj : error LNK2001: unresolved external symbol __imp__libssh2_=
base64_decode</div><div>simple.exe : fatal error LNK1120: 5 unresolved exte=
rnals</div><div>Error executing link.exe.</div></div><div><br></div><div>

Thanks in advance</div><div><br clear=3D"all">Juan Pablo V=E9liz<br><div st=
yle=3D"display:inline"></div><br>
</div>

--14dae9340e73ee314504bd94189f--

--===============1099007620==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1099007620==--

From libssh2-devel-bounces@cool.haxx.se  Fri Apr 13 21:33:30 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3DJXK3P017912;
	Fri, 13 Apr 2012 21:33:29 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3DJXJDC017873
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 21:33:19 +0200
Received: (qmail 11884 invoked by uid 501); 13 Apr 2012 19:33:20 -0000
Message-ID: <20120413193320.11883.qmail@stuge.se>
Date: Fri, 13 Apr 2012 21:33:20 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Problems linking the test aplication for VC
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CADRoNK=jM1tfogpL_DdQ=ZiARXSPuB8HwxK58WZhfsPKW=sYvw@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CADRoNK=jM1tfogpL_DdQ=ZiARXSPuB8HwxK58WZhfsPKW=sYvw@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id q3DJXK3P017912

Juan Pablo VÃ©liz GarcÃ­a wrote:
> I'm beginning to use the library and have problems in the link step in the
> Test aplication for VC
> 
> I compiled the library successfully and I putted the library in the lib
> directory of Visual C++ 6.0

I guess you have to tell your build system that you actually want to
link against the library. This is completely outside the domain of
libssh2, it is completely about you knowing how to use your tools.


> Linking...
> simple.obj : error LNK2001: unresolved external symbol __imp__libssh2_exit
> simple.obj : error LNK2001: unresolved external symbol __imp__libssh2_session_free
> simple.obj : error LNK2001: unresolved external symbol __imp__libssh2_session_init_ex
> simple.obj : error LNK2001: unresolved external symbol __imp__libssh2_init
> simple.obj : error LNK2001: unresolved external symbol __imp__libssh2_base64_decode
> simple.exe : fatal error LNK1120: 5 unresolved externals
> Error executing link.exe.

This is completely useless without seeing the command executed.
Suggest go to a VC support channel for help on how to use VC.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Apr 13 23:56:37 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3DLuKLV021655;
	Fri, 13 Apr 2012 23:56:34 +0200
Received: from vps1.hno.se (vps1.hno.se [IPv6:2a02:750:5::f0])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3DLuIsS021612
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 23:56:18 +0200
Received: from home.hno.se (home.hno.se [IPv6:2001:16d8:ff00:8540::1])
 (authenticated bits=128)
 by vps1.hno.se (8.14.4/8.14.4) with ESMTP id q3DLuGDc032734
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 23:56:19 +0200
Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1])
 by home.hno.se (8.14.5/8.14.5) with ESMTP id q3DLuF7f012723
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 23:56:15 +0200
Message-ID: <1334354175.11125.9.camel@home.hno.se>
Subject: Re: libssh2_channel_read issues
From: Henrik =?ISO-8859-1?Q?Nordstr=F6m?= <henrik@henriknordstrom.net>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Date: Fri, 13 Apr 2012 23:56:15 +0200
In-Reply-To: <CAKB5FPoBx6OmXUC7quJh3n9L9ZDNzB8esZH+YroGWNo7qr=nHg@mail.gmail.com>
References: <CAKB5FPrdD4Z73THc+abGkhKcvP1tGs9Pnzt_9CE624+RH=sp8A@mail.gmail.com>
 <4F86AD8B.7020701@redhat.com>
 <CAKB5FPpBxarq_Zdwn=s-8pjfnpwj=7nOj5pgKvt0nNuL_XB51Q@mail.gmail.com>
 <20120412144958.30648.qmail@stuge.se>
 <CAKB5FPoBx6OmXUC7quJh3n9L9ZDNzB8esZH+YroGWNo7qr=nHg@mail.gmail.com>
X-Mailer: Evolution 3.2.3 (3.2.3-2.fc16) 
Mime-Version: 1.0
X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00
 autolearn=ham version=3.3.2
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on home.hno.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

fre 2012-04-13 klockan 09:39 +0100 skrev Zulfiqar Malik:

> My understanding was that the EOF was completely incorrect it seems.
> That's fine. I think I really should be using libssh2_channel_exec.

Why do you think libssh2_channel_exec is the right one for you?

>  However, I have a slight problem. I think exec only allows you to
> exec one command and then you have to recreate the channel if you wish
> to exec another one.

Yes. libssh2_channel_exec requests the exec service type. This service
type is for executing a single command.

If you want to execute multiple commands then a shell service is more
appropriate.

>  This is a bit of a problem for me since our remote cluster setup
> requires you to specify the name of the specific host that you wish to
> connect to after you've connected to the main server. I don't know how
> to give this information in one go to libssh2 so that I can then exec
> the command of my choice and be done with it.

How is that specified?

How would you do it when using for example openssh ssh command?


libssh2_channel_exec() is the equivalence of

   ssh -T hostname command

compared to libssh_channel_shell() which is more similar to

   ssh -T hostname

and then give the desired command(s) as input.


Regards
Henrik

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 14 03:26:49 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3E10A3I014022;
	Sat, 14 Apr 2012 03:00:38 +0200
Received: from zmail.packetdesign.com (zmail.packetdesign.com [65.192.41.45])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id
 q3E1051c012720
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 03:00:05 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by zmail.packetdesign.com (Postfix) with ESMTP id 35C485B54013
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 18:00:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zmail.packetdesign.com
Received: from zmail.packetdesign.com ([127.0.0.1])
 by localhost (zmail.packetdesign.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id xfqAEP7JRKOA for <libssh2-devel@cool.haxx.se>;
 Fri, 13 Apr 2012 18:00:00 -0700 (PDT)
Received: from dhcp-1-129.packetdesign.com (dhcp-1-129.packetdesign.com
 [192.168.1.129])
 by zmail.packetdesign.com (Postfix) with ESMTP id C487B5B54006
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 18:00:00 -0700 (PDT)
Message-ID: <4F88CC10.5070909@packetdesign.com>
Date: Fri, 13 Apr 2012 18:00:00 -0700
From: Jasmeet Bagga <jasmeet@packetdesign.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6;
 rv:11.0) Gecko/20120327 Thunderbird/11.0.1
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: libssh2 thread safety
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Hi,

Is libssh2 thread safe. Compiling on Linux I don't see D_REENTRANT or 
-pthreads  being passed to gcc ?
Please advise.

Thanks,
Jasmeet

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 14 03:37:32 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3E1bSaV018094;
	Sat, 14 Apr 2012 03:37:31 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3E1bQeh018079
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 03:37:26 +0200
Received: (qmail 7898 invoked by uid 501); 14 Apr 2012 01:37:28 -0000
Message-ID: <20120414013728.7897.qmail@stuge.se>
Date: Sat, 14 Apr 2012 03:37:28 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4F88CC10.5070909@packetdesign.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4F88CC10.5070909@packetdesign.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Jasmeet Bagga wrote:
> Is libssh2 thread safe.

No.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 14 03:47:56 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3E1lo3S027016;
	Sat, 14 Apr 2012 03:47:55 +0200
Received: from zmail.packetdesign.com (zmail.packetdesign.com [65.192.41.45])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id
 q3E1lmuM026983
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 03:47:48 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by zmail.packetdesign.com (Postfix) with ESMTP id D72F35B54013
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 18:47:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zmail.packetdesign.com
Received: from zmail.packetdesign.com ([127.0.0.1])
 by localhost (zmail.packetdesign.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id m1aNbmh3JSuI for <libssh2-devel@cool.haxx.se>;
 Fri, 13 Apr 2012 18:47:44 -0700 (PDT)
Received: from dhcp-1-129.packetdesign.com (dhcp-1-129.packetdesign.com
 [192.168.1.129])
 by zmail.packetdesign.com (Postfix) with ESMTP id 5C7B25B54006
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 18:47:44 -0700 (PDT)
Message-ID: <4F88D740.9070801@packetdesign.com>
Date: Fri, 13 Apr 2012 18:47:44 -0700
From: Jasmeet Bagga <jasmeet@packetdesign.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6;
 rv:11.0) Gecko/20120327 Thunderbird/11.0.1
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
References: <4F88CC10.5070909@packetdesign.com>
In-Reply-To: <4F88CC10.5070909@packetdesign.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Asked another way, is it safe to use libssh2 from a multi-threaded 
application. From this mail thread - 
http://www.libssh2.org/mail/libssh2-devel-archive-2010-08/0088.shtml - 
it appears that as long as a libssh2_init is not called concurrently we 
should be fine. In our application, ssh sessions are initiated only from 
a single thread, is this ok ?. Do I need to recompile libssh2 with 
-D_REENTRANT so that access to errno is sane ?

Thanks,

On 4/13/12 6:00 PM, Jasmeet Bagga wrote:
> Hi,
>
> Is libssh2 thread safe. Compiling on Linux I don't see D_REENTRANT or 
> -pthreads  being passed to gcc ?
> Please advise.
>
> Thanks,
> Jasmeet
>
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 14 04:07:54 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3E27e9g013698;
	Sat, 14 Apr 2012 04:07:52 +0200
Received: from zmail.packetdesign.com (zmail.packetdesign.com [65.192.41.45])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id
 q3E27cDV013649
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 04:07:38 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by zmail.packetdesign.com (Postfix) with ESMTP id 0A5F55B54013
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 19:07:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zmail.packetdesign.com
Received: from zmail.packetdesign.com ([127.0.0.1])
 by localhost (zmail.packetdesign.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id bDfxH6QF+WnV for <libssh2-devel@cool.haxx.se>;
 Fri, 13 Apr 2012 19:07:31 -0700 (PDT)
Received: from dhcp-1-129.packetdesign.com (dhcp-1-129.packetdesign.com
 [192.168.1.129])
 by zmail.packetdesign.com (Postfix) with ESMTP id 412765B54006
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 19:07:31 -0700 (PDT)
Message-ID: <4F88DBE3.7030005@packetdesign.com>
Date: Fri, 13 Apr 2012 19:07:31 -0700
From: Jasmeet Bagga <jasmeet@packetdesign.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6;
 rv:11.0) Gecko/20120327 Thunderbird/11.0.1
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
References: <4F88CC10.5070909@packetdesign.com>
 <20120414013728.7897.qmail@stuge.se>
In-Reply-To: <20120414013728.7897.qmail@stuge.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 4/13/12 6:37 PM, Peter Stuge wrote:
> Jasmeet Bagga wrote:
>> Is libssh2 thread safe.
> No.
Sorry, I didn't see this response before posting a follow up question. 
Allow me to ask a more specific question. Is there a sane way to use 
libssh2 from a multi-threaded application ? In my case all ssh sessions 
are contained within a single thread. However looking at libssh2's use 
of errno, I was wondering if I need to compile libssh2 with -D_REENTRANT 
to be able to use it correctly here ?

Jasmeet
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 14 04:09:12 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3E29BGn014533;
	Sat, 14 Apr 2012 04:09:12 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3E299bM014522
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 04:09:09 +0200
Received: (qmail 10378 invoked by uid 501); 14 Apr 2012 02:09:09 -0000
Message-ID: <20120414020909.10377.qmail@stuge.se>
Date: Sat, 14 Apr 2012 04:09:09 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4F88CC10.5070909@packetdesign.com>
 <4F88D740.9070801@packetdesign.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4F88D740.9070801@packetdesign.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Jasmeet Bagga wrote:
> Asked another way, is it safe to use libssh2 from a multi-threaded 
> application.

This is the same question, and the answer is also the same: No.


> In our application, ssh sessions are initiated only from a single 
> thread, is this ok ?

Initiating sessions is not relevant. All use of libssh2 must be
synchronized.


> Do I need to recompile libssh2 with -D_REENTRANT so that access to
> errno is sane ?

I don't think so. You need to make sure that only one thread calls
libssh2 at a time.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 14 04:27:31 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3E2RO2M032718;
	Sat, 14 Apr 2012 04:27:29 +0200
Received: from zmail.packetdesign.com (zmail.packetdesign.com [65.192.41.45])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id
 q3E2RML9032671
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 04:27:22 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by zmail.packetdesign.com (Postfix) with ESMTP id C1BAE5B54013
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 19:27:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zmail.packetdesign.com
Received: from zmail.packetdesign.com ([127.0.0.1])
 by localhost (zmail.packetdesign.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id W3H883hq07QZ for <libssh2-devel@cool.haxx.se>;
 Fri, 13 Apr 2012 19:27:17 -0700 (PDT)
Received: from dhcp-1-129.packetdesign.com (dhcp-1-129.packetdesign.com
 [192.168.1.129])
 by zmail.packetdesign.com (Postfix) with ESMTP id 564095B54006
 for <libssh2-devel@cool.haxx.se>; Fri, 13 Apr 2012 19:27:17 -0700 (PDT)
Message-ID: <4F88E085.4000300@packetdesign.com>
Date: Fri, 13 Apr 2012 19:27:17 -0700
From: Jasmeet Bagga <jasmeet@packetdesign.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6;
 rv:11.0) Gecko/20120327 Thunderbird/11.0.1
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
References: <4F88CC10.5070909@packetdesign.com>
 <4F88D740.9070801@packetdesign.com> <20120414020909.10377.qmail@stuge.se>
In-Reply-To: <20120414020909.10377.qmail@stuge.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 4/13/12 7:09 PM, Peter Stuge wrote:
> Jasmeet Bagga wrote:
>> Asked another way, is it safe to use libssh2 from a multi-threaded
>> application.
> This is the same question, and the answer is also the same: No.
>
>
>> In our application, ssh sessions are initiated only from a single
>> thread, is this ok ?
> Initiating sessions is not relevant. All use of libssh2 must be
> synchronized.
s/initiated/contained/ i.e. all sessions are contained within a thread. 
The other thread does not do anything with libssh2.
>
>> Do I need to recompile libssh2 with -D_REENTRANT so that access to
>> errno is sane ?
> I don't think so. You need to make sure that only one thread calls
> libssh2 at a time.
Only one thread does. However I am getting login failures with error 
message "Failed getting banner". Looking at another mail thread 
(http://www.libssh2.org/mail/libssh2-devel-archive-2010-06/0243.shtml) 
it seems the problem went away after compiling with -D_REENTRANT. I 
tried this but it didn't help. Unfortunately I can't access the 
associated ticket as libssh2 trac is down.

Jasmeet
>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 14 04:46:04 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3E2juPm008473;
	Sat, 14 Apr 2012 04:46:03 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3E2jsSD008461
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 04:45:54 +0200
Received: (qmail 13025 invoked by uid 501); 14 Apr 2012 02:45:54 -0000
Message-ID: <20120414024554.13024.qmail@stuge.se>
Date: Sat, 14 Apr 2012 04:45:54 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4F88CC10.5070909@packetdesign.com>
 <4F88D740.9070801@packetdesign.com> <20120414020909.10377.qmail@stuge.se>
 <4F88E085.4000300@packetdesign.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4F88E085.4000300@packetdesign.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Jasmeet Bagga wrote:
>> Initiating sessions is not relevant. All use of libssh2 must be
>> synchronized.
> 
> s/initiated/contained/ i.e. all sessions are contained within a
> thread. The other thread does not do anything with libssh2.

Sounds good.


> Only one thread does. However I am getting login failures with
> error message "Failed getting banner".

You need to provide COMPLETE details of your problem. I suggest
enabling tracing and sending the full log to the list.


> it seems the problem went away after compiling with -D_REENTRANT. I
> tried this but it didn't help. Unfortunately I can't access the
> associated ticket as libssh2 trac is down.

Try now. http://trac.libssh2.org/ticket/99


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 14 11:44:49 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3E9iNsw030393;
	Sat, 14 Apr 2012 11:44:42 +0200
Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3E9iKpc030344
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 11:44:21 +0200
Received: from pps.filterd (ltcfislmsgpa05 [127.0.0.1])
 by ltcfislmsgpa05.fnfis.com (8.14.4/8.14.4) with SMTP id q3E9ccsW002122
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 04:44:16 -0500
Received: from smtp.fisglobal.com ([10.132.206.15])
 by ltcfislmsgpa05.fnfis.com with ESMTP id 146yk68u92-1
 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 04:44:16 -0500
Received: from LTCFISWMSGMB23.FNFIS.com ([10.132.99.25]) by
 LTCFISWMSGHT04.FNFIS.com ([10.132.206.15]) with mapi id 14.02.0283.003; Sat,
 14 Apr 2012 04:44:15 -0500
From: "V, AnilKumar" <anilkumar.v@fisglobal.com>
To: "libssh2-devel@cool.haxx.se" <libssh2-devel@cool.haxx.se>
Subject: Reg: Getting error while configuring libssh2 package.
Thread-Topic: Reg: Getting error while configuring libssh2 package.
Thread-Index: Ac0aIyQlhNFwnCrIQn6hOJX9vcLoqw==
Date: Sat, 14 Apr 2012 09:44:14 +0000
Message-ID: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.164.120.222]
Content-Type: multipart/mixed;
 boundary="_007_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.6.7498, 1.0.260,
 0.0.0000
 definitions=2012-04-14_02:2012-04-13,2012-04-14,1970-01-01 signatures=0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--_007_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_
Content-Type: multipart/related;
	boundary="_006_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_";
	type="multipart/alternative"

--_006_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_
Content-Type: multipart/alternative;
	boundary="_000_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_"

--_000_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

Im getting error when I tried to configure with the below options in sun So=
laris SPARC Architecture.

./configure CC=3Dcc CFLAGS=3D-xarch=3Dv9 \
            --prefix=3D/ctxtools/cortex/local/64bit \
              --disable-shared --enable-static \
            --with-openssl --without-libgcrypt \
            --with-libssl-prefix=3D/ctxtools/cortex/local/64bit/  \
            --with-libz-prefix=3D/ctxtools/cortex/local/64bit

And the error is like this , and I am sure openssl was present in this path=
 "/ctxtools/cortex/local/64bit/ ".

configure: error: cannot find OpenSSL or Libgcrypt,
try --with-libssl-prefix=3DPATH or --with-libgcrypt-prefix=3DPATH

Please find the attached config.log for more details, Can you please help o=
n this .

Thanks And Regards,
Anil Kumar.V

[Description: http://faim-awards-india.fnfis.com/images/fis_logo.jpg]
FIS Global Business Solutions India Pvt. Ltd.
www.fisglobal.com<http://www.fisglobal.com>

_____________
The information contained in this message is proprietary and/or confidentia=
l. If you are not the intended recipient, please: (i) delete the message an=
d all copies; (ii) do not disclose, distribute or use the message in any ma=
nner; and (iii) notify the sender immediately. In addition, please be aware=
 that any message addressed to our domain is subject to archiving and revie=
w by persons other than the intended recipient. Thank you.

--_000_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii">
<meta name=3D"Generator" content=3D"Microsoft Word 12 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span style=3D"color:#365F91">Hi,<o:p></o:p></span><=
/p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91">Im getting error when =
I tried to configure with the below options in sun Solaris SPARC Architectu=
re.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91">./configure CC=3Dcc CF=
LAGS=3D-xarch=3Dv9 \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91">&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --prefix=3D/ctxtools/cortex/lo=
cal/64bit \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91">&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --disable-shared -=
-enable-static \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91">&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;--with-openssl --without-libgc=
rypt \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91">&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --with-libssl-prefix=3D/ctxtoo=
ls/cortex/local/64bit/&nbsp; \<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91">&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --with-libz-prefix=3D/ctxtools=
/cortex/local/64bit<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91">And the error is like =
this , and I am sure openssl was present in this path &#8220;<b>/ctxtools/c=
ortex/local/64bit/ &#8220;.<o:p></o:p></b></span></p>
<p class=3D"MsoNormal"><b><span style=3D"color:#365F91"><o:p>&nbsp;</o:p></=
span></b></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91">configure: error: cann=
ot find OpenSSL or Libgcrypt,<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91">try --with-libssl-pref=
ix=3DPATH or --with-libgcrypt-prefix=3DPATH<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#365F91">Please find the attach=
ed config.log for more details, Can you please help on this .<o:p></o:p></s=
pan></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Thanks And Regards,<o:=
p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D">Anil Kumar.V<o:p></o:p=
></span></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><o:p>&nbsp;</o:p></spa=
n></p>
<p class=3D"MsoNormal"><span style=3D"color:#1F497D"><img width=3D"90" heig=
ht=3D"37" id=3D"Picture_x0020_34" src=3D"cid:image001.jpg@01CD1A50.DE149890=
" alt=3D"Description: http://faim-awards-india.fnfis.com/images/fis_logo.jp=
g"><o:p></o:p></span></p>
<p class=3D"MsoNormal"><b><span style=3D"font-size:10.0pt;color:#1F497D">FI=
S Global Business Solutions India Pvt. Ltd.</span></b><b><span style=3D"fon=
t-size:10.0pt;color:#1F497D"><o:p></o:p></span></b></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;color:#1F497D"><a hr=
ef=3D"http://www.fisglobal.com"><span style=3D"color:#1F497D">www.fisglobal=
.com</span></a><o:p></o:p></span></p>
<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>
</div>

<DIV>
_____________<BR>
The information contained in this message is proprietary and/or confidentia=
l. If you are not the intended recipient, please: (i) delete the message an=
d all copies; (ii) do not disclose, distribute or use the message in any ma=
nner; and (iii) notify the sender immediately. In addition, please be aware=
 that any message addressed to our domain is subject to archiving and revie=
w by persons other than the intended recipient. Thank you.<BR>
</DIV></body>
</html>

--_000_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_--

--_006_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_
Content-Type: image/jpeg; name="image001.jpg"
Content-Description: image001.jpg
Content-Disposition: inline; filename="image001.jpg"; size=14966;
	creation-date="Sat, 14 Apr 2012 09:44:12 GMT";
	modification-date="Sat, 14 Apr 2012 09:44:12 GMT"
Content-ID: <image001.jpg@01CD1A50.DE149890>
Content-Transfer-Encoding: base64

/9j/4AAQSkZJRgABAgEASABIAAD/4QauRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA
AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp
AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dz
ADIwMDk6MTA6MDUgMjA6MjM6MzIAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAWqADAAQAAAAB
AAAAJQAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA
AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAAAV4AAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG
AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL
CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN
Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM
DAwM/8AAEQgAJQBaAwEiAAIRAQMRAf/dAAQABv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH
CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh
EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi
ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE
BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy
gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX
Z3eHl6e3x//aAAwDAQACEQMRAD8A9Sta51bmtMOI0KBjU3Mre1xgu+j3g/vKj1v6xY/S/wBC1vrZ
RE+nMBoPDrHLHH1l+sbxuZiAtOoiqwj79yBiCQeynoen4uTQ95uPtOkTMn95CwcHOpzn23PmszJm
d0/R0WJ/zj+sv/cP/wABs/vS/wCcf1l/7h/+A2f3qP2I+jU+g8Q1/NHCNPB1mdO6i3rByS/9DuLt
27lp/wAFsWZ1ToHX8j6zV5+PfGKHMc1++PTa2PUr9L87f7v6+/3rZ6FndQzcV9mfT6Lw/az2lsiB
rsf7vpLO6h9ZcvF+s+N0llbDj2mttjjO+bJ1aZ2t2Ie1CAIuXqnxb/pFHCAOupekSSXMdR+tmT9r
djdLpF2wkF5BeXEfS9Nlf5n8pTLnp0lyH/OP6y/9w/8AwGz+9L/nH9Zf+4f/AIDZ/ekp69JcgPrF
9ZiQBhyfD0bNfxXUerkf6L/Bb+f8J/ov/MklP//Q6L6v1VdS6zk5uZD/AEpth3Ekwyf5NTGrbP1r
6GDHrE+YY/8A8isj6lgOzM0ESCwAg/1nLYP1U6GST6BE9g94H/VJKW/52dE/0zv8x/8A5FWcHrnT
c+4041pdYBu2lrm6Dw3BVv8Amp0P/Qu/z3/+SVnB6J03p9puxatthG3cXFxjy3EpKb64TrX/AIvs
P+vj/lXdrhOtf+L7D/r4/wCVR5dh/eC2XTze5e0uY5oMEggHwlcV9X8+joudk057Sxx9hsAktLSf
bp+ZYu3VLO6P07PcHZVIe8aB4Ja6PDcyFIuan/Ovon+md/mP/wDIpf8AOvon+md/mP8A/Ipf81Oh
/wChd/nv/wDJJf8ANTof+hd/nv8A/JJKTY31i6Pk2imvIAsdo0PDmyfDc8Bq0lyP1k6D03BwRk40
1WB4btLiQ4H+t+c36Sz/ANudU/0rv6L6fy/03/Gfy0lP/9HqfqYK/tubsLj7WxIA03O1Pud7l1i+
VUklP1UkvlVJJT9VLh+tCn/n5hS507qdw2iJk7IO76Lvz14ako8uw/vBbLp5v1UuE6kOuftDJ2HL
LPUds2h8bZ9u3Ydm1eIJKRc+zf5e8cz7rEv8veOZ91i8ZSRQ+xPFhuZ+13ZTa+25pLiO+z13s2rr
/wDsc/4P+if+y/8A5L/wRfNySSX/2f/tC3xQaG90b3Nob3AgMy4wADhCSU0EJQAAAAAAEAAAAAAA
AAAAAAAAAAAAAAA4QklNA+0AAAAAABAASAAAAAEAAgBIAAAAAQACOEJJTQQmAAAAAAAOAAAAAAAA
AAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAA
AAAAAQA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAAB
AC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJ
TQP4AAAAAABwAAD/////////////////////////////A+gAAAAA////////////////////////
/////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////
////A+gAADhCSU0EAAAAAAAAAgABOEJJTQQCAAAAAAAEAAAAADhCSU0EMAAAAAAAAgEBOEJJTQQt
AAAAAAAGAAEAAAACOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4
QklNBBoAAAAAA0kAAAAGAAAAAAAAAAAAAAAlAAAAWgAAAAoAVQBuAHQAaQB0AGwAZQBkAC0AMQAA
AAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAWgAAACUAAAAAAAAAAAAAAAAAAAAAAQAA
AAAAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAG51bGwAAAACAAAABmJvdW5kc09iamMAAAABAAAA
AAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAA
ACUAAAAAUmdodGxvbmcAAABaAAAABnNsaWNlc1ZsTHMAAAABT2JqYwAAAAEAAAAAAAVzbGljZQAA
ABIAAAAHc2xpY2VJRGxvbmcAAAAAAAAAB2dyb3VwSURsb25nAAAAAAAAAAZvcmlnaW5lbnVtAAAA
DEVTbGljZU9yaWdpbgAAAA1hdXRvR2VuZXJhdGVkAAAAAFR5cGVlbnVtAAAACkVTbGljZVR5cGUA
AAAASW1nIAAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBsb25nAAAAAAAA
AABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAAlAAAAAFJnaHRsb25nAAAAWgAAAAN1cmxURVhU
AAAAAQAAAAAAAG51bGxURVhUAAAAAQAAAAAAAE1zZ2VURVhUAAAAAQAAAAAABmFsdFRhZ1RFWFQA
AAABAAAAAAAOY2VsbFRleHRJc0hUTUxib29sAQAAAAhjZWxsVGV4dFRFWFQAAAABAAAAAAAJaG9y
ekFsaWduZW51bQAAAA9FU2xpY2VIb3J6QWxpZ24AAAAHZGVmYXVsdAAAAAl2ZXJ0QWxpZ25lbnVt
AAAAD0VTbGljZVZlcnRBbGlnbgAAAAdkZWZhdWx0AAAAC2JnQ29sb3JUeXBlZW51bQAAABFFU2xp
Y2VCR0NvbG9yVHlwZQAAAABOb25lAAAACXRvcE91dHNldGxvbmcAAAAAAAAACmxlZnRPdXRzZXRs
b25nAAAAAAAAAAxib3R0b21PdXRzZXRsb25nAAAAAAAAAAtyaWdodE91dHNldGxvbmcAAAAAADhC
SU0EKAAAAAAADAAAAAI/8AAAAAAAADhCSU0EFAAAAAAABAAAAAI4QklNBAwAAAAABZQAAAABAAAA
WgAAACUAAAEQAAAnUAAABXgAGAAB/9j/4AAQSkZJRgABAgAASABIAAD/7QAMQWRvYmVfQ00AAf/u
AA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJCAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwM
DAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREM
DAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDP/AABEIACUAWgMBIgACEQEDEQH/3QAE
AAb/xAE/AAABBQEBAQEBAQAAAAAAAAADAAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgME
BQYHCAkKCxAAAQQBAwIEAgUHBggFAwwzAQACEQMEIRIxBUFRYRMicYEyBhSRobFCIyQVUsFiMzRy
gtFDByWSU/Dh8WNzNRaisoMmRJNUZEXCo3Q2F9JV4mXys4TD03Xj80YnlKSFtJXE1OT0pbXF1eX1
VmZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3EQACAgECBAQDBAUGBwcGBTUBAAIRAyExEgRBUWFxIhMF
MoGRFKGxQiPBUtHwMyRi4XKCkkNTFWNzNPElBhaisoMHJjXC0kSTVKMXZEVVNnRl4vKzhMPTdePz
RpSkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2JzdHV2d3h5ent8f/2gAMAwEAAhEDEQA/APUrWudW
5rTDiNCgY1NzK3tcYLvo94P7yo9b+sWP0v8AQtb62URPpzAaDw6xyxx9ZfrG8bmYgLTqIqsI+/cg
YgkHsp6Hp+Lk0Pebj7TpEzJ/eQsHBzqc59tz5rMyZndP0dFif84/rL/3D/8AAbP70v8AnH9Zf+4f
/gNn96j9iPo1PoPENfzRwjTwdZnTuot6wckv/Q7i7du5af8ABbFmdU6B1/I+s1efj3xihzHNfvj0
2tj1K/S/O3+7+vv962ehZ3UM3FfZn0+i8P2s9pbIga7H+76SzuofWXLxfrPjdJZWw49prbY4zvmy
dWmdrdiHtQgCLl6p8W/6RRwgDrqXpEklzHUfrZk/a3Y3S6RdsJBeQXlxH0vTZX+Z/KUy56dJch/z
j+sv/cP/AMBs/vS/5x/WX/uH/wCA2f3pKevSXID6xfWYkAYcnw9GzX8V1Hq5H+i/wW/n/Cf6L/zJ
JT//0Oi+r9VXUus5ObmQ/wBKbYdxJMMn+TUxq2z9a+hgx6xPmGP/APIrI+pYDszNBEgsAIP9Zy2D
9VOhkk+gRPYPeB/1SSlv+dnRP9M7/Mf/AORVnB6503PuNONaXWAbtpa5ug8NwVb/AJqdD/0Lv89/
/klZweidN6fabsWrbYRt3FxcY8txKSm+uE61/wCL7D/r4/5V3a4TrX/i+w/6+P8AlUeXYf3gtl08
3uXtLmOaDBIIB8JXFfV/Po6LnZNOe0scfYbAJLS0n26fmWLt1Szuj9Oz3B2VSHvGgeCWujw3MhSL
mp/zr6J/pnf5j/8AyKX/ADr6J/pnf5j/APyKX/NTof8AoXf57/8AySX/ADU6H/oXf57/APySSk2N
9Yuj5NopryALHaNDw5snw3PAatJcj9ZOg9NwcEZONNVgeG7S4kOB/rfnN+ks/wDbnVP9K7+i+n8v
9N/xn8tJT//R6n6mCv7bm7C4+1sSANNztT7ne5dYvlVJJT9VJL5VSSU/VS4frQp/5+YUudO6ncNo
iZOyDu+i789eGpKPLsP7wWy6eb9VLhOpDrn7Qydhyyz1HbNofG2fbt2HZtXiCSkXPs3+XvHM+6xL
/L3jmfdYvGUkUPsTxYbmftd2U2vtuaS4jvs9d7Nq6/8A7HP+D/on/sv/AOS/8EXzckkl/9k4QklN
BCEAAAAAAFUAAAABAQAAAA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABv
AGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwACAAQwBTADQAAAABADhCSU0EBgAAAAAABwAIAAEAAQEA
/+ERK2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlk
PSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpu
czptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4yLjItYzA2MyA1My4zNTI2MjQsIDIw
MDgvMDcvMzAtMTg6MTI6MTggICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRm
OmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6
eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0RXZ0PSJodHRw
Oi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiIHhtbG5zOmRjPSJo
dHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8v
bnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUu
Y29tL3RpZmYvMS4wLyIgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8i
IHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNCBXaW5kb3dzIiB4bXA6TWV0YWRh
dGFEYXRlPSIyMDA5LTEwLTA1VDIwOjIzOjMyKzA1OjMwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAwOS0x
MC0wNVQyMDoyMzozMiswNTozMCIgeG1wOkNyZWF0ZURhdGU9IjIwMDktMTAtMDVUMjA6MjM6MzIr
MDU6MzAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RkM4Q0NGRjhCREIxREUxMTg2RDM4RDc0
NkU5Q0Q4NTAiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RkI4Q0NGRjhCREIxREUxMTg2RDM4
RDc0NkU5Q0Q4NTAiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpGQjhDQ0ZGOEJE
QjFERTExODZEMzhENzQ2RTlDRDg1MCIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6
Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiIHRp
ZmY6T3JpZW50YXRpb249IjEiIHRpZmY6WFJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpZ
UmVzb2x1dGlvbj0iNzIwMDAwLzEwMDAwIiB0aWZmOlJlc29sdXRpb25Vbml0PSIyIiB0aWZmOk5h
dGl2ZURpZ2VzdD0iMjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4Miwy
ODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7
QTMyNTE3Q0E2OEVCNDEwNDkyNjlFMDI4QTRCRjMyQUQiIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSI5
MCIgZXhpZjpQaXhlbFlEaW1lbnNpb249IjM3IiBleGlmOkNvbG9yU3BhY2U9IjEiIGV4aWY6TmF0
aXZlRGlnZXN0PSIzNjg2NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEyMiw0MDk2Miw0MDk2MywzNzUx
MCw0MDk2NCwzNjg2NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwzNDg1MiwzNDg1NSwzNDg1Niwz
NzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4NCwzNzM4NSwzNzM4
NiwzNzM5Niw0MTQ4Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4OCw0MTQ5Miw0MTQ5Myw0MTQ5NSw0
MTcyOCw0MTcyOSw0MTczMCw0MTk4NSw0MTk4Niw0MTk4Nyw0MTk4OCw0MTk4OSw0MTk5MCw0MTk5
MSw0MTk5Miw0MTk5Myw0MTk5NCw0MTk5NSw0MTk5Niw0MjAxNiwwLDIsNCw1LDYsNyw4LDksMTAs
MTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMzA7RjAzRUE2
QzJDMEM4RDZENTY3NjEzNkNCMDQyMjlCODciPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxy
ZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkZC
OENDRkY4QkRCMURFMTE4NkQzOEQ3NDZFOUNEODUwIiBzdEV2dDp3aGVuPSIyMDA5LTEwLTA1VDIw
OjIzOjMyKzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M0IFdp
bmRvd3MiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4
bXAuaWlkOkZDOENDRkY4QkRCMURFMTE4NkQzOEQ3NDZFOUNEODUwIiBzdEV2dDp3aGVuPSIyMDA5
LTEwLTA1VDIwOjIzOjMyKzA1OjMwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3No
b3AgQ1M0IFdpbmRvd3MiIHN0RXZ0OmNoYW5nZWQ9Ii8iLz4gPC9yZGY6U2VxPiA8L3htcE1NOkhp
c3Rvcnk+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/eHBhY2tldCBl
bmQ9InciPz7/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkA
BgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLUhQICAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk
ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFlaAAACLAAA
ABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD
1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJD
AAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBh
Y2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJz
UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAA
AABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MA
AAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3Lmll
Yy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAA
AAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAA
AAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGlu
IElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJ
RUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8U
AAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAA
AAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo
AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIA
twC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZ
AWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgC
QQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNm
A3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME
4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAad
Bq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoI
vgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsi
CzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N
+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RET
ETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsU
rRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiK
GK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc
9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGh
Ic4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm
6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxu
LKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy
mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkF
OUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JA
I0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7
R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lP
k0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfg
WC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg
/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpI
ap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0
cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7C
fyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ
/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVf
lcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUeh
tqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4t
rqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67
p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6
ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX
4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW
5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72
bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////7gAOQWRvYmUAZEAAAAAB/9sAhAAB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAgICAgICAgICAgIDAwMD
AwMDAwMDAQEBAQEBAQEBAQECAgECAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwP/wAARCAAlAFoDAREAAhEBAxEB/90ABAAM/8QArQAAAgIDAQEAAAAAAAAA
AAAAAAoICQMGBwECAQACAgMBAAAAAAAAAAAAAAAAAQIDBQYHBBAAAAUDAgMEAwoIDwAAAAAAAQID
BAUGBwgAEhETCRQVlxkh1lcxUSIyNdUWdjhYI1SU1LU3GDlBYXGBkWIzNGRlpVYXZykRAAEDAgUD
AgMGBwEAAAAAAAEAEQIDBCExURIFQRMGIgdhQlJxkbEycoPwgaEUFjY3F//aAAwDAQACEQMRAD8A
fZqlhIylPTEfEuuxSTyPcIMnW86XKXOQQL+FT4nS3hxLuL6S8eIe5rGcxQurrjL61sa3bu6lKQjL
JpHLHo+T9M1VWhOdKpGnJpkYFcuttRlZwFO1OwlXxWDuUTWJCpg67b3W7M1cJd584gnKTmrqJm2F
ER/Bbh9I61DxLx/nuM4jlra+u+3XrAikN2/tyMZDeCNSQWGi8dnQuoUq0K0wHyboWzWiY+2xuVQk
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

--_006_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_--

--_007_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_
Content-Type: text/plain; name="libssh.txt"
Content-Description: libssh.txt
Content-Disposition: attachment; filename="libssh.txt"; size=685;
	creation-date="Fri, 13 Apr 2012 09:36:25 GMT";
	modification-date="Fri, 13 Apr 2012 09:36:25 GMT"
Content-Transfer-Encoding: base64

d2hpbGUgY29uZmlndXJpbmcgc29tZSBlcnJvIGlzIGNvbWluZy4NCg0KY2hlY2tpbmcgZm9yIHNo
YXJlZCBsaWJyYXJ5IHJ1biBwYXRoIG9yaWdpbi4uLiBkb25lDQpjaGVja2luZyBmb3IgbGlic3Ns
Li4uIG5vDQpjaGVja2luZyBmb3IgbGliZ2NyeXB0Li4uIG5vDQpjb25maWd1cmU6IGVycm9yOiBj
YW5ub3QgZmluZCBPcGVuU1NMIG9yIExpYmdjcnlwdCwNCnRyeSAtLXdpdGgtbGlic3NsLXByZWZp
eD1QQVRIIG9yIC0td2l0aC1saWJnY3J5cHQtcHJlZml4PVBBVEgNCiQgcHdkDQovY29ydGV4L2J1
aWxkL3RoaXJkX3BhcnR5LzY0Yml0L2xpYnNzaDItMS4yLjQNCg0KDQoNCi4vY29uZmlndXJlIEND
PWNjIENGTEFHUz0teGFyY2g9djkgXA0KICAgICAgICAgICAgLS1wcmVmaXg9L2N0eHRvb2wvY29y
dGV4L2xvY2FsLzY0Yml0IFwNCiAgICAgICAgICAgIC0tYnVpbGQ9eDg2XzY0LXBjLXNvbGFyaXM1
LjEwIFwNCiAgICAgICAgICAgIC0tZGlzYWJsZS1zaGFyZWQgLS1lbmFibGUtc3RhdGljIFwNCiAg
ICAgICAgICAgIC0td2l0aC1vcGVuc3NsIC0td2l0aG91dC1saWJnY3J5cHQgXA0KICAgICAgICAg
ICAgLS13aXRoLWxpYnNzbC1wcmVmaXg9L2N0eHRvb2wvY29ydGV4L2xvY2FsLzY0Yml0IFwNCiAg
ICAgICAgICAgIC0td2l0aC1saWJ6LXByZWZpeD0vY3R4dG9vbC9jb3J0ZXgvbG9jYWwvNjRiaXQN
Cg==

--_007_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_
Content-Type: application/octet-stream; name="config.log"
Content-Description: config.log
Content-Disposition: attachment; filename="config.log"; size=30879;
	creation-date="Sat, 14 Apr 2012 09:42:57 GMT";
	modification-date="Fri, 13 Apr 2012 20:34:56 GMT"
Content-Transfer-Encoding: base64

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz
IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IGxpYnNzaDIgY29uZmlndXJlIC0sIHdoaWNo
IHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjUuICBJbnZvY2F0aW9uIGNvbW1hbmQg
bGluZSB3YXMKCiAgJCAuL2NvbmZpZ3VyZSBDQz1jYyBDRkxBR1M9LXhhcmNoPXY5IC0tcHJlZml4
PS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQgLS1kaXNhYmxlLXNoYXJlZCAtLWVuYWJsZS1z
dGF0aWMgLS13aXRoLW9wZW5zc2wgLS13aXRob3V0LWxpYmdjcnlwdCAtLXdpdGgtbGlic3NsLXBy
ZWZpeD0vY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0LyAtLXdpdGgtbGliei1wcmVmaXg9L2N0
eHRvb2xzL2NvcnRleC9sb2NhbC82NGJpdAoKIyMgLS0tLS0tLS0tICMjCiMjIFBsYXRmb3JtLiAj
IwojIyAtLS0tLS0tLS0gIyMKCmhvc3RuYW1lID0gY2huc3VuMDEKdW5hbWUgLW0gPSBzdW40dQp1
bmFtZSAtciA9IDUuMTAKdW5hbWUgLXMgPSBTdW5PUwp1bmFtZSAtdiA9IEdlbmVyaWNfMTQyOTA5
LTE3CgovdXNyL2Jpbi91bmFtZSAtcCA9IHNwYXJjCi9iaW4vdW5hbWUgLVggICAgID0gU3lzdGVt
ID0gU3VuT1MKTm9kZSA9IGNobnN1bjAxClJlbGVhc2UgPSA1LjEwCktlcm5lbElEID0gR2VuZXJp
Y18xNDI5MDktMTcKTWFjaGluZSA9IHN1bjR1CkJ1c1R5cGUgPSA8dW5rbm93bj4KU2VyaWFsID0g
PHVua25vd24+ClVzZXJzID0gPHVua25vd24+Ck9FTSMgPSAwCk9yaWdpbiMgPSAxCk51bUNQVSA9
IDQKCi9iaW4vYXJjaCAgICAgICAgICAgICAgPSBzdW40Ci91c3IvYmluL2FyY2ggLWsgICAgICAg
PSBzdW40dQovdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gdW5rbm93bgovdXNyL2Jpbi9ob3N0aW5m
byAgICAgID0gdW5rbm93bgovYmluL21hY2hpbmUgICAgICAgICAgID0gdW5rbm93bgovdXNyL2Jp
bi9vc2xldmVsICAgICAgID0gdW5rbm93bgovYmluL3VuaXZlcnNlICAgICAgICAgID0gdW5rbm93
bgoKUEFUSDogL3Vzci9sb2NhbC9iaW4KUEFUSDogL3Vzci9iaW4KUEFUSDogL2V4cG9ydC9ob21l
L2NvcnRleC9iaW4KUEFUSDogL09zcmMvdG9vbHMvYmluClBBVEg6IC9jdHh0b29scy9jb3J0ZXgv
bG9jYWwvNjRiaXQvYmluLwpQQVRIOiAvb3B0L1NVTldzcHJvL3Byb2QvYmluLwpQQVRIOiAvdXNy
L2Njcy9iaW4vCgoKIyMgLS0tLS0tLS0tLS0gIyMKIyMgQ29yZSB0ZXN0cy4gIyMKIyMgLS0tLS0t
LS0tLS0gIyMKCmNvbmZpZ3VyZToyNDE3OiBjaGVja2luZyB3aGV0aGVyIHRvIGVuYWJsZSBtYWlu
dGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlcwpjb25maWd1cmU6MjQyNjogcmVz
dWx0OiBubwpjb25maWd1cmU6MjQ0NDogY2hlY2tpbmcgZm9yIHNlZApjb25maWd1cmU6MjQ2Mzog
Zm91bmQgL3Vzci9iaW4vc2VkCmNvbmZpZ3VyZToyNDc2OiByZXN1bHQ6IC91c3IvYmluL3NlZApj
b25maWd1cmU6MjUzMDogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbApjb25m
aWd1cmU6MjU5ODogcmVzdWx0OiAuL2luc3RhbGwtc2ggLWMKY29uZmlndXJlOjI2MDk6IGNoZWNr
aW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZQpjb25maWd1cmU6MjY0NjogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjI3MDg6IGNoZWNraW5nIGZvciBnYXdrCmNvbmZpZ3VyZToyNzM4
OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzA4OiBjaGVja2luZyBmb3IgbWF3awpjb25maWd1cmU6
MjczODogcmVzdWx0OiBubwpjb25maWd1cmU6MjcwODogY2hlY2tpbmcgZm9yIG5hd2sKY29uZmln
dXJlOjI3MjQ6IGZvdW5kIC91c3IvYmluL25hd2sKY29uZmlndXJlOjI3MzU6IHJlc3VsdDogbmF3
awpjb25maWd1cmU6Mjc0NjogY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKQpjb25m
aWd1cmU6Mjc2ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjI5NDY6IGNoZWNraW5nIGxpYnNzaDIg
dmVyc2lvbgpjb25maWd1cmU6Mjk0ODogcmVzdWx0OiAxLjIuNApjb25maWd1cmU6Mjk1NzogY2hl
Y2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUKY29uZmlndXJlOjI5NzE6IHJlc3VsdDogc3BhcmMtc3Vu
LXNvbGFyaXMyLjEwCmNvbmZpZ3VyZToyOTkxOiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlCmNv
bmZpZ3VyZTozMDA0OiByZXN1bHQ6IHNwYXJjLXN1bi1zb2xhcmlzMi4xMApjb25maWd1cmU6MzAz
MTogYXV0b2J1aWxkIHByb2plY3QuLi4gbGlic3NoMgpjb25maWd1cmU6MzAzNzogYXV0b2J1aWxk
IHJldmlzaW9uLi4uIDEuMi40CmNvbmZpZ3VyZTozMDQyOiBhdXRvYnVpbGQgaG9zdG5hbWUuLi4g
Y2huc3VuMDEKY29uZmlndXJlOjMwNTM6IGF1dG9idWlsZCB0aW1lc3RhbXAuLi4gMjAxMjA0MTMt
MjAxNTI2CmNvbmZpZ3VyZTozMDk0OiBjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2Vk
IGJ5IG1ha2UKY29uZmlndXJlOjMxMjI6IHJlc3VsdDogR05VCmNvbmZpZ3VyZTozMTk1OiBjaGVj
a2luZyBmb3IgZ2NjCmNvbmZpZ3VyZTozMjIyOiByZXN1bHQ6IGNjCmNvbmZpZ3VyZTozNDUxOiBj
aGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9uCmNvbmZpZ3VyZTozNDYwOiBjYyAtLXZlcnNp
b24gPiY1CmNjOiBXYXJuaW5nOiBvcHRpb24gLS0gcGFzc2VkIHRvIGxkCnVzYWdlOiBjYyBbIG9w
dGlvbnNdIGZpbGVzLiAgVXNlICdjYyAtZmxhZ3MnIGZvciBkZXRhaWxzCmNvbmZpZ3VyZTozNDcx
OiAkPyA9IDEKY29uZmlndXJlOjM0NjA6IGNjIC12ID4mNQp1c2FnZTogY2MgWyBvcHRpb25zXSBm
aWxlcy4gIFVzZSAnY2MgLWZsYWdzJyBmb3IgZGV0YWlscwpjb25maWd1cmU6MzQ3MTogJD8gPSAx
CmNvbmZpZ3VyZTozNDYwOiBjYyAtViA+JjUKY2M6IFN1biBDIDUuOCBQYXRjaCAxMjEwMTUtMDQg
MjAwNy8wMS8xMAp1c2FnZTogY2MgWyBvcHRpb25zXSBmaWxlcy4gIFVzZSAnY2MgLWZsYWdzJyBm
b3IgZGV0YWlscwpjb25maWd1cmU6MzQ3MTogJD8gPSAxCmNvbmZpZ3VyZTozNDYwOiBjYyAtcXZl
cnNpb24gPiY1CmNjOiBpbGxlZ2FsIG9wdGlvbiAtcXZlcnNpb24KY29uZmlndXJlOjM0NzE6ICQ/
ID0gMQpjb25maWd1cmU6MzQ5MTogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jr
cwpjb25maWd1cmU6MzUxMzogY2MgLXhhcmNoPXY5ICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3Vy
ZTozNTE3OiAkPyA9IDAKY29uZmlndXJlOjM1NjY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTozNTY5
OiBjaGVja2luZyBmb3IgQyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxlIG5hbWUKY29uZmln
dXJlOjM1NzE6IHJlc3VsdDogYS5vdXQKY29uZmlndXJlOjM1Nzc6IGNoZWNraW5nIGZvciBzdWZm
aXggb2YgZXhlY3V0YWJsZXMKY29uZmlndXJlOjM1ODQ6IGNjIC1vIGNvbmZ0ZXN0IC14YXJjaD12
OSAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6MzU4ODogJD8gPSAwCmNvbmZpZ3VyZTozNjEw
OiByZXN1bHQ6IApjb25maWd1cmU6MzYzMjogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3Mg
Y29tcGlsaW5nCmNvbmZpZ3VyZTozNjQwOiBjYyAtbyBjb25mdGVzdCAteGFyY2g9djkgICBjb25m
dGVzdC5jICA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDE5OiB3YXJuaW5nOiBzdGF0ZW1lbnQgbm90
IHJlYWNoZWQKY29uZmlndXJlOjM2NDQ6ICQ/ID0gMApjb25maWd1cmU6MzY1MTogLi9jb25mdGVz
dApjb25maWd1cmU6MzY1NTogJD8gPSAwCmNvbmZpZ3VyZTozNjcwOiByZXN1bHQ6IG5vCmNvbmZp
Z3VyZTozNjc1OiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcwpjb25maWd1cmU6
MzY5NzogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MzcwMTogJD8g
PSAwCmNvbmZpZ3VyZTozNzIyOiByZXN1bHQ6IG8KY29uZmlndXJlOjM3MjY6IGNoZWNraW5nIHdo
ZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlcgpjb25maWd1cmU6Mzc0NTogY2Mg
LWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgMTY6IHVuZGVm
aW5lZCBzeW1ib2w6IGNob2tlCiJjb25mdGVzdC5jIiwgbGluZSAxNjogc3ludGF4IGVycm9yIGJl
Zm9yZSBvciBhdDogbWUKY2M6IGFjb21wIGZhaWxlZCBmb3IgY29uZnRlc3QuYwpjb25maWd1cmU6
Mzc0NTogJD8gPSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz
LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5l
IFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi
bGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNk
ZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi40Igp8IC8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICNpZm5kZWYgX19HTlVD
X18KfCAgICAgICAgY2hva2UgbWUKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0K
Y29uZmlndXJlOjM3NTQ6IHJlc3VsdDogbm8KY29uZmlndXJlOjM3NjM6IGNoZWNraW5nIHdoZXRo
ZXIgY2MgYWNjZXB0cyAtZwpjb25maWd1cmU6Mzc4MzogY2MgLWMgLWcgIGNvbmZ0ZXN0LmMgPiY1
CmNvbmZpZ3VyZTozNzgzOiAkPyA9IDAKY29uZmlndXJlOjM4MjQ6IHJlc3VsdDogeWVzCmNvbmZp
Z3VyZTozODQxOiBjaGVja2luZyBmb3IgY2Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5CmNvbmZp
Z3VyZTozOTA1OiBjYyAgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIs
IGxpbmUgNTk6IHdhcm5pbmc6IHN0YXRlbWVudCBub3QgcmVhY2hlZApjb25maWd1cmU6MzkwNTog
JD8gPSAwCmNvbmZpZ3VyZTozOTE4OiByZXN1bHQ6IG5vbmUgbmVlZGVkCmNvbmZpZ3VyZTozOTQw
OiBjaGVja2luZyBkZXBlbmRlbmN5IHN0eWxlIG9mIGNjCmNvbmZpZ3VyZTo0MDMwOiByZXN1bHQ6
IG5vbmUKY29uZmlndXJlOjQwNTM6IGNoZWNraW5nIGhvdyB0byBydW4gdGhlIEMgcHJlcHJvY2Vz
c29yCmNvbmZpZ3VyZTo0MDg0OiBjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NDA4NDogJD8g
PSAwCmNvbmZpZ3VyZTo0MDk4OiBjYyAtRSAgY29uZnRlc3QuYwoiY29uZnRlc3QuYyIsIGxpbmUg
MTE6IGNhbm5vdCBmaW5kIGluY2x1ZGUgZmlsZTogPGFjX25vbmV4aXN0ZW50Lmg+CmNjOiBhY29t
cCBmYWlsZWQgZm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjQwOTg6ICQ/ID0gMgpjb25maWd1cmU6
IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF
X05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2Rl
ZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3No
MiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4
LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIi
CnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNCIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2lu
Y2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNvbmZpZ3VyZTo0MTIzOiByZXN1bHQ6IGNjIC1FCmNv
bmZpZ3VyZTo0MTQzOiBjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1cmU6NDE0MzogJD8gPSAwCmNv
bmZpZ3VyZTo0MTU3OiBjYyAtRSAgY29uZnRlc3QuYwoiY29uZnRlc3QuYyIsIGxpbmUgMTE6IGNh
bm5vdCBmaW5kIGluY2x1ZGUgZmlsZTogPGFjX25vbmV4aXN0ZW50Lmg+CmNjOiBhY29tcCBmYWls
ZWQgZm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjQxNTc6ICQ/ID0gMgpjb25maWd1cmU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg
ImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQ
QUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8
ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8
ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2Rl
ZmluZSBWRVJTSU9OICIxLjIuNCIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUg
PGFjX25vbmV4aXN0ZW50Lmg+CmNvbmZpZ3VyZTo0MTg2OiBjaGVja2luZyBmb3IgZ3JlcCB0aGF0
IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUKY29uZmlndXJlOjQyNDQ6IHJlc3VsdDogL3Vzci94
cGc0L2Jpbi9ncmVwCmNvbmZpZ3VyZTo0MjQ5OiBjaGVja2luZyBmb3IgZWdyZXAKY29uZmlndXJl
OjQzMTE6IHJlc3VsdDogL3Vzci94cGc0L2Jpbi9ncmVwIC1FCmNvbmZpZ3VyZTo0MzE2OiBjaGVj
a2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcwpjb25maWd1cmU6NDMzNjogY2MgLWMgLXhhcmNo
PXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDMzNjogJD8gPSAwCmNvbmZpZ3VyZTo0NDA5
OiBjYyAtbyBjb25mdGVzdCAteGFyY2g9djkgICBjb25mdGVzdC5jICA+JjUKY29uZmlndXJlOjQ0
MDk6ICQ/ID0gMApjb25maWd1cmU6NDQwOTogLi9jb25mdGVzdApjb25maWd1cmU6NDQwOTogJD8g
PSAwCmNvbmZpZ3VyZTo0NDIwOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDQzMzogY2hlY2tpbmcg
Zm9yIHN5cy90eXBlcy5oCmNvbmZpZ3VyZTo0NDMzOiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0
LmMgPiY1CmNvbmZpZ3VyZTo0NDMzOiAkPyA9IDAKY29uZmlndXJlOjQ0MzM6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZTo0NDMzOiBjaGVja2luZyBmb3Igc3lzL3N0YXQuaApjb25maWd1cmU6NDQzMzog
Y2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDQzMzogJD8gPSAwCmNv
bmZpZ3VyZTo0NDMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDQzMzogY2hlY2tpbmcgZm9yIHN0
ZGxpYi5oCmNvbmZpZ3VyZTo0NDMzOiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNv
bmZpZ3VyZTo0NDMzOiAkPyA9IDAKY29uZmlndXJlOjQ0MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy
ZTo0NDMzOiBjaGVja2luZyBmb3Igc3RyaW5nLmgKY29uZmlndXJlOjQ0MzM6IGNjIC1jIC14YXJj
aD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0MzM6ICQ/ID0gMApjb25maWd1cmU6NDQz
MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MzM6IGNoZWNraW5nIGZvciBtZW1vcnkuaApjb25m
aWd1cmU6NDQzMzogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDQz
MzogJD8gPSAwCmNvbmZpZ3VyZTo0NDMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDQzMzogY2hl
Y2tpbmcgZm9yIHN0cmluZ3MuaApjb25maWd1cmU6NDQzMzogY2MgLWMgLXhhcmNoPXY5ICBjb25m
dGVzdC5jID4mNQpjb25maWd1cmU6NDQzMzogJD8gPSAwCmNvbmZpZ3VyZTo0NDMzOiByZXN1bHQ6
IHllcwpjb25maWd1cmU6NDQzMzogY2hlY2tpbmcgZm9yIGludHR5cGVzLmgKY29uZmlndXJlOjQ0
MzM6IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0MzM6ICQ/ID0g
MApjb25maWd1cmU6NDQzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MzM6IGNoZWNraW5nIGZv
ciBzdGRpbnQuaApjb25maWd1cmU6NDQzMzogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4m
NQpjb25maWd1cmU6NDQzMzogJD8gPSAwCmNvbmZpZ3VyZTo0NDMzOiByZXN1bHQ6IHllcwpjb25m
aWd1cmU6NDQzMzogY2hlY2tpbmcgZm9yIHVuaXN0ZC5oCmNvbmZpZ3VyZTo0NDMzOiBjYyAtYyAt
eGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NDMzOiAkPyA9IDAKY29uZmlndXJl
OjQ0MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NDQ2OiBjaGVja2luZyBmb3IgbG9uZyBsb25n
CmNvbmZpZ3VyZTo0NDQ2OiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy
ZTo0NDQ2OiAkPyA9IDAKY29uZmlndXJlOjQ0NDY6IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3Qu
YyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDU3OiBzeW50YXggZXJyb3IgYmVmb3JlIG9yIGF0OiAp
CmNjOiBhY29tcCBmYWlsZWQgZm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjQ0NDY6ICQ/ID0gMgpj
b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu
ZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNz
aDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO
RyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxA
Y29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0Ug
ImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNCIKfCAjZGVmaW5lIFNURENfSEVBREVS
UyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf
SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8
ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2Rl
ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu
ZSBIQVZFX1VOSVNURF9IIDEKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN0
ZGlvLmg+CnwgI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKfCAjIGluY2x1ZGUgPHN5cy90eXBlcy5o
Pgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NZU19TVEFUX0gKfCAjIGluY2x1ZGUgPHN5cy9zdGF0
Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIFNURENfSEVBREVSUwp8ICMgaW5jbHVkZSA8c3RkbGliLmg+
CnwgIyBpbmNsdWRlIDxzdGRkZWYuaD4KfCAjZWxzZQp8ICMgaWZkZWYgSEFWRV9TVERMSUJfSAp8
ICMgIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgZW5kaWYKfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9T
VFJJTkdfSAp8ICMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJTICYmIGRlZmluZWQgSEFWRV9NRU1P
UllfSAp8ICMgIGluY2x1ZGUgPG1lbW9yeS5oPgp8ICMgZW5kaWYKfCAjIGluY2x1ZGUgPHN0cmlu
Zy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR1NfSAp8ICMgaW5jbHVkZSA8c3RyaW5n
cy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX0lOVFRZUEVTX0gKfCAjIGluY2x1ZGUgPGludHR5
cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RESU5UX0gKfCAjIGluY2x1ZGUgPHN0ZGlu
dC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1VOSVNURF9ICnwgIyBpbmNsdWRlIDx1bmlzdGQu
aD4KfCAjZW5kaWYKfCBpbnQKfCBtYWluICgpCnwgewp8IGlmIChzaXplb2YgKChsb25nIGxvbmcp
KSkKfCAJICAgIHJldHVybiAwOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6NDQ0
NjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0NTg6IGNoZWNraW5nIGlmIF9SRUVOVFJBTlQgaXMg
YWxyZWFkeSBkZWZpbmVkCmNvbmZpZ3VyZTo0NDgwOiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0
LmMgPiY1CiJjb25mdGVzdC5jIiwgbGluZSAzMjogdW5kZWZpbmVkIHN5bWJvbDogZm9yY2UKImNv
bmZ0ZXN0LmMiLCBsaW5lIDMyOiBzeW50YXggZXJyb3IgYmVmb3JlIG9yIGF0OiBjb21waWxhdGlv
bgpjYzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5jCmNvbmZpZ3VyZTo0NDgwOiAkPyA9IDIK
Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp
bmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJz
c2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ
TkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVs
QGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdF
ICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjQiCnwgI2RlZmluZSBTVERDX0hFQURF
UlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFU
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEK
fCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNk
ZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZp
bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAvKiBlbmQgY29u
ZmRlZnMuaC4gICovCnwgCnwgCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAjaWZkZWYgX1JF
RU5UUkFOVAp8ICAgICAgIGludCBkdW1teT0xOwp8ICNlbHNlCnwgICAgICAgZm9yY2UgY29tcGls
YXRpb24gZXJyb3IKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KfCAKY29uZmln
dXJlOjQ0ODg6IHJlc3VsdDogbm8KY29uZmlndXJlOjQ0OTY6IGNoZWNraW5nIGlmIF9SRUVOVFJB
TlQgaXMgYWN0dWFsbHkgbmVlZGVkCmNvbmZpZ3VyZTo0NTEwOiByZXN1bHQ6IHllcwpjb25maWd1
cmU6NDUxODogY2hlY2tpbmcgaWYgX1JFRU5UUkFOVCBpcyBvbndhcmRzIGRlZmluZWQKY29uZmln
dXJlOjQ1MzI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NTQyOiBjaGVja2luZyBmb3IgbGlicmFy
eSBjb250YWluaW5nIHNvY2tldApjb25maWd1cmU6NDU3MzogY2MgLW8gY29uZnRlc3QgLXhhcmNo
PXY5ICAgY29uZnRlc3QuYyAgPiY1CiJjb25mdGVzdC5jIiwgbGluZSAzOTogd2FybmluZzogc3Rh
dGVtZW50IG5vdCByZWFjaGVkClVuZGVmaW5lZAkJCWZpcnN0IHJlZmVyZW5jZWQKIHN5bWJvbCAg
CQkJICAgIGluIGZpbGUKc29ja2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZnRl
c3QubwpsZDogZmF0YWw6IFN5bWJvbCByZWZlcmVuY2luZyBlcnJvcnMuIE5vIG91dHB1dCB3cml0
dGVuIHRvIGNvbmZ0ZXN0CmNvbmZpZ3VyZTo0NTczOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJs
aWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFD
S0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAj
ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAj
ZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZp
bmUgVkVSU0lPTiAiMS4yLjQiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW
RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVN
T1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF
U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx
CnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAj
aWZuZGVmIF9SRUVOVFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8IC8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3Rv
dHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt
YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBh
cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVz
cGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIHNvY2tldCAoKTsKfCBpbnQKfCBtYWlu
ICgpCnwgewp8IHJldHVybiBzb2NrZXQgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZp
Z3VyZTo0NTczOiBjYyAtbyBjb25mdGVzdCAteGFyY2g9djkgICBjb25mdGVzdC5jIC1sc29ja2V0
ICAgPiY1CiJjb25mdGVzdC5jIiwgbGluZSAzOTogd2FybmluZzogc3RhdGVtZW50IG5vdCByZWFj
aGVkCmNvbmZpZ3VyZTo0NTczOiAkPyA9IDAKY29uZmlndXJlOjQ1OTA6IHJlc3VsdDogLWxzb2Nr
ZXQKY29uZmlndXJlOjQ2MDA6IGNoZWNraW5nIGZvciBsaWJyYXJ5IGNvbnRhaW5pbmcgaW5ldF9h
ZGRyCmNvbmZpZ3VyZTo0NjMxOiBjYyAtbyBjb25mdGVzdCAteGFyY2g9djkgICBjb25mdGVzdC5j
IC1sc29ja2V0ICA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDM5OiB3YXJuaW5nOiBzdGF0ZW1lbnQg
bm90IHJlYWNoZWQKVW5kZWZpbmVkCQkJZmlyc3QgcmVmZXJlbmNlZAogc3ltYm9sICAJCQkgICAg
aW4gZmlsZQppbmV0X2FkZHIgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25mdGVzdC5vICAo
c3ltYm9sIGJlbG9uZ3MgdG8gaW1wbGljaXQgZGVwZW5kZW5jeSAvbGliL3NwYXJjdjkvbGlibnNs
LnNvLjEpCmxkOiBmYXRhbDogU3ltYm9sIHJlZmVyZW5jaW5nIGVycm9ycy4gTm8gb3V0cHV0IHdy
aXR0ZW4gdG8gY29uZnRlc3QKY29uZmlndXJlOjQ2MzE6ICQ/ID0gMQpjb25maWd1cmU6IGZhaWxl
ZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdFX05BTUUg
ImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQ
QUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgp8
ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8
ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCnwgI2Rl
ZmluZSBWRVJTSU9OICIxLjIuNCIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBI
QVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBI
QVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9N
RU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZ
UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I
IDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNkZWZpbmUgTkVFRF9SRUVOVFJBTlQgMQp8
ICNpZm5kZWYgX1JFRU5UUkFOVAp8ICMgIGRlZmluZSBfUkVFTlRSQU5UCnwgI2VuZGlmCnwgLyog
ZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJv
dG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0
IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz
IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3Bs
dXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgaW5ldF9hZGRyICgpOwp8IGludAp8
IG1haW4gKCkKfCB7CnwgcmV0dXJuIGluZXRfYWRkciAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8
IH0KY29uZmlndXJlOjQ2MzE6IGNjIC1vIGNvbmZ0ZXN0IC14YXJjaD12OSAgIGNvbmZ0ZXN0LmMg
LWxuc2wgIC1sc29ja2V0ICA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDM5OiB3YXJuaW5nOiBzdGF0
ZW1lbnQgbm90IHJlYWNoZWQKY29uZmlndXJlOjQ2MzE6ICQ/ID0gMApjb25maWd1cmU6NDY0ODog
cmVzdWx0OiAtbG5zbApjb25maWd1cmU6NDcwNzogY2hlY2tpbmcgZm9yIGdjYwpjb25maWd1cmU6
NDczNDogcmVzdWx0OiBjYwpjb25maWd1cmU6NDk2MzogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIg
dmVyc2lvbgpjb25maWd1cmU6NDk3MjogY2MgLS12ZXJzaW9uID4mNQpjYzogV2FybmluZzogb3B0
aW9uIC0tIHBhc3NlZCB0byBsZAp1c2FnZTogY2MgWyBvcHRpb25zXSBmaWxlcy4gIFVzZSAnY2Mg
LWZsYWdzJyBmb3IgZGV0YWlscwpjb25maWd1cmU6NDk4MzogJD8gPSAxCmNvbmZpZ3VyZTo0OTcy
OiBjYyAtdiA+JjUKdXNhZ2U6IGNjIFsgb3B0aW9uc10gZmlsZXMuICBVc2UgJ2NjIC1mbGFncycg
Zm9yIGRldGFpbHMKY29uZmlndXJlOjQ5ODM6ICQ/ID0gMQpjb25maWd1cmU6NDk3MjogY2MgLVYg
PiY1CmNjOiBTdW4gQyA1LjggUGF0Y2ggMTIxMDE1LTA0IDIwMDcvMDEvMTAKdXNhZ2U6IGNjIFsg
b3B0aW9uc10gZmlsZXMuICBVc2UgJ2NjIC1mbGFncycgZm9yIGRldGFpbHMKY29uZmlndXJlOjQ5
ODM6ICQ/ID0gMQpjb25maWd1cmU6NDk3MjogY2MgLXF2ZXJzaW9uID4mNQpjYzogaWxsZWdhbCBv
cHRpb24gLXF2ZXJzaW9uCmNvbmZpZ3VyZTo0OTgzOiAkPyA9IDEKY29uZmlndXJlOjQ5ODc6IGNo
ZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQyBjb21waWxlcgpjb25maWd1cmU6
NTAxNTogcmVzdWx0OiBubwpjb25maWd1cmU6NTAyNDogY2hlY2tpbmcgd2hldGhlciBjYyBhY2Nl
cHRzIC1nCmNvbmZpZ3VyZTo1MDg1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6NTEwMjogY2hlY2tp
bmcgZm9yIGNjIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OQpjb25maWd1cmU6NTE3OTogcmVzdWx0
OiBub25lIG5lZWRlZApjb25maWd1cmU6NTIwMTogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBv
ZiBjYwpjb25maWd1cmU6NTI5MTogcmVzdWx0OiBub25lCmNvbmZpZ3VyZTo1MzA5OiBjaGVja2lu
ZyB3aGV0aGVyIGxuIC1zIHdvcmtzCmNvbmZpZ3VyZTo1MzEzOiByZXN1bHQ6IHllcwpjb25maWd1
cmU6NTMyMDogY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKQpjb25maWd1cmU6NTM0
MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUzNTU6IGNoZWNraW5nIGZvciBzc2hkCmNvbmZpZ3Vy
ZTo1Mzg4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1NzM0OiBjaGVja2luZyBmb3IgYSBzZWQgdGhh
dCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXQKY29uZmlndXJlOjU3OTg6IHJlc3VsdDogL3Vzci9i
aW4vc2VkCmNvbmZpZ3VyZTo1ODE2OiBjaGVja2luZyBmb3IgZmdyZXAKY29uZmlndXJlOjU4Nzg6
IHJlc3VsdDogL3Vzci94cGc0L2Jpbi9ncmVwIC1GCmNvbmZpZ3VyZTo1OTQ2OiBjaGVja2luZyBm
b3Igbm9uLUdOVSBsZApjb25maWd1cmU6NTk4MDogcmVzdWx0OiAvdXNyL2Njcy9iaW4vL2xkCmNv
bmZpZ3VyZTo1OTg3OiBjaGVja2luZyBpZiB0aGUgbGlua2VyICgvdXNyL2Njcy9iaW4vL2xkKSBp
cyBHTlUgbGQKY29uZmlndXJlOjYwMDI6IHJlc3VsdDogbm8KY29uZmlndXJlOjYwMTQ6IGNoZWNr
aW5nIGZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUgbmFtZSBsaXN0ZXIgKG5tKQpjb25maWd1cmU6
NjA2MzogcmVzdWx0OiAvdXNyL2Njcy9iaW4vL25tIC1wCmNvbmZpZ3VyZTo2MTgxOiBjaGVja2lu
ZyB0aGUgbmFtZSBsaXN0ZXIgKC91c3IvY2NzL2Jpbi8vbm0gLXApIGludGVyZmFjZQpjb25maWd1
cmU6NjE4ODogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NjE5MTog
L3Vzci9jY3MvYmluLy9ubSAtcCAiY29uZnRlc3QubyIKY29uZmlndXJlOjYxOTQ6IG91dHB1dAoK
CmNvbmZ0ZXN0Lm86CjAwMDAwMDAwMDAwMDAwIHMgCjAwMDAwMDAwMDAwMDAwIHMgCjAwMDAwMDAw
MDAwMDAwIGIgQmJzcy5ic3MKMDAwMDAwMDAwMDAwMDAgZCBEZGF0YS5kYXRhCjAwMDAwMDAwMDAw
MDAwIGQgRHJvZGF0YS5yb2RhdGEKMDAwMDAwMDAwMDAwMDAgZiBjb25mdGVzdC5jCjAwMDAwMDAw
MDAwMDAwIEQgc29tZV92YXJpYWJsZQpjb25maWd1cmU6NjIwMTogcmVzdWx0OiBCU0Qgbm0KY29u
ZmlndXJlOjYyMDU6IGNoZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUg
YXJndW1lbnRzCmNvbmZpZ3VyZTo2MzI1OiByZXN1bHQ6IDc4NjI0MApjb25maWd1cmU6NjM0Mjog
Y2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3RydWN0
cwpjb25maWd1cmU6NjM1MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjYzNTY6IGNoZWNraW5nIHdo
ZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICIrPSIKY29uZmlndXJlOjYzNjI6IHJlc3VsdDog
bm8KY29uZmlndXJlOjYzOTc6IGNoZWNraW5nIGZvciAvdXNyL2Njcy9iaW4vL2xkIG9wdGlvbiB0
byByZWxvYWQgb2JqZWN0IGZpbGVzCmNvbmZpZ3VyZTo2NDA0OiByZXN1bHQ6IC1yCmNvbmZpZ3Vy
ZTo2NDczOiBjaGVja2luZyBmb3Igb2JqZHVtcApjb25maWd1cmU6NjUwMDogcmVzdWx0OiBvYmpk
dW1wCmNvbmZpZ3VyZTo2NTI5OiBjaGVja2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBs
aWJyYXJpZXMKY29uZmlndXJlOjY3MjU6IHJlc3VsdDogcGFzc19hbGwKY29uZmlndXJlOjY3ODU6
IGNoZWNraW5nIGZvciBhcgpjb25maWd1cmU6NjgwMTogZm91bmQgL3Vzci9jY3MvYmluLy9hcgpj
b25maWd1cmU6NjgxMjogcmVzdWx0OiBhcgpjb25maWd1cmU6Njg5MDogY2hlY2tpbmcgZm9yIHN0
cmlwCmNvbmZpZ3VyZTo2OTA2OiBmb3VuZCAvdXNyL2Njcy9iaW4vL3N0cmlwCmNvbmZpZ3VyZTo2
OTE3OiByZXN1bHQ6IHN0cmlwCmNvbmZpZ3VyZTo2OTg5OiBjaGVja2luZyBmb3IgcmFubGliCmNv
bmZpZ3VyZTo3MDA1OiBmb3VuZCAvdXNyL2Njcy9iaW4vL3JhbmxpYgpjb25maWd1cmU6NzAxNjog
cmVzdWx0OiByYW5saWIKY29uZmlndXJlOjcxMDY6IGNoZWNraW5nIGNvbW1hbmQgdG8gcGFyc2Ug
L3Vzci9jY3MvYmluLy9ubSAtcCBvdXRwdXQgZnJvbSBjYyBvYmplY3QKY29uZmlndXJlOjcyMjQ6
IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjcyMjc6ICQ/ID0gMApj
b25maWd1cmU6NzIzMTogL3Vzci9jY3MvYmluLy9ubSAtcCBjb25mdGVzdC5vIFx8IHNlZCAtbiAt
ZSAncy9eLipbCSBdXChbQkRSVF1bQkRSVF0qXClbCSBdWwkgXSpcKFtfQS1aYS16XVtfQS1aYS16
MC05XSpcKSQvXDEgXDIgXDIvcCcgXD4gY29uZnRlc3Qubm0KY29uZmlndXJlOjcyMzQ6ICQ/ID0g
MApjb25maWd1cmU6NzI4ODogY2MgLW8gY29uZnRlc3QgLXhhcmNoPXY5ICAgY29uZnRlc3QuYyBj
b25mdHN0bS5vID4mNQpjb25maWd1cmU6NzI5MTogJD8gPSAwCmNvbmZpZ3VyZTo3MzI5OiByZXN1
bHQ6IG9rCmNvbmZpZ3VyZTo3NTIzOiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNv
bmZpZ3VyZTo3NTI2OiAkPyA9IDAKY29uZmlndXJlOjgxMzQ6IGNoZWNraW5nIGZvciBkbGZjbi5o
CmNvbmZpZ3VyZTo4MTM0OiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3Vy
ZTo4MTM0OiAkPyA9IDAKY29uZmlndXJlOjgxMzQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo4MzE2
OiBjaGVja2luZyBmb3Igb2JqZGlyCmNvbmZpZ3VyZTo4MzMxOiByZXN1bHQ6IC5saWJzCmNvbmZp
Z3VyZTo4NjgyOiBjaGVja2luZyBmb3IgY2Mgb3B0aW9uIHRvIHByb2R1Y2UgUElDCmNvbmZpZ3Vy
ZTo4OTU0OiByZXN1bHQ6IC1LUElDIC1EUElDCmNvbmZpZ3VyZTo4OTY2OiBjaGVja2luZyBpZiBj
YyBQSUMgZmxhZyAtS1BJQyAtRFBJQyB3b3Jrcwpjb25maWd1cmU6ODk4NDogY2MgLWMgLXhhcmNo
PXY5ICAtS1BJQyAtRFBJQyAtRFBJQyBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6ODk4ODogJD8g
PSAwCmNvbmZpZ3VyZTo5MDAxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6OTAyNTogY2hlY2tpbmcg
aWYgY2Mgc3RhdGljIGZsYWcgLUJzdGF0aWMgd29ya3MKY29uZmlndXJlOjkwNTM6IHJlc3VsdDog
bm8KY29uZmlndXJlOjkwNjg6IGNoZWNraW5nIGlmIGNjIHN1cHBvcnRzIC1jIC1vIGZpbGUubwpj
b25maWd1cmU6OTA4OTogY2MgLWMgLXhhcmNoPXY5ICAtbyBvdXQvY29uZnRlc3QyLm8gY29uZnRl
c3QuYyA+JjUKY29uZmlndXJlOjkwOTM6ICQ/ID0gMApjb25maWd1cmU6OTExNTogcmVzdWx0OiB5
ZXMKY29uZmlndXJlOjkxMjM6IGNoZWNraW5nIGlmIGNjIHN1cHBvcnRzIC1jIC1vIGZpbGUubwpj
b25maWd1cmU6OTE3MDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjkyMDM6IGNoZWNraW5nIHdoZXRo
ZXIgdGhlIGNjIGxpbmtlciAoL3Vzci9jY3MvYmluLy9sZCAtNjQpIHN1cHBvcnRzIHNoYXJlZCBs
aWJyYXJpZXMKY29uZmlndXJlOjEwMTk0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTA0MzM6IGNo
ZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcwpjb25maWd1cmU6MTEwOTY6IHJl
c3VsdDogc29sYXJpczIuMTAgbGQuc28KY29uZmlndXJlOjExMTk4OiBjaGVja2luZyBob3cgdG8g
aGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zCmNvbmZpZ3VyZToxMTIyMzogcmVz
dWx0OiBpbW1lZGlhdGUKY29uZmlndXJlOjExNzQzOiBjaGVja2luZyB3aGV0aGVyIHN0cmlwcGlu
ZyBsaWJyYXJpZXMgaXMgcG9zc2libGUKY29uZmlndXJlOjExNzY1OiByZXN1bHQ6IG5vCmNvbmZp
Z3VyZToxMTc4MzogY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVz
CmNvbmZpZ3VyZToxMTc4NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjExNzg4OiBjaGVja2luZyB3
aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMKY29uZmlndXJlOjExODA5OiByZXN1bHQ6
IG5vCmNvbmZpZ3VyZToxMTgxMjogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGli
cmFyaWVzCmNvbmZpZ3VyZToxMTgxNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjExODUxOiBjaGVj
a2luZyB3aGV0aGVyIGJ5dGUgb3JkZXJpbmcgaXMgYmlnZW5kaWFuCmNvbmZpZ3VyZToxMTg2Njog
Y2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgMjk6IHdh
cm5pbmc6IG9sZC1zdHlsZSBkZWNsYXJhdGlvbiBvciBpbmNvcnJlY3QgdHlwZSBmb3I6IG5vdAoi
Y29uZnRlc3QuYyIsIGxpbmUgMjk6IHN5bnRheCBlcnJvciBiZWZvcmUgb3IgYXQ6IGEKImNvbmZ0
ZXN0LmMiLCBsaW5lIDI5OiB3YXJuaW5nOiBvbGQtc3R5bGUgZGVjbGFyYXRpb24gb3IgaW5jb3Jy
ZWN0IHR5cGUgZm9yOiBhCiJjb25mdGVzdC5jIiwgbGluZSAyOTogd2FybmluZzogb2xkLXN0eWxl
IGRlY2xhcmF0aW9uIG9yIGluY29ycmVjdCB0eXBlIGZvcjogdW5pdmVyc2FsCiJjb25mdGVzdC5j
IiwgbGluZSAyOTogd2FybmluZzogb2xkLXN0eWxlIGRlY2xhcmF0aW9uIG9yIGluY29ycmVjdCB0
eXBlIGZvcjogY2FwYWJsZQoiY29uZnRlc3QuYyIsIGxpbmUgMzE6IHdhcm5pbmc6IG9sZC1zdHls
ZSBkZWNsYXJhdGlvbiBvciBpbmNvcnJlY3QgdHlwZSBmb3I6IGNvbXBpbGVyCmNjOiBhY29tcCBm
YWlsZWQgZm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjExODY2OiAkPyA9IDIKY29uZmlndXJlOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O
QU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZp
bmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIg
LSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5z
ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8
ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjQiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZp
bmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZp
bmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhB
VkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9J
TlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklT
VERfSCAxCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5U
IDEKfCAjaWZuZGVmIF9SRUVOVFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8
ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8IC8q
IGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaWZuZGVmIF9fQVBQTEVfQ0NfXwp8IAkgICAgICAgbm90
IGEgdW5pdmVyc2FsIGNhcGFibGUgY29tcGlsZXIKfCAJICAgICAjZW5kaWYKfCAJICAgICB0eXBl
ZGVmIGludCBkdW1teTsKfCAKY29uZmlndXJlOjExOTExOiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0
ZXN0LmMgPiY1CiJjb25mdGVzdC5jIiwgbGluZSAzNTogdW5kZWZpbmVkIHN5bWJvbDogYm9ndXMK
ImNvbmZ0ZXN0LmMiLCBsaW5lIDM1OiBzeW50YXggZXJyb3IgYmVmb3JlIG9yIGF0OiBlbmRpYW4K
Y2M6IGFjb21wIGZhaWxlZCBmb3IgY29uZnRlc3QuYwpjb25maWd1cmU6MTE5MTE6ICQ/ID0gMgpj
b25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmlu
ZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNz
aDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklO
RyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxA
Y29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0Ug
ImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNCIKfCAjZGVmaW5lIFNURENfSEVBREVS
UyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRf
SCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8
ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2Rl
ZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmlu
ZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNkZWZpbmUgTkVF
RF9SRUVOVFJBTlQgMQp8ICNpZm5kZWYgX1JFRU5UUkFOVAp8ICMgIGRlZmluZSBfUkVFTlRSQU5U
CnwgI2VuZGlmCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElSICIu
bGlicy8iCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K
fCAJICAgICAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAj
aWYgISAoZGVmaW5lZCBCWVRFX09SREVSICYmIGRlZmluZWQgQklHX0VORElBTiAJCSAgICAgJiYg
ZGVmaW5lZCBMSVRUTEVfRU5ESUFOICYmIEJZVEVfT1JERVIgJiYgQklHX0VORElBTiAJCSAgICAg
JiYgTElUVExFX0VORElBTikKfCAJICAgICAgYm9ndXMgZW5kaWFuIG1hY3Jvcwp8IAkgICAgICNl
bmRpZgp8IAp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTE5NTU6IGNjIC1jIC14
YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjExOTU1OiAkPyA9IDAKY29uZmlndXJl
OjExOTcyOiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxMTk3Mjog
JD8gPSAwCmNvbmZpZ3VyZToxMjA1NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEyMDgzOiBjaGVj
a2luZyBmb3Igc3BlY2lhbCBDIGNvbXBpbGVyIG9wdGlvbnMgbmVlZGVkIGZvciBsYXJnZSBmaWxl
cwpjb25maWd1cmU6MTIxMTM6IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmln
dXJlOjEyMTEzOiAkPyA9IDAKY29uZmlndXJlOjEyMTI4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTox
MjEzNDogY2hlY2tpbmcgZm9yIF9GSUxFX09GRlNFVF9CSVRTIHZhbHVlIG5lZWRlZCBmb3IgbGFy
Z2UgZmlsZXMKY29uZmlndXJlOjEyMTU5OiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1
CmNvbmZpZ3VyZToxMjE1OTogJD8gPSAwCmNvbmZpZ3VyZToxMjE5MTogcmVzdWx0OiBubwpjb25m
aWd1cmU6MTIzNzY6IGNoZWNraW5nIGZvciBub24tR05VIGxkCmNvbmZpZ3VyZToxMjQwNzogcmVz
dWx0OiAvdXNyL2Njcy9iaW4vL2xkIC02NApjb25maWd1cmU6MTI0MTQ6IGNoZWNraW5nIGlmIHRo
ZSBsaW5rZXIgKC91c3IvY2NzL2Jpbi8vbGQgLTY0KSBpcyBHTlUgbGQKY29uZmlndXJlOjEyNDI3
OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMjQzNDogY2hlY2tpbmcgZm9yIHNoYXJlZCBsaWJyYXJ5
IHJ1biBwYXRoIG9yaWdpbgpjb25maWd1cmU6MTI0NDc6IHJlc3VsdDogZG9uZQpjb25maWd1cmU6
MTI5NTI6IGNoZWNraW5nIGZvciBsaWJzc2wKY29uZmlndXJlOjEyOTcxOiBjYyAtbyBjb25mdGVz
dCAteGFyY2g9djkgICBjb25mdGVzdC5jIC1sbnNsIC1sc29ja2V0ICAtbHNzbCAtbGNyeXB0byA+
JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDI5OiBjYW5ub3QgZmluZCBpbmNsdWRlIGZpbGU6IDxvcGVu
c3NsL3NzbC5oPgpjYzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5jCmNvbmZpZ3VyZToxMjk3
MTogJD8gPSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg
Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS
TkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBB
Q0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGli
c3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZp
bmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi40Igp8ICNkZWZpbmUg
U1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFW
RV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9T
VFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5H
U19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9I
IDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwg
I2RlZmluZSBORUVEX1JFRU5UUkFOVCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5l
IF9SRUVOVFJBTlQKfCAjZW5kaWYKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBM
VF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgLyogZW5kIGNv
bmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxvcGVuc3NsL3NzbC5oPgp8IGludAp8IG1haW4gKCkK
fCB7CnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMjk4MTogcmVzdWx0OiBu
bwpjb25maWd1cmU6MTM1MzU6IGVycm9yOiBjYW5ub3QgZmluZCBPcGVuU1NMIG9yIExpYmdjcnlw
dCwKdHJ5IC0td2l0aC1saWJzc2wtcHJlZml4PVBBVEggb3IgLS13aXRoLWxpYmdjcnlwdC1wcmVm
aXg9UEFUSAoKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBDYWNoZSB2YXJpYWJsZXMuICMjCiMj
IC0tLS0tLS0tLS0tLS0tLS0gIyMKCmFjX2N2X2J1aWxkPXNwYXJjLXN1bi1zb2xhcmlzMi4xMAph
Y19jdl9jX2JpZ2VuZGlhbj15ZXMKYWNfY3ZfY19jb21waWxlcl9nbnU9bm8KYWNfY3ZfZW52X0ND
X3NldD1zZXQKYWNfY3ZfZW52X0NDX3ZhbHVlPWNjCmFjX2N2X2Vudl9DRkxBR1Nfc2V0PXNldAph
Y19jdl9lbnZfQ0ZMQUdTX3ZhbHVlPS14YXJjaD12OQphY19jdl9lbnZfQ1BQRkxBR1Nfc2V0PQph
Y19jdl9lbnZfQ1BQRkxBR1NfdmFsdWU9CmFjX2N2X2Vudl9DUFBfc2V0PQphY19jdl9lbnZfQ1BQ
X3ZhbHVlPQphY19jdl9lbnZfTERGTEFHU19zZXQ9CmFjX2N2X2Vudl9MREZMQUdTX3ZhbHVlPQph
Y19jdl9lbnZfTElCU19zZXQ9CmFjX2N2X2Vudl9MSUJTX3ZhbHVlPQphY19jdl9lbnZfYnVpbGRf
YWxpYXNfc2V0PQphY19jdl9lbnZfYnVpbGRfYWxpYXNfdmFsdWU9CmFjX2N2X2Vudl9ob3N0X2Fs
aWFzX3NldD0KYWNfY3ZfZW52X2hvc3RfYWxpYXNfdmFsdWU9CmFjX2N2X2Vudl90YXJnZXRfYWxp
YXNfc2V0PQphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3ZhbHVlPQphY19jdl9oZWFkZXJfZGxmY25f
aD15ZXMKYWNfY3ZfaGVhZGVyX2ludHR5cGVzX2g9eWVzCmFjX2N2X2hlYWRlcl9tZW1vcnlfaD15
ZXMKYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCmFjX2N2X2hlYWRlcl9zdGRpbnRfaD15ZXMKYWNfY3Zf
aGVhZGVyX3N0ZGxpYl9oPXllcwphY19jdl9oZWFkZXJfc3RyaW5nX2g9eWVzCmFjX2N2X2hlYWRl
cl9zdHJpbmdzX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfc3RhdF9oPXllcwphY19jdl9oZWFkZXJf
c3lzX3R5cGVzX2g9eWVzCmFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMKYWNfY3ZfaG9zdD1zcGFy
Yy1zdW4tc29sYXJpczIuMTAKYWNfY3ZfbGlic3NsPW5vCmFjX2N2X29iamV4dD1vCmFjX2N2X3Bh
dGhfRUdSRVA9Jy91c3IveHBnNC9iaW4vZ3JlcCAtRScKYWNfY3ZfcGF0aF9GR1JFUD0nL3Vzci94
cGc0L2Jpbi9ncmVwIC1GJwphY19jdl9wYXRoX0dSRVA9L3Vzci94cGc0L2Jpbi9ncmVwCmFjX2N2
X3BhdGhfU0VEPS91c3IvYmluL3NlZAphY19jdl9wcm9nX0FXSz1uYXdrCmFjX2N2X3Byb2dfQ1BQ
PSdjYyAtRScKYWNfY3ZfcHJvZ19hY19jdF9BUj1hcgphY19jdl9wcm9nX2FjX2N0X0NDPWNjCmFj
X2N2X3Byb2dfYWNfY3RfT0JKRFVNUD1vYmpkdW1wCmFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPXJh
bmxpYgphY19jdl9wcm9nX2FjX2N0X1NUUklQPXN0cmlwCmFjX2N2X3Byb2dfY2NfYzg5PQphY19j
dl9wcm9nX2NjX2c9eWVzCmFjX2N2X3Byb2dfbWFrZV9tYWtlX3NldD15ZXMKYWNfY3Zfc2VhcmNo
X2luZXRfYWRkcj0tbG5zbAphY19jdl9zZWFyY2hfc29ja2V0PS1sc29ja2V0CmFjX2N2X3N5c19m
aWxlX29mZnNldF9iaXRzPW5vCmFjX2N2X3N5c19sYXJnZWZpbGVfQ0M9bm8KYWNfY3ZfdHlwZV9s
b25nX2xvbmc9eWVzCmFjbF9jdl9oYXJkY29kZV9kaXJlY3Q9bm8KYWNsX2N2X2hhcmRjb2RlX2xp
YmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKYWNsX2N2X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0
b3I9CmFjbF9jdl9oYXJkY29kZV9taW51c19MPW5vCmFjbF9jdl9saWJleHQ9YQphY2xfY3ZfbGli
bmFtZV9zcGVjPSdsaWIkbmFtZScKYWNsX2N2X2xpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUk
c2hyZXh0JwphY2xfY3ZfcGF0aF9MRD0nL3Vzci9jY3MvYmluLy9sZCAtNjQnCmFjbF9jdl9wcm9n
X2dudV9sZD1ubwphY2xfY3ZfcnBhdGg9ZG9uZQphY2xfY3Zfc2hsaWJleHQ9c28KYWNsX2N2X3ds
PS1XbCwKYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQpsdF9jdl9kZXBs
aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbApsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE1BR0lDX0NN
RCcKbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9Cmx0X2N2X2xkX3JlbG9hZF9mbGFnPS1yCmx0
X2N2X25tX2ludGVyZmFjZT0nQlNEIG5tJwpsdF9jdl9vYmpkaXI9LmxpYnMKbHRfY3ZfcGF0aF9M
RD0vdXNyL2Njcy9iaW4vL2xkCmx0X2N2X3BhdGhfTk09Jy91c3IvY2NzL2Jpbi8vbm0gLXAnCmx0
X2N2X3Byb2dfY29tcGlsZXJfY19vPXllcwpsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrcz15
ZXMKbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9bm8KbHRfY3ZfcHJvZ19nbnVfbGQ9
bm8KbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0nc2VkIC1uIC1lICdcJydzL14uKlsJIF1c
KFtCRFJUXVtCRFJUXSpcKVsJIF1bCSBdKlwoW19BLVphLXpdW19BLVphLXowLTldKlwpJC9cMSBc
MiBcMi9wJ1wnJycKbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9J3Nl
ZCAtbiAtZSAnXCcncy9eOiBcKFteIF0qXCkgJC8gIHtcIlwxXCIsICh2b2lkICopIDB9LC9wJ1wn
JyAtZSAnXCcncy9eW0JEUlRdKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHsiXDIiLCAodm9pZCAq
KSBcJlwyfSwvcCdcJycnCmx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNz
X2xpYl9wcmVmaXg9J3NlZCAtbiAtZSAnXCcncy9eOiBcKFteIF0qXCkgJC8gIHtcIlwxXCIsICh2
b2lkICopIDB9LC9wJ1wnJyAtZSAnXCcncy9eW0JEUlRdKiBcKFteIF0qXCkgXChsaWJbXiBdKlwp
JC8gIHsiXDIiLCAodm9pZCAqKSBcJlwyfSwvcCdcJycgLWUgJ1wnJ3MvXltCRFJUXSogXChbXiBd
KlwpIFwoW14gXSpcKSQvICB7ImxpYlwyIiwgKHZvaWQgKikgXCZcMn0sL3AnXCcnJwpsdF9jdl9z
eXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0nc2VkIC1uIC1lICdcJydzL15UIC4qIFwoLipcKSQv
ZXh0ZXJuIGludCBcMSgpOy9wJ1wnJyAtZSAnXCcncy9eW0JEUlRdKiAuKiBcKC4qXCkkL2V4dGVy
biBjaGFyIFwxOy9wJ1wnJycKbHRfY3Zfc3lzX21heF9jbWRfbGVuPTc4NjI0MAoKIyMgLS0tLS0t
LS0tLS0tLS0tLS0gIyMKIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0t
LS0gIyMKCkFDTE9DQUw9JyR7U0hFTEx9IC9jb3J0ZXgvYnVpbGQvdGhpcmRfcGFydHkvNjRiaXQv
bGlic3NoMi0xLjIuNC9taXNzaW5nIC0tcnVuIGFjbG9jYWwtMS45JwpBTExPQ0E9JycKQU1ERVBC
QUNLU0xBU0g9J1wnCkFNREVQX0ZBTFNFPScjJwpBTURFUF9UUlVFPScnCkFNVEFSPScke1NIRUxM
fSAvY29ydGV4L2J1aWxkL3RoaXJkX3BhcnR5LzY0Yml0L2xpYnNzaDItMS4yLjQvbWlzc2luZyAt
LXJ1biB0YXInCkFSPSdhcicKQVM9J2FzJwpBVVRPQ09ORj0nJHtTSEVMTH0gL2NvcnRleC9idWls
ZC90aGlyZF9wYXJ0eS82NGJpdC9saWJzc2gyLTEuMi40L21pc3NpbmcgLS1ydW4gYXV0b2NvbmYn
CkFVVE9IRUFERVI9JyR7U0hFTEx9IC9jb3J0ZXgvYnVpbGQvdGhpcmRfcGFydHkvNjRiaXQvbGli
c3NoMi0xLjIuNC9taXNzaW5nIC0tcnVuIGF1dG9oZWFkZXInCkFVVE9NQUtFPScke1NIRUxMfSAv
Y29ydGV4L2J1aWxkL3RoaXJkX3BhcnR5LzY0Yml0L2xpYnNzaDItMS4yLjQvbWlzc2luZyAtLXJ1
biBhdXRvbWFrZS0xLjknCkFXSz0nbmF3aycKQ0M9J2NjJwpDQ0RFUE1PREU9J2RlcG1vZGU9bm9u
ZScKQ0ZMQUdTPScteGFyY2g9djknCkNQUD0nY2MgLUUnCkNQUEZMQUdTPScnCkNZR1BBVEhfVz0n
ZWNobycKREVGUz0nJwpERVBESVI9Jy5kZXBzJwpETExUT09MPSdkbGx0b29sJwpEU1lNVVRJTD0n
JwpEVU1QQklOPScnCkVDSE9fQz0nJwpFQ0hPX049Jy1uJwpFQ0hPX1Q9JycKRUdSRVA9Jy91c3Iv
eHBnNC9iaW4vZ3JlcCAtRScKRVhFRVhUPScnCkZHUkVQPScvdXNyL3hwZzQvYmluL2dyZXAgLUYn
CkdSRVA9Jy91c3IveHBnNC9iaW4vZ3JlcCcKSEFWRV9MSUJHQ1JZUFQ9JycKSEFWRV9MSUJTU0w9
J25vJwpIQVZFX0xJQlo9JycKSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKSU5TVEFM
TF9QUk9HUkFNPScke0lOU1RBTEx9JwpJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKSU5TVEFM
TF9TVFJJUF9QUk9HUkFNPScke1NIRUxMfSAkKGluc3RhbGxfc2gpIC1jIC1zJwpMRD0nL3Vzci9j
Y3MvYmluLy9sZCAtNjQnCkxERkxBR1M9JycKTElCR0NSWVBUPScnCkxJQkdDUllQVF9GQUxTRT0n
JwpMSUJHQ1JZUFRfUFJFRklYPScnCkxJQkdDUllQVF9UUlVFPScnCkxJQk9CSlM9JycKTElCUz0n
LWxuc2wgLWxzb2NrZXQgJwpMSUJTU0w9JycKTElCU1NMX1BSRUZJWD0nJwpMSUJUT09MPSckKFNI
RUxMKSAkKHRvcF9idWlsZGRpcikvbGlidG9vbCcKTElCWj0nJwpMSUJaX1BSRUZJWD0nJwpMSVBP
PScnCkxOX1M9J2xuIC1zJwpMVExJQkdDUllQVD0nJwpMVExJQk9CSlM9JycKTFRMSUJTU0w9JycK
TFRMSUJaPScnCk1BSU5UPScjJwpNQUlOVEFJTkVSX01PREVfRkFMU0U9JycKTUFJTlRBSU5FUl9N
T0RFX1RSVUU9JyMnCk1BS0VJTkZPPScke1NIRUxMfSAvY29ydGV4L2J1aWxkL3RoaXJkX3BhcnR5
LzY0Yml0L2xpYnNzaDItMS4yLjQvbWlzc2luZyAtLXJ1biBtYWtlaW5mbycKTk09Jy91c3IvY2Nz
L2Jpbi8vbm0gLXAnCk5NRURJVD0nJwpPQkpEVU1QPSdvYmpkdW1wJwpPQkpFWFQ9J28nCk9UT09M
NjQ9JycKT1RPT0w9JycKUEFDS0FHRT0nbGlic3NoMicKUEFDS0FHRV9CVUdSRVBPUlQ9J2xpYnNz
aDItZGV2ZWxAY29vbC5oYXh4LnNlJwpQQUNLQUdFX05BTUU9J2xpYnNzaDInClBBQ0tBR0VfU1RS
SU5HPSdsaWJzc2gyIC0nClBBQ0tBR0VfVEFSTkFNRT0nbGlic3NoMicKUEFDS0FHRV9VUkw9JycK
UEFDS0FHRV9WRVJTSU9OPSctJwpQQVRIX1NFUEFSQVRPUj0nOicKUkFOTElCPSdyYW5saWInClNF
RD0nL3Vzci9iaW4vc2VkJwpTRVRfTUFLRT0nJwpTSEVMTD0nL2Jpbi9iYXNoJwpTU0hEPScnClNT
SERfRkFMU0U9JycKU1NIRF9UUlVFPScjJwpTVFJJUD0nc3RyaXAnClZFUlNJT049JzEuMi40Jwph
Y19jdF9DQz0nY2MnCmFjX2N0X0RVTVBCSU49JycKYW1fX2Zhc3RkZXBDQ19GQUxTRT0nJwphbV9f
ZmFzdGRlcENDX1RSVUU9JyMnCmFtX19pbmNsdWRlPSdpbmNsdWRlJwphbV9fbGVhZGluZ19kb3Q9
Jy4nCmFtX19xdW90ZT0nJwphbV9fdGFyPScke0FNVEFSfSBjaG9mIC0gIiQkdGFyZGlyIicKYW1f
X3VudGFyPScke0FNVEFSfSB4ZiAtJwpiaW5kaXI9JyR7ZXhlY19wcmVmaXh9L2JpbicKYnVpbGQ9
J3NwYXJjLXN1bi1zb2xhcmlzMi4xMCcKYnVpbGRfYWxpYXM9JycKYnVpbGRfY3B1PSdzcGFyYycK
YnVpbGRfb3M9J3NvbGFyaXMyLjEwJwpidWlsZF92ZW5kb3I9J3N1bicKZGF0YWRpcj0nJHtkYXRh
cm9vdGRpcn0nCmRhdGFyb290ZGlyPScke3ByZWZpeH0vc2hhcmUnCmRvY2Rpcj0nJHtkYXRhcm9v
dGRpcn0vZG9jLyR7UEFDS0FHRV9UQVJOQU1FfScKZHZpZGlyPScke2RvY2Rpcn0nCmV4ZWNfcHJl
Zml4PSdOT05FJwpob3N0PSdzcGFyYy1zdW4tc29sYXJpczIuMTAnCmhvc3RfYWxpYXM9JycKaG9z
dF9jcHU9J3NwYXJjJwpob3N0X29zPSdzb2xhcmlzMi4xMCcKaG9zdF92ZW5kb3I9J3N1bicKaHRt
bGRpcj0nJHtkb2NkaXJ9JwppbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKaW5mb2Rpcj0n
JHtkYXRhcm9vdGRpcn0vaW5mbycKaW5zdGFsbF9zaD0nL2NvcnRleC9idWlsZC90aGlyZF9wYXJ0
eS82NGJpdC9saWJzc2gyLTEuMi40L2luc3RhbGwtc2gnCmxpYmRpcj0nJHtleGVjX3ByZWZpeH0v
bGliJwpsaWJleGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWJleGVjJwpsb2NhbGVkaXI9JyR7ZGF0
YXJvb3RkaXJ9L2xvY2FsZScKbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKbHRfRUNITz0n
ZWNobycKbWFuZGlyPScke2RhdGFyb290ZGlyfS9tYW4nCm1rZGlyX3A9JyQoaW5zdGFsbF9zaCkg
LWQnCm9sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScKcGRmZGlyPScke2RvY2Rpcn0nCnByZWZp
eD0nL2N0eHRvb2xzL2NvcnRleC9sb2NhbC82NGJpdCcKcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0n
cyx4LHgsJwpwc2Rpcj0nJHtkb2NkaXJ9JwpzYmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJwpz
aGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScKc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycK
dGFyZ2V0X2FsaWFzPScnCgojIyAtLS0tLS0tLS0tLSAjIwojIyBjb25mZGVmcy5oLiAjIwojIyAt
LS0tLS0tLS0tLSAjIwoKLyogY29uZmRlZnMuaCAqLwojZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGli
c3NoMiIKI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCiNkZWZpbmUgUEFDS0FHRV9W
RVJTSU9OICItIgojZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCiNkZWZpbmUgUEFD
S0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgojZGVmaW5lIFBBQ0tB
R0VfVVJMICIiCiNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKI2RlZmluZSBWRVJTSU9OICIxLjIu
NCIKI2RlZmluZSBTVERDX0hFQURFUlMgMQojZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQojZGVm
aW5lIEhBVkVfU1lTX1NUQVRfSCAxCiNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCiNkZWZpbmUgSEFW
RV9TVFJJTkdfSCAxCiNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCiNkZWZpbmUgSEFWRV9TVFJJTkdT
X0ggMQojZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCiNk
ZWZpbmUgSEFWRV9VTklTVERfSCAxCiNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCiNkZWZpbmUgTkVF
RF9SRUVOVFJBTlQgMQojaWZuZGVmIF9SRUVOVFJBTlQKIyAgZGVmaW5lIF9SRUVOVFJBTlQKI2Vu
ZGlmCiNkZWZpbmUgSEFWRV9ETEZDTl9IIDEKI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKI2Rl
ZmluZSBXT1JEU19CSUdFTkRJQU4gMQoKY29uZmlndXJlOiBleGl0IDEK

--_007_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--_007_0A90A784B706B04A98C0CECC5CC2C2A302B43069ltcfiswmsgmb23_--

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 14 15:00:22 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3ECxvtg002735;
	Sat, 14 Apr 2012 15:00:15 +0200
Received: from vps1.hno.se (vps1.hno.se [IPv6:2a02:750:5::f0])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3ECxtje002717
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 14:59:55 +0200
Received: from home.hno.se (home.hno.se [IPv6:2001:16d8:ff00:8540::1])
 (authenticated bits=128)
 by vps1.hno.se (8.14.4/8.14.4) with ESMTP id q3ECxsNo001135
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 14:59:55 +0200
Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1])
 by home.hno.se (8.14.5/8.14.5) with ESMTP id q3ECxqLp024915
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 14:59:52 +0200
Message-ID: <1334408392.24799.0.camel@home.hno.se>
Subject: Re: Reg: Getting error while configuring libssh2 package.
From: Henrik =?ISO-8859-1?Q?Nordstr=F6m?= <henrik@henriknordstrom.net>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Date: Sat, 14 Apr 2012 14:59:52 +0200
In-Reply-To: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
References: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
X-Mailer: Evolution 3.2.3 (3.2.3-2.fc16) 
Mime-Version: 1.0
X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00
 autolearn=ham version=3.3.2
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on home.hno.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id q3ECxvtg002735

lÃ¶r 2012-04-14 klockan 09:44 +0000 skrev V, AnilKumar:

> And the error is like this , and I am sure openssl was present in this
> path â€œ/ctxtools/cortex/local/64bit/ â€œ.

Including development headers & libraries, not only runtime?

Regards
Henrik


_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 14 17:01:58 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3EF1bog003384;
	Sat, 14 Apr 2012 17:01:54 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3EF1ZRV003263
 for <libssh2-devel@cool.haxx.se>; Sat, 14 Apr 2012 17:01:35 +0200
Received: (qmail 3841 invoked by uid 501); 14 Apr 2012 15:01:34 -0000
Message-ID: <20120414150134.3840.qmail@stuge.se>
Date: Sat, 14 Apr 2012 17:01:34 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Reg: Getting error while configuring libssh2 package.
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

V, AnilKumar wrote:
> ./configure CC=cc CFLAGS=-xarch=v9 \
>             --prefix=/ctxtools/cortex/local/64bit \
>               --disable-shared --enable-static \
>             --with-openssl --without-libgcrypt \
>             --with-libssl-prefix=/ctxtools/cortex/local/64bit/  \
>             --with-libz-prefix=/ctxtools/cortex/local/64bit
> 
> I am sure openssl was present in this path "/ctxtools/cortex/local/64bit/ ".
..

> configure:2946: checking libssh2 version
> configure:2948: result: 1.2.4

Why are you using code which is more than two years old? You will not
really get help unless you use the latest code.


> configure:12952: checking for libssl
> configure:12971: cc -o conftest -xarch=v9   conftest.c -lnsl -lsocket  -lssl -lcrypto >&5
> "conftest.c", line 29: cannot find include file: <openssl/ssl.h>
> cc: acomp failed for conftest.c
> configure:12971: $? = 2

The error message is quite obvious.

You should look into why your prefix isn't in that command line. If
you don't know where to start then try again with the latest code and
send your configure command together with full output from running
configure, as well as config.log.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Apr 15 11:51:15 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3F9ohXM024709;
	Sun, 15 Apr 2012 11:51:07 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3F9odtX024652
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Sun, 15 Apr 2012 11:50:39 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q3F9odeO024644
 for <libssh2-devel@cool.haxx.se>; Sun, 15 Apr 2012 11:50:39 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Sun, 15 Apr 2012 11:50:39 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2 thread safety
In-Reply-To: <20120414013728.7897.qmail@stuge.se>
Message-ID: <alpine.DEB.2.00.1204151148150.25685@tvnag.unkk.fr>
References: <4F88CC10.5070909@packetdesign.com>
 <20120414013728.7897.qmail@stuge.se>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Sat, 14 Apr 2012, Peter Stuge wrote:

>> Is libssh2 thread safe.
>
> No.

I would not say it like that.

I claim libssh2 _is_ thread safe, as long as you don't share libssh2's structs 
and handles between threads and assuming you use the crypto engine's mutex 
callbacks properly.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Apr 15 16:47:25 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3FEl27V029800;
	Sun, 15 Apr 2012 16:47:20 +0200
Received: from mail-vx0-f182.google.com (mail-vx0-f182.google.com
 [209.85.220.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3FEkxe0029591
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Sun, 15 Apr 2012 16:47:00 +0200
Received: by vcmm1 with SMTP id m1so3884314vcm.41
 for <libssh2-devel@cool.haxx.se>; Sun, 15 Apr 2012 07:46:55 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:x-originating-ip:in-reply-to:references:date
 :message-id:subject:from:to:content-type:x-gm-message-state;
 bh=JP2+TwnmPpQ0Li8znNK2h/Y66d2xzC0wNtig8QKxkWA=;
 b=E67i6zdrPGvPooLoiSJWi+fVom/8icWwF+8uO9OFsJV279rW0pOQgUGi+l+isttVN6
 ItrOTSeB0cmkbmq12gC+Eg7m3tyk97KzXJSxdBjZ5CJv32FHcIXJGDNyEiN0ZhP0+/vZ
 kTm0IpAg8NJwa0GucY9VN8kZ0wFMpsKRcB1tHPv3Efdtw9LcbixRns7UaCHqY2aklaSM
 BbnLrgFf5eXsuUzSlI4SHfKuQ6wPSSrzDjA7SP23B5cKk4RO1hFGFHxevdcfILzm8FLe
 GMi/+U7EFfWt0kn79UP5tSZt/ID2OJhJTWrfZn4ZV7v/1W/oI/e3mCshmk+jsnW8odWM
 4pug==
MIME-Version: 1.0
Received: by 10.52.88.2 with SMTP id bc2mr3461817vdb.82.1334501215252; Sun, 15
 Apr 2012 07:46:55 -0700 (PDT)
Received: by 10.52.184.72 with HTTP; Sun, 15 Apr 2012 07:46:55 -0700 (PDT)
X-Originating-IP: [32.173.230.196]
Received: by 10.52.184.72 with HTTP; Sun, 15 Apr 2012 07:46:55 -0700 (PDT)
In-Reply-To: <alpine.DEB.2.00.1204151148150.25685@tvnag.unkk.fr>
References: <4F88CC10.5070909@packetdesign.com>
 <20120414013728.7897.qmail@stuge.se>
 <alpine.DEB.2.00.1204151148150.25685@tvnag.unkk.fr>
Date: Sun, 15 Apr 2012 09:46:55 -0500
Message-ID: <CACZVN6ii8zJ=+sR9suaJjesJ8OOtha2TOTrkmrA+QNrKYz7X7A@mail.gmail.com>
Subject: Re: libssh2 thread safety
From: Neil Gierman <ngierman@roadrunn.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Gm-Message-State: ALoCoQn2emGVPkcbn38Sp/UNITxV6v76DKkHmwnAHkVW5A9OgnfzDmX2cpGpNRlgv/tD6YZnq5lQ
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0193663823=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0193663823==
Content-Type: multipart/alternative; boundary=bcaec501638fe331dc04bdb8c665

--bcaec501638fe331dc04bdb8c665
Content-Type: text/plain; charset=ISO-8859-1

On Apr 15, 2012 4:53 AM, "Daniel Stenberg" <daniel@haxx.se> wrote:
>
> On Sat, 14 Apr 2012, Peter Stuge wrote:
>
>>> Is libssh2 thread safe.
>>
>>
>> No.
>
>
> I would not say it like that.
>
> I claim libssh2 _is_ thread safe, as long as you don't share libssh2's
structs and handles between threads and assuming you use the crypto
engine's mutex callbacks properly.
>

I agree. We have been using libssh2 in a multithreaded application for a
few years. Just don't share between threads like Daniel says.

> --
>
>  / daniel.haxx.se
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--bcaec501638fe331dc04bdb8c665
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<p><br>
On Apr 15, 2012 4:53 AM, &quot;Daniel Stenberg&quot; &lt;<a href=3D"mailto:=
daniel@haxx.se">daniel@haxx.se</a>&gt; wrote:<br>
&gt;<br>
&gt; On Sat, 14 Apr 2012, Peter Stuge wrote:<br>
&gt;<br>
&gt;&gt;&gt; Is libssh2 thread safe.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; No.<br>
&gt;<br>
&gt;<br>
&gt; I would not say it like that.<br>
&gt;<br>
&gt; I claim libssh2 _is_ thread safe, as long as you don&#39;t share libss=
h2&#39;s structs and handles between threads and assuming you use the crypt=
o engine&#39;s mutex callbacks properly.<br>
&gt;</p>
<p>I agree. We have been using libssh2 in a multithreaded application for a=
 few years. Just don&#39;t share between threads like Daniel says.</p>
<p>&gt; -- <br>
&gt;<br>
&gt; =A0/ <a href=3D"http://daniel.haxx.se">daniel.haxx.se</a><br>
&gt; _______________________________________________<br>
&gt; libssh2-devel <a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/=
libssh2-devel">http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel</=
a><br>
</p>

--bcaec501638fe331dc04bdb8c665--

--===============0193663823==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0193663823==--

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 16 11:02:25 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3G923lv005950;
	Mon, 16 Apr 2012 11:02:19 +0200
Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3G91wLq005719
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 11:02:00 +0200
Received: from pps.filterd (ltcfislmsgpa04 [127.0.0.1])
 by ltcfislmsgpa04.fnfis.com (8.14.4/8.14.4) with SMTP id q3G8QTV3021824
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 04:01:51 -0500
Received: from smtp.fisglobal.com ([10.132.206.16])
 by ltcfislmsgpa04.fnfis.com with ESMTP id 148bh8ru53-1
 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 04:01:51 -0500
Received: from LTCFISWMSGMB23.FNFIS.com ([10.132.99.25]) by
 LTCFISWMSGHT05.FNFIS.com ([10.132.206.16]) with mapi id 14.02.0283.003; Mon,
 16 Apr 2012 04:01:50 -0500
From: "V, AnilKumar" <anilkumar.v@fisglobal.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: RE: Reg: Getting error while configuring libssh2 package.
Thread-Topic: Reg: Getting error while configuring libssh2 package.
Thread-Index: Ac0aIyQlhNFwnCrIQn6hOJX9vcLoqwAVkAoAAE17ORA=
Date: Mon, 16 Apr 2012 09:01:50 +0000
Message-ID: <0A90A784B706B04A98C0CECC5CC2C2A302B4318C@ltcfiswmsgmb23>
References: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
 <20120414150134.3840.qmail@stuge.se>
In-Reply-To: <20120414150134.3840.qmail@stuge.se>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.164.120.222]
Content-Type: multipart/mixed;
 boundary="_003_0A90A784B706B04A98C0CECC5CC2C2A302B4318Cltcfiswmsgmb23_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.6.7498, 1.0.260,
 0.0.0000
 definitions=2012-04-15_07:2012-04-14,2012-04-15,1970-01-01 signatures=0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--_003_0A90A784B706B04A98C0CECC5CC2C2A302B4318Cltcfiswmsgmb23_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

I tried with the latest version libssh2 1.4.1,but still getting the same er=
ror.

Please find the attached docs.

Thanks & Regards,
V. Anil Kumar.


-----Original Message-----
From: libssh2-devel-bounces@cool.haxx.se [mailto:libssh2-devel-bounces@cool=
.haxx.se] On Behalf Of Peter Stuge
Sent: Saturday, April 14, 2012 8:32 PM
To: libssh2-devel@cool.haxx.se
Subject: Re: Reg: Getting error while configuring libssh2 package.

V, AnilKumar wrote:
> ./configure CC=3Dcc CFLAGS=3D-xarch=3Dv9 \
>             --prefix=3D/ctxtools/cortex/local/64bit \
>               --disable-shared --enable-static \
>             --with-openssl --without-libgcrypt \
>             --with-libssl-prefix=3D/ctxtools/cortex/local/64bit/  \
>             --with-libz-prefix=3D/ctxtools/cortex/local/64bit
>=20
> I am sure openssl was present in this path "/ctxtools/cortex/local/64bit/=
 ".
..

> configure:2946: checking libssh2 version
> configure:2948: result: 1.2.4

Why are you using code which is more than two years old? You will not reall=
y get help unless you use the latest code.


> configure:12952: checking for libssl
> configure:12971: cc -o conftest -xarch=3Dv9   conftest.c -lnsl -lsocket  =
-lssl -lcrypto >&5
> "conftest.c", line 29: cannot find include file: <openssl/ssl.h>
> cc: acomp failed for conftest.c
> configure:12971: $? =3D 2

The error message is quite obvious.

You should look into why your prefix isn't in that command line. If you don=
't know where to start then try again with the latest code and send your co=
nfigure command together with full output from running configure, as well a=
s config.log.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

_____________
The information contained in this message is proprietary and/or confidentia=
l. If you are not the intended recipient, please: (i) delete the message an=
d all copies; (ii) do not disclose, distribute or use the message in any ma=
nner; and (iii) notify the sender immediately. In addition, please be aware=
 that any message addressed to our domain is subject to archiving and revie=
w by persons other than the intended recipient. Thank you.

--_003_0A90A784B706B04A98C0CECC5CC2C2A302B4318Cltcfiswmsgmb23_
Content-Type: application/octet-stream; name="config.log"
Content-Description: config.log
Content-Disposition: attachment; filename="config.log"; size=30864;
	creation-date="Mon, 16 Apr 2012 07:59:01 GMT";
	modification-date="Mon, 16 Apr 2012 13:45:20 GMT"
Content-Transfer-Encoding: base64

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz
IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IGxpYnNzaDIgY29uZmlndXJlIC0sIHdoaWNo
IHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjQuICBJbnZvY2F0aW9uIGNvbW1hbmQg
bGluZSB3YXMKCiAgJCAuL2NvbmZpZ3VyZSBDQz1jYyBDRkxBR1M9LXhhcmNoPXY5IC0tcHJlZml4
PS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQgLS1kaXNhYmxlLXNoYXJlZCAtLWVuYWJsZS1z
dGF0aWMgLS13aXRoLW9wZW5zc2wgLS13aXRob3V0LWxpYmdjcnlwdCAtLXdpdGgtbGlic3NsLXBy
ZWZpeD0vY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0LyAtLXdpdGgtbGliei1wcmVmaXg9L2N0
eHRvb2xzL2NvcnRleC9sb2NhbC82NGJpdAoKIyMgLS0tLS0tLS0tICMjCiMjIFBsYXRmb3JtLiAj
IwojIyAtLS0tLS0tLS0gIyMKCmhvc3RuYW1lID0gY2huc3VuMDEKdW5hbWUgLW0gPSBzdW40dQp1
bmFtZSAtciA9IDUuMTAKdW5hbWUgLXMgPSBTdW5PUwp1bmFtZSAtdiA9IEdlbmVyaWNfMTQyOTA5
LTE3CgovdXNyL2Jpbi91bmFtZSAtcCA9IHNwYXJjCi9iaW4vdW5hbWUgLVggICAgID0gU3lzdGVt
ID0gU3VuT1MKTm9kZSA9IGNobnN1bjAxClJlbGVhc2UgPSA1LjEwCktlcm5lbElEID0gR2VuZXJp
Y18xNDI5MDktMTcKTWFjaGluZSA9IHN1bjR1CkJ1c1R5cGUgPSA8dW5rbm93bj4KU2VyaWFsID0g
PHVua25vd24+ClVzZXJzID0gPHVua25vd24+Ck9FTSMgPSAwCk9yaWdpbiMgPSAxCk51bUNQVSA9
IDQKCi9iaW4vYXJjaCAgICAgICAgICAgICAgPSBzdW40Ci91c3IvYmluL2FyY2ggLWsgICAgICAg
PSBzdW40dQovdXNyL2NvbnZleC9nZXRzeXNpbmZvID0gdW5rbm93bgovdXNyL2Jpbi9ob3N0aW5m
byAgICAgID0gdW5rbm93bgovYmluL21hY2hpbmUgICAgICAgICAgID0gdW5rbm93bgovdXNyL2Jp
bi9vc2xldmVsICAgICAgID0gdW5rbm93bgovYmluL3VuaXZlcnNlICAgICAgICAgID0gdW5rbm93
bgoKUEFUSDogL3Vzci9sb2NhbC9iaW4KUEFUSDogL3Vzci9iaW4KUEFUSDogL2V4cG9ydC9ob21l
L2NvcnRleC9iaW4KUEFUSDogL09zcmMvdG9vbHMvYmluClBBVEg6IC9jdHh0b29scy9jb3J0ZXgv
bG9jYWwvNjRiaXQvYmluLwpQQVRIOiAvb3B0L1NVTldzcHJvL3Byb2QvYmluLwpQQVRIOiAvdXNy
L2Njcy9iaW4vCgoKIyMgLS0tLS0tLS0tLS0gIyMKIyMgQ29yZSB0ZXN0cy4gIyMKIyMgLS0tLS0t
LS0tLS0gIyMKCmNvbmZpZ3VyZToyNDE3OiBjaGVja2luZyB3aGV0aGVyIHRvIGVuYWJsZSBtYWlu
dGFpbmVyLXNwZWNpZmljIHBvcnRpb25zIG9mIE1ha2VmaWxlcwpjb25maWd1cmU6MjQyNjogcmVz
dWx0OiBubwpjb25maWd1cmU6MjQ0NDogY2hlY2tpbmcgZm9yIHNlZApjb25maWd1cmU6MjQ2Mzog
Zm91bmQgL3Vzci9iaW4vc2VkCmNvbmZpZ3VyZToyNDc2OiByZXN1bHQ6IC91c3IvYmluL3NlZApj
b25maWd1cmU6MjUzMDogY2hlY2tpbmcgZm9yIGEgQlNELWNvbXBhdGlibGUgaW5zdGFsbApjb25m
aWd1cmU6MjU5ODogcmVzdWx0OiAuL2luc3RhbGwtc2ggLWMKY29uZmlndXJlOjI2MDk6IGNoZWNr
aW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZQpjb25maWd1cmU6MjY0NjogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjI3MDg6IGNoZWNraW5nIGZvciBnYXdrCmNvbmZpZ3VyZToyNzM4
OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToyNzA4OiBjaGVja2luZyBmb3IgbWF3awpjb25maWd1cmU6
MjczODogcmVzdWx0OiBubwpjb25maWd1cmU6MjcwODogY2hlY2tpbmcgZm9yIG5hd2sKY29uZmln
dXJlOjI3MjQ6IGZvdW5kIC91c3IvYmluL25hd2sKY29uZmlndXJlOjI3MzU6IHJlc3VsdDogbmF3
awpjb25maWd1cmU6Mjc0NjogY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKQpjb25m
aWd1cmU6Mjc2ODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjI5NDY6IGNoZWNraW5nIGxpYnNzaDIg
dmVyc2lvbgpjb25maWd1cmU6Mjk0ODogcmVzdWx0OiAxLjQuMQpjb25maWd1cmU6Mjk1OTogY2hl
Y2tpbmcgYnVpbGQgc3lzdGVtIHR5cGUKY29uZmlndXJlOjI5NzM6IHJlc3VsdDogc3BhcmMtc3Vu
LXNvbGFyaXMyLjEwCmNvbmZpZ3VyZToyOTkzOiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlCmNv
bmZpZ3VyZTozMDA2OiByZXN1bHQ6IHNwYXJjLXN1bi1zb2xhcmlzMi4xMApjb25maWd1cmU6MzAz
MzogYXV0b2J1aWxkIHByb2plY3QuLi4gbGlic3NoMgpjb25maWd1cmU6MzAzOTogYXV0b2J1aWxk
IHJldmlzaW9uLi4uIDEuNC4xCmNvbmZpZ3VyZTozMDQ0OiBhdXRvYnVpbGQgaG9zdG5hbWUuLi4g
Y2huc3VuMDEKY29uZmlndXJlOjMwNTU6IGF1dG9idWlsZCB0aW1lc3RhbXAuLi4gMjAxMjA0MTYt
MTMyNTM4CmNvbmZpZ3VyZTozMDk2OiBjaGVja2luZyBmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2Vk
IGJ5IG1ha2UKY29uZmlndXJlOjMxMjQ6IHJlc3VsdDogR05VCmNvbmZpZ3VyZTozMTk3OiBjaGVj
a2luZyBmb3IgZ2NjCmNvbmZpZ3VyZTozMjI0OiByZXN1bHQ6IGNjCmNvbmZpZ3VyZTozNDUzOiBj
aGVja2luZyBmb3IgQyBjb21waWxlciB2ZXJzaW9uCmNvbmZpZ3VyZTozNDYyOiBjYyAtLXZlcnNp
b24gPiY1CmNjOiBXYXJuaW5nOiBvcHRpb24gLS0gcGFzc2VkIHRvIGxkCnVzYWdlOiBjYyBbIG9w
dGlvbnNdIGZpbGVzLiAgVXNlICdjYyAtZmxhZ3MnIGZvciBkZXRhaWxzCmNvbmZpZ3VyZTozNDcz
OiAkPyA9IDEKY29uZmlndXJlOjM0NjI6IGNjIC12ID4mNQp1c2FnZTogY2MgWyBvcHRpb25zXSBm
aWxlcy4gIFVzZSAnY2MgLWZsYWdzJyBmb3IgZGV0YWlscwpjb25maWd1cmU6MzQ3MzogJD8gPSAx
CmNvbmZpZ3VyZTozNDYyOiBjYyAtViA+JjUKY2M6IFN1biBDIDUuOCBQYXRjaCAxMjEwMTUtMDQg
MjAwNy8wMS8xMAp1c2FnZTogY2MgWyBvcHRpb25zXSBmaWxlcy4gIFVzZSAnY2MgLWZsYWdzJyBm
b3IgZGV0YWlscwpjb25maWd1cmU6MzQ3MzogJD8gPSAxCmNvbmZpZ3VyZTozNDYyOiBjYyAtcXZl
cnNpb24gPiY1CmNjOiBpbGxlZ2FsIG9wdGlvbiAtcXZlcnNpb24KY29uZmlndXJlOjM0NzM6ICQ/
ID0gMQpjb25maWd1cmU6MzQ5NTogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRw
dXQgZmlsZSBuYW1lCmNvbmZpZ3VyZTozNTE3OiBjYyAteGFyY2g9djkgICBjb25mdGVzdC5jICA+
JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDE5OiB3YXJuaW5nOiBzdGF0ZW1lbnQgbm90IHJlYWNoZWQK
Y29uZmlndXJlOjM1MjE6ICQ/ID0gMApjb25maWd1cmU6MzU1ODogcmVzdWx0OiBhLm91dApjb25m
aWd1cmU6MzU3NDogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciB3b3Jrcwpjb25maWd1
cmU6MzU4MzogLi9hLm91dApjb25maWd1cmU6MzU4NzogJD8gPSAwCmNvbmZpZ3VyZTozNjAyOiBy
ZXN1bHQ6IHllcwpjb25maWd1cmU6MzYwOTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgY3Jvc3Mg
Y29tcGlsaW5nCmNvbmZpZ3VyZTozNjExOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTozNjE0OiBjaGVj
a2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzCmNvbmZpZ3VyZTozNjIxOiBjYyAtbyBjb25m
dGVzdCAteGFyY2g9djkgICBjb25mdGVzdC5jICA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDE5OiB3
YXJuaW5nOiBzdGF0ZW1lbnQgbm90IHJlYWNoZWQKY29uZmlndXJlOjM2MjU6ICQ/ID0gMApjb25m
aWd1cmU6MzY0NzogcmVzdWx0OiAKY29uZmlndXJlOjM2NTM6IGNoZWNraW5nIGZvciBzdWZmaXgg
b2Ygb2JqZWN0IGZpbGVzCmNvbmZpZ3VyZTozNjc1OiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0
LmMgPiY1CmNvbmZpZ3VyZTozNjc5OiAkPyA9IDAKY29uZmlndXJlOjM3MDA6IHJlc3VsdDogbwpj
b25maWd1cmU6MzcwNDogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDIGNv
bXBpbGVyCmNvbmZpZ3VyZTozNzIzOiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CiJj
b25mdGVzdC5jIiwgbGluZSAxNjogdW5kZWZpbmVkIHN5bWJvbDogY2hva2UKImNvbmZ0ZXN0LmMi
LCBsaW5lIDE2OiBzeW50YXggZXJyb3IgYmVmb3JlIG9yIGF0OiBtZQpjYzogYWNvbXAgZmFpbGVk
IGZvciBjb25mdGVzdC5jCmNvbmZpZ3VyZTozNzIzOiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJs
aWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFD
S0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAj
ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAj
ZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZp
bmUgVkVSU0lPTiAiLSIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwgaW50CnwgbWFpbiAo
KQp8IHsKfCAjaWZuZGVmIF9fR05VQ19fCnwgICAgICAgIGNob2tlIG1lCnwgI2VuZGlmCnwgCnwg
ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozNzMyOiByZXN1bHQ6IG5vCmNvbmZpZ3Vy
ZTozNzQxOiBjaGVja2luZyB3aGV0aGVyIGNjIGFjY2VwdHMgLWcKY29uZmlndXJlOjM3NjE6IGNj
IC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6Mzc2MTogJD8gPSAwCmNvbmZpZ3VyZToz
ODAyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzgxOTogY2hlY2tpbmcgZm9yIGNjIG9wdGlvbiB0
byBhY2NlcHQgSVNPIEM4OQpjb25maWd1cmU6Mzg4MzogY2MgIC1jIC14YXJjaD12OSAgY29uZnRl
c3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDU5OiB3YXJuaW5nOiBzdGF0ZW1lbnQgbm90IHJl
YWNoZWQKY29uZmlndXJlOjM4ODM6ICQ/ID0gMApjb25maWd1cmU6Mzg5NjogcmVzdWx0OiBub25l
IG5lZWRlZApjb25maWd1cmU6MzkxODogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiBjYwpj
b25maWd1cmU6NDAwODogcmVzdWx0OiBub25lCmNvbmZpZ3VyZTo0MDMxOiBjaGVja2luZyBob3cg
dG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nvcgpjb25maWd1cmU6NDA2MjogY2MgLUUgIGNvbmZ0ZXN0
LmMKY29uZmlndXJlOjQwNjI6ICQ/ID0gMApjb25maWd1cmU6NDA3NjogY2MgLUUgIGNvbmZ0ZXN0
LmMKImNvbmZ0ZXN0LmMiLCBsaW5lIDExOiBjYW5ub3QgZmluZCBpbmNsdWRlIGZpbGU6IDxhY19u
b25leGlzdGVudC5oPgpjYzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5jCmNvbmZpZ3VyZTo0
MDc2OiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMu
aCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9U
QVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUg
UEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJs
aWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2Rl
ZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiLSIKfCAvKiBlbmQgY29u
ZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+CmNvbmZpZ3VyZTo0MTAx
OiByZXN1bHQ6IGNjIC1FCmNvbmZpZ3VyZTo0MTIxOiBjYyAtRSAgY29uZnRlc3QuYwpjb25maWd1
cmU6NDEyMTogJD8gPSAwCmNvbmZpZ3VyZTo0MTM1OiBjYyAtRSAgY29uZnRlc3QuYwoiY29uZnRl
c3QuYyIsIGxpbmUgMTE6IGNhbm5vdCBmaW5kIGluY2x1ZGUgZmlsZTogPGFjX25vbmV4aXN0ZW50
Lmg+CmNjOiBhY29tcCBmYWlsZWQgZm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjQxMzU6ICQ/ID0g
Mgpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2Rl
ZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxp
YnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NU
UklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2
ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tB
R0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICItIgp8IC8qIGVuZCBjb25mZGVmcy5oLiAg
Ki8KfCAjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KY29uZmlndXJlOjQxNjQ6IGNoZWNraW5n
IGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZQpjb25maWd1cmU6NDIyMjog
cmVzdWx0OiAvdXNyL3hwZzQvYmluL2dyZXAKY29uZmlndXJlOjQyMjc6IGNoZWNraW5nIGZvciBl
Z3JlcApjb25maWd1cmU6NDI4OTogcmVzdWx0OiAvdXNyL3hwZzQvYmluL2dyZXAgLUUKY29uZmln
dXJlOjQyOTQ6IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzCmNvbmZpZ3VyZTo0MzE0
OiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0MzE0OiAkPyA9IDAK
Y29uZmlndXJlOjQzODc6IGNjIC1vIGNvbmZ0ZXN0IC14YXJjaD12OSAgIGNvbmZ0ZXN0LmMgID4m
NQpjb25maWd1cmU6NDM4NzogJD8gPSAwCmNvbmZpZ3VyZTo0Mzg3OiAuL2NvbmZ0ZXN0CmNvbmZp
Z3VyZTo0Mzg3OiAkPyA9IDAKY29uZmlndXJlOjQzOTg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0
NDExOiBjaGVja2luZyBmb3Igc3lzL3R5cGVzLmgKY29uZmlndXJlOjQ0MTE6IGNjIC1jIC14YXJj
aD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0MTE6ICQ/ID0gMApjb25maWd1cmU6NDQx
MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MTE6IGNoZWNraW5nIGZvciBzeXMvc3RhdC5oCmNv
bmZpZ3VyZTo0NDExOiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0
NDExOiAkPyA9IDAKY29uZmlndXJlOjQ0MTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NDExOiBj
aGVja2luZyBmb3Igc3RkbGliLmgKY29uZmlndXJlOjQ0MTE6IGNjIC1jIC14YXJjaD12OSAgY29u
ZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0MTE6ICQ/ID0gMApjb25maWd1cmU6NDQxMTogcmVzdWx0
OiB5ZXMKY29uZmlndXJlOjQ0MTE6IGNoZWNraW5nIGZvciBzdHJpbmcuaApjb25maWd1cmU6NDQx
MTogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDQxMTogJD8gPSAw
CmNvbmZpZ3VyZTo0NDExOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDQxMTogY2hlY2tpbmcgZm9y
IG1lbW9yeS5oCmNvbmZpZ3VyZTo0NDExOiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1
CmNvbmZpZ3VyZTo0NDExOiAkPyA9IDAKY29uZmlndXJlOjQ0MTE6IHJlc3VsdDogeWVzCmNvbmZp
Z3VyZTo0NDExOiBjaGVja2luZyBmb3Igc3RyaW5ncy5oCmNvbmZpZ3VyZTo0NDExOiBjYyAtYyAt
eGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NDExOiAkPyA9IDAKY29uZmlndXJl
OjQ0MTE6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NDExOiBjaGVja2luZyBmb3IgaW50dHlwZXMu
aApjb25maWd1cmU6NDQxMTogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1
cmU6NDQxMTogJD8gPSAwCmNvbmZpZ3VyZTo0NDExOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDQx
MTogY2hlY2tpbmcgZm9yIHN0ZGludC5oCmNvbmZpZ3VyZTo0NDExOiBjYyAtYyAteGFyY2g9djkg
IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NDExOiAkPyA9IDAKY29uZmlndXJlOjQ0MTE6IHJl
c3VsdDogeWVzCmNvbmZpZ3VyZTo0NDExOiBjaGVja2luZyBmb3IgdW5pc3RkLmgKY29uZmlndXJl
OjQ0MTE6IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0MTE6ICQ/
ID0gMApjb25maWd1cmU6NDQxMTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MjQ6IGNoZWNraW5n
IGZvciBsb25nIGxvbmcKY29uZmlndXJlOjQ0MjQ6IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3Qu
YyA+JjUKY29uZmlndXJlOjQ0MjQ6ICQ/ID0gMApjb25maWd1cmU6NDQyNDogY2MgLWMgLXhhcmNo
PXY5ICBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgNTc6IHN5bnRheCBlcnJvciBi
ZWZvcmUgb3IgYXQ6ICkKY2M6IGFjb21wIGZhaWxlZCBmb3IgY29uZnRlc3QuYwpjb25maWd1cmU6
NDQyNDogJD8gPSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZz
LmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5l
IFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAi
bGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNk
ZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIi0iCnwgI2RlZmluZSBT
VERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZF
X1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NU
UklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdT
X0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0gg
MQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNp
bmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxz
eXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRl
IDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUg
PHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVf
U1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lm
ZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVk
IEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNs
dWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1
ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNs
dWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNs
dWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVk
ZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFpbiAoKQp8IHsKfCBpZiAoc2l6ZW9mICgo
bG9uZyBsb25nKSkpCnwgCSAgICByZXR1cm4gMDsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u
ZmlndXJlOjQ0MjQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NDM2OiBjaGVja2luZyBpZiBfUkVF
TlRSQU5UIGlzIGFscmVhZHkgZGVmaW5lZApjb25maWd1cmU6NDQ1ODogY2MgLWMgLXhhcmNoPXY5
ICBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgMzI6IHVuZGVmaW5lZCBzeW1ib2w6
IGZvcmNlCiJjb25mdGVzdC5jIiwgbGluZSAzMjogc3ludGF4IGVycm9yIGJlZm9yZSBvciBhdDog
Y29tcGlsYXRpb24KY2M6IGFjb21wIGZhaWxlZCBmb3IgY29uZnRlc3QuYwpjb25maWd1cmU6NDQ1
ODogJD8gPSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmgg
Ki8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFS
TkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBB
Q0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGli
c3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZp
bmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIi0iCnwgI2RlZmluZSBTVERD
X0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZ
U19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklO
R19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0gg
MQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8
ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAvKiBl
bmQgY29uZmRlZnMuaC4gICovCnwgCnwgCnwgCnwgaW50CnwgbWFpbiAoKQp8IHsKfCAKfCAjaWZk
ZWYgX1JFRU5UUkFOVAp8ICAgICAgIGludCBkdW1teT0xOwp8ICNlbHNlCnwgICAgICAgZm9yY2Ug
Y29tcGlsYXRpb24gZXJyb3IKfCAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KfCAK
Y29uZmlndXJlOjQ0NjY6IHJlc3VsdDogbm8KY29uZmlndXJlOjQ0NzQ6IGNoZWNraW5nIGlmIF9S
RUVOVFJBTlQgaXMgYWN0dWFsbHkgbmVlZGVkCmNvbmZpZ3VyZTo0NDg4OiByZXN1bHQ6IHllcwpj
b25maWd1cmU6NDQ5NjogY2hlY2tpbmcgaWYgX1JFRU5UUkFOVCBpcyBvbndhcmRzIGRlZmluZWQK
Y29uZmlndXJlOjQ1MTA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo0NTIwOiBjaGVja2luZyBmb3Ig
bGlicmFyeSBjb250YWluaW5nIHNvY2tldApjb25maWd1cmU6NDU1MTogY2MgLW8gY29uZnRlc3Qg
LXhhcmNoPXY5ICAgY29uZnRlc3QuYyAgPiY1CiJjb25mdGVzdC5jIiwgbGluZSAzOTogd2Fybmlu
Zzogc3RhdGVtZW50IG5vdCByZWFjaGVkClVuZGVmaW5lZAkJCWZpcnN0IHJlZmVyZW5jZWQKIHN5
bWJvbCAgCQkJICAgIGluIGZpbGUKc29ja2V0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uZnRlc3QubwpsZDogZmF0YWw6IFN5bWJvbCByZWZlcmVuY2luZyBlcnJvcnMuIE5vIG91dHB1
dCB3cml0dGVuIHRvIGNvbmZ0ZXN0CmNvbmZpZ3VyZTo0NTUxOiAkPyA9IDEKY29uZmlndXJlOiBm
YWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9O
QU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZp
bmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIg
LSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5z
ZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8
ICNkZWZpbmUgVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAxCnwgI2RlZmluZSBI
QVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAxCnwgI2RlZmluZSBI
QVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9N
RU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZ
UEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9I
IDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNkZWZpbmUgTkVFRF9SRUVOVFJBTlQgMQp8
ICNpZm5kZWYgX1JFRU5UUkFOVAp8ICMgIGRlZmluZSBfUkVFTlRSQU5UCnwgI2VuZGlmCnwgLyog
ZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IC8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJv
dG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgp8ICAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0
IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwp8ICAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRz
IGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBhcHBseS4gICovCnwgI2lmZGVmIF9fY3Bs
dXNwbHVzCnwgZXh0ZXJuICJDIgp8ICNlbmRpZgp8IGNoYXIgc29ja2V0ICgpOwp8IGludAp8IG1h
aW4gKCkKfCB7CnwgcmV0dXJuIHNvY2tldCAoKTsKfCAgIDsKfCAgIHJldHVybiAwOwp8IH0KY29u
ZmlndXJlOjQ1NTE6IGNjIC1vIGNvbmZ0ZXN0IC14YXJjaD12OSAgIGNvbmZ0ZXN0LmMgLWxzb2Nr
ZXQgICA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDM5OiB3YXJuaW5nOiBzdGF0ZW1lbnQgbm90IHJl
YWNoZWQKY29uZmlndXJlOjQ1NTE6ICQ/ID0gMApjb25maWd1cmU6NDU2ODogcmVzdWx0OiAtbHNv
Y2tldApjb25maWd1cmU6NDU3ODogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBpbmV0
X2FkZHIKY29uZmlndXJlOjQ2MDk6IGNjIC1vIGNvbmZ0ZXN0IC14YXJjaD12OSAgIGNvbmZ0ZXN0
LmMgLWxzb2NrZXQgID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgMzk6IHdhcm5pbmc6IHN0YXRlbWVu
dCBub3QgcmVhY2hlZApVbmRlZmluZWQJCQlmaXJzdCByZWZlcmVuY2VkCiBzeW1ib2wgIAkJCSAg
ICBpbiBmaWxlCmluZXRfYWRkciAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZ0ZXN0Lm8g
IChzeW1ib2wgYmVsb25ncyB0byBpbXBsaWNpdCBkZXBlbmRlbmN5IC9saWIvc3BhcmN2OS9saWJu
c2wuc28uMSkKbGQ6IGZhdGFsOiBTeW1ib2wgcmVmZXJlbmNpbmcgZXJyb3JzLiBObyBvdXRwdXQg
d3JpdHRlbiB0byBjb25mdGVzdApjb25maWd1cmU6NDYwOTogJD8gPSAxCmNvbmZpZ3VyZTogZmFp
bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN
RSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5l
IFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0i
CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2Ui
CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAj
ZGVmaW5lIFZFUlNJT04gIi0iCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW
RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVN
T1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF
U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx
CnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAj
aWZuZGVmIF9SRUVOVFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8IC8qIGVu
ZCBjb25mZGVmcy5oLiAgKi8KfCAKfCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3Rv
dHlwZSB0byBhdm9pZCBhbiBlcnJvci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt
YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBh
cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVz
cGx1cwp8IGV4dGVybiAiQyIKfCAjZW5kaWYKfCBjaGFyIGluZXRfYWRkciAoKTsKfCBpbnQKfCBt
YWluICgpCnwgewp8IHJldHVybiBpbmV0X2FkZHIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9
CmNvbmZpZ3VyZTo0NjA5OiBjYyAtbyBjb25mdGVzdCAteGFyY2g9djkgICBjb25mdGVzdC5jIC1s
bnNsICAtbHNvY2tldCAgPiY1CiJjb25mdGVzdC5jIiwgbGluZSAzOTogd2FybmluZzogc3RhdGVt
ZW50IG5vdCByZWFjaGVkCmNvbmZpZ3VyZTo0NjA5OiAkPyA9IDAKY29uZmlndXJlOjQ2MjY6IHJl
c3VsdDogLWxuc2wKY29uZmlndXJlOjQ2ODU6IGNoZWNraW5nIGZvciBnY2MKY29uZmlndXJlOjQ3
MTI6IHJlc3VsdDogY2MKY29uZmlndXJlOjQ5NDE6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZl
cnNpb24KY29uZmlndXJlOjQ5NTA6IGNjIC0tdmVyc2lvbiA+JjUKY2M6IFdhcm5pbmc6IG9wdGlv
biAtLSBwYXNzZWQgdG8gbGQKdXNhZ2U6IGNjIFsgb3B0aW9uc10gZmlsZXMuICBVc2UgJ2NjIC1m
bGFncycgZm9yIGRldGFpbHMKY29uZmlndXJlOjQ5NjE6ICQ/ID0gMQpjb25maWd1cmU6NDk1MDog
Y2MgLXYgPiY1CnVzYWdlOiBjYyBbIG9wdGlvbnNdIGZpbGVzLiAgVXNlICdjYyAtZmxhZ3MnIGZv
ciBkZXRhaWxzCmNvbmZpZ3VyZTo0OTYxOiAkPyA9IDEKY29uZmlndXJlOjQ5NTA6IGNjIC1WID4m
NQpjYzogU3VuIEMgNS44IFBhdGNoIDEyMTAxNS0wNCAyMDA3LzAxLzEwCnVzYWdlOiBjYyBbIG9w
dGlvbnNdIGZpbGVzLiAgVXNlICdjYyAtZmxhZ3MnIGZvciBkZXRhaWxzCmNvbmZpZ3VyZTo0OTYx
OiAkPyA9IDEKY29uZmlndXJlOjQ5NTA6IGNjIC1xdmVyc2lvbiA+JjUKY2M6IGlsbGVnYWwgb3B0
aW9uIC1xdmVyc2lvbgpjb25maWd1cmU6NDk2MTogJD8gPSAxCmNvbmZpZ3VyZTo0OTY1OiBjaGVj
a2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIKY29uZmlndXJlOjQ5
OTM6IHJlc3VsdDogbm8KY29uZmlndXJlOjUwMDI6IGNoZWNraW5nIHdoZXRoZXIgY2MgYWNjZXB0
cyAtZwpjb25maWd1cmU6NTA2MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUwODA6IGNoZWNraW5n
IGZvciBjYyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkKY29uZmlndXJlOjUxNTc6IHJlc3VsdDog
bm9uZSBuZWVkZWQKY29uZmlndXJlOjUxNzk6IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2Yg
Y2MKY29uZmlndXJlOjUyNjk6IHJlc3VsdDogbm9uZQpjb25maWd1cmU6NTI4NzogY2hlY2tpbmcg
d2hldGhlciBsbiAtcyB3b3Jrcwpjb25maWd1cmU6NTI5MTogcmVzdWx0OiB5ZXMKY29uZmlndXJl
OjUyOTg6IGNoZWNraW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkKY29uZmlndXJlOjUzMjA6
IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo1MzMzOiBjaGVja2luZyBmb3Igc3NoZApjb25maWd1cmU6
NTM2NjogcmVzdWx0OiBubwpjb25maWd1cmU6NTcxMjogY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQg
ZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0CmNvbmZpZ3VyZTo1Nzc2OiByZXN1bHQ6IC91c3IvYmlu
L3NlZApjb25maWd1cmU6NTc5NDogY2hlY2tpbmcgZm9yIGZncmVwCmNvbmZpZ3VyZTo1ODU2OiBy
ZXN1bHQ6IC91c3IveHBnNC9iaW4vZ3JlcCAtRgpjb25maWd1cmU6NTkyNDogY2hlY2tpbmcgZm9y
IG5vbi1HTlUgbGQKY29uZmlndXJlOjU5NTg6IHJlc3VsdDogL3Vzci9jY3MvYmluLy9sZApjb25m
aWd1cmU6NTk2NTogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAoL3Vzci9jY3MvYmluLy9sZCkgaXMg
R05VIGxkCmNvbmZpZ3VyZTo1OTgwOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo1OTkyOiBjaGVja2lu
ZyBmb3IgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyIChubSkKY29uZmlndXJlOjYw
NDE6IHJlc3VsdDogL3Vzci9jY3MvYmluLy9ubSAtcApjb25maWd1cmU6NjE1OTogY2hlY2tpbmcg
dGhlIG5hbWUgbGlzdGVyICgvdXNyL2Njcy9iaW4vL25tIC1wKSBpbnRlcmZhY2UKY29uZmlndXJl
OjYxNjY6IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYxNjk6IC91
c3IvY2NzL2Jpbi8vbm0gLXAgImNvbmZ0ZXN0Lm8iCmNvbmZpZ3VyZTo2MTcyOiBvdXRwdXQKCgpj
b25mdGVzdC5vOgowMDAwMDAwMDAwMDAwMCBzIAowMDAwMDAwMDAwMDAwMCBzIAowMDAwMDAwMDAw
MDAwMCBiIEJic3MuYnNzCjAwMDAwMDAwMDAwMDAwIGQgRGRhdGEuZGF0YQowMDAwMDAwMDAwMDAw
MCBkIERyb2RhdGEucm9kYXRhCjAwMDAwMDAwMDAwMDAwIGYgY29uZnRlc3QuYwowMDAwMDAwMDAw
MDAwMCBEIHNvbWVfdmFyaWFibGUKY29uZmlndXJlOjYxNzk6IHJlc3VsdDogQlNEIG5tCmNvbmZp
Z3VyZTo2MTgzOiBjaGVja2luZyB0aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFy
Z3VtZW50cwpjb25maWd1cmU6NjMwMzogcmVzdWx0OiA3ODYyNDAKY29uZmlndXJlOjYzMjA6IGNo
ZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0cnVjdHMK
Y29uZmlndXJlOjYzMzA6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo2MzM0OiBjaGVja2luZyB3aGV0
aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAiKz0iCmNvbmZpZ3VyZTo2MzQwOiByZXN1bHQ6IG5v
CmNvbmZpZ3VyZTo2Mzc1OiBjaGVja2luZyBmb3IgL3Vzci9jY3MvYmluLy9sZCBvcHRpb24gdG8g
cmVsb2FkIG9iamVjdCBmaWxlcwpjb25maWd1cmU6NjM4MjogcmVzdWx0OiAtcgpjb25maWd1cmU6
NjQ1MTogY2hlY2tpbmcgZm9yIG9iamR1bXAKY29uZmlndXJlOjY0Nzg6IHJlc3VsdDogb2JqZHVt
cApjb25maWd1cmU6NjUwNzogY2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGli
cmFyaWVzCmNvbmZpZ3VyZTo2NzAzOiByZXN1bHQ6IHBhc3NfYWxsCmNvbmZpZ3VyZTo2NzYzOiBj
aGVja2luZyBmb3IgYXIKY29uZmlndXJlOjY3Nzk6IGZvdW5kIC91c3IvY2NzL2Jpbi8vYXIKY29u
ZmlndXJlOjY3OTA6IHJlc3VsdDogYXIKY29uZmlndXJlOjY4Njg6IGNoZWNraW5nIGZvciBzdHJp
cApjb25maWd1cmU6Njg4NDogZm91bmQgL3Vzci9jY3MvYmluLy9zdHJpcApjb25maWd1cmU6Njg5
NTogcmVzdWx0OiBzdHJpcApjb25maWd1cmU6Njk2NzogY2hlY2tpbmcgZm9yIHJhbmxpYgpjb25m
aWd1cmU6Njk4MzogZm91bmQgL3Vzci9jY3MvYmluLy9yYW5saWIKY29uZmlndXJlOjY5OTQ6IHJl
c3VsdDogcmFubGliCmNvbmZpZ3VyZTo3MDg0OiBjaGVja2luZyBjb21tYW5kIHRvIHBhcnNlIC91
c3IvY2NzL2Jpbi8vbm0gLXAgb3V0cHV0IGZyb20gY2Mgb2JqZWN0CmNvbmZpZ3VyZTo3MjAyOiBj
YyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3MjA1OiAkPyA9IDAKY29u
ZmlndXJlOjcyMDk6IC91c3IvY2NzL2Jpbi8vbm0gLXAgY29uZnRlc3QubyBcfCBzZWQgLW4gLWUg
J3MvXi4qWwkgXVwoW0JEUlRdW0JEUlRdKlwpWwkgXVsJIF0qXChbX0EtWmEtel1bX0EtWmEtejAt
OV0qXCkkL1wxIFwyIFwyL3AnIFw+IGNvbmZ0ZXN0Lm5tCmNvbmZpZ3VyZTo3MjEyOiAkPyA9IDAK
Y29uZmlndXJlOjcyNjY6IGNjIC1vIGNvbmZ0ZXN0IC14YXJjaD12OSAgIGNvbmZ0ZXN0LmMgY29u
ZnRzdG0ubyA+JjUKY29uZmlndXJlOjcyNjk6ICQ/ID0gMApjb25maWd1cmU6NzMwNzogcmVzdWx0
OiBvawpjb25maWd1cmU6NzUwMTogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25m
aWd1cmU6NzUwNDogJD8gPSAwCmNvbmZpZ3VyZTo4MTEyOiBjaGVja2luZyBmb3IgZGxmY24uaApj
b25maWd1cmU6ODExMjogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6
ODExMjogJD8gPSAwCmNvbmZpZ3VyZTo4MTEyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODI5NDog
Y2hlY2tpbmcgZm9yIG9iamRpcgpjb25maWd1cmU6ODMwOTogcmVzdWx0OiAubGlicwpjb25maWd1
cmU6ODY2MDogY2hlY2tpbmcgZm9yIGNjIG9wdGlvbiB0byBwcm9kdWNlIFBJQwpjb25maWd1cmU6
ODkzMjogcmVzdWx0OiAtS1BJQyAtRFBJQwpjb25maWd1cmU6ODk0NDogY2hlY2tpbmcgaWYgY2Mg
UElDIGZsYWcgLUtQSUMgLURQSUMgd29ya3MKY29uZmlndXJlOjg5NjI6IGNjIC1jIC14YXJjaD12
OSAgLUtQSUMgLURQSUMgLURQSUMgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjg5NjY6ICQ/ID0g
MApjb25maWd1cmU6ODk3OTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjkwMDM6IGNoZWNraW5nIGlm
IGNjIHN0YXRpYyBmbGFnIC1Cc3RhdGljIHdvcmtzCmNvbmZpZ3VyZTo5MDMxOiByZXN1bHQ6IG5v
CmNvbmZpZ3VyZTo5MDQ2OiBjaGVja2luZyBpZiBjYyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8KY29u
ZmlndXJlOjkwNjc6IGNjIC1jIC14YXJjaD12OSAgLW8gb3V0L2NvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0
LmMgPiY1CmNvbmZpZ3VyZTo5MDcxOiAkPyA9IDAKY29uZmlndXJlOjkwOTM6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZTo5MTAxOiBjaGVja2luZyBpZiBjYyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8KY29u
ZmlndXJlOjkxNDg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5MTgxOiBjaGVja2luZyB3aGV0aGVy
IHRoZSBjYyBsaW5rZXIgKC91c3IvY2NzL2Jpbi8vbGQgLTY0KSBzdXBwb3J0cyBzaGFyZWQgbGli
cmFyaWVzCmNvbmZpZ3VyZToxMDE3MjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwNDExOiBjaGVj
a2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MKY29uZmlndXJlOjExMDc0OiByZXN1
bHQ6IHNvbGFyaXMyLjEwIGxkLnNvCmNvbmZpZ3VyZToxMTE3NjogY2hlY2tpbmcgaG93IHRvIGhh
cmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcwpjb25maWd1cmU6MTEyMDE6IHJlc3Vs
dDogaW1tZWRpYXRlCmNvbmZpZ3VyZToxMTcyMTogY2hlY2tpbmcgd2hldGhlciBzdHJpcHBpbmcg
bGlicmFyaWVzIGlzIHBvc3NpYmxlCmNvbmZpZ3VyZToxMTc0MzogcmVzdWx0OiBubwpjb25maWd1
cmU6MTE3NjE6IGNoZWNraW5nIGlmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcwpj
b25maWd1cmU6MTE3NjM6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMTc2NjogY2hlY2tpbmcgd2hl
dGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzCmNvbmZpZ3VyZToxMTc4NzogcmVzdWx0OiBu
bwpjb25maWd1cmU6MTE3OTA6IGNoZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJh
cmllcwpjb25maWd1cmU6MTE3OTQ6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMTgyOTogY2hlY2tp
bmcgd2hldGhlciBieXRlIG9yZGVyaW5nIGlzIGJpZ2VuZGlhbgpjb25maWd1cmU6MTE4NDQ6IGNj
IC1jIC14YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDI5OiB3YXJu
aW5nOiBvbGQtc3R5bGUgZGVjbGFyYXRpb24gb3IgaW5jb3JyZWN0IHR5cGUgZm9yOiBub3QKImNv
bmZ0ZXN0LmMiLCBsaW5lIDI5OiBzeW50YXggZXJyb3IgYmVmb3JlIG9yIGF0OiBhCiJjb25mdGVz
dC5jIiwgbGluZSAyOTogd2FybmluZzogb2xkLXN0eWxlIGRlY2xhcmF0aW9uIG9yIGluY29ycmVj
dCB0eXBlIGZvcjogYQoiY29uZnRlc3QuYyIsIGxpbmUgMjk6IHdhcm5pbmc6IG9sZC1zdHlsZSBk
ZWNsYXJhdGlvbiBvciBpbmNvcnJlY3QgdHlwZSBmb3I6IHVuaXZlcnNhbAoiY29uZnRlc3QuYyIs
IGxpbmUgMjk6IHdhcm5pbmc6IG9sZC1zdHlsZSBkZWNsYXJhdGlvbiBvciBpbmNvcnJlY3QgdHlw
ZSBmb3I6IGNhcGFibGUKImNvbmZ0ZXN0LmMiLCBsaW5lIDMxOiB3YXJuaW5nOiBvbGQtc3R5bGUg
ZGVjbGFyYXRpb24gb3IgaW5jb3JyZWN0IHR5cGUgZm9yOiBjb21waWxlcgpjYzogYWNvbXAgZmFp
bGVkIGZvciBjb25mdGVzdC5jCmNvbmZpZ3VyZToxMTg0NDogJD8gPSAyCmNvbmZpZ3VyZTogZmFp
bGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFN
RSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5l
IFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0i
CnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2Ui
CnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAj
ZGVmaW5lIFZFUlNJT04gIi0iCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW
RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVN
T1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF
U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx
CnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAj
aWZuZGVmIF9SRUVOVFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZp
bmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8IC8qIGVuZCBj
b25mZGVmcy5oLiAgKi8KfCAjaWZuZGVmIF9fQVBQTEVfQ0NfXwp8IAkgICAgICAgbm90IGEgdW5p
dmVyc2FsIGNhcGFibGUgY29tcGlsZXIKfCAJICAgICAjZW5kaWYKfCAJICAgICB0eXBlZGVmIGlu
dCBkdW1teTsKfCAKY29uZmlndXJlOjExODg5OiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMg
PiY1CiJjb25mdGVzdC5jIiwgbGluZSAzNTogdW5kZWZpbmVkIHN5bWJvbDogYm9ndXMKImNvbmZ0
ZXN0LmMiLCBsaW5lIDM1OiBzeW50YXggZXJyb3IgYmVmb3JlIG9yIGF0OiBlbmRpYW4KY2M6IGFj
b21wIGZhaWxlZCBmb3IgY29uZnRlc3QuYwpjb25maWd1cmU6MTE4ODk6ICQ/ID0gMgpjb25maWd1
cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNL
QUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwg
I2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGli
c3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5o
YXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNz
aDIiCnwgI2RlZmluZSBWRVJTSU9OICItIgp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVm
aW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVm
aW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBI
QVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVf
SU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5J
U1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2RlZmluZSBORUVEX1JFRU5UUkFO
VCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQKfCAjZW5kaWYK
fCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAv
KiBlbmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgp8IAkgICAgICNp
bmNsdWRlIDxzeXMvcGFyYW0uaD4KfCAKfCBpbnQKfCBtYWluICgpCnwgewp8ICNpZiAhIChkZWZp
bmVkIEJZVEVfT1JERVIgJiYgZGVmaW5lZCBCSUdfRU5ESUFOIAkJICAgICAmJiBkZWZpbmVkIExJ
VFRMRV9FTkRJQU4gJiYgQllURV9PUkRFUiAmJiBCSUdfRU5ESUFOIAkJICAgICAmJiBMSVRUTEVf
RU5ESUFOKQp8IAkgICAgICBib2d1cyBlbmRpYW4gbWFjcm9zCnwgCSAgICAgI2VuZGlmCnwgCnwg
ICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZToxMTkzMzogY2MgLWMgLXhhcmNoPXY5ICBj
b25mdGVzdC5jID4mNQpjb25maWd1cmU6MTE5MzM6ICQ/ID0gMApjb25maWd1cmU6MTE5NTA6IGNj
IC1jIC14YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjExOTUwOiAkPyA9IDAKY29u
ZmlndXJlOjEyMDM1OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTIwNjE6IGNoZWNraW5nIGZvciBz
cGVjaWFsIEMgY29tcGlsZXIgb3B0aW9ucyBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzCmNvbmZpZ3Vy
ZToxMjA5MTogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTIwOTE6
ICQ/ID0gMApjb25maWd1cmU6MTIxMDY6IHJlc3VsdDogbm8KY29uZmlndXJlOjEyMTEyOiBjaGVj
a2luZyBmb3IgX0ZJTEVfT0ZGU0VUX0JJVFMgdmFsdWUgbmVlZGVkIGZvciBsYXJnZSBmaWxlcwpj
b25maWd1cmU6MTIxMzc6IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl
OjEyMTM3OiAkPyA9IDAKY29uZmlndXJlOjEyMTY5OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxMjM1
NDogY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQKY29uZmlndXJlOjEyMzg1OiByZXN1bHQ6IC91c3Iv
Y2NzL2Jpbi8vbGQgLTY0CmNvbmZpZ3VyZToxMjM5MjogY2hlY2tpbmcgaWYgdGhlIGxpbmtlciAo
L3Vzci9jY3MvYmluLy9sZCAtNjQpIGlzIEdOVSBsZApjb25maWd1cmU6MTI0MDU6IHJlc3VsdDog
bm8KY29uZmlndXJlOjEyNDEyOiBjaGVja2luZyBmb3Igc2hhcmVkIGxpYnJhcnkgcnVuIHBhdGgg
b3JpZ2luCmNvbmZpZ3VyZToxMjQyNTogcmVzdWx0OiBkb25lCmNvbmZpZ3VyZToxMjkzMDogY2hl
Y2tpbmcgZm9yIGxpYnNzbApjb25maWd1cmU6MTI5NDk6IGNjIC1vIGNvbmZ0ZXN0IC14YXJjaD12
OSAgIGNvbmZ0ZXN0LmMgLWxuc2wgLWxzb2NrZXQgIC1sc3NsIC1sY3J5cHRvID4mNQoiY29uZnRl
c3QuYyIsIGxpbmUgMjk6IGNhbm5vdCBmaW5kIGluY2x1ZGUgZmlsZTogPG9wZW5zc2wvc3NsLmg+
CmNjOiBhY29tcCBmYWlsZWQgZm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjEyOTQ5OiAkPyA9IDIK
Y29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZp
bmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJz
c2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJ
TkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVs
QGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdF
ICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFNURENfSEVBREVSUyAx
CnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NUQVRfSCAx
CnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HX0ggMQp8ICNk
ZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1NfSCAxCnwgI2RlZmlu
ZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCnwgI2RlZmluZSBI
QVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNkZWZpbmUgTkVFRF9S
RUVOVFJBTlQgMQp8ICNpZm5kZWYgX1JFRU5UUkFOVAp8ICMgIGRlZmluZSBfUkVFTlRSQU5UCnwg
I2VuZGlmCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZpbmUgTFRfT0JKRElSICIubGli
cy8iCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8K
fCAjaW5jbHVkZSA8b3BlbnNzbC9zc2wuaD4KfCBpbnQKfCBtYWluICgpCnwgewp8IAp8ICAgOwp8
ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6MTI5NTk6IHJlc3VsdDogbm8KY29uZmlndXJlOjEz
NTEzOiBlcnJvcjogY2Fubm90IGZpbmQgT3BlblNTTCBvciBMaWJnY3J5cHQsCnRyeSAtLXdpdGgt
bGlic3NsLXByZWZpeD1QQVRIIG9yIC0td2l0aC1saWJnY3J5cHQtcHJlZml4PVBBVEgKCiMjIC0t
LS0tLS0tLS0tLS0tLS0gIyMKIyMgQ2FjaGUgdmFyaWFibGVzLiAjIwojIyAtLS0tLS0tLS0tLS0t
LS0tICMjCgphY19jdl9idWlsZD1zcGFyYy1zdW4tc29sYXJpczIuMTAKYWNfY3ZfY19iaWdlbmRp
YW49eWVzCmFjX2N2X2NfY29tcGlsZXJfZ251PW5vCmFjX2N2X2Vudl9DQ19zZXQ9c2V0CmFjX2N2
X2Vudl9DQ192YWx1ZT1jYwphY19jdl9lbnZfQ0ZMQUdTX3NldD1zZXQKYWNfY3ZfZW52X0NGTEFH
U192YWx1ZT0teGFyY2g9djkKYWNfY3ZfZW52X0NQUEZMQUdTX3NldD0KYWNfY3ZfZW52X0NQUEZM
QUdTX3ZhbHVlPQphY19jdl9lbnZfQ1BQX3NldD0KYWNfY3ZfZW52X0NQUF92YWx1ZT0KYWNfY3Zf
ZW52X0xERkxBR1Nfc2V0PQphY19jdl9lbnZfTERGTEFHU192YWx1ZT0KYWNfY3ZfZW52X0xJQlNf
c2V0PQphY19jdl9lbnZfTElCU192YWx1ZT0KYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3NldD0KYWNf
Y3ZfZW52X2J1aWxkX2FsaWFzX3ZhbHVlPQphY19jdl9lbnZfaG9zdF9hbGlhc19zZXQ9CmFjX2N2
X2Vudl9ob3N0X2FsaWFzX3ZhbHVlPQphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3NldD0KYWNfY3Zf
ZW52X3RhcmdldF9hbGlhc192YWx1ZT0KYWNfY3ZfaGVhZGVyX2RsZmNuX2g9eWVzCmFjX2N2X2hl
YWRlcl9pbnR0eXBlc19oPXllcwphY19jdl9oZWFkZXJfbWVtb3J5X2g9eWVzCmFjX2N2X2hlYWRl
cl9zdGRjPXllcwphY19jdl9oZWFkZXJfc3RkaW50X2g9eWVzCmFjX2N2X2hlYWRlcl9zdGRsaWJf
aD15ZXMKYWNfY3ZfaGVhZGVyX3N0cmluZ19oPXllcwphY19jdl9oZWFkZXJfc3RyaW5nc19oPXll
cwphY19jdl9oZWFkZXJfc3lzX3N0YXRfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c190eXBlc19oPXll
cwphY19jdl9oZWFkZXJfdW5pc3RkX2g9eWVzCmFjX2N2X2hvc3Q9c3BhcmMtc3VuLXNvbGFyaXMy
LjEwCmFjX2N2X2xpYnNzbD1ubwphY19jdl9vYmpleHQ9bwphY19jdl9wYXRoX0VHUkVQPScvdXNy
L3hwZzQvYmluL2dyZXAgLUUnCmFjX2N2X3BhdGhfRkdSRVA9Jy91c3IveHBnNC9iaW4vZ3JlcCAt
RicKYWNfY3ZfcGF0aF9HUkVQPS91c3IveHBnNC9iaW4vZ3JlcAphY19jdl9wYXRoX1NFRD0vdXNy
L2Jpbi9zZWQKYWNfY3ZfcHJvZ19BV0s9bmF3awphY19jdl9wcm9nX0NQUD0nY2MgLUUnCmFjX2N2
X3Byb2dfYWNfY3RfQVI9YXIKYWNfY3ZfcHJvZ19hY19jdF9DQz1jYwphY19jdl9wcm9nX2FjX2N0
X09CSkRVTVA9b2JqZHVtcAphY19jdl9wcm9nX2FjX2N0X1JBTkxJQj1yYW5saWIKYWNfY3ZfcHJv
Z19hY19jdF9TVFJJUD1zdHJpcAphY19jdl9wcm9nX2NjX2M4OT0KYWNfY3ZfcHJvZ19jY19nPXll
cwphY19jdl9wcm9nX21ha2VfbWFrZV9zZXQ9eWVzCmFjX2N2X3NlYXJjaF9pbmV0X2FkZHI9LWxu
c2wKYWNfY3Zfc2VhcmNoX3NvY2tldD0tbHNvY2tldAphY19jdl9zeXNfZmlsZV9vZmZzZXRfYml0
cz1ubwphY19jdl9zeXNfbGFyZ2VmaWxlX0NDPW5vCmFjX2N2X3R5cGVfbG9uZ19sb25nPXllcwph
Y2xfY3ZfaGFyZGNvZGVfZGlyZWN0PW5vCmFjbF9jdl9oYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj
PSctUiRsaWJkaXInCmFjbF9jdl9oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPQphY2xfY3ZfaGFy
ZGNvZGVfbWludXNfTD1ubwphY2xfY3ZfbGliZXh0PWEKYWNsX2N2X2xpYm5hbWVfc3BlYz0nbGli
JG5hbWUnCmFjbF9jdl9saWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCcKYWNsX2N2
X3BhdGhfTEQ9Jy91c3IvY2NzL2Jpbi8vbGQgLTY0JwphY2xfY3ZfcHJvZ19nbnVfbGQ9bm8KYWNs
X2N2X3JwYXRoPWRvbmUKYWNsX2N2X3NobGliZXh0PXNvCmFjbF9jdl93bD0tV2wsCmFtX2N2X0ND
X2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKbHRfY3ZfZGVwbGlic19jaGVja19tZXRo
b2Q9cGFzc19hbGwKbHRfY3ZfZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19DTUQnCmx0X2N2X2ZpbGVf
bWFnaWNfdGVzdF9maWxlPQpsdF9jdl9sZF9yZWxvYWRfZmxhZz0tcgpsdF9jdl9ubV9pbnRlcmZh
Y2U9J0JTRCBubScKbHRfY3Zfb2JqZGlyPS5saWJzCmx0X2N2X3BhdGhfTEQ9L3Vzci9jY3MvYmlu
Ly9sZApsdF9jdl9wYXRoX05NPScvdXNyL2Njcy9iaW4vL25tIC1wJwpsdF9jdl9wcm9nX2NvbXBp
bGVyX2Nfbz15ZXMKbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3M9eWVzCmx0X2N2X3Byb2df
Y29tcGlsZXJfc3RhdGljX3dvcmtzPW5vCmx0X2N2X3Byb2dfZ251X2xkPW5vCmx0X2N2X3N5c19n
bG9iYWxfc3ltYm9sX3BpcGU9J3NlZCAtbiAtZSAnXCcncy9eLipbCSBdXChbQkRSVF1bQkRSVF0q
XClbCSBdWwkgXSpcKFtfQS1aYS16XVtfQS1aYS16MC05XSpcKSQvXDEgXDIgXDIvcCdcJycnCmx0
X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSdzZWQgLW4gLWUgJ1wnJ3Mv
XjogXChbXiBdKlwpICQvICB7XCJcMVwiLCAodm9pZCAqKSAwfSwvcCdcJycgLWUgJ1wnJ3MvXltC
RFJUXSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7IlwyIiwgKHZvaWQgKikgXCZcMn0sL3AnXCcn
JwpsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJlZml4PSdz
ZWQgLW4gLWUgJ1wnJ3MvXjogXChbXiBdKlwpICQvICB7XCJcMVwiLCAodm9pZCAqKSAwfSwvcCdc
JycgLWUgJ1wnJ3MvXltCRFJUXSogXChbXiBdKlwpIFwobGliW14gXSpcKSQvICB7IlwyIiwgKHZv
aWQgKikgXCZcMn0sL3AnXCcnIC1lICdcJydzL15bQkRSVF0qIFwoW14gXSpcKSBcKFteIF0qXCkk
LyAgeyJsaWJcMiIsICh2b2lkICopIFwmXDJ9LC9wJ1wnJycKbHRfY3Zfc3lzX2dsb2JhbF9zeW1i
b2xfdG9fY2RlY2w9J3NlZCAtbiAtZSAnXCcncy9eVCAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDEo
KTsvcCdcJycgLWUgJ1wnJ3MvXltCRFJUXSogLiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCdc
JycnCmx0X2N2X3N5c19tYXhfY21kX2xlbj03ODYyNDAKCiMjIC0tLS0tLS0tLS0tLS0tLS0tICMj
CiMjIE91dHB1dCB2YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCgpBQ0xPQ0FM
PScke1NIRUxMfSAvY29ydGV4L2J1aWxkL3RoaXJkX3BhcnR5LzY0Yml0L2xpYnNzaDItMS40LjEv
bWlzc2luZyAtLXJ1biBhY2xvY2FsLTEuOScKQUxMT0NBPScnCkFNREVQQkFDS1NMQVNIPSdcJwpB
TURFUF9GQUxTRT0nIycKQU1ERVBfVFJVRT0nJwpBTVRBUj0nJHtTSEVMTH0gL2NvcnRleC9idWls
ZC90aGlyZF9wYXJ0eS82NGJpdC9saWJzc2gyLTEuNC4xL21pc3NpbmcgLS1ydW4gdGFyJwpBUj0n
YXInCkFTPSdhcycKQVVUT0NPTkY9JyR7U0hFTEx9IC9jb3J0ZXgvYnVpbGQvdGhpcmRfcGFydHkv
NjRiaXQvbGlic3NoMi0xLjQuMS9taXNzaW5nIC0tcnVuIGF1dG9jb25mJwpBVVRPSEVBREVSPSck
e1NIRUxMfSAvY29ydGV4L2J1aWxkL3RoaXJkX3BhcnR5LzY0Yml0L2xpYnNzaDItMS40LjEvbWlz
c2luZyAtLXJ1biBhdXRvaGVhZGVyJwpBVVRPTUFLRT0nJHtTSEVMTH0gL2NvcnRleC9idWlsZC90
aGlyZF9wYXJ0eS82NGJpdC9saWJzc2gyLTEuNC4xL21pc3NpbmcgLS1ydW4gYXV0b21ha2UtMS45
JwpBV0s9J25hd2snCkNDPSdjYycKQ0NERVBNT0RFPSdkZXBtb2RlPW5vbmUnCkNGTEFHUz0nLXhh
cmNoPXY5JwpDUFA9J2NjIC1FJwpDUFBGTEFHUz0nJwpDWUdQQVRIX1c9J2VjaG8nCkRFRlM9JycK
REVQRElSPScuZGVwcycKRExMVE9PTD0nZGxsdG9vbCcKRFNZTVVUSUw9JycKRFVNUEJJTj0nJwpF
Q0hPX0M9JycKRUNIT19OPSctbicKRUNIT19UPScnCkVHUkVQPScvdXNyL3hwZzQvYmluL2dyZXAg
LUUnCkVYRUVYVD0nJwpGR1JFUD0nL3Vzci94cGc0L2Jpbi9ncmVwIC1GJwpHUkVQPScvdXNyL3hw
ZzQvYmluL2dyZXAnCkhBVkVfTElCR0NSWVBUPScnCkhBVkVfTElCU1NMPSdubycKSEFWRV9MSUJa
PScnCkhBVkVfU1lTX1VOX0hfRkFMU0U9JycKSEFWRV9TWVNfVU5fSF9UUlVFPScnCklOU1RBTExf
REFUQT0nJHtJTlNUQUxMfSAtbSA2NDQnCklOU1RBTExfUFJPR1JBTT0nJHtJTlNUQUxMfScKSU5T
VEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0nCklOU1RBTExfU1RSSVBfUFJPR1JBTT0nJHtTSEVMTH0g
JChpbnN0YWxsX3NoKSAtYyAtcycKTEQ9Jy91c3IvY2NzL2Jpbi8vbGQgLTY0JwpMREZMQUdTPScn
CkxJQkdDUllQVD0nJwpMSUJHQ1JZUFRfRkFMU0U9JycKTElCR0NSWVBUX1BSRUZJWD0nJwpMSUJH
Q1JZUFRfVFJVRT0nJwpMSUJPQkpTPScnCkxJQlM9Jy1sbnNsIC1sc29ja2V0ICcKTElCU1NIMlZF
Uj0nMS40LjEnCkxJQlNTTD0nJwpMSUJTU0xfUFJFRklYPScnCkxJQlRPT0w9JyQoU0hFTEwpICQo
dG9wX2J1aWxkZGlyKS9saWJ0b29sJwpMSUJaPScnCkxJQlpfUFJFRklYPScnCkxJUE89JycKTE5f
Uz0nbG4gLXMnCkxUTElCR0NSWVBUPScnCkxUTElCT0JKUz0nJwpMVExJQlNTTD0nJwpMVExJQlo9
JycKTUFJTlQ9JyMnCk1BSU5UQUlORVJfTU9ERV9GQUxTRT0nJwpNQUlOVEFJTkVSX01PREVfVFJV
RT0nIycKTUFLRUlORk89JyR7U0hFTEx9IC9jb3J0ZXgvYnVpbGQvdGhpcmRfcGFydHkvNjRiaXQv
bGlic3NoMi0xLjQuMS9taXNzaW5nIC0tcnVuIG1ha2VpbmZvJwpOTT0nL3Vzci9jY3MvYmluLy9u
bSAtcCcKTk1FRElUPScnCk9CSkRVTVA9J29iamR1bXAnCk9CSkVYVD0nbycKT1RPT0w2ND0nJwpP
VE9PTD0nJwpQQUNLQUdFPSdsaWJzc2gyJwpQQUNLQUdFX0JVR1JFUE9SVD0nbGlic3NoMi1kZXZl
bEBjb29sLmhheHguc2UnClBBQ0tBR0VfTkFNRT0nbGlic3NoMicKUEFDS0FHRV9TVFJJTkc9J2xp
YnNzaDIgLScKUEFDS0FHRV9UQVJOQU1FPSdsaWJzc2gyJwpQQUNLQUdFX1VSTD0nJwpQQUNLQUdF
X1ZFUlNJT049Jy0nClBBVEhfU0VQQVJBVE9SPSc6JwpSQU5MSUI9J3JhbmxpYicKU0VEPScvdXNy
L2Jpbi9zZWQnClNFVF9NQUtFPScnClNIRUxMPScvYmluL2Jhc2gnClNTSEQ9JycKU1NIRF9GQUxT
RT0nJwpTU0hEX1RSVUU9JyMnClNUUklQPSdzdHJpcCcKVkVSU0lPTj0nLScKYWNfY3RfQ0M9J2Nj
JwphY19jdF9EVU1QQklOPScnCmFtX19mYXN0ZGVwQ0NfRkFMU0U9JycKYW1fX2Zhc3RkZXBDQ19U
UlVFPScjJwphbV9faW5jbHVkZT0naW5jbHVkZScKYW1fX2xlYWRpbmdfZG90PScuJwphbV9fcXVv
dGU9JycKYW1fX3Rhcj0nJHtBTVRBUn0gY2hvZiAtICIkJHRhcmRpciInCmFtX191bnRhcj0nJHtB
TVRBUn0geGYgLScKYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCmJ1aWxkPSdzcGFyYy1zdW4t
c29sYXJpczIuMTAnCmJ1aWxkX2FsaWFzPScnCmJ1aWxkX2NwdT0nc3BhcmMnCmJ1aWxkX29zPSdz
b2xhcmlzMi4xMCcKYnVpbGRfdmVuZG9yPSdzdW4nCmRhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9Jwpk
YXRhcm9vdGRpcj0nJHtwcmVmaXh9L3NoYXJlJwpkb2NkaXI9JyR7ZGF0YXJvb3RkaXJ9L2RvYy8k
e1BBQ0tBR0VfVEFSTkFNRX0nCmR2aWRpcj0nJHtkb2NkaXJ9JwpleGVjX3ByZWZpeD0nTk9ORScK
aG9zdD0nc3BhcmMtc3VuLXNvbGFyaXMyLjEwJwpob3N0X2FsaWFzPScnCmhvc3RfY3B1PSdzcGFy
YycKaG9zdF9vcz0nc29sYXJpczIuMTAnCmhvc3RfdmVuZG9yPSdzdW4nCmh0bWxkaXI9JyR7ZG9j
ZGlyfScKaW5jbHVkZWRpcj0nJHtwcmVmaXh9L2luY2x1ZGUnCmluZm9kaXI9JyR7ZGF0YXJvb3Rk
aXJ9L2luZm8nCmluc3RhbGxfc2g9Jy9jb3J0ZXgvYnVpbGQvdGhpcmRfcGFydHkvNjRiaXQvbGli
c3NoMi0xLjQuMS9pbnN0YWxsLXNoJwpsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xpYicKbGliZXhl
Y2Rpcj0nJHtleGVjX3ByZWZpeH0vbGliZXhlYycKbG9jYWxlZGlyPScke2RhdGFyb290ZGlyfS9s
b2NhbGUnCmxvY2Fsc3RhdGVkaXI9JyR7cHJlZml4fS92YXInCmx0X0VDSE89J2VjaG8nCm1hbmRp
cj0nJHtkYXRhcm9vdGRpcn0vbWFuJwpta2Rpcl9wPSckKGluc3RhbGxfc2gpIC1kJwpvbGRpbmNs
dWRlZGlyPScvdXNyL2luY2x1ZGUnCnBkZmRpcj0nJHtkb2NkaXJ9JwpwcmVmaXg9Jy9jdHh0b29s
cy9jb3J0ZXgvbG9jYWwvNjRiaXQnCnByb2dyYW1fdHJhbnNmb3JtX25hbWU9J3MseCx4LCcKcHNk
aXI9JyR7ZG9jZGlyfScKc2JpbmRpcj0nJHtleGVjX3ByZWZpeH0vc2JpbicKc2hhcmVkc3RhdGVk
aXI9JyR7cHJlZml4fS9jb20nCnN5c2NvbmZkaXI9JyR7cHJlZml4fS9ldGMnCnRhcmdldF9hbGlh
cz0nJwoKIyMgLS0tLS0tLS0tLS0gIyMKIyMgY29uZmRlZnMuaC4gIyMKIyMgLS0tLS0tLS0tLS0g
IyMKCi8qIGNvbmZkZWZzLmggKi8KI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCiNkZWZp
bmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgojZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIK
I2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3NoMiAtIgojZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ
T1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKI2RlZmluZSBQQUNLQUdFX1VSTCAiIgoj
ZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIiCiNkZWZpbmUgVkVSU0lPTiAiLSIKI2RlZmluZSBTVERD
X0hFQURFUlMgMQojZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQojZGVmaW5lIEhBVkVfU1lTX1NU
QVRfSCAxCiNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCiNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCiNk
ZWZpbmUgSEFWRV9NRU1PUllfSCAxCiNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQojZGVmaW5lIEhB
VkVfSU5UVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCiNkZWZpbmUgSEFWRV9VTklT
VERfSCAxCiNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCiNkZWZpbmUgTkVFRF9SRUVOVFJBTlQgMQoj
aWZuZGVmIF9SRUVOVFJBTlQKIyAgZGVmaW5lIF9SRUVOVFJBTlQKI2VuZGlmCiNkZWZpbmUgSEFW
RV9ETEZDTl9IIDEKI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKI2RlZmluZSBXT1JEU19CSUdF
TkRJQU4gMQoKY29uZmlndXJlOiBleGl0IDEK

--_003_0A90A784B706B04A98C0CECC5CC2C2A302B4318Cltcfiswmsgmb23_
Content-Type: text/plain; name="putty out put.txt"
Content-Description: putty out put.txt
Content-Disposition: attachment; filename="putty out put.txt"; size=4758;
	creation-date="Mon, 16 Apr 2012 07:57:57 GMT";
	modification-date="Mon, 16 Apr 2012 07:58:23 GMT"
Content-Transfer-Encoding: base64

JCBjZCBsaWJzc2gyLTEuNC4xDQokIC4vY29uZmlndXJlIENDPWNjIENGTEFHUz0teGFyY2g9djkg
XA0KPiAgICAgICAgICAgICAtLXByZWZpeD0vY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0IFwN
Cj4gICAgICAgICAgICAgICAtLWRpc2FibGUtc2hhcmVkIC0tZW5hYmxlLXN0YXRpYyBcDQo+ICAg
ICAgICAgICAgIC0td2l0aC1vcGVuc3NsIC0td2l0aG91dC1saWJnY3J5cHQgXA0KPiAgICAgICAg
ICAgICAtLXdpdGgtbGlic3NsLXByZWZpeD0vY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0LyAg
XA0KPiAgICAgICAgICAgICAtLXdpdGgtbGliei1wcmVmaXg9L2N0eHRvb2xzL2NvcnRleC9sb2Nh
bC82NGJpdA0KY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBw
b3J0aW9ucyBvZiBNYWtlZmlsZXMuLi4gbm8NCmNoZWNraW5nIGZvciBzZWQuLi4gL3Vzci9iaW4v
c2VkDQpjaGVja2luZyBmb3IgYSBCU0QtY29tcGF0aWJsZSBpbnN0YWxsLi4uIC4vaW5zdGFsbC1z
aCAtYw0KY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uIHllcw0K
Y2hlY2tpbmcgZm9yIGdhd2suLi4gbm8NCmNoZWNraW5nIGZvciBtYXdrLi4uIG5vDQpjaGVja2lu
ZyBmb3IgbmF3ay4uLiBuYXdrDQpjaGVja2luZyB3aGV0aGVyIG1ha2Ugc2V0cyAkKE1BS0UpLi4u
IHllcw0KY2hlY2tpbmcgbGlic3NoMiB2ZXJzaW9uLi4uIDEuNC4xDQpjaGVja2luZyBidWlsZCBz
eXN0ZW0gdHlwZS4uLiBzcGFyYy1zdW4tc29sYXJpczIuMTANCmNoZWNraW5nIGhvc3Qgc3lzdGVt
IHR5cGUuLi4gc3BhcmMtc3VuLXNvbGFyaXMyLjEwDQpjb25maWd1cmU6IGF1dG9idWlsZCBwcm9q
ZWN0Li4uIGxpYnNzaDINCmNvbmZpZ3VyZTogYXV0b2J1aWxkIHJldmlzaW9uLi4uIDEuNC4xDQpj
b25maWd1cmU6IGF1dG9idWlsZCBob3N0bmFtZS4uLiBjaG5zdW4wMQ0KY29uZmlndXJlOiBhdXRv
YnVpbGQgdGltZXN0YW1wLi4uIDIwMTIwNDE2LTEzMjUzOA0KY2hlY2tpbmcgZm9yIHN0eWxlIG9m
IGluY2x1ZGUgdXNlZCBieSBtYWtlLi4uIEdOVQ0KY2hlY2tpbmcgZm9yIGdjYy4uLiBjYw0KY2hl
Y2tpbmcgZm9yIEMgY29tcGlsZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lLi4uIGEub3V0DQpj
aGVja2luZyB3aGV0aGVyIHRoZSBDIGNvbXBpbGVyIHdvcmtzLi4uIHllcw0KY2hlY2tpbmcgd2hl
dGhlciB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nLi4uIG5vDQpjaGVja2luZyBmb3Igc3VmZml4IG9m
IGV4ZWN1dGFibGVzLi4uDQpjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcy4uLiBv
DQpjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIuLi4gbm8N
CmNoZWNraW5nIHdoZXRoZXIgY2MgYWNjZXB0cyAtZy4uLiB5ZXMNCmNoZWNraW5nIGZvciBjYyBv
cHRpb24gdG8gYWNjZXB0IElTTyBDODkuLi4gbm9uZSBuZWVkZWQNCmNoZWNraW5nIGRlcGVuZGVu
Y3kgc3R5bGUgb2YgY2MuLi4gbm9uZQ0KY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9j
ZXNzb3IuLi4gY2MgLUUNCmNoZWNraW5nIGZvciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVz
IGFuZCAtZS4uLiAvdXNyL3hwZzQvYmluL2dyZXANCmNoZWNraW5nIGZvciBlZ3JlcC4uLiAvdXNy
L3hwZzQvYmluL2dyZXAgLUUNCmNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzLi4uIHll
cw0KY2hlY2tpbmcgZm9yIHN5cy90eXBlcy5oLi4uIHllcw0KY2hlY2tpbmcgZm9yIHN5cy9zdGF0
LmguLi4geWVzDQpjaGVja2luZyBmb3Igc3RkbGliLmguLi4geWVzDQpjaGVja2luZyBmb3Igc3Ry
aW5nLmguLi4geWVzDQpjaGVja2luZyBmb3IgbWVtb3J5LmguLi4geWVzDQpjaGVja2luZyBmb3Ig
c3RyaW5ncy5oLi4uIHllcw0KY2hlY2tpbmcgZm9yIGludHR5cGVzLmguLi4geWVzDQpjaGVja2lu
ZyBmb3Igc3RkaW50LmguLi4geWVzDQpjaGVja2luZyBmb3IgdW5pc3RkLmguLi4geWVzDQpjaGVj
a2luZyBmb3IgbG9uZyBsb25nLi4uIHllcw0KY2hlY2tpbmcgaWYgX1JFRU5UUkFOVCBpcyBhbHJl
YWR5IGRlZmluZWQuLi4gbm8NCmNoZWNraW5nIGlmIF9SRUVOVFJBTlQgaXMgYWN0dWFsbHkgbmVl
ZGVkLi4uIHllcw0KY2hlY2tpbmcgaWYgX1JFRU5UUkFOVCBpcyBvbndhcmRzIGRlZmluZWQuLi4g
eWVzDQpjaGVja2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIHNvY2tldC4uLiAtbHNvY2tldA0K
Y2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBpbmV0X2FkZHIuLi4gLWxuc2wNCmNoZWNr
aW5nIGZvciBnY2MuLi4gKGNhY2hlZCkgY2MNCmNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5n
IHRoZSBHTlUgQyBjb21waWxlci4uLiAoY2FjaGVkKSBubw0KY2hlY2tpbmcgd2hldGhlciBjYyBh
Y2NlcHRzIC1nLi4uIChjYWNoZWQpIHllcw0KY2hlY2tpbmcgZm9yIGNjIG9wdGlvbiB0byBhY2Nl
cHQgSVNPIEM4OS4uLiAoY2FjaGVkKSBub25lIG5lZWRlZA0KY2hlY2tpbmcgZGVwZW5kZW5jeSBz
dHlsZSBvZiBjYy4uLiAoY2FjaGVkKSBub25lDQpjaGVja2luZyB3aGV0aGVyIGxuIC1zIHdvcmtz
Li4uIHllcw0KY2hlY2tpbmcgd2hldGhlciBtYWtlIHNldHMgJChNQUtFKS4uLiAoY2FjaGVkKSB5
ZXMNCmNoZWNraW5nIGZvciBzc2hkLi4uIG5vDQpjaGVja2luZyBmb3IgYSBzZWQgdGhhdCBkb2Vz
IG5vdCB0cnVuY2F0ZSBvdXRwdXQuLi4gKGNhY2hlZCkgL3Vzci9iaW4vc2VkDQpjaGVja2luZyBm
b3IgZmdyZXAuLi4gL3Vzci94cGc0L2Jpbi9ncmVwIC1GDQpjaGVja2luZyBmb3Igbm9uLUdOVSBs
ZC4uLiAvdXNyL2Njcy9iaW4vL2xkDQpjaGVja2luZyBpZiB0aGUgbGlua2VyICgvdXNyL2Njcy9i
aW4vL2xkKSBpcyBHTlUgbGQuLi4gbm8NCmNoZWNraW5nIGZvciBCU0QtIG9yIE1TLWNvbXBhdGli
bGUgbmFtZSBsaXN0ZXIgKG5tKS4uLiAvdXNyL2Njcy9iaW4vL25tIC1wDQpjaGVja2luZyB0aGUg
bmFtZSBsaXN0ZXIgKC91c3IvY2NzL2Jpbi8vbm0gLXApIGludGVyZmFjZS4uLiBCU0Qgbm0NCmNo
ZWNraW5nIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLi4uIDc4
NjI0MA0KY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29u
c3RydWN0cy4uLiB5ZXMNCmNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICIr
PSIuLi4gbm8NCmNoZWNraW5nIGZvciAvdXNyL2Njcy9iaW4vL2xkIG9wdGlvbiB0byByZWxvYWQg
b2JqZWN0IGZpbGVzLi4uIC1yDQpjaGVja2luZyBmb3Igb2JqZHVtcC4uLiBvYmpkdW1wDQpjaGVj
a2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXMuLi4gcGFzc19hbGwNCmNo
ZWNraW5nIGZvciBhci4uLiBhcg0KY2hlY2tpbmcgZm9yIHN0cmlwLi4uIHN0cmlwDQpjaGVja2lu
ZyBmb3IgcmFubGliLi4uIHJhbmxpYg0KY2hlY2tpbmcgY29tbWFuZCB0byBwYXJzZSAvdXNyL2Nj
cy9iaW4vL25tIC1wIG91dHB1dCBmcm9tIGNjIG9iamVjdC4uLiBvaw0KY2hlY2tpbmcgZm9yIGRs
ZmNuLmguLi4geWVzDQpjaGVja2luZyBmb3Igb2JqZGlyLi4uIC5saWJzDQpjaGVja2luZyBmb3Ig
Y2Mgb3B0aW9uIHRvIHByb2R1Y2UgUElDLi4uIC1LUElDIC1EUElDDQpjaGVja2luZyBpZiBjYyBQ
SUMgZmxhZyAtS1BJQyAtRFBJQyB3b3Jrcy4uLiB5ZXMNCmNoZWNraW5nIGlmIGNjIHN0YXRpYyBm
bGFnIC1Cc3RhdGljIHdvcmtzLi4uIG5vDQpjaGVja2luZyBpZiBjYyBzdXBwb3J0cyAtYyAtbyBm
aWxlLm8uLi4geWVzDQpjaGVja2luZyBpZiBjYyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8uLi4gKGNh
Y2hlZCkgeWVzDQpjaGVja2luZyB3aGV0aGVyIHRoZSBjYyBsaW5rZXIgKC91c3IvY2NzL2Jpbi8v
bGQgLTY0KSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uIHllcw0KY2hlY2tpbmcgZHluYW1p
YyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uIHNvbGFyaXMyLjEwIGxkLnNvDQpjaGVja2luZyBo
b3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zLi4uIGltbWVkaWF0ZQ0K
Y2hlY2tpbmcgd2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlLi4uIG5vDQpj
aGVja2luZyBpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4geWVzDQpjaGVj
a2luZyB3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuLi4gbm8NCmNoZWNraW5nIHdo
ZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcy4uLiB5ZXMNCmNoZWNraW5nIHdoZXRoZXIg
Ynl0ZSBvcmRlcmluZyBpcyBiaWdlbmRpYW4uLi4geWVzDQpjaGVja2luZyBmb3Igc3BlY2lhbCBD
IGNvbXBpbGVyIG9wdGlvbnMgbmVlZGVkIGZvciBsYXJnZSBmaWxlcy4uLiBubw0KY2hlY2tpbmcg
Zm9yIF9GSUxFX09GRlNFVF9CSVRTIHZhbHVlIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMuLi4gbm8N
CmNoZWNraW5nIGZvciBub24tR05VIGxkLi4uIC91c3IvY2NzL2Jpbi8vbGQgLTY0DQpjaGVja2lu
ZyBpZiB0aGUgbGlua2VyICgvdXNyL2Njcy9iaW4vL2xkIC02NCkgaXMgR05VIGxkLi4uIG5vDQpj
aGVja2luZyBmb3Igc2hhcmVkIGxpYnJhcnkgcnVuIHBhdGggb3JpZ2luLi4uIGRvbmUNCmNoZWNr
aW5nIGZvciBsaWJzc2wuLi4gbm8NCmNvbmZpZ3VyZTogZXJyb3I6IGNhbm5vdCBmaW5kIE9wZW5T
U0wgb3IgTGliZ2NyeXB0LA0KdHJ5IC0td2l0aC1saWJzc2wtcHJlZml4PVBBVEggb3IgLS13aXRo
LWxpYmdjcnlwdC1wcmVmaXg9UEFUSA0KJA0K

--_003_0A90A784B706B04A98C0CECC5CC2C2A302B4318Cltcfiswmsgmb23_
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--_003_0A90A784B706B04A98C0CECC5CC2C2A302B4318Cltcfiswmsgmb23_--

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 16 20:22:02 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3GILam8025397;
	Mon, 16 Apr 2012 20:21:54 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3GILZQL025371
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 20:21:35 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q3GILZKP025362
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 20:21:35 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Mon, 16 Apr 2012 20:21:35 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: RE: Reg: Getting error while configuring libssh2 package.
In-Reply-To: <0A90A784B706B04A98C0CECC5CC2C2A302B4318C@ltcfiswmsgmb23>
Message-ID: <alpine.DEB.2.00.1204162011160.23150@tvnag.unkk.fr>
References: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
 <20120414150134.3840.qmail@stuge.se>
 <0A90A784B706B04A98C0CECC5CC2C2A302B4318C@ltcfiswmsgmb23>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Mon, 16 Apr 2012, V, AnilKumar wrote:

> I tried with the latest version libssh2 1.4.1,but still getting the same 
> error.

I cannot find where in the configure script we handle --with-libssl-prefix at 
all...

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 16 20:57:23 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3GIvEqB023294;
	Mon, 16 Apr 2012 20:57:21 +0200
Received: from vps1.hno.se (vps1.hno.se [IPv6:2a02:750:5::f0])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3GIvCPw023285
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 20:57:12 +0200
Received: from home.hno.se (home.hno.se [IPv6:2001:16d8:ff00:8540::1])
 (authenticated bits=128)
 by vps1.hno.se (8.14.4/8.14.4) with ESMTP id q3GIu4Xs006876
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 20:57:13 +0200
Received: from [127.0.0.1] (localhost.localdomain [127.0.0.1])
 by home.hno.se (8.14.5/8.14.5) with ESMTP id q3GIiCeE017657
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 20:44:12 +0200
Message-ID: <1334601852.3973.4.camel@home.hno.se>
Subject: RE: Reg: Getting error while configuring libssh2 package.
From: Henrik =?ISO-8859-1?Q?Nordstr=F6m?= <henrik@henriknordstrom.net>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Date: Mon, 16 Apr 2012 20:44:12 +0200
In-Reply-To: <alpine.DEB.2.00.1204162011160.23150@tvnag.unkk.fr>
References: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
 <20120414150134.3840.qmail@stuge.se>
 <0A90A784B706B04A98C0CECC5CC2C2A302B4318C@ltcfiswmsgmb23>
 <alpine.DEB.2.00.1204162011160.23150@tvnag.unkk.fr>
X-Mailer: Evolution 3.2.3 (3.2.3-2.fc16) 
Mime-Version: 1.0
X-Spam-Status: No, score=-2.9 required=5.0 tests=ALL_TRUSTED,BAYES_00
 autolearn=ham version=3.3.2
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on home.hno.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="utf-8"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id q3GIvEqB023294

mÃ¥n 2012-04-16 klockan 20:21 +0200 skrev Daniel Stenberg:

> I cannot find where in the configure script we handle --with-libssl-prefix at 
> all...

  AC_LIB_HAVE_LINKFLAGS([ssl], [crypto], [#include <openssl/ssl.h>])

configures CPPFLAGS and LIBS as needed.

Regards
Henrik

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 16 21:03:45 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3GJ3gmJ031910;
	Mon, 16 Apr 2012 21:03:44 +0200
Received: from zmail.packetdesign.com (zmail.packetdesign.com [65.192.41.45])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id
 q3GJ3dPe031706
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 21:03:39 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by zmail.packetdesign.com (Postfix) with ESMTP id 9C8AC5B5400C
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 12:03:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zmail.packetdesign.com
Received: from zmail.packetdesign.com ([127.0.0.1])
 by localhost (zmail.packetdesign.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id VBkp3arFrkAJ for <libssh2-devel@cool.haxx.se>;
 Mon, 16 Apr 2012 12:03:34 -0700 (PDT)
Received: from dhcp-1-121.packetdesign.com (dhcp-1-121.packetdesign.com
 [192.168.1.121])
 by zmail.packetdesign.com (Postfix) with ESMTP id DDAC35B54003
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 12:03:33 -0700 (PDT)
Message-ID: <4F8C6D05.4000603@packetdesign.com>
Date: Mon, 16 Apr 2012 12:03:33 -0700
From: Jasmeet Bagga <jasmeet@packetdesign.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6;
 rv:11.0) Gecko/20120327 Thunderbird/11.0.1
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
References: <4F88CC10.5070909@packetdesign.com>
 <4F88D740.9070801@packetdesign.com> <20120414020909.10377.qmail@stuge.se>
 <4F88E085.4000300@packetdesign.com> <20120414024554.13024.qmail@stuge.se>
In-Reply-To: <20120414024554.13024.qmail@stuge.se>
Content-Type: multipart/mixed; boundary="------------030107070003050701060909"
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

This is a multi-part message in MIME format.
--------------030107070003050701060909
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

On 4/13/12 7:45 PM, Peter Stuge wrote:
> Jasmeet Bagga wrote:
>> Only one thread does. However I am getting login failures with
>> error message "Failed getting banner".
> You need to provide COMPLETE details of your problem. I suggest
> enabling tracing and sending the full log to the list.
The log is attached. I did further debugging and found that ssh via open 
ssh succeeds, however when I enabled verbose option on it, I see some 
lines that are interesting
DUKEOSTPDZ01:/var/tmp/jasmeet#ssh -v packet-design@172.17.248.203
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 172.17.248.203 [172.17.248.203] port 22.
debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/identity type -1
debug1: identity file /root/.ssh/id_rsa type -1
debug1: identity file /root/.ssh/id_dsa type -1
debug1: Remote protocol version 1.99, remote software version 
OpenSSH_4.4   ---> Remote version is 1.99
debug1: match: OpenSSH_4.4 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.3

This shows that the remote protocol version is 1.99. Does libssh2 work 
with that ? I would assume no, but the folks using this device claim 
that it used to work and then suddenly started failing without any 
change to the device.

Thanks,
Jasmeet

>
>> it seems the problem went away after compiling with -D_REENTRANT. I
>> tried this but it didn't help. Unfortunately I can't access the
>> associated ticket as libssh2 trac is down.
> Try now. http://trac.libssh2.org/ticket/99
>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel


--------------030107070003050701060909
Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0";
 name="ssh-log"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
 filename="ssh-log"

[libssh2] 0.956528 Conn: Setting blocking mode OFF
[libssh2] 0.956546 Transport: session_startup for socket 13
[libssh2] 0.956554 Transport: Sending Banner: SSH-2.0-libssh2_1.4.1
[libssh2] 0.956561 Socket: Sent 23/23 bytes at 0xbb9345+0
[libssh2] 0.956992 Socket: Recved 0 bytes banner
[libssh2] 0.956996 Failure Event: -43 - Failed getting banner
[libssh2] 0.957045 Transport: Disconnecting: reason=11, desc=, lang=
=> libssh2_transport_write plain (13 bytes)

0000: 01 00 00 00 0B 00 00 00  00 00 00 00 00          : .............

=> libssh2_transport_write plain2 (0 bytes)

[libssh2] 0.957064 Socket: Sent 24/24 bytes at 0x7fcbbda84888
=> libssh2_transport_write send() (24 bytes)

0000: 00 00 00 14 06 01 00 00  00 0B 00 00 00 00 00 00 : ................

0010: 00 00 46 D7 75 92 31 80                          : ..F.u.1.

[libssh2] 0.957074 Transport: Freeing session resource
[libssh2] 0.957076 Transport: Extra packets left 0


--------------030107070003050701060909
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--------------030107070003050701060909--

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 16 21:08:19 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3GJ8FJt003525;
	Mon, 16 Apr 2012 21:08:18 +0200
Received: from zmail.packetdesign.com (zmail.packetdesign.com [65.192.41.45])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id
 q3GJ8DVu003464
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 21:08:13 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by zmail.packetdesign.com (Postfix) with ESMTP id 602855B5400C
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 12:08:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zmail.packetdesign.com
Received: from zmail.packetdesign.com ([127.0.0.1])
 by localhost (zmail.packetdesign.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id 2zZ7YGtZ5MCR for <libssh2-devel@cool.haxx.se>;
 Mon, 16 Apr 2012 12:08:09 -0700 (PDT)
Received: from dhcp-1-121.packetdesign.com (dhcp-1-121.packetdesign.com
 [192.168.1.121])
 by zmail.packetdesign.com (Postfix) with ESMTP id D074C5B54003
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 12:08:08 -0700 (PDT)
Message-ID: <4F8C6E18.30403@packetdesign.com>
Date: Mon, 16 Apr 2012 12:08:08 -0700
From: Jasmeet Bagga <jasmeet@packetdesign.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6;
 rv:11.0) Gecko/20120327 Thunderbird/11.0.1
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
References: <4F88CC10.5070909@packetdesign.com>
 <4F88D740.9070801@packetdesign.com> <20120414020909.10377.qmail@stuge.se>
 <4F88E085.4000300@packetdesign.com> <20120414024554.13024.qmail@stuge.se>
In-Reply-To: <20120414024554.13024.qmail@stuge.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 4/13/12 7:45 PM, Peter Stuge wrote:
> Try now. http://trac.libssh2.org/ticket/99
This is down again. I tried on Friday after your mail, it was up then 
but now its failing again.


Jasmeet
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 16 21:10:19 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3GJAGc0005078;
	Mon, 16 Apr 2012 21:10:18 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3GJAFe6005061
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 21:10:15 +0200
Received: (qmail 2599 invoked by uid 501); 16 Apr 2012 19:10:16 -0000
Message-ID: <20120416191016.2598.qmail@stuge.se>
Date: Mon, 16 Apr 2012 21:10:16 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4F88CC10.5070909@packetdesign.com>
 <4F88D740.9070801@packetdesign.com> <20120414020909.10377.qmail@stuge.se>
 <4F88E085.4000300@packetdesign.com> <20120414024554.13024.qmail@stuge.se>
 <4F8C6D05.4000603@packetdesign.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4F8C6D05.4000603@packetdesign.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Jasmeet Bagga wrote:
> This shows that the remote protocol version is 1.99. Does libssh2
> work with that ?

As the RFC specifies, 1.99 means that the server can do both 1.0
and 2.0 protocols. Since you have a product based on SSH you really
should take a few hours to study the protocol RFCs. They are very
simple.


> [libssh2] 0.956528 Conn: Setting blocking mode OFF
> [libssh2] 0.956546 Transport: session_startup for socket 13
> [libssh2] 0.956554 Transport: Sending Banner: SSH-2.0-libssh2_1.4.1
> [libssh2] 0.956561 Socket: Sent 23/23 bytes at 0xbb9345+0
> [libssh2] 0.956992 Socket: Recved 0 bytes banner
> [libssh2] 0.956996 Failure Event: -43 - Failed getting banner
> [libssh2] 0.957045 Transport: Disconnecting: reason=11, desc=, lang=
> => libssh2_transport_write plain (13 bytes)

The log shows that the problem is very very early. The problem is not
likely with libssh2 at all but in your application, and the root
problem will be something you do or do not do to the socket between
start of your program and calling libssh2_session_handshake().


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 16 21:14:09 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3GJE7FR007341;
	Mon, 16 Apr 2012 21:14:09 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3GJE5et007324
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 21:14:05 +0200
Received: (qmail 2914 invoked by uid 501); 16 Apr 2012 19:14:06 -0000
Message-ID: <20120416191406.2913.qmail@stuge.se>
Date: Mon, 16 Apr 2012 21:14:06 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4F88CC10.5070909@packetdesign.com>
 <4F88D740.9070801@packetdesign.com> <20120414020909.10377.qmail@stuge.se>
 <4F88E085.4000300@packetdesign.com> <20120414024554.13024.qmail@stuge.se>
 <4F8C6E18.30403@packetdesign.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4F8C6E18.30403@packetdesign.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Jasmeet Bagga wrote:
>> Try now. http://trac.libssh2.org/ticket/99
> 
> This is down again. I tried on Friday after your mail, it was up
> then but now its failing again.

Reload and it should be there.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Apr 17 04:07:05 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3H26gSY016648;
	Tue, 17 Apr 2012 04:07:00 +0200
Received: from zmail.packetdesign.com (zmail.packetdesign.com [65.192.41.45])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id
 q3H26fun016624
 for <libssh2-devel@cool.haxx.se>; Tue, 17 Apr 2012 04:06:41 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by zmail.packetdesign.com (Postfix) with ESMTP id 184995B5400C
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 19:06:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zmail.packetdesign.com
Received: from zmail.packetdesign.com ([127.0.0.1])
 by localhost (zmail.packetdesign.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id L1qQFztoPA2u for <libssh2-devel@cool.haxx.se>;
 Mon, 16 Apr 2012 19:06:30 -0700 (PDT)
Received: from dhcp-1-121.packetdesign.com (dhcp-1-121.packetdesign.com
 [192.168.1.121])
 by zmail.packetdesign.com (Postfix) with ESMTP id 2B8BA5B54003
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 19:06:30 -0700 (PDT)
Message-ID: <4F8CD026.70804@packetdesign.com>
Date: Mon, 16 Apr 2012 19:06:30 -0700
From: Jasmeet Bagga <jasmeet@packetdesign.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6;
 rv:11.0) Gecko/20120327 Thunderbird/11.0.1
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
References: <4F88CC10.5070909@packetdesign.com>
 <4F88D740.9070801@packetdesign.com> <20120414020909.10377.qmail@stuge.se>
 <4F88E085.4000300@packetdesign.com> <20120414024554.13024.qmail@stuge.se>
 <4F8C6D05.4000603@packetdesign.com> <20120416191016.2598.qmail@stuge.se>
In-Reply-To: <20120416191016.2598.qmail@stuge.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 4/16/12 12:10 PM, Peter Stuge wrote:
> Jasmeet Bagga wrote:
>> [libssh2] 0.956528 Conn: Setting blocking mode OFF
>> [libssh2] 0.956546 Transport: session_startup for socket 13
>> [libssh2] 0.956554 Transport: Sending Banner: SSH-2.0-libssh2_1.4.1
>> [libssh2] 0.956561 Socket: Sent 23/23 bytes at 0xbb9345+0
>> [libssh2] 0.956992 Socket: Recved 0 bytes banner
>> [libssh2] 0.956996 Failure Event: -43 - Failed getting banner
>> [libssh2] 0.957045 Transport: Disconnecting: reason=11, desc=, lang=
>> =>  libssh2_transport_write plain (13 bytes)
> The log shows that the problem is very very early. The problem is not
> likely with libssh2 at all but in your application, and the root
> problem will be something you do or do not do to the socket between
> start of your program and calling libssh2_session_handshake().
JFYI, the problem was that the remote device has a very low rate limit for ssh connections and it was abruptly terminating ssh connections (after the TCP connection succeeded), leading to the above seen errors.


>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Apr 17 05:00:19 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3H30BL0017569;
	Tue, 17 Apr 2012 05:00:18 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3H30A1F017531
 for <libssh2-devel@cool.haxx.se>; Tue, 17 Apr 2012 05:00:10 +0200
Received: (qmail 7898 invoked by uid 501); 17 Apr 2012 03:00:10 -0000
Message-ID: <20120417030010.7897.qmail@stuge.se>
Date: Tue, 17 Apr 2012 05:00:10 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4F88CC10.5070909@packetdesign.com>
 <4F88D740.9070801@packetdesign.com> <20120414020909.10377.qmail@stuge.se>
 <4F88E085.4000300@packetdesign.com> <20120414024554.13024.qmail@stuge.se>
 <4F8C6D05.4000603@packetdesign.com> <20120416191016.2598.qmail@stuge.se>
 <4F8CD026.70804@packetdesign.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4F8CD026.70804@packetdesign.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Jasmeet Bagga wrote:
>>> [libssh2] 0.956992 Socket: Recved 0 bytes banner
>>> [libssh2] 0.956996 Failure Event: -43 - Failed getting banner
>>> [libssh2] 0.957045 Transport: Disconnecting: reason=11, desc=, lang=
>>
>> The log shows that the problem is very very early.
> 
> JFYI, the problem was that the remote device has a very low rate
> limit for ssh connections and it was abruptly terminating ssh
> connections (after the TCP connection succeeded), leading to the
> above seen errors.

Sure.

So one thing that could be improved about libssh2 here is the
reported error. Currently you get LIBSSH2_ERROR_SOCKET_RECV but it
could be made more clear that the connection was unexpectedly closed.

Do you have some suggestion for a more useful error code?


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Apr 17 05:07:06 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3H36w3R026478;
	Tue, 17 Apr 2012 05:07:05 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3H36uIJ026469
 for <libssh2-devel@cool.haxx.se>; Tue, 17 Apr 2012 05:06:56 +0200
Received: (qmail 8487 invoked by uid 501); 17 Apr 2012 03:06:57 -0000
Message-ID: <20120417030657.8486.qmail@stuge.se>
Date: Tue, 17 Apr 2012 05:06:57 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2 thread safety
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4F88CC10.5070909@packetdesign.com>
 <4F88D740.9070801@packetdesign.com> <20120414020909.10377.qmail@stuge.se>
 <4F88E085.4000300@packetdesign.com> <20120414024554.13024.qmail@stuge.se>
 <4F8C6D05.4000603@packetdesign.com> <20120416191016.2598.qmail@stuge.se>
 <4F8CD026.70804@packetdesign.com> <20120417030010.7897.qmail@stuge.se>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="orO6xySwJI16pVnm"
Content-Disposition: inline
In-Reply-To: <20120417030010.7897.qmail@stuge.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se


--orO6xySwJI16pVnm
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Peter Stuge wrote:
> Jasmeet Bagga wrote:
> >>> [libssh2] 0.956992 Socket: Recved 0 bytes banner
> >>> [libssh2] 0.956996 Failure Event: -43 - Failed getting banner
> >>> [libssh2] 0.957045 Transport: Disconnecting: reason=11, desc=, lang=
> >>
> >> The log shows that the problem is very very early.
> > 
> > JFYI, the problem was that the remote device has a very low rate
> > limit for ssh connections and it was abruptly terminating ssh
> > connections (after the TCP connection succeeded), leading to the
> > above seen errors.
> 
> Sure.
> 
> So one thing that could be improved about libssh2 here is the
> reported error. Currently you get LIBSSH2_ERROR_SOCKET_RECV but it
> could be made more clear that the connection was unexpectedly closed.
> 
> Do you have some suggestion for a more useful error code?

How about the attached?


//Peter

--orO6xySwJI16pVnm
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="0001-Return-LIBSSH2_ERROR_SOCKET_DISCONNECT-on-EOF-when-r.patch"

From 6a04c4eb3a55d4959b847a6cde719f1470bd16f9 Mon Sep 17 00:00:00 2001
From: Peter Stuge <peter@stuge.se>
Date: Tue, 17 Apr 2012 05:03:43 +0200
Subject: [PATCH] Return LIBSSH2_ERROR_SOCKET_DISCONNECT on EOF when reading
 banner

---
 src/session.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/session.c b/src/session.c
index c2be738..77ab9bc 100644
--- a/src/session.c
+++ b/src/session.c
@@ -143,7 +143,7 @@ banner_receive(LIBSSH2_SESSION * session)
 
         if (ret == 0) {
             session->socket_state = LIBSSH2_SOCKET_DISCONNECTED;
-            return LIBSSH2_ERROR_SOCKET_RECV;
+            return LIBSSH2_ERROR_SOCKET_DISCONNECT;
         }
 
         if (c == '\0') {
-- 
1.7.4.1.343.ga91df.dirty


--orO6xySwJI16pVnm
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--orO6xySwJI16pVnm--

From libssh2-devel-bounces@cool.haxx.se  Tue Apr 17 06:04:23 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3H44Ga7012752;
	Tue, 17 Apr 2012 06:04:22 +0200
Received: from zmail.packetdesign.com (zmail.packetdesign.com [65.192.41.45])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id
 q3H44EbJ012707
 for <libssh2-devel@cool.haxx.se>; Tue, 17 Apr 2012 06:04:14 +0200
Received: from localhost (localhost.localdomain [127.0.0.1])
 by zmail.packetdesign.com (Postfix) with ESMTP id BC93A5B54013
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 21:04:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at zmail.packetdesign.com
Received: from zmail.packetdesign.com ([127.0.0.1])
 by localhost (zmail.packetdesign.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id KQvBY7eLlRFR for <libssh2-devel@cool.haxx.se>;
 Mon, 16 Apr 2012 21:04:04 -0700 (PDT)
Received: from zmail.packetdesign.com (zmail.packetdesign.com [192.168.0.45])
 by zmail.packetdesign.com (Postfix) with ESMTP id 74E6E5B54003
 for <libssh2-devel@cool.haxx.se>; Mon, 16 Apr 2012 21:04:04 -0700 (PDT)
Date: Mon, 16 Apr 2012 21:04:04 -0700 (PDT)
From: Jasmeet Bagga <jasmeet@packetdesign.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Message-ID: <507236124.18231.1334635444314.JavaMail.root@zmail.packetdesign.com>
In-Reply-To: <20120417030657.8486.qmail@stuge.se>
Subject: Re: libssh2 thread safety
MIME-Version: 1.0
X-Originating-IP: [10.3.255.18]
X-Mailer: Zimbra 6.0.4_GA_2038.RHEL4_64 (ZimbraWebClient - SAF3
 (Mac)/6.0.4_GA_2038.RHEL4_64)
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se


----- Original Message -----
From: "Peter Stuge" <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Sent: Monday, April 16, 2012 8:06:57 PM
Subject: Re: libssh2 thread safety

Peter Stuge wrote:
> Jasmeet Bagga wrote:
> >>> [libssh2] 0.956992 Socket: Recved 0 bytes banner
> >>> [libssh2] 0.956996 Failure Event: -43 - Failed getting banner
> >>> [libssh2] 0.957045 Transport: Disconnecting: reason=11, desc=, lang=
> >>
> >> The log shows that the problem is very very early.
> > 
> > JFYI, the problem was that the remote device has a very low rate
> > limit for ssh connections and it was abruptly terminating ssh
> > connections (after the TCP connection succeeded), leading to the
> > above seen errors.
> 
> Sure.
> 
> So one thing that could be improved about libssh2 here is the
> reported error. Currently you get LIBSSH2_ERROR_SOCKET_RECV but it
> could be made more clear that the connection was unexpectedly closed.
> 
> Do you have some suggestion for a more useful error code?

How about the attached?

I think this is better


//Peter

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Apr 17 17:52:42 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3HFqHda005405;
	Tue, 17 Apr 2012 17:52:36 +0200
Received: from dns-factory.at (mx03.dns-factory.at [194.242.35.75])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3HFqGML005385
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 17 Apr 2012 17:52:16 +0200
Received: from [172.17.100.7] lists@gknw.net [95.222.180.83]
 by dns-factory.at with NetMail SMTP Agent $Revision: 8582 $ on Novell NetWare
 via secured & encrypted transport (TLS);
 Tue, 17 Apr 2012 17:52:07 +0200
Message-ID: <4F8D91A0.8030005@gknw.net>
Date: Tue, 17 Apr 2012 17:52:00 +0200
From: Guenter <lists@gknw.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de;
 rv:1.9.2.28) Gecko/20120306 Lightning/1.0b2 Thunderbird/3.1.20
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: ANNOUNCE: libssh2 version 1.4.1
References: <alpine.DEB.2.00.1204042251540.18281@tvnag.unkk.fr>
In-Reply-To: <alpine.DEB.2.00.1204042251540.18281@tvnag.unkk.fr>
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q3HFqGML005385
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id q3HFqHda005405

Hi Daniel,
Am 04.04.2012 22:53, schrieb Daniel Stenberg:
> I'm happy to tell you that I've just uploaded libssh2 1.4.1 to the web
> site where it sits waiting for you as usual:
>
> http://www.libssh2.org/
>
> libssh2 1.4.1

I've just tried to build for Android, but I ran into the issue I 
described in curl docs/INSTALL about outdated config.guess / config.sub 
files which make configure fail with --host=arm-linux-androideabi;
I wondered that this happened since it does work with curl 7.25.0; do 
you build the libssh2 releases on another host? If so can you perhaps 
take care to update config.guess / config.sub in your automake folder to 
more recent versions?
I also tested with buildconf, but it doesnt update config.guess / 
config.sub unless I delete the existing ones ...

Gün.



_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Apr 17 23:04:25 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3HL43p3021717;
	Tue, 17 Apr 2012 23:04:19 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3HL421U021693
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 17 Apr 2012 23:04:02 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q3HL42FT021686
 for <libssh2-devel@cool.haxx.se>; Tue, 17 Apr 2012 23:04:02 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Tue, 17 Apr 2012 23:04:02 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: ANNOUNCE: libssh2 version 1.4.1
In-Reply-To: <4F8D91A0.8030005@gknw.net>
Message-ID: <alpine.DEB.2.00.1204172302090.8032@tvnag.unkk.fr>
References: <alpine.DEB.2.00.1204042251540.18281@tvnag.unkk.fr>
 <4F8D91A0.8030005@gknw.net>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Tue, 17 Apr 2012, Guenter wrote:

> I've just tried to build for Android, but I ran into the issue I described in 
> curl docs/INSTALL about outdated config.guess / config.sub files which make 
> configure fail with --host=arm-linux-androideabi;
> I wondered that this happened since it does work with curl 7.25.0; do you 
> build the libssh2 releases on another host? If so can you perhaps take care 
> to update config.guess / config.sub in your automake folder to more recent 
> versions?

Oh.

It turns out this happened because config.guess is just never updated in my 
release directory since the old one is still there and I never clean it. I 
removed it now and rerun ./buildconf and now I have a refreshed and new 
version in there! Perhaps buildconf should always make that happen...

I'll make sure the next release will include the updated version!

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 18 13:54:07 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3IBrk7s006549;
	Wed, 18 Apr 2012 13:54:04 +0200
Received: from mx1.fisglobal.com (mx1.fisglobal.com [199.200.24.190])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3IBrgda006485
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 18 Apr 2012 13:53:43 +0200
Received: from pps.filterd (ltcfislmsgpa06 [127.0.0.1])
 by ltcfislmsgpa06.fnfis.com (8.14.4/8.14.4) with SMTP id q3IBPF9B030764
 for <libssh2-devel@cool.haxx.se>; Wed, 18 Apr 2012 06:53:32 -0500
Received: from smtp.fisglobal.com ([10.132.206.17])
 by ltcfislmsgpa06.fnfis.com with ESMTP id 149tq2rfnu-1
 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 18 Apr 2012 06:53:32 -0500
Received: from LTCFISWMSGMB23.FNFIS.com ([10.132.99.25]) by
 LTCFISWMSGHT06.FNFIS.com ([10.132.206.17]) with mapi id 14.02.0283.003; Wed,
 18 Apr 2012 06:53:31 -0500
From: "V, AnilKumar" <anilkumar.v@fisglobal.com>
To: "'libssh2 development'" <libssh2-devel@cool.haxx.se>
Subject: Re: Libssh2 make error.
Thread-Topic: Libssh2 make error.
Thread-Index: Ac0aIyQlhNFwnCrIQn6hOJX9vcLoqwAVkAoAAE17ORAAamGVIA==
Date: Wed, 18 Apr 2012 11:53:30 +0000
Message-ID: <0A90A784B706B04A98C0CECC5CC2C2A302B434CC@ltcfiswmsgmb23>
References: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
 <20120414150134.3840.qmail@stuge.se>
 <0A90A784B706B04A98C0CECC5CC2C2A302B4318C@ltcfiswmsgmb23>
In-Reply-To: <0A90A784B706B04A98C0CECC5CC2C2A302B4318C@ltcfiswmsgmb23>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator: 
x-originating-ip: [10.164.120.129]
Content-Type: multipart/mixed;
 boundary="_003_0A90A784B706B04A98C0CECC5CC2C2A302B434CCltcfiswmsgmb23_"
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.6.7580, 1.0.260,
 0.0.0000
 definitions=2012-04-18_05:2012-04-18,2012-04-18,1970-01-01 signatures=0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--_003_0A90A784B706B04A98C0CECC5CC2C2A302B434CCltcfiswmsgmb23_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi ,

Now I'm able to configure for libssh2 package. But while doing the "make" s=
tep I was getting some symbol reference errors .

I think it is using openssl libraries, I have mentioned the path for openss=
l while configuring libssh2 but its not effecting.

Please find the attachment for config.log and make output.

Kindly help me.

Thanks And Regards,
Anil Kumar.V

-----Original Message-----
From: V, AnilKumar=20
Sent: Monday, April 16, 2012 2:32 PM
To: libssh2 development
Subject: RE: Reg: Getting error while configuring libssh2 package.

Hi,

I tried with the latest version libssh2 1.4.1,but still getting the same er=
ror.

Please find the attached docs.

Thanks & Regards,
V. Anil Kumar.


-----Original Message-----
From: libssh2-devel-bounces@cool.haxx.se [mailto:libssh2-devel-bounces@cool=
.haxx.se] On Behalf Of Peter Stuge
Sent: Saturday, April 14, 2012 8:32 PM
To: libssh2-devel@cool.haxx.se
Subject: Re: Reg: Getting error while configuring libssh2 package.

V, AnilKumar wrote:
> ./configure CC=3Dcc CFLAGS=3D-xarch=3Dv9 \
>             --prefix=3D/ctxtools/cortex/local/64bit \
>               --disable-shared --enable-static \
>             --with-openssl --without-libgcrypt \
>             --with-libssl-prefix=3D/ctxtools/cortex/local/64bit/  \
>             --with-libz-prefix=3D/ctxtools/cortex/local/64bit
>=20
> I am sure openssl was present in this path "/ctxtools/cortex/local/64bit/=
 ".
..

> configure:2946: checking libssh2 version
> configure:2948: result: 1.2.4

Why are you using code which is more than two years old? You will not reall=
y get help unless you use the latest code.


> configure:12952: checking for libssl
> configure:12971: cc -o conftest -xarch=3Dv9   conftest.c -lnsl -lsocket  =
-lssl -lcrypto >&5
> "conftest.c", line 29: cannot find include file: <openssl/ssl.h>
> cc: acomp failed for conftest.c
> configure:12971: $? =3D 2

The error message is quite obvious.

You should look into why your prefix isn't in that command line. If you don=
't know where to start then try again with the latest code and send your co=
nfigure command together with full output from running configure, as well a=
s config.log.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

_____________
The information contained in this message is proprietary and/or confidentia=
l. If you are not the intended recipient, please: (i) delete the message an=
d all copies; (ii) do not disclose, distribute or use the message in any ma=
nner; and (iii) notify the sender immediately. In addition, please be aware=
 that any message addressed to our domain is subject to archiving and revie=
w by persons other than the intended recipient. Thank you.

--_003_0A90A784B706B04A98C0CECC5CC2C2A302B434CCltcfiswmsgmb23_
Content-Type: application/octet-stream; name="config.log"
Content-Description: config.log
Content-Disposition: attachment; filename="config.log"; size=51639;
	creation-date="Wed, 18 Apr 2012 11:50:49 GMT";
	modification-date="Wed, 18 Apr 2012 17:32:12 GMT"
Content-Transfer-Encoding: base64

VGhpcyBmaWxlIGNvbnRhaW5zIGFueSBtZXNzYWdlcyBwcm9kdWNlZCBieSBjb21waWxlcnMgd2hp
bGUKcnVubmluZyBjb25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2Vz
IGEgbWlzdGFrZS4KCkl0IHdhcyBjcmVhdGVkIGJ5IGxpYnNzaDIgY29uZmlndXJlIC0sIHdoaWNo
IHdhcwpnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjUuICBJbnZvY2F0aW9uIGNvbW1hbmQg
bGluZSB3YXMKCiAgJCAuL2NvbmZpZ3VyZSBDQz1jYyBDRkxBR1M9LXhhcmNoPXY5IC0tcHJlZml4
PS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQgLS1idWlsZD1zcGFyYy1zdW4tc29sYXJpczIu
MTAgLS1kaXNhYmxlLXNoYXJlZCAtLWVuYWJsZS1zdGF0aWMgLS13aXRoLW9wZW5zc2wgLS13aXRo
b3V0LWxpYmdjcnlwdCAtLXdpdGgtbGliZ2NyeXB0LXByZWZpeD0vY3R4dG9vbHMvY29ydGV4L2xv
Y2FsLzY0Yml0IC0td2l0aC1saWJzc2wtcHJlZml4PS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRi
aXQKCiMjIC0tLS0tLS0tLSAjIwojIyBQbGF0Zm9ybS4gIyMKIyMgLS0tLS0tLS0tICMjCgpob3N0
bmFtZSA9IGNobnN1bjAxCnVuYW1lIC1tID0gc3VuNHUKdW5hbWUgLXIgPSA1LjEwCnVuYW1lIC1z
ID0gU3VuT1MKdW5hbWUgLXYgPSBHZW5lcmljXzE0MjkwOS0xNwoKL3Vzci9iaW4vdW5hbWUgLXAg
PSBzcGFyYwovYmluL3VuYW1lIC1YICAgICA9IFN5c3RlbSA9IFN1bk9TCk5vZGUgPSBjaG5zdW4w
MQpSZWxlYXNlID0gNS4xMApLZXJuZWxJRCA9IEdlbmVyaWNfMTQyOTA5LTE3Ck1hY2hpbmUgPSBz
dW40dQpCdXNUeXBlID0gPHVua25vd24+ClNlcmlhbCA9IDx1bmtub3duPgpVc2VycyA9IDx1bmtu
b3duPgpPRU0jID0gMApPcmlnaW4jID0gMQpOdW1DUFUgPSA0CgovYmluL2FyY2ggICAgICAgICAg
ICAgID0gc3VuNAovdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gc3VuNHUKL3Vzci9jb252ZXgvZ2V0
c3lzaW5mbyA9IHVua25vd24KL3Vzci9iaW4vaG9zdGluZm8gICAgICA9IHVua25vd24KL2Jpbi9t
YWNoaW5lICAgICAgICAgICA9IHVua25vd24KL3Vzci9iaW4vb3NsZXZlbCAgICAgICA9IHVua25v
d24KL2Jpbi91bml2ZXJzZSAgICAgICAgICA9IHVua25vd24KClBBVEg6IC91c3IvbG9jYWwvYmlu
ClBBVEg6IC91c3IvYmluClBBVEg6IC9leHBvcnQvaG9tZS9jb3J0ZXgvYmluClBBVEg6IC9Pc3Jj
L3Rvb2xzL2JpbgpQQVRIOiAvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2Jpbi8KUEFUSDog
L29wdC9TVU5Xc3Byby9wcm9kL2Jpbi8KUEFUSDogL3Vzci9jY3MvYmluLwoKCiMjIC0tLS0tLS0t
LS0tICMjCiMjIENvcmUgdGVzdHMuICMjCiMjIC0tLS0tLS0tLS0tICMjCgpjb25maWd1cmU6MjQx
NzogY2hlY2tpbmcgd2hldGhlciB0byBlbmFibGUgbWFpbnRhaW5lci1zcGVjaWZpYyBwb3J0aW9u
cyBvZiBNYWtlZmlsZXMKY29uZmlndXJlOjI0MjY6IHJlc3VsdDogbm8KY29uZmlndXJlOjI0NDQ6
IGNoZWNraW5nIGZvciBzZWQKY29uZmlndXJlOjI0NjM6IGZvdW5kIC91c3IvYmluL3NlZApjb25m
aWd1cmU6MjQ3NjogcmVzdWx0OiAvdXNyL2Jpbi9zZWQKY29uZmlndXJlOjI1MzA6IGNoZWNraW5n
IGZvciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwKY29uZmlndXJlOjI1OTg6IHJlc3VsdDogLi9p
bnN0YWxsLXNoIC1jCmNvbmZpZ3VyZToyNjA5OiBjaGVja2luZyB3aGV0aGVyIGJ1aWxkIGVudmly
b25tZW50IGlzIHNhbmUKY29uZmlndXJlOjI2NDY6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToyNzA4
OiBjaGVja2luZyBmb3IgZ2F3awpjb25maWd1cmU6MjczODogcmVzdWx0OiBubwpjb25maWd1cmU6
MjcwODogY2hlY2tpbmcgZm9yIG1hd2sKY29uZmlndXJlOjI3Mzg6IHJlc3VsdDogbm8KY29uZmln
dXJlOjI3MDg6IGNoZWNraW5nIGZvciBuYXdrCmNvbmZpZ3VyZToyNzI0OiBmb3VuZCAvdXNyL2Jp
bi9uYXdrCmNvbmZpZ3VyZToyNzM1OiByZXN1bHQ6IG5hd2sKY29uZmlndXJlOjI3NDY6IGNoZWNr
aW5nIHdoZXRoZXIgbWFrZSBzZXRzICQoTUFLRSkKY29uZmlndXJlOjI3Njg6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZToyOTQ2OiBjaGVja2luZyBsaWJzc2gyIHZlcnNpb24KY29uZmlndXJlOjI5NDg6
IHJlc3VsdDogMS4yLjQKY29uZmlndXJlOjI5NTc6IGNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBl
CmNvbmZpZ3VyZToyOTcxOiByZXN1bHQ6IHNwYXJjLXN1bi1zb2xhcmlzMi4xMApjb25maWd1cmU6
Mjk5MTogY2hlY2tpbmcgaG9zdCBzeXN0ZW0gdHlwZQpjb25maWd1cmU6MzAwNDogcmVzdWx0OiBz
cGFyYy1zdW4tc29sYXJpczIuMTAKY29uZmlndXJlOjMwMzE6IGF1dG9idWlsZCBwcm9qZWN0Li4u
IGxpYnNzaDIKY29uZmlndXJlOjMwMzc6IGF1dG9idWlsZCByZXZpc2lvbi4uLiAxLjIuNApjb25m
aWd1cmU6MzA0MjogYXV0b2J1aWxkIGhvc3RuYW1lLi4uIGNobnN1bjAxCmNvbmZpZ3VyZTozMDUz
OiBhdXRvYnVpbGQgdGltZXN0YW1wLi4uIDIwMTIwNDE4LTE3MTExOQpjb25maWd1cmU6MzA5NDog
Y2hlY2tpbmcgZm9yIHN0eWxlIG9mIGluY2x1ZGUgdXNlZCBieSBtYWtlCmNvbmZpZ3VyZTozMTIy
OiByZXN1bHQ6IEdOVQpjb25maWd1cmU6MzE5NTogY2hlY2tpbmcgZm9yIGdjYwpjb25maWd1cmU6
MzIyMjogcmVzdWx0OiBjYwpjb25maWd1cmU6MzQ1MTogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIg
dmVyc2lvbgpjb25maWd1cmU6MzQ2MDogY2MgLS12ZXJzaW9uID4mNQpjYzogV2FybmluZzogb3B0
aW9uIC0tIHBhc3NlZCB0byBsZAp1c2FnZTogY2MgWyBvcHRpb25zXSBmaWxlcy4gIFVzZSAnY2Mg
LWZsYWdzJyBmb3IgZGV0YWlscwpjb25maWd1cmU6MzQ3MTogJD8gPSAxCmNvbmZpZ3VyZTozNDYw
OiBjYyAtdiA+JjUKdXNhZ2U6IGNjIFsgb3B0aW9uc10gZmlsZXMuICBVc2UgJ2NjIC1mbGFncycg
Zm9yIGRldGFpbHMKY29uZmlndXJlOjM0NzE6ICQ/ID0gMQpjb25maWd1cmU6MzQ2MDogY2MgLVYg
PiY1CmNjOiBTdW4gQyA1LjggUGF0Y2ggMTIxMDE1LTA0IDIwMDcvMDEvMTAKdXNhZ2U6IGNjIFsg
b3B0aW9uc10gZmlsZXMuICBVc2UgJ2NjIC1mbGFncycgZm9yIGRldGFpbHMKY29uZmlndXJlOjM0
NzE6ICQ/ID0gMQpjb25maWd1cmU6MzQ2MDogY2MgLXF2ZXJzaW9uID4mNQpjYzogaWxsZWdhbCBv
cHRpb24gLXF2ZXJzaW9uCmNvbmZpZ3VyZTozNDcxOiAkPyA9IDEKY29uZmlndXJlOjM0OTE6IGNo
ZWNraW5nIHdoZXRoZXIgdGhlIEMgY29tcGlsZXIgd29ya3MKY29uZmlndXJlOjM1MTM6IGNjIC14
YXJjaD12OSAgIGNvbmZ0ZXN0LmMgID4mNQpjb25maWd1cmU6MzUxNzogJD8gPSAwCmNvbmZpZ3Vy
ZTozNTY2OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MzU2OTogY2hlY2tpbmcgZm9yIEMgY29tcGls
ZXIgZGVmYXVsdCBvdXRwdXQgZmlsZSBuYW1lCmNvbmZpZ3VyZTozNTcxOiByZXN1bHQ6IGEub3V0
CmNvbmZpZ3VyZTozNTc3OiBjaGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzCmNvbmZp
Z3VyZTozNTg0OiBjYyAtbyBjb25mdGVzdCAteGFyY2g9djkgICBjb25mdGVzdC5jICA+JjUKY29u
ZmlndXJlOjM1ODg6ICQ/ID0gMApjb25maWd1cmU6MzYxMDogcmVzdWx0OiAKY29uZmlndXJlOjM2
MzI6IGNoZWNraW5nIHdoZXRoZXIgd2UgYXJlIGNyb3NzIGNvbXBpbGluZwpjb25maWd1cmU6MzY0
MDogY2MgLW8gY29uZnRlc3QgLXhhcmNoPXY5ICAgY29uZnRlc3QuYyAgPiY1CiJjb25mdGVzdC5j
IiwgbGluZSAxOTogd2FybmluZzogc3RhdGVtZW50IG5vdCByZWFjaGVkCmNvbmZpZ3VyZTozNjQ0
OiAkPyA9IDAKY29uZmlndXJlOjM2NTE6IC4vY29uZnRlc3QKY29uZmlndXJlOjM2NTU6ICQ/ID0g
MApjb25maWd1cmU6MzY3MDogcmVzdWx0OiBubwpjb25maWd1cmU6MzY3NTogY2hlY2tpbmcgZm9y
IHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMKY29uZmlndXJlOjM2OTc6IGNjIC1jIC14YXJjaD12OSAg
Y29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjM3MDE6ICQ/ID0gMApjb25maWd1cmU6MzcyMjogcmVz
dWx0OiBvCmNvbmZpZ3VyZTozNzI2OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1c2luZyB0aGUg
R05VIEMgY29tcGlsZXIKY29uZmlndXJlOjM3NDU6IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3Qu
YyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDE2OiB1bmRlZmluZWQgc3ltYm9sOiBjaG9rZQoiY29u
ZnRlc3QuYyIsIGxpbmUgMTY6IHN5bnRheCBlcnJvciBiZWZvcmUgb3IgYXQ6IG1lCmNjOiBhY29t
cCBmYWlsZWQgZm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjM3NDU6ICQ/ID0gMgpjb25maWd1cmU6
IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICovCnwgI2RlZmluZSBQQUNLQUdF
X05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCnwgI2Rl
ZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNLQUdFX1NUUklORyAibGlic3No
MiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4
LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5lIFBBQ0tBR0UgImxpYnNzaDIi
CnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNCIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwg
aW50CnwgbWFpbiAoKQp8IHsKfCAjaWZuZGVmIF9fR05VQ19fCnwgICAgICAgIGNob2tlIG1lCnwg
I2VuZGlmCnwgCnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTozNzU0OiByZXN1bHQ6
IG5vCmNvbmZpZ3VyZTozNzYzOiBjaGVja2luZyB3aGV0aGVyIGNjIGFjY2VwdHMgLWcKY29uZmln
dXJlOjM3ODM6IGNjIC1jIC1nICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6Mzc4MzogJD8gPSAw
CmNvbmZpZ3VyZTozODI0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6Mzg0MTogY2hlY2tpbmcgZm9y
IGNjIG9wdGlvbiB0byBhY2NlcHQgSVNPIEM4OQpjb25maWd1cmU6MzkwNTogY2MgIC1jIC14YXJj
aD12OSAgY29uZnRlc3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDU5OiB3YXJuaW5nOiBzdGF0
ZW1lbnQgbm90IHJlYWNoZWQKY29uZmlndXJlOjM5MDU6ICQ/ID0gMApjb25maWd1cmU6MzkxODog
cmVzdWx0OiBub25lIG5lZWRlZApjb25maWd1cmU6Mzk0MDogY2hlY2tpbmcgZGVwZW5kZW5jeSBz
dHlsZSBvZiBjYwpjb25maWd1cmU6NDAzMDogcmVzdWx0OiBub25lCmNvbmZpZ3VyZTo0MDUzOiBj
aGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3Nvcgpjb25maWd1cmU6NDA4NDogY2Mg
LUUgIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjQwODQ6ICQ/ID0gMApjb25maWd1cmU6NDA5ODogY2Mg
LUUgIGNvbmZ0ZXN0LmMKImNvbmZ0ZXN0LmMiLCBsaW5lIDExOiBjYW5ub3QgZmluZCBpbmNsdWRl
IGZpbGU6IDxhY19ub25leGlzdGVudC5oPgpjYzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5j
CmNvbmZpZ3VyZTo0MDk4OiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg
LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZp
bmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIt
Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0Vf
QlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4y
LjQiCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5o
Pgpjb25maWd1cmU6NDEyMzogcmVzdWx0OiBjYyAtRQpjb25maWd1cmU6NDE0MzogY2MgLUUgIGNv
bmZ0ZXN0LmMKY29uZmlndXJlOjQxNDM6ICQ/ID0gMApjb25maWd1cmU6NDE1NzogY2MgLUUgIGNv
bmZ0ZXN0LmMKImNvbmZ0ZXN0LmMiLCBsaW5lIDExOiBjYW5ub3QgZmluZCBpbmNsdWRlIGZpbGU6
IDxhY19ub25leGlzdGVudC5oPgpjYzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5jCmNvbmZp
Z3VyZTo0MTU3OiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u
ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFD
S0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNk
ZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ
T1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIi
CnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjQiCnwg
LyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgpjb25m
aWd1cmU6NDE4NjogY2hlY2tpbmcgZm9yIGdyZXAgdGhhdCBoYW5kbGVzIGxvbmcgbGluZXMgYW5k
IC1lCmNvbmZpZ3VyZTo0MjQ0OiByZXN1bHQ6IC91c3IveHBnNC9iaW4vZ3JlcApjb25maWd1cmU6
NDI0OTogY2hlY2tpbmcgZm9yIGVncmVwCmNvbmZpZ3VyZTo0MzExOiByZXN1bHQ6IC91c3IveHBn
NC9iaW4vZ3JlcCAtRQpjb25maWd1cmU6NDMxNjogY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIg
ZmlsZXMKY29uZmlndXJlOjQzMzY6IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKY29u
ZmlndXJlOjQzMzY6ICQ/ID0gMApjb25maWd1cmU6NDQwOTogY2MgLW8gY29uZnRlc3QgLXhhcmNo
PXY5ICAgY29uZnRlc3QuYyAgPiY1CmNvbmZpZ3VyZTo0NDA5OiAkPyA9IDAKY29uZmlndXJlOjQ0
MDk6IC4vY29uZnRlc3QKY29uZmlndXJlOjQ0MDk6ICQ/ID0gMApjb25maWd1cmU6NDQyMDogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjQ0MzM6IGNoZWNraW5nIGZvciBzeXMvdHlwZXMuaApjb25maWd1
cmU6NDQzMzogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDQzMzog
JD8gPSAwCmNvbmZpZ3VyZTo0NDMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDQzMzogY2hlY2tp
bmcgZm9yIHN5cy9zdGF0LmgKY29uZmlndXJlOjQ0MzM6IGNjIC1jIC14YXJjaD12OSAgY29uZnRl
c3QuYyA+JjUKY29uZmlndXJlOjQ0MzM6ICQ/ID0gMApjb25maWd1cmU6NDQzMzogcmVzdWx0OiB5
ZXMKY29uZmlndXJlOjQ0MzM6IGNoZWNraW5nIGZvciBzdGRsaWIuaApjb25maWd1cmU6NDQzMzog
Y2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDQzMzogJD8gPSAwCmNv
bmZpZ3VyZTo0NDMzOiByZXN1bHQ6IHllcwpjb25maWd1cmU6NDQzMzogY2hlY2tpbmcgZm9yIHN0
cmluZy5oCmNvbmZpZ3VyZTo0NDMzOiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNv
bmZpZ3VyZTo0NDMzOiAkPyA9IDAKY29uZmlndXJlOjQ0MzM6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy
ZTo0NDMzOiBjaGVja2luZyBmb3IgbWVtb3J5LmgKY29uZmlndXJlOjQ0MzM6IGNjIC1jIC14YXJj
aD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0MzM6ICQ/ID0gMApjb25maWd1cmU6NDQz
MzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MzM6IGNoZWNraW5nIGZvciBzdHJpbmdzLmgKY29u
ZmlndXJlOjQ0MzM6IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0
MzM6ICQ/ID0gMApjb25maWd1cmU6NDQzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MzM6IGNo
ZWNraW5nIGZvciBpbnR0eXBlcy5oCmNvbmZpZ3VyZTo0NDMzOiBjYyAtYyAteGFyY2g9djkgIGNv
bmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo0NDMzOiAkPyA9IDAKY29uZmlndXJlOjQ0MzM6IHJlc3Vs
dDogeWVzCmNvbmZpZ3VyZTo0NDMzOiBjaGVja2luZyBmb3Igc3RkaW50LmgKY29uZmlndXJlOjQ0
MzM6IGNjIC1jIC14YXJjaD12OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjQ0MzM6ICQ/ID0g
MApjb25maWd1cmU6NDQzMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ0MzM6IGNoZWNraW5nIGZv
ciB1bmlzdGQuaApjb25maWd1cmU6NDQzMzogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4m
NQpjb25maWd1cmU6NDQzMzogJD8gPSAwCmNvbmZpZ3VyZTo0NDMzOiByZXN1bHQ6IHllcwpjb25m
aWd1cmU6NDQ0NjogY2hlY2tpbmcgZm9yIGxvbmcgbG9uZwpjb25maWd1cmU6NDQ0NjogY2MgLWMg
LXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NDQ0NjogJD8gPSAwCmNvbmZpZ3Vy
ZTo0NDQ2OiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CiJjb25mdGVzdC5jIiwgbGlu
ZSA1Nzogc3ludGF4IGVycm9yIGJlZm9yZSBvciBhdDogKQpjYzogYWNvbXAgZmFpbGVkIGZvciBj
b25mdGVzdC5jCmNvbmZpZ3VyZTo0NDQ2OiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh
bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gy
Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9W
RVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5l
IFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5l
IFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVS
U0lPTiAiMS4yLjQiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNf
VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERM
SUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0gg
MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK
fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgLyog
ZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8ICNpZmRlZiBIQVZFX1NZ
U19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFW
RV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNlbmRpZgp8ICNpZmRlZiBT
VERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5jbHVkZSA8c3RkZGVmLmg+
CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNsdWRlIDxzdGRsaWIuaD4K
fCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gKfCAjIGlmICFkZWZpbmVk
IFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAjICBpbmNsdWRlIDxtZW1v
cnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAjZW5kaWYKfCAjaWZkZWYg
SEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAjZW5kaWYKfCAjaWZkZWYg
SEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8ICNlbmRpZgp8ICNpZmRl
ZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAjZW5kaWYKfCAjaWZkZWYg
SEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2VuZGlmCnwgaW50CnwgbWFp
biAoKQp8IHsKfCBpZiAoc2l6ZW9mICgobG9uZyBsb25nKSkpCnwgCSAgICByZXR1cm4gMDsKfCAg
IDsKfCAgIHJldHVybiAwOwp8IH0KY29uZmlndXJlOjQ0NDY6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy
ZTo0NDU4OiBjaGVja2luZyBpZiBfUkVFTlRSQU5UIGlzIGFscmVhZHkgZGVmaW5lZApjb25maWd1
cmU6NDQ4MDogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIsIGxp
bmUgMzI6IHVuZGVmaW5lZCBzeW1ib2w6IGZvcmNlCiJjb25mdGVzdC5jIiwgbGluZSAzMjogc3lu
dGF4IGVycm9yIGJlZm9yZSBvciBhdDogY29tcGlsYXRpb24KY2M6IGFjb21wIGZhaWxlZCBmb3Ig
Y29uZnRlc3QuYwpjb25maWd1cmU6NDQ4MDogJD8gPSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy
YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3No
MiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmlu
ZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmlu
ZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZF
UlNJT04gIjEuMi40Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT
X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE
TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9I
IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx
CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk
ZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8IAp8IAp8IAp8
IGludAp8IG1haW4gKCkKfCB7CnwgCnwgI2lmZGVmIF9SRUVOVFJBTlQKfCAgICAgICBpbnQgZHVt
bXk9MTsKfCAjZWxzZQp8ICAgICAgIGZvcmNlIGNvbXBpbGF0aW9uIGVycm9yCnwgI2VuZGlmCnwg
CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CnwgCmNvbmZpZ3VyZTo0NDg4OiByZXN1bHQ6IG5vCmNv
bmZpZ3VyZTo0NDk2OiBjaGVja2luZyBpZiBfUkVFTlRSQU5UIGlzIGFjdHVhbGx5IG5lZWRlZApj
b25maWd1cmU6NDUxMDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjQ1MTg6IGNoZWNraW5nIGlmIF9S
RUVOVFJBTlQgaXMgb253YXJkcyBkZWZpbmVkCmNvbmZpZ3VyZTo0NTMyOiByZXN1bHQ6IHllcwpj
b25maWd1cmU6NDU0MjogY2hlY2tpbmcgZm9yIGxpYnJhcnkgY29udGFpbmluZyBzb2NrZXQKY29u
ZmlndXJlOjQ1NzM6IGNjIC1vIGNvbmZ0ZXN0IC14YXJjaD12OSAgIGNvbmZ0ZXN0LmMgID4mNQoi
Y29uZnRlc3QuYyIsIGxpbmUgMzk6IHdhcm5pbmc6IHN0YXRlbWVudCBub3QgcmVhY2hlZApVbmRl
ZmluZWQJCQlmaXJzdCByZWZlcmVuY2VkCiBzeW1ib2wgIAkJCSAgICBpbiBmaWxlCnNvY2tldCAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZ0ZXN0Lm8KbGQ6IGZhdGFsOiBTeW1ib2wg
cmVmZXJlbmNpbmcgZXJyb3JzLiBObyBvdXRwdXQgd3JpdHRlbiB0byBjb25mdGVzdApjb25maWd1
cmU6NDU3MzogJD8gPSAxCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZk
ZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tB
R0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVm
aW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9S
VCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8
ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi40Igp8ICNk
ZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZp
bmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUg
SEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVf
U1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NU
RElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9O
RyAxCnwgI2RlZmluZSBORUVEX1JFRU5UUkFOVCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5UCnwgIyAg
ZGVmaW5lIF9SRUVOVFJBTlQKfCAjZW5kaWYKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwgCnwg
LyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3Iu
CnwgICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9m
IGEgR0NDCnwgICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxk
IHN0aWxsIGFwcGx5LiAgKi8KfCAjaWZkZWYgX19jcGx1c3BsdXMKfCBleHRlcm4gIkMiCnwgI2Vu
ZGlmCnwgY2hhciBzb2NrZXQgKCk7CnwgaW50CnwgbWFpbiAoKQp8IHsKfCByZXR1cm4gc29ja2V0
ICgpOwp8ICAgOwp8ICAgcmV0dXJuIDA7CnwgfQpjb25maWd1cmU6NDU3MzogY2MgLW8gY29uZnRl
c3QgLXhhcmNoPXY5ICAgY29uZnRlc3QuYyAtbHNvY2tldCAgID4mNQoiY29uZnRlc3QuYyIsIGxp
bmUgMzk6IHdhcm5pbmc6IHN0YXRlbWVudCBub3QgcmVhY2hlZApjb25maWd1cmU6NDU3MzogJD8g
PSAwCmNvbmZpZ3VyZTo0NTkwOiByZXN1bHQ6IC1sc29ja2V0CmNvbmZpZ3VyZTo0NjAwOiBjaGVj
a2luZyBmb3IgbGlicmFyeSBjb250YWluaW5nIGluZXRfYWRkcgpjb25maWd1cmU6NDYzMTogY2Mg
LW8gY29uZnRlc3QgLXhhcmNoPXY5ICAgY29uZnRlc3QuYyAtbHNvY2tldCAgPiY1CiJjb25mdGVz
dC5jIiwgbGluZSAzOTogd2FybmluZzogc3RhdGVtZW50IG5vdCByZWFjaGVkClVuZGVmaW5lZAkJ
CWZpcnN0IHJlZmVyZW5jZWQKIHN5bWJvbCAgCQkJICAgIGluIGZpbGUKaW5ldF9hZGRyICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uZnRlc3QubyAgKHN5bWJvbCBiZWxvbmdzIHRvIGltcGxp
Y2l0IGRlcGVuZGVuY3kgL2xpYi9zcGFyY3Y5L2xpYm5zbC5zby4xKQpsZDogZmF0YWw6IFN5bWJv
bCByZWZlcmVuY2luZyBlcnJvcnMuIE5vIG91dHB1dCB3cml0dGVuIHRvIGNvbmZ0ZXN0CmNvbmZp
Z3VyZTo0NjMxOiAkPyA9IDEKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29u
ZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFD
S0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNk
ZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQ
T1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIi
CnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjQiCnwg
I2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf
U1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX0xPTkdM
T05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVmIF9SRUVOVFJBTlQKfCAj
ICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAK
fCAvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJv
ci4KfCAgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUg
b2YgYSBHQ0MKfCAgICBidWlsdGluIGFuZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291
bGQgc3RpbGwgYXBwbHkuICAqLwp8ICNpZmRlZiBfX2NwbHVzcGx1cwp8IGV4dGVybiAiQyIKfCAj
ZW5kaWYKfCBjaGFyIGluZXRfYWRkciAoKTsKfCBpbnQKfCBtYWluICgpCnwgewp8IHJldHVybiBp
bmV0X2FkZHIgKCk7CnwgICA7CnwgICByZXR1cm4gMDsKfCB9CmNvbmZpZ3VyZTo0NjMxOiBjYyAt
byBjb25mdGVzdCAteGFyY2g9djkgICBjb25mdGVzdC5jIC1sbnNsICAtbHNvY2tldCAgPiY1CiJj
b25mdGVzdC5jIiwgbGluZSAzOTogd2FybmluZzogc3RhdGVtZW50IG5vdCByZWFjaGVkCmNvbmZp
Z3VyZTo0NjMxOiAkPyA9IDAKY29uZmlndXJlOjQ2NDg6IHJlc3VsdDogLWxuc2wKY29uZmlndXJl
OjQ3MDc6IGNoZWNraW5nIGZvciBnY2MKY29uZmlndXJlOjQ3MzQ6IHJlc3VsdDogY2MKY29uZmln
dXJlOjQ5NjM6IGNoZWNraW5nIGZvciBDIGNvbXBpbGVyIHZlcnNpb24KY29uZmlndXJlOjQ5NzI6
IGNjIC0tdmVyc2lvbiA+JjUKY2M6IFdhcm5pbmc6IG9wdGlvbiAtLSBwYXNzZWQgdG8gbGQKdXNh
Z2U6IGNjIFsgb3B0aW9uc10gZmlsZXMuICBVc2UgJ2NjIC1mbGFncycgZm9yIGRldGFpbHMKY29u
ZmlndXJlOjQ5ODM6ICQ/ID0gMQpjb25maWd1cmU6NDk3MjogY2MgLXYgPiY1CnVzYWdlOiBjYyBb
IG9wdGlvbnNdIGZpbGVzLiAgVXNlICdjYyAtZmxhZ3MnIGZvciBkZXRhaWxzCmNvbmZpZ3VyZTo0
OTgzOiAkPyA9IDEKY29uZmlndXJlOjQ5NzI6IGNjIC1WID4mNQpjYzogU3VuIEMgNS44IFBhdGNo
IDEyMTAxNS0wNCAyMDA3LzAxLzEwCnVzYWdlOiBjYyBbIG9wdGlvbnNdIGZpbGVzLiAgVXNlICdj
YyAtZmxhZ3MnIGZvciBkZXRhaWxzCmNvbmZpZ3VyZTo0OTgzOiAkPyA9IDEKY29uZmlndXJlOjQ5
NzI6IGNjIC1xdmVyc2lvbiA+JjUKY2M6IGlsbGVnYWwgb3B0aW9uIC1xdmVyc2lvbgpjb25maWd1
cmU6NDk4MzogJD8gPSAxCmNvbmZpZ3VyZTo0OTg3OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSB1
c2luZyB0aGUgR05VIEMgY29tcGlsZXIKY29uZmlndXJlOjUwMTU6IHJlc3VsdDogbm8KY29uZmln
dXJlOjUwMjQ6IGNoZWNraW5nIHdoZXRoZXIgY2MgYWNjZXB0cyAtZwpjb25maWd1cmU6NTA4NTog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjUxMDI6IGNoZWNraW5nIGZvciBjYyBvcHRpb24gdG8gYWNj
ZXB0IElTTyBDODkKY29uZmlndXJlOjUxNzk6IHJlc3VsdDogbm9uZSBuZWVkZWQKY29uZmlndXJl
OjUyMDE6IGNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgY2MKY29uZmlndXJlOjUyOTE6IHJl
c3VsdDogbm9uZQpjb25maWd1cmU6NTMwOTogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3Jrcwpj
b25maWd1cmU6NTMxMzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjUzMjA6IGNoZWNraW5nIHdoZXRo
ZXIgbWFrZSBzZXRzICQoTUFLRSkKY29uZmlndXJlOjUzNDI6IHJlc3VsdDogeWVzCmNvbmZpZ3Vy
ZTo1MzU1OiBjaGVja2luZyBmb3Igc3NoZApjb25maWd1cmU6NTM4ODogcmVzdWx0OiBubwpjb25m
aWd1cmU6NTczNDogY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0
cHV0CmNvbmZpZ3VyZTo1Nzk4OiByZXN1bHQ6IC91c3IvYmluL3NlZApjb25maWd1cmU6NTgxNjog
Y2hlY2tpbmcgZm9yIGZncmVwCmNvbmZpZ3VyZTo1ODc4OiByZXN1bHQ6IC91c3IveHBnNC9iaW4v
Z3JlcCAtRgpjb25maWd1cmU6NTk0NjogY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQKY29uZmlndXJl
OjU5ODA6IHJlc3VsdDogL3Vzci9jY3MvYmluLy9sZApjb25maWd1cmU6NTk4NzogY2hlY2tpbmcg
aWYgdGhlIGxpbmtlciAoL3Vzci9jY3MvYmluLy9sZCkgaXMgR05VIGxkCmNvbmZpZ3VyZTo2MDAy
OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2MDE0OiBjaGVja2luZyBmb3IgQlNELSBvciBNUy1jb21w
YXRpYmxlIG5hbWUgbGlzdGVyIChubSkKY29uZmlndXJlOjYwNjM6IHJlc3VsdDogL3Vzci9jY3Mv
YmluLy9ubSAtcApjb25maWd1cmU6NjE4MTogY2hlY2tpbmcgdGhlIG5hbWUgbGlzdGVyICgvdXNy
L2Njcy9iaW4vL25tIC1wKSBpbnRlcmZhY2UKY29uZmlndXJlOjYxODg6IGNjIC1jIC14YXJjaD12
OSAgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjYxOTE6IC91c3IvY2NzL2Jpbi8vbm0gLXAgImNv
bmZ0ZXN0Lm8iCmNvbmZpZ3VyZTo2MTk0OiBvdXRwdXQKCgpjb25mdGVzdC5vOgowMDAwMDAwMDAw
MDAwMCBzIAowMDAwMDAwMDAwMDAwMCBzIAowMDAwMDAwMDAwMDAwMCBiIEJic3MuYnNzCjAwMDAw
MDAwMDAwMDAwIGQgRGRhdGEuZGF0YQowMDAwMDAwMDAwMDAwMCBkIERyb2RhdGEucm9kYXRhCjAw
MDAwMDAwMDAwMDAwIGYgY29uZnRlc3QuYwowMDAwMDAwMDAwMDAwMCBEIHNvbWVfdmFyaWFibGUK
Y29uZmlndXJlOjYyMDE6IHJlc3VsdDogQlNEIG5tCmNvbmZpZ3VyZTo2MjA1OiBjaGVja2luZyB0
aGUgbWF4aW11bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwpjb25maWd1cmU6NjMy
NTogcmVzdWx0OiA3ODYyNDAKY29uZmlndXJlOjYzNDI6IGNoZWNraW5nIHdoZXRoZXIgdGhlIHNo
ZWxsIHVuZGVyc3RhbmRzIHNvbWUgWFNJIGNvbnN0cnVjdHMKY29uZmlndXJlOjYzNTI6IHJlc3Vs
dDogeWVzCmNvbmZpZ3VyZTo2MzU2OiBjaGVja2luZyB3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0
YW5kcyAiKz0iCmNvbmZpZ3VyZTo2MzYyOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo2Mzk3OiBjaGVj
a2luZyBmb3IgL3Vzci9jY3MvYmluLy9sZCBvcHRpb24gdG8gcmVsb2FkIG9iamVjdCBmaWxlcwpj
b25maWd1cmU6NjQwNDogcmVzdWx0OiAtcgpjb25maWd1cmU6NjQ3MzogY2hlY2tpbmcgZm9yIG9i
amR1bXAKY29uZmlndXJlOjY1MDA6IHJlc3VsdDogb2JqZHVtcApjb25maWd1cmU6NjUyOTogY2hl
Y2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVzCmNvbmZpZ3VyZTo2NzI1
OiByZXN1bHQ6IHBhc3NfYWxsCmNvbmZpZ3VyZTo2Nzg1OiBjaGVja2luZyBmb3IgYXIKY29uZmln
dXJlOjY4MDE6IGZvdW5kIC91c3IvY2NzL2Jpbi8vYXIKY29uZmlndXJlOjY4MTI6IHJlc3VsdDog
YXIKY29uZmlndXJlOjY4OTA6IGNoZWNraW5nIGZvciBzdHJpcApjb25maWd1cmU6NjkwNjogZm91
bmQgL3Vzci9jY3MvYmluLy9zdHJpcApjb25maWd1cmU6NjkxNzogcmVzdWx0OiBzdHJpcApjb25m
aWd1cmU6Njk4OTogY2hlY2tpbmcgZm9yIHJhbmxpYgpjb25maWd1cmU6NzAwNTogZm91bmQgL3Vz
ci9jY3MvYmluLy9yYW5saWIKY29uZmlndXJlOjcwMTY6IHJlc3VsdDogcmFubGliCmNvbmZpZ3Vy
ZTo3MTA2OiBjaGVja2luZyBjb21tYW5kIHRvIHBhcnNlIC91c3IvY2NzL2Jpbi8vbm0gLXAgb3V0
cHV0IGZyb20gY2Mgb2JqZWN0CmNvbmZpZ3VyZTo3MjI0OiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0
ZXN0LmMgPiY1CmNvbmZpZ3VyZTo3MjI3OiAkPyA9IDAKY29uZmlndXJlOjcyMzE6IC91c3IvY2Nz
L2Jpbi8vbm0gLXAgY29uZnRlc3QubyBcfCBzZWQgLW4gLWUgJ3MvXi4qWwkgXVwoW0JEUlRdW0JE
UlRdKlwpWwkgXVsJIF0qXChbX0EtWmEtel1bX0EtWmEtejAtOV0qXCkkL1wxIFwyIFwyL3AnIFw+
IGNvbmZ0ZXN0Lm5tCmNvbmZpZ3VyZTo3MjM0OiAkPyA9IDAKY29uZmlndXJlOjcyODg6IGNjIC1v
IGNvbmZ0ZXN0IC14YXJjaD12OSAgIGNvbmZ0ZXN0LmMgY29uZnRzdG0ubyA+JjUKY29uZmlndXJl
OjcyOTE6ICQ/ID0gMApjb25maWd1cmU6NzMyOTogcmVzdWx0OiBvawpjb25maWd1cmU6NzUyMzog
Y2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6NzUyNjogJD8gPSAwCmNv
bmZpZ3VyZTo4MTM0OiBjaGVja2luZyBmb3IgZGxmY24uaApjb25maWd1cmU6ODEzNDogY2MgLWMg
LXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6ODEzNDogJD8gPSAwCmNvbmZpZ3Vy
ZTo4MTM0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6ODMxNjogY2hlY2tpbmcgZm9yIG9iamRpcgpj
b25maWd1cmU6ODMzMTogcmVzdWx0OiAubGlicwpjb25maWd1cmU6ODY4MjogY2hlY2tpbmcgZm9y
IGNjIG9wdGlvbiB0byBwcm9kdWNlIFBJQwpjb25maWd1cmU6ODk1NDogcmVzdWx0OiAtS1BJQyAt
RFBJQwpjb25maWd1cmU6ODk2NjogY2hlY2tpbmcgaWYgY2MgUElDIGZsYWcgLUtQSUMgLURQSUMg
d29ya3MKY29uZmlndXJlOjg5ODQ6IGNjIC1jIC14YXJjaD12OSAgLUtQSUMgLURQSUMgLURQSUMg
Y29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjg5ODg6ICQ/ID0gMApjb25maWd1cmU6OTAwMTogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjkwMjU6IGNoZWNraW5nIGlmIGNjIHN0YXRpYyBmbGFnIC1Cc3Rh
dGljIHdvcmtzCmNvbmZpZ3VyZTo5MDUzOiByZXN1bHQ6IG5vCmNvbmZpZ3VyZTo5MDY4OiBjaGVj
a2luZyBpZiBjYyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8KY29uZmlndXJlOjkwODk6IGNjIC1jIC14
YXJjaD12OSAgLW8gb3V0L2NvbmZ0ZXN0Mi5vIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZTo5MDkz
OiAkPyA9IDAKY29uZmlndXJlOjkxMTU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTo5MTIzOiBjaGVj
a2luZyBpZiBjYyBzdXBwb3J0cyAtYyAtbyBmaWxlLm8KY29uZmlndXJlOjkxNzA6IHJlc3VsdDog
eWVzCmNvbmZpZ3VyZTo5MjAzOiBjaGVja2luZyB3aGV0aGVyIHRoZSBjYyBsaW5rZXIgKC91c3Iv
Y2NzL2Jpbi8vbGQgLTY0KSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzCmNvbmZpZ3VyZToxMDE5
NDogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjEwNDMzOiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBj
aGFyYWN0ZXJpc3RpY3MKY29uZmlndXJlOjExMDk2OiByZXN1bHQ6IHNvbGFyaXMyLjEwIGxkLnNv
CmNvbmZpZ3VyZToxMTE5ODogY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMg
aW50byBwcm9ncmFtcwpjb25maWd1cmU6MTEyMjM6IHJlc3VsdDogaW1tZWRpYXRlCmNvbmZpZ3Vy
ZToxMTc0MzogY2hlY2tpbmcgd2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxl
CmNvbmZpZ3VyZToxMTc2NTogcmVzdWx0OiBubwpjb25maWd1cmU6MTE3ODM6IGNoZWNraW5nIGlm
IGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcwpjb25maWd1cmU6MTE3ODU6IHJlc3Vs
dDogeWVzCmNvbmZpZ3VyZToxMTc4ODogY2hlY2tpbmcgd2hldGhlciB0byBidWlsZCBzaGFyZWQg
bGlicmFyaWVzCmNvbmZpZ3VyZToxMTgwOTogcmVzdWx0OiBubwpjb25maWd1cmU6MTE4MTI6IGNo
ZWNraW5nIHdoZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllcwpjb25maWd1cmU6MTE4MTY6
IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMTg1MTogY2hlY2tpbmcgd2hldGhlciBieXRlIG9yZGVy
aW5nIGlzIGJpZ2VuZGlhbgpjb25maWd1cmU6MTE4NjY6IGNjIC1jIC14YXJjaD12OSAgY29uZnRl
c3QuYyA+JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDI5OiB3YXJuaW5nOiBvbGQtc3R5bGUgZGVjbGFy
YXRpb24gb3IgaW5jb3JyZWN0IHR5cGUgZm9yOiBub3QKImNvbmZ0ZXN0LmMiLCBsaW5lIDI5OiBz
eW50YXggZXJyb3IgYmVmb3JlIG9yIGF0OiBhCiJjb25mdGVzdC5jIiwgbGluZSAyOTogd2Fybmlu
Zzogb2xkLXN0eWxlIGRlY2xhcmF0aW9uIG9yIGluY29ycmVjdCB0eXBlIGZvcjogYQoiY29uZnRl
c3QuYyIsIGxpbmUgMjk6IHdhcm5pbmc6IG9sZC1zdHlsZSBkZWNsYXJhdGlvbiBvciBpbmNvcnJl
Y3QgdHlwZSBmb3I6IHVuaXZlcnNhbAoiY29uZnRlc3QuYyIsIGxpbmUgMjk6IHdhcm5pbmc6IG9s
ZC1zdHlsZSBkZWNsYXJhdGlvbiBvciBpbmNvcnJlY3QgdHlwZSBmb3I6IGNhcGFibGUKImNvbmZ0
ZXN0LmMiLCBsaW5lIDMxOiB3YXJuaW5nOiBvbGQtc3R5bGUgZGVjbGFyYXRpb24gb3IgaW5jb3Jy
ZWN0IHR5cGUgZm9yOiBjb21waWxlcgpjYzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5jCmNv
bmZpZ3VyZToxMTg2NjogJD8gPSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8q
IGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5l
IFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIK
fCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JV
R1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VS
TCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi40
Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8
ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNk
ZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5l
IEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBI
QVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9M
T05HTE9ORyAxCnwgI2RlZmluZSBORUVEX1JFRU5UUkFOVCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5U
CnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQKfCAjZW5kaWYKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAx
CnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAvKiBlbmQgY29uZmRlZnMuaC4gICovCnwg
I2lmbmRlZiBfX0FQUExFX0NDX18KfCAJICAgICAgIG5vdCBhIHVuaXZlcnNhbCBjYXBhYmxlIGNv
bXBpbGVyCnwgCSAgICAgI2VuZGlmCnwgCSAgICAgdHlwZWRlZiBpbnQgZHVtbXk7CnwgCmNvbmZp
Z3VyZToxMTkxMTogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIs
IGxpbmUgMzU6IHVuZGVmaW5lZCBzeW1ib2w6IGJvZ3VzCiJjb25mdGVzdC5jIiwgbGluZSAzNTog
c3ludGF4IGVycm9yIGJlZm9yZSBvciBhdDogZW5kaWFuCmNjOiBhY29tcCBmYWlsZWQgZm9yIGNv
bmZ0ZXN0LmMKY29uZmlndXJlOjExOTExOiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3Jh
bSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gy
Igp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9W
RVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5l
IFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5l
IFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVS
U0lPTiAiMS4yLjQiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNf
VFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERM
SUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0gg
MQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEK
fCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2Rl
ZmluZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVm
IF9SRUVOVFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZpbmUgSEFW
RV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8IC8qIGVuZCBjb25mZGVm
cy5oLiAgKi8KfCAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgCSAgICAgI2luY2x1ZGUgPHN5cy9w
YXJhbS5oPgp8IAp8IGludAp8IG1haW4gKCkKfCB7CnwgI2lmICEgKGRlZmluZWQgQllURV9PUkRF
UiAmJiBkZWZpbmVkIEJJR19FTkRJQU4gCQkgICAgICYmIGRlZmluZWQgTElUVExFX0VORElBTiAm
JiBCWVRFX09SREVSICYmIEJJR19FTkRJQU4gCQkgICAgICYmIExJVFRMRV9FTkRJQU4pCnwgCSAg
ICAgIGJvZ3VzIGVuZGlhbiBtYWNyb3MKfCAJICAgICAjZW5kaWYKfCAKfCAgIDsKfCAgIHJldHVy
biAwOwp8IH0KY29uZmlndXJlOjExOTU1OiBjYyAtYyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1
CmNvbmZpZ3VyZToxMTk1NTogJD8gPSAwCmNvbmZpZ3VyZToxMTk3MjogY2MgLWMgLXhhcmNoPXY5
ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTE5NzI6ICQ/ID0gMApjb25maWd1cmU6MTIwNTc6
IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxMjA4MzogY2hlY2tpbmcgZm9yIHNwZWNpYWwgQyBjb21w
aWxlciBvcHRpb25zIG5lZWRlZCBmb3IgbGFyZ2UgZmlsZXMKY29uZmlndXJlOjEyMTEzOiBjYyAt
YyAteGFyY2g9djkgIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxMjExMzogJD8gPSAwCmNvbmZp
Z3VyZToxMjEyODogcmVzdWx0OiBubwpjb25maWd1cmU6MTIxMzQ6IGNoZWNraW5nIGZvciBfRklM
RV9PRkZTRVRfQklUUyB2YWx1ZSBuZWVkZWQgZm9yIGxhcmdlIGZpbGVzCmNvbmZpZ3VyZToxMjE1
OTogY2MgLWMgLXhhcmNoPXY5ICBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTIxNTk6ICQ/ID0g
MApjb25maWd1cmU6MTIxOTE6IHJlc3VsdDogbm8KY29uZmlndXJlOjEyMzc2OiBjaGVja2luZyBm
b3Igbm9uLUdOVSBsZApjb25maWd1cmU6MTI0MDc6IHJlc3VsdDogL3Vzci9jY3MvYmluLy9sZCAt
NjQKY29uZmlndXJlOjEyNDE0OiBjaGVja2luZyBpZiB0aGUgbGlua2VyICgvdXNyL2Njcy9iaW4v
L2xkIC02NCkgaXMgR05VIGxkCmNvbmZpZ3VyZToxMjQyNzogcmVzdWx0OiBubwpjb25maWd1cmU6
MTI0MzQ6IGNoZWNraW5nIGZvciBzaGFyZWQgbGlicmFyeSBydW4gcGF0aCBvcmlnaW4KY29uZmln
dXJlOjEyNDQ3OiByZXN1bHQ6IGRvbmUKY29uZmlndXJlOjEyOTUyOiBjaGVja2luZyBmb3IgbGli
c3NsCmNvbmZpZ3VyZToxMjk3MTogY2MgLW8gY29uZnRlc3QgLXhhcmNoPXY5IC1JL2N0eHRvb2xz
L2NvcnRleC9sb2NhbC82NGJpdC9pbmNsdWRlICBjb25mdGVzdC5jIC1sbnNsIC1sc29ja2V0ICAv
Y3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2xpYi9saWJzc2wuYSAvY3R4dG9vbHMvY29ydGV4
L2xvY2FsLzY0Yml0L2xpYi9saWJjcnlwdG8uYSA+JjUKY29uZmlndXJlOjEyOTcxOiAkPyA9IDAK
Y29uZmlndXJlOjEyOTgxOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTI5ODg6IGNoZWNraW5nIGhv
dyB0byBsaW5rIHdpdGggbGlic3NsCmNvbmZpZ3VyZToxMjk5MDogcmVzdWx0OiAvY3R4dG9vbHMv
Y29ydGV4L2xvY2FsLzY0Yml0L2xpYi9saWJzc2wuYSAvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0
Yml0L2xpYi9saWJjcnlwdG8uYQpjb25maWd1cmU6MTQwMjI6IGNoZWNraW5nIGZvciBsaWJ6CmNv
bmZpZ3VyZToxNDA0MTogY2MgLW8gY29uZnRlc3QgLXhhcmNoPXY5IC1JL2N0eHRvb2xzL2NvcnRl
eC9sb2NhbC82NGJpdC9pbmNsdWRlICBjb25mdGVzdC5jIC1sbnNsIC1sc29ja2V0ICAvY3R4dG9v
bHMvY29ydGV4L2xvY2FsLzY0Yml0L2xpYi9saWJ6LmEgPiY1CmNvbmZpZ3VyZToxNDA0MTogJD8g
PSAwCmNvbmZpZ3VyZToxNDA1MTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MDU4OiBjaGVja2lu
ZyBob3cgdG8gbGluayB3aXRoIGxpYnoKY29uZmlndXJlOjE0MDYwOiByZXN1bHQ6IC9jdHh0b29s
cy9jb3J0ZXgvbG9jYWwvNjRiaXQvbGliL2xpYnouYQpjb25maWd1cmU6MTQxMTg6IGNoZWNraW5n
IHdoZXRoZXIgdG8gZW5hYmxlIHBlZGFudGljIGFuZCBkZWJ1ZyBjb21waWxlciBvcHRpb25zCmNv
bmZpZ3VyZToxNDI1MDogcmVzdWx0OiBubwpjb25maWd1cmU6MTQyNTY6IGNoZWNraW5nIHdoZXRo
ZXIgdG8gZW5hYmxlIGhpZGRlbiBzeW1ib2xzIGluIHRoZSBsaWJyYXJ5CmNvbmZpZ3VyZToxNDI5
NzogcmVzdWx0OiBubwpjb25maWd1cmU6MTQzMDg6IGNoZWNraW5nIGVycm5vLmggdXNhYmlsaXR5
CmNvbmZpZ3VyZToxNDMwODogY2MgLWMgLXhhcmNoPXY5IC1JL2N0eHRvb2xzL2NvcnRleC9sb2Nh
bC82NGJpdC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDMwODogJD8gPSAwCmNv
bmZpZ3VyZToxNDMwODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzA4OiBjaGVja2luZyBlcnJu
by5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNDMwODogY2MgLUUgLUkvY3R4dG9vbHMvY29ydGV4L2xv
Y2FsLzY0Yml0L2luY2x1ZGUgY29uZnRlc3QuYwpjb25maWd1cmU6MTQzMDg6ICQ/ID0gMApjb25m
aWd1cmU6MTQzMDg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDMwODogY2hlY2tpbmcgZm9yIGVy
cm5vLmgKY29uZmlndXJlOjE0MzA4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMDg6IGNoZWNr
aW5nIGZjbnRsLmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNDMwODogY2MgLWMgLXhhcmNoPXY5IC1J
L2N0eHRvb2xzL2NvcnRleC9sb2NhbC82NGJpdC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZp
Z3VyZToxNDMwODogJD8gPSAwCmNvbmZpZ3VyZToxNDMwODogcmVzdWx0OiB5ZXMKY29uZmlndXJl
OjE0MzA4OiBjaGVja2luZyBmY250bC5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNDMwODogY2MgLUUg
LUkvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2luY2x1ZGUgY29uZnRlc3QuYwpjb25maWd1
cmU6MTQzMDg6ICQ/ID0gMApjb25maWd1cmU6MTQzMDg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox
NDMwODogY2hlY2tpbmcgZm9yIGZjbnRsLmgKY29uZmlndXJlOjE0MzA4OiByZXN1bHQ6IHllcwpj
b25maWd1cmU6MTQzMDg6IGNoZWNraW5nIHN0ZGlvLmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNDMw
ODogY2MgLWMgLXhhcmNoPXY5IC1JL2N0eHRvb2xzL2NvcnRleC9sb2NhbC82NGJpdC9pbmNsdWRl
IGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDMwODogJD8gPSAwCmNvbmZpZ3VyZToxNDMwODog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzA4OiBjaGVja2luZyBzdGRpby5oIHByZXNlbmNlCmNv
bmZpZ3VyZToxNDMwODogY2MgLUUgLUkvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2luY2x1
ZGUgY29uZnRlc3QuYwpjb25maWd1cmU6MTQzMDg6ICQ/ID0gMApjb25maWd1cmU6MTQzMDg6IHJl
c3VsdDogeWVzCmNvbmZpZ3VyZToxNDMwODogY2hlY2tpbmcgZm9yIHN0ZGlvLmgKY29uZmlndXJl
OjE0MzA4OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMDg6IGNoZWNraW5nIGZvciBzdGRsaWIu
aApjb25maWd1cmU6MTQzMDg6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDMwODogY2hlY2tpbmcg
Zm9yIHVuaXN0ZC5oCmNvbmZpZ3VyZToxNDMwODogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzA4
OiBjaGVja2luZyBzeXMvdWlvLmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNDMwODogY2MgLWMgLXhh
cmNoPXY5IC1JL2N0eHRvb2xzL2NvcnRleC9sb2NhbC82NGJpdC9pbmNsdWRlIGNvbmZ0ZXN0LmMg
PiY1CmNvbmZpZ3VyZToxNDMwODogJD8gPSAwCmNvbmZpZ3VyZToxNDMwODogcmVzdWx0OiB5ZXMK
Y29uZmlndXJlOjE0MzA4OiBjaGVja2luZyBzeXMvdWlvLmggcHJlc2VuY2UKY29uZmlndXJlOjE0
MzA4OiBjYyAtRSAtSS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQvaW5jbHVkZSBjb25mdGVz
dC5jCmNvbmZpZ3VyZToxNDMwODogJD8gPSAwCmNvbmZpZ3VyZToxNDMwODogcmVzdWx0OiB5ZXMK
Y29uZmlndXJlOjE0MzA4OiBjaGVja2luZyBmb3Igc3lzL3Vpby5oCmNvbmZpZ3VyZToxNDMwODog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzIyOiBjaGVja2luZyBzeXMvc2VsZWN0LmggdXNhYmls
aXR5CmNvbmZpZ3VyZToxNDMyMjogY2MgLWMgLXhhcmNoPXY5IC1JL2N0eHRvb2xzL2NvcnRleC9s
b2NhbC82NGJpdC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDMyMjogJD8gPSAw
CmNvbmZpZ3VyZToxNDMyMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzIyOiBjaGVja2luZyBz
eXMvc2VsZWN0LmggcHJlc2VuY2UKY29uZmlndXJlOjE0MzIyOiBjYyAtRSAtSS9jdHh0b29scy9j
b3J0ZXgvbG9jYWwvNjRiaXQvaW5jbHVkZSBjb25mdGVzdC5jCmNvbmZpZ3VyZToxNDMyMjogJD8g
PSAwCmNvbmZpZ3VyZToxNDMyMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzIyOiBjaGVja2lu
ZyBmb3Igc3lzL3NlbGVjdC5oCmNvbmZpZ3VyZToxNDMyMjogcmVzdWx0OiB5ZXMKY29uZmlndXJl
OjE0MzIyOiBjaGVja2luZyBzeXMvc29ja2V0LmggdXNhYmlsaXR5CmNvbmZpZ3VyZToxNDMyMjog
Y2MgLWMgLXhhcmNoPXY5IC1JL2N0eHRvb2xzL2NvcnRleC9sb2NhbC82NGJpdC9pbmNsdWRlIGNv
bmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDMyMjogJD8gPSAwCmNvbmZpZ3VyZToxNDMyMjogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjE0MzIyOiBjaGVja2luZyBzeXMvc29ja2V0LmggcHJlc2VuY2UK
Y29uZmlndXJlOjE0MzIyOiBjYyAtRSAtSS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQvaW5j
bHVkZSBjb25mdGVzdC5jCmNvbmZpZ3VyZToxNDMyMjogJD8gPSAwCmNvbmZpZ3VyZToxNDMyMjog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzIyOiBjaGVja2luZyBmb3Igc3lzL3NvY2tldC5oCmNv
bmZpZ3VyZToxNDMyMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzIyOiBjaGVja2luZyBzeXMv
aW9jdGwuaCB1c2FiaWxpdHkKY29uZmlndXJlOjE0MzIyOiBjYyAtYyAteGFyY2g9djkgLUkvY3R4
dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJl
OjE0MzIyOiAkPyA9IDAKY29uZmlndXJlOjE0MzIyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQz
MjI6IGNoZWNraW5nIHN5cy9pb2N0bC5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNDMyMjogY2MgLUUg
LUkvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2luY2x1ZGUgY29uZnRlc3QuYwpjb25maWd1
cmU6MTQzMjI6ICQ/ID0gMApjb25maWd1cmU6MTQzMjI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZTox
NDMyMjogY2hlY2tpbmcgZm9yIHN5cy9pb2N0bC5oCmNvbmZpZ3VyZToxNDMyMjogcmVzdWx0OiB5
ZXMKY29uZmlndXJlOjE0MzIyOiBjaGVja2luZyBzeXMvdGltZS5oIHVzYWJpbGl0eQpjb25maWd1
cmU6MTQzMjI6IGNjIC1jIC14YXJjaD12OSAtSS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQv
aW5jbHVkZSBjb25mdGVzdC5jID4mNQpjb25maWd1cmU6MTQzMjI6ICQ/ID0gMApjb25maWd1cmU6
MTQzMjI6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDMyMjogY2hlY2tpbmcgc3lzL3RpbWUuaCBw
cmVzZW5jZQpjb25maWd1cmU6MTQzMjI6IGNjIC1FIC1JL2N0eHRvb2xzL2NvcnRleC9sb2NhbC82
NGJpdC9pbmNsdWRlIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE0MzIyOiAkPyA9IDAKY29uZmlndXJl
OjE0MzIyOiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQzMjI6IGNoZWNraW5nIGZvciBzeXMvdGlt
ZS5oCmNvbmZpZ3VyZToxNDMyMjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzM2OiBjaGVja2lu
ZyBhcnBhL2luZXQuaCB1c2FiaWxpdHkKY29uZmlndXJlOjE0MzM2OiBjYyAtYyAteGFyY2g9djkg
LUkvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29u
ZmlndXJlOjE0MzM2OiAkPyA9IDAKY29uZmlndXJlOjE0MzM2OiByZXN1bHQ6IHllcwpjb25maWd1
cmU6MTQzMzY6IGNoZWNraW5nIGFycGEvaW5ldC5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNDMzNjog
Y2MgLUUgLUkvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2luY2x1ZGUgY29uZnRlc3QuYwpj
b25maWd1cmU6MTQzMzY6ICQ/ID0gMApjb25maWd1cmU6MTQzMzY6IHJlc3VsdDogeWVzCmNvbmZp
Z3VyZToxNDMzNjogY2hlY2tpbmcgZm9yIGFycGEvaW5ldC5oCmNvbmZpZ3VyZToxNDMzNjogcmVz
dWx0OiB5ZXMKY29uZmlndXJlOjE0MzM2OiBjaGVja2luZyBuZXRpbmV0L2luLmggdXNhYmlsaXR5
CmNvbmZpZ3VyZToxNDMzNjogY2MgLWMgLXhhcmNoPXY5IC1JL2N0eHRvb2xzL2NvcnRleC9sb2Nh
bC82NGJpdC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZpZ3VyZToxNDMzNjogJD8gPSAwCmNv
bmZpZ3VyZToxNDMzNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzM2OiBjaGVja2luZyBuZXRp
bmV0L2luLmggcHJlc2VuY2UKY29uZmlndXJlOjE0MzM2OiBjYyAtRSAtSS9jdHh0b29scy9jb3J0
ZXgvbG9jYWwvNjRiaXQvaW5jbHVkZSBjb25mdGVzdC5jCmNvbmZpZ3VyZToxNDMzNjogJD8gPSAw
CmNvbmZpZ3VyZToxNDMzNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzM2OiBjaGVja2luZyBm
b3IgbmV0aW5ldC9pbi5oCmNvbmZpZ3VyZToxNDMzNjogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0
MzQ5OiBjaGVja2luZyBzeXMvdW4uaCB1c2FiaWxpdHkKY29uZmlndXJlOjE0MzQ5OiBjYyAtYyAt
eGFyY2g9djkgLUkvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2luY2x1ZGUgY29uZnRlc3Qu
YyA+JjUKY29uZmlndXJlOjE0MzQ5OiAkPyA9IDAKY29uZmlndXJlOjE0MzQ5OiByZXN1bHQ6IHll
cwpjb25maWd1cmU6MTQzNDk6IGNoZWNraW5nIHN5cy91bi5oIHByZXNlbmNlCmNvbmZpZ3VyZTox
NDM0OTogY2MgLUUgLUkvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2luY2x1ZGUgY29uZnRl
c3QuYwpjb25maWd1cmU6MTQzNDk6ICQ/ID0gMApjb25maWd1cmU6MTQzNDk6IHJlc3VsdDogeWVz
CmNvbmZpZ3VyZToxNDM0OTogY2hlY2tpbmcgZm9yIHN5cy91bi5oCmNvbmZpZ3VyZToxNDM0OTog
cmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0MzY4OiBjaGVja2luZyB3aW5kb3dzLmggdXNhYmlsaXR5
CmNvbmZpZ3VyZToxNDM2ODogY2MgLWMgLXhhcmNoPXY5IC1JL2N0eHRvb2xzL2NvcnRleC9sb2Nh
bC82NGJpdC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CiJjb25mdGVzdC5jIiwgbGluZSA3OTogY2Fu
bm90IGZpbmQgaW5jbHVkZSBmaWxlOiA8d2luZG93cy5oPgpjYzogYWNvbXAgZmFpbGVkIGZvciBj
b25mdGVzdC5jCmNvbmZpZ3VyZToxNDM2ODogJD8gPSAyCmNvbmZpZ3VyZTogZmFpbGVkIHByb2dy
YW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3No
MiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCnwgI2RlZmlu
ZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBjb29sLmhheHguc2UiCnwgI2RlZmlu
ZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKfCAjZGVmaW5lIFZF
UlNJT04gIjEuMi40Igp8ICNkZWZpbmUgU1REQ19IRUFERVJTIDEKfCAjZGVmaW5lIEhBVkVfU1lT
X1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RE
TElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwgI2RlZmluZSBIQVZFX01FTU9SWV9I
IDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVmaW5lIEhBVkVfSU5UVFlQRVNfSCAx
CnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNk
ZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2RlZmluZSBORUVEX1JFRU5UUkFOVCAxCnwgI2lmbmRl
ZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQKfCAjZW5kaWYKfCAjZGVmaW5lIEhB
VkVfRExGQ05fSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKfCAjZGVmaW5lIFdPUkRT
X0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0xJQlNTTCAxCnwgI2RlZmluZSBIQVZFX0xJQlog
MQp8ICNkZWZpbmUgTElCU1NIMl9IQVZFX1pMSUIgMQp8ICNkZWZpbmUgTElCU1NIMl9ESF9HRVhf
TkVXIDEKfCAjZGVmaW5lIEhBVkVfRVJSTk9fSCAxCnwgI2RlZmluZSBIQVZFX0ZDTlRMX0ggMQp8
ICNkZWZpbmUgSEFWRV9TVERJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZp
bmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VSU9fSCAxCnwgI2RlZmluZSBI
QVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TT0NLRVRfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NZU19JT0NUTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RJTUVfSCAxCnwgI2RlZmlu
ZSBIQVZFX0FSUEFfSU5FVF9IIDEKfCAjZGVmaW5lIEhBVkVfTkVUSU5FVF9JTl9IIDEKfCAjZGVm
aW5lIEhBVkVfU1lTX1VOX0ggMQp8IC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KfCAjaW5jbHVkZSA8
c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8ICMgaW5jbHVkZSA8c3lzL3R5cGVz
Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRfSAp8ICMgaW5jbHVkZSA8c3lzL3N0
YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJTCnwgIyBpbmNsdWRlIDxzdGRsaWIu
aD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwgIyBpZmRlZiBIQVZFX1NURExJQl9I
CnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8ICNlbmRpZgp8ICNpZmRlZiBIQVZF
X1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURFUlMgJiYgZGVmaW5lZCBIQVZFX01F
TU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBlbmRpZgp8ICMgaW5jbHVkZSA8c3Ry
aW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HU19ICnwgIyBpbmNsdWRlIDxzdHJp
bmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQRVNfSAp8ICMgaW5jbHVkZSA8aW50
dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJTlRfSAp8ICMgaW5jbHVkZSA8c3Rk
aW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1REX0gKfCAjIGluY2x1ZGUgPHVuaXN0
ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDx3aW5kb3dzLmg+CmNvbmZpZ3VyZToxNDM2ODogcmVz
dWx0OiBubwpjb25maWd1cmU6MTQzNjg6IGNoZWNraW5nIHdpbmRvd3MuaCBwcmVzZW5jZQpjb25m
aWd1cmU6MTQzNjg6IGNjIC1FIC1JL2N0eHRvb2xzL2NvcnRleC9sb2NhbC82NGJpdC9pbmNsdWRl
IGNvbmZ0ZXN0LmMKImNvbmZ0ZXN0LmMiLCBsaW5lIDQ2OiBjYW5ub3QgZmluZCBpbmNsdWRlIGZp
bGU6IDx3aW5kb3dzLmg+CmNjOiBhY29tcCBmYWlsZWQgZm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJl
OjE0MzY4OiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6CnwgLyogY29uZmRl
ZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FH
RV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgp8ICNkZWZp
bmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JU
ICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwg
I2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4yLjQiCnwgI2Rl
ZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAxCnwgI2RlZmlu
ZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBI
QVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9T
VFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVfU1RE
SU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX0xPTkdMT05H
IDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVmIF9SRUVOVFJBTlQKfCAjICBk
ZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZpbmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVm
aW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFOIDEKfCAjZGVm
aW5lIEhBVkVfTElCU1NMIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmluZSBMSUJTU0gy
X0hBVkVfWkxJQiAxCnwgI2RlZmluZSBMSUJTU0gyX0RIX0dFWF9ORVcgMQp8ICNkZWZpbmUgSEFW
RV9FUlJOT19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBIQVZFX1NURElP
X0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEK
fCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEK
fCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0gg
MQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfQVJQQV9JTkVUX0gg
MQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAx
CnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDx3aW5kb3dzLmg+CmNvbmZpZ3Vy
ZToxNDM2ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTQzNjg6IGNoZWNraW5nIGZvciB3aW5kb3dz
LmgKY29uZmlndXJlOjE0MzY4OiByZXN1bHQ6IG5vCmNvbmZpZ3VyZToxNDM2ODogY2hlY2tpbmcg
d2luc29jazIuaCB1c2FiaWxpdHkKY29uZmlndXJlOjE0MzY4OiBjYyAtYyAteGFyY2g9djkgLUkv
Y3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKImNvbmZ0
ZXN0LmMiLCBsaW5lIDc5OiBjYW5ub3QgZmluZCBpbmNsdWRlIGZpbGU6IDx3aW5zb2NrMi5oPgpj
YzogYWNvbXAgZmFpbGVkIGZvciBjb25mdGVzdC5jCmNvbmZpZ3VyZToxNDM2ODogJD8gPSAyCmNv
bmZpZ3VyZTogZmFpbGVkIHByb2dyYW0gd2FzOgp8IC8qIGNvbmZkZWZzLmggKi8KfCAjZGVmaW5l
IFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKfCAjZGVmaW5lIFBBQ0tBR0VfVEFSTkFNRSAibGlic3No
MiIKfCAjZGVmaW5lIFBBQ0tBR0VfVkVSU0lPTiAiLSIKfCAjZGVmaW5lIFBBQ0tBR0VfU1RSSU5H
ICJsaWJzc2gyIC0iCnwgI2RlZmluZSBQQUNLQUdFX0JVR1JFUE9SVCAibGlic3NoMi1kZXZlbEBj
b29sLmhheHguc2UiCnwgI2RlZmluZSBQQUNLQUdFX1VSTCAiIgp8ICNkZWZpbmUgUEFDS0FHRSAi
bGlic3NoMiIKfCAjZGVmaW5lIFZFUlNJT04gIjEuMi40Igp8ICNkZWZpbmUgU1REQ19IRUFERVJT
IDEKfCAjZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU1RBVF9I
IDEKfCAjZGVmaW5lIEhBVkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdfSCAxCnwg
I2RlZmluZSBIQVZFX01FTU9SWV9IIDEKfCAjZGVmaW5lIEhBVkVfU1RSSU5HU19IIDEKfCAjZGVm
aW5lIEhBVkVfSU5UVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NURElOVF9IIDEKfCAjZGVmaW5l
IEhBVkVfVU5JU1REX0ggMQp8ICNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCnwgI2RlZmluZSBORUVE
X1JFRU5UUkFOVCAxCnwgI2lmbmRlZiBfUkVFTlRSQU5UCnwgIyAgZGVmaW5lIF9SRUVOVFJBTlQK
fCAjZW5kaWYKfCAjZGVmaW5lIEhBVkVfRExGQ05fSCAxCnwgI2RlZmluZSBMVF9PQkpESVIgIi5s
aWJzLyIKfCAjZGVmaW5lIFdPUkRTX0JJR0VORElBTiAxCnwgI2RlZmluZSBIQVZFX0xJQlNTTCAx
CnwgI2RlZmluZSBIQVZFX0xJQlogMQp8ICNkZWZpbmUgTElCU1NIMl9IQVZFX1pMSUIgMQp8ICNk
ZWZpbmUgTElCU1NIMl9ESF9HRVhfTkVXIDEKfCAjZGVmaW5lIEhBVkVfRVJSTk9fSCAxCnwgI2Rl
ZmluZSBIQVZFX0ZDTlRMX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJT19IIDEKfCAjZGVmaW5lIEhB
VkVfU1RETElCX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZFX1NZ
U19VSU9fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCnwgI2RlZmluZSBIQVZFX1NZ
U19TT0NLRVRfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19JT0NUTF9IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1RJTUVfSCAxCnwgI2RlZmluZSBIQVZFX0FSUEFfSU5FVF9IIDEKfCAjZGVmaW5lIEhBVkVf
TkVUSU5FVF9JTl9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQp8IC8qIGVuZCBjb25mZGVm
cy5oLiAgKi8KfCAjaW5jbHVkZSA8c3RkaW8uaD4KfCAjaWZkZWYgSEFWRV9TWVNfVFlQRVNfSAp8
ICMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1lTX1NUQVRf
SAp8ICMgaW5jbHVkZSA8c3lzL3N0YXQuaD4KfCAjZW5kaWYKfCAjaWZkZWYgU1REQ19IRUFERVJT
CnwgIyBpbmNsdWRlIDxzdGRsaWIuaD4KfCAjIGluY2x1ZGUgPHN0ZGRlZi5oPgp8ICNlbHNlCnwg
IyBpZmRlZiBIQVZFX1NURExJQl9ICnwgIyAgaW5jbHVkZSA8c3RkbGliLmg+CnwgIyBlbmRpZgp8
ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NUUklOR19ICnwgIyBpZiAhZGVmaW5lZCBTVERDX0hFQURF
UlMgJiYgZGVmaW5lZCBIQVZFX01FTU9SWV9ICnwgIyAgaW5jbHVkZSA8bWVtb3J5Lmg+CnwgIyBl
bmRpZgp8ICMgaW5jbHVkZSA8c3RyaW5nLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5H
U19ICnwgIyBpbmNsdWRlIDxzdHJpbmdzLmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfSU5UVFlQ
RVNfSAp8ICMgaW5jbHVkZSA8aW50dHlwZXMuaD4KfCAjZW5kaWYKfCAjaWZkZWYgSEFWRV9TVERJ
TlRfSAp8ICMgaW5jbHVkZSA8c3RkaW50Lmg+CnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfVU5JU1RE
X0gKfCAjIGluY2x1ZGUgPHVuaXN0ZC5oPgp8ICNlbmRpZgp8ICNpbmNsdWRlIDx3aW5zb2NrMi5o
Pgpjb25maWd1cmU6MTQzNjg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE0MzY4OiBjaGVja2luZyB3
aW5zb2NrMi5oIHByZXNlbmNlCmNvbmZpZ3VyZToxNDM2ODogY2MgLUUgLUkvY3R4dG9vbHMvY29y
dGV4L2xvY2FsLzY0Yml0L2luY2x1ZGUgY29uZnRlc3QuYwoiY29uZnRlc3QuYyIsIGxpbmUgNDY6
IGNhbm5vdCBmaW5kIGluY2x1ZGUgZmlsZTogPHdpbnNvY2syLmg+CmNjOiBhY29tcCBmYWlsZWQg
Zm9yIGNvbmZ0ZXN0LmMKY29uZmlndXJlOjE0MzY4OiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQg
cHJvZ3JhbSB3YXM6CnwgLyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJs
aWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFD
S0FHRV9WRVJTSU9OICItIgp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAj
ZGVmaW5lIFBBQ0tBR0VfQlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAj
ZGVmaW5lIFBBQ0tBR0VfVVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZp
bmUgVkVSU0lPTiAiMS4yLjQiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFW
RV9TWVNfVFlQRVNfSCAxCnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFW
RV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVN
T1JZX0ggMQp8ICNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBF
U19IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAx
CnwgI2RlZmluZSBIQVZFX0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAj
aWZuZGVmIF9SRUVOVFJBTlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZp
bmUgSEFWRV9ETEZDTl9IIDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUg
V09SRFNfQklHRU5ESUFOIDEKfCAjZGVmaW5lIEhBVkVfTElCU1NMIDEKfCAjZGVmaW5lIEhBVkVf
TElCWiAxCnwgI2RlZmluZSBMSUJTU0gyX0hBVkVfWkxJQiAxCnwgI2RlZmluZSBMSUJTU0gyX0RI
X0dFWF9ORVcgMQp8ICNkZWZpbmUgSEFWRV9FUlJOT19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExf
SCAxCnwgI2RlZmluZSBIQVZFX1NURElPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg
I2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKfCAjZGVm
aW5lIEhBVkVfU1lTX1NFTEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAj
ZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAj
ZGVmaW5lIEhBVkVfQVJQQV9JTkVUX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0ggMQp8
ICNkZWZpbmUgSEFWRV9TWVNfVU5fSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNs
dWRlIDx3aW5zb2NrMi5oPgpjb25maWd1cmU6MTQzNjg6IHJlc3VsdDogbm8KY29uZmlndXJlOjE0
MzY4OiBjaGVja2luZyBmb3Igd2luc29jazIuaApjb25maWd1cmU6MTQzNjg6IHJlc3VsdDogbm8K
Y29uZmlndXJlOjE0MzY4OiBjaGVja2luZyB3czJ0Y3BpcC5oIHVzYWJpbGl0eQpjb25maWd1cmU6
MTQzNjg6IGNjIC1jIC14YXJjaD12OSAtSS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQvaW5j
bHVkZSBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgNzk6IGNhbm5vdCBmaW5kIGlu
Y2x1ZGUgZmlsZTogPHdzMnRjcGlwLmg+CmNjOiBhY29tcCBmYWlsZWQgZm9yIGNvbmZ0ZXN0LmMK
Y29uZmlndXJlOjE0MzY4OiAkPyA9IDIKY29uZmlndXJlOiBmYWlsZWQgcHJvZ3JhbSB3YXM6Cnwg
LyogY29uZmRlZnMuaCAqLwp8ICNkZWZpbmUgUEFDS0FHRV9OQU1FICJsaWJzc2gyIgp8ICNkZWZp
bmUgUEFDS0FHRV9UQVJOQU1FICJsaWJzc2gyIgp8ICNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICIt
Igp8ICNkZWZpbmUgUEFDS0FHRV9TVFJJTkcgImxpYnNzaDIgLSIKfCAjZGVmaW5lIFBBQ0tBR0Vf
QlVHUkVQT1JUICJsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZSIKfCAjZGVmaW5lIFBBQ0tBR0Vf
VVJMICIiCnwgI2RlZmluZSBQQUNLQUdFICJsaWJzc2gyIgp8ICNkZWZpbmUgVkVSU0lPTiAiMS4y
LjQiCnwgI2RlZmluZSBTVERDX0hFQURFUlMgMQp8ICNkZWZpbmUgSEFWRV9TWVNfVFlQRVNfSCAx
CnwgI2RlZmluZSBIQVZFX1NZU19TVEFUX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwg
I2RlZmluZSBIQVZFX1NUUklOR19IIDEKfCAjZGVmaW5lIEhBVkVfTUVNT1JZX0ggMQp8ICNkZWZp
bmUgSEFWRV9TVFJJTkdTX0ggMQp8ICNkZWZpbmUgSEFWRV9JTlRUWVBFU19IIDEKfCAjZGVmaW5l
IEhBVkVfU1RESU5UX0ggMQp8ICNkZWZpbmUgSEFWRV9VTklTVERfSCAxCnwgI2RlZmluZSBIQVZF
X0xPTkdMT05HIDEKfCAjZGVmaW5lIE5FRURfUkVFTlRSQU5UIDEKfCAjaWZuZGVmIF9SRUVOVFJB
TlQKfCAjICBkZWZpbmUgX1JFRU5UUkFOVAp8ICNlbmRpZgp8ICNkZWZpbmUgSEFWRV9ETEZDTl9I
IDEKfCAjZGVmaW5lIExUX09CSkRJUiAiLmxpYnMvIgp8ICNkZWZpbmUgV09SRFNfQklHRU5ESUFO
IDEKfCAjZGVmaW5lIEhBVkVfTElCU1NMIDEKfCAjZGVmaW5lIEhBVkVfTElCWiAxCnwgI2RlZmlu
ZSBMSUJTU0gyX0hBVkVfWkxJQiAxCnwgI2RlZmluZSBMSUJTU0gyX0RIX0dFWF9ORVcgMQp8ICNk
ZWZpbmUgSEFWRV9FUlJOT19IIDEKfCAjZGVmaW5lIEhBVkVfRkNOVExfSCAxCnwgI2RlZmluZSBI
QVZFX1NURElPX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCnwgI2RlZmluZSBIQVZFX1VO
SVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NF
TEVDVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lTX1NPQ0tFVF9IIDEKfCAjZGVmaW5lIEhBVkVfU1lT
X0lPQ1RMX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfVElNRV9IIDEKfCAjZGVmaW5lIEhBVkVfQVJQ
QV9JTkVUX0ggMQp8ICNkZWZpbmUgSEFWRV9ORVRJTkVUX0lOX0ggMQp8ICNkZWZpbmUgSEFWRV9T
WVNfVU5fSCAxCnwgLyogZW5kIGNvbmZkZWZzLmguICAqLwp8ICNpbmNsdWRlIDxzdGRpby5oPgp8
ICNpZmRlZiBIQVZFX1NZU19UWVBFU19ICnwgIyBpbmNsdWRlIDxzeXMvdHlwZXMuaD4KfCAjZW5k
aWYKfCAjaWZkZWYgSEFWRV9TWVNfU1RBVF9ICnwgIyBpbmNsdWRlIDxzeXMvc3RhdC5oPgp8ICNl
bmRpZgp8ICNpZmRlZiBTVERDX0hFQURFUlMKfCAjIGluY2x1ZGUgPHN0ZGxpYi5oPgp8ICMgaW5j
bHVkZSA8c3RkZGVmLmg+CnwgI2Vsc2UKfCAjIGlmZGVmIEhBVkVfU1RETElCX0gKfCAjICBpbmNs
dWRlIDxzdGRsaWIuaD4KfCAjIGVuZGlmCnwgI2VuZGlmCnwgI2lmZGVmIEhBVkVfU1RSSU5HX0gK
fCAjIGlmICFkZWZpbmVkIFNURENfSEVBREVSUyAmJiBkZWZpbmVkIEhBVkVfTUVNT1JZX0gKfCAj
ICBpbmNsdWRlIDxtZW1vcnkuaD4KfCAjIGVuZGlmCnwgIyBpbmNsdWRlIDxzdHJpbmcuaD4KfCAj
ZW5kaWYKfCAjaWZkZWYgSEFWRV9TVFJJTkdTX0gKfCAjIGluY2x1ZGUgPHN0cmluZ3MuaD4KfCAj
ZW5kaWYKfCAjaWZkZWYgSEFWRV9JTlRUWVBFU19ICnwgIyBpbmNsdWRlIDxpbnR0eXBlcy5oPgp8
ICNlbmRpZgp8ICNpZmRlZiBIQVZFX1NURElOVF9ICnwgIyBpbmNsdWRlIDxzdGRpbnQuaD4KfCAj
ZW5kaWYKfCAjaWZkZWYgSEFWRV9VTklTVERfSAp8ICMgaW5jbHVkZSA8dW5pc3RkLmg+CnwgI2Vu
ZGlmCnwgI2luY2x1ZGUgPHdzMnRjcGlwLmg+CmNvbmZpZ3VyZToxNDM2ODogcmVzdWx0OiBubwpj
b25maWd1cmU6MTQzNjg6IGNoZWNraW5nIHdzMnRjcGlwLmggcHJlc2VuY2UKY29uZmlndXJlOjE0
MzY4OiBjYyAtRSAtSS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQvaW5jbHVkZSBjb25mdGVz
dC5jCiJjb25mdGVzdC5jIiwgbGluZSA0NjogY2Fubm90IGZpbmQgaW5jbHVkZSBmaWxlOiA8d3My
dGNwaXAuaD4KY2M6IGFjb21wIGZhaWxlZCBmb3IgY29uZnRlc3QuYwpjb25maWd1cmU6MTQzNjg6
ICQ/ID0gMgpjb25maWd1cmU6IGZhaWxlZCBwcm9ncmFtIHdhczoKfCAvKiBjb25mZGVmcy5oICov
CnwgI2RlZmluZSBQQUNLQUdFX05BTUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1RBUk5B
TUUgImxpYnNzaDIiCnwgI2RlZmluZSBQQUNLQUdFX1ZFUlNJT04gIi0iCnwgI2RlZmluZSBQQUNL
QUdFX1NUUklORyAibGlic3NoMiAtIgp8ICNkZWZpbmUgUEFDS0FHRV9CVUdSRVBPUlQgImxpYnNz
aDItZGV2ZWxAY29vbC5oYXh4LnNlIgp8ICNkZWZpbmUgUEFDS0FHRV9VUkwgIiIKfCAjZGVmaW5l
IFBBQ0tBR0UgImxpYnNzaDIiCnwgI2RlZmluZSBWRVJTSU9OICIxLjIuNCIKfCAjZGVmaW5lIFNU
RENfSEVBREVSUyAxCnwgI2RlZmluZSBIQVZFX1NZU19UWVBFU19IIDEKfCAjZGVmaW5lIEhBVkVf
U1lTX1NUQVRfSCAxCnwgI2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfU1RS
SU5HX0ggMQp8ICNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCnwgI2RlZmluZSBIQVZFX1NUUklOR1Nf
SCAxCnwgI2RlZmluZSBIQVZFX0lOVFRZUEVTX0ggMQp8ICNkZWZpbmUgSEFWRV9TVERJTlRfSCAx
CnwgI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKfCAjZGVmaW5lIEhBVkVfTE9OR0xPTkcgMQp8ICNk
ZWZpbmUgTkVFRF9SRUVOVFJBTlQgMQp8ICNpZm5kZWYgX1JFRU5UUkFOVAp8ICMgIGRlZmluZSBf
UkVFTlRSQU5UCnwgI2VuZGlmCnwgI2RlZmluZSBIQVZFX0RMRkNOX0ggMQp8ICNkZWZpbmUgTFRf
T0JKRElSICIubGlicy8iCnwgI2RlZmluZSBXT1JEU19CSUdFTkRJQU4gMQp8ICNkZWZpbmUgSEFW
RV9MSUJTU0wgMQp8ICNkZWZpbmUgSEFWRV9MSUJaIDEKfCAjZGVmaW5lIExJQlNTSDJfSEFWRV9a
TElCIDEKfCAjZGVmaW5lIExJQlNTSDJfREhfR0VYX05FVyAxCnwgI2RlZmluZSBIQVZFX0VSUk5P
X0ggMQp8ICNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKfCAjZGVmaW5lIEhBVkVfU1RESU9fSCAxCnwg
I2RlZmluZSBIQVZFX1NURExJQl9IIDEKfCAjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQp8ICNkZWZp
bmUgSEFWRV9TWVNfVUlPX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfU0VMRUNUX0ggMQp8ICNkZWZp
bmUgSEFWRV9TWVNfU09DS0VUX0ggMQp8ICNkZWZpbmUgSEFWRV9TWVNfSU9DVExfSCAxCnwgI2Rl
ZmluZSBIQVZFX1NZU19USU1FX0ggMQp8ICNkZWZpbmUgSEFWRV9BUlBBX0lORVRfSCAxCnwgI2Rl
ZmluZSBIQVZFX05FVElORVRfSU5fSCAxCnwgI2RlZmluZSBIQVZFX1NZU19VTl9IIDEKfCAvKiBl
bmQgY29uZmRlZnMuaC4gICovCnwgI2luY2x1ZGUgPHdzMnRjcGlwLmg+CmNvbmZpZ3VyZToxNDM2
ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTQzNjg6IGNoZWNraW5nIGZvciB3czJ0Y3BpcC5oCmNv
bmZpZ3VyZToxNDM2ODogcmVzdWx0OiBubwpjb25maWd1cmU6MTQzODU6IGNoZWNraW5nIGZvciBw
b2xsCmNvbmZpZ3VyZToxNDM4NTogY2MgLW8gY29uZnRlc3QgLXhhcmNoPXY5IC1JL2N0eHRvb2xz
L2NvcnRleC9sb2NhbC82NGJpdC9pbmNsdWRlICBjb25mdGVzdC5jIC1sbnNsIC1sc29ja2V0ICA+
JjUKImNvbmZ0ZXN0LmMiLCBsaW5lIDgyOiB3YXJuaW5nOiBzdGF0ZW1lbnQgbm90IHJlYWNoZWQK
Y29uZmlndXJlOjE0Mzg1OiAkPyA9IDAKY29uZmlndXJlOjE0Mzg1OiByZXN1bHQ6IHllcwpjb25m
aWd1cmU6MTQzODU6IGNoZWNraW5nIGZvciBnZXR0aW1lb2ZkYXkKY29uZmlndXJlOjE0Mzg1OiBj
YyAtbyBjb25mdGVzdCAteGFyY2g9djkgLUkvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2lu
Y2x1ZGUgIGNvbmZ0ZXN0LmMgLWxuc2wgLWxzb2NrZXQgID4mNQoiY29uZnRlc3QuYyIsIGxpbmUg
ODM6IHdhcm5pbmc6IHN0YXRlbWVudCBub3QgcmVhY2hlZApjb25maWd1cmU6MTQzODU6ICQ/ID0g
MApjb25maWd1cmU6MTQzODU6IHJlc3VsdDogeWVzCmNvbmZpZ3VyZToxNDM4NTogY2hlY2tpbmcg
Zm9yIHNlbGVjdApjb25maWd1cmU6MTQzODU6IGNjIC1vIGNvbmZ0ZXN0IC14YXJjaD12OSAtSS9j
dHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQvaW5jbHVkZSAgY29uZnRlc3QuYyAtbG5zbCAtbHNv
Y2tldCAgPiY1CiJjb25mdGVzdC5jIiwgbGluZSA4NDogd2FybmluZzogc3RhdGVtZW50IG5vdCBy
ZWFjaGVkCmNvbmZpZ3VyZToxNDM4NTogJD8gPSAwCmNvbmZpZ3VyZToxNDM4NTogcmVzdWx0OiB5
ZXMKY29uZmlndXJlOjE0Mzg1OiBjaGVja2luZyBmb3Igc3RydG9sbApjb25maWd1cmU6MTQzODU6
IGNjIC1vIGNvbmZ0ZXN0IC14YXJjaD12OSAtSS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQv
aW5jbHVkZSAgY29uZnRlc3QuYyAtbG5zbCAtbHNvY2tldCAgPiY1CiJjb25mdGVzdC5jIiwgbGlu
ZSA4NTogd2FybmluZzogc3RhdGVtZW50IG5vdCByZWFjaGVkCmNvbmZpZ3VyZToxNDM4NTogJD8g
PSAwCmNvbmZpZ3VyZToxNDM4NTogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0NDQyOiBjaGVja2lu
ZyBmb3Igd29ya2luZyBhbGxvY2EuaApjb25maWd1cmU6MTQ0NTk6IGNjIC1vIGNvbmZ0ZXN0IC14
YXJjaD12OSAtSS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQvaW5jbHVkZSAgY29uZnRlc3Qu
YyAtbG5zbCAtbHNvY2tldCAgPiY1CmNvbmZpZ3VyZToxNDQ1OTogJD8gPSAwCmNvbmZpZ3VyZTox
NDQ2NzogcmVzdWx0OiB5ZXMKY29uZmlndXJlOjE0NDc1OiBjaGVja2luZyBmb3IgYWxsb2NhCmNv
bmZpZ3VyZToxNDUxMjogY2MgLW8gY29uZnRlc3QgLXhhcmNoPXY5IC1JL2N0eHRvb2xzL2NvcnRl
eC9sb2NhbC82NGJpdC9pbmNsdWRlICBjb25mdGVzdC5jIC1sbnNsIC1sc29ja2V0ICA+JjUKY29u
ZmlndXJlOjE0NTEyOiAkPyA9IDAKY29uZmlndXJlOjE0NTIwOiByZXN1bHQ6IHllcwpjb25maWd1
cmU6MTQ2MzI6IGNoZWNraW5nIGZvciBhbiBBTlNJIEMtY29uZm9ybWluZyBjb25zdApjb25maWd1
cmU6MTQ2OTc6IGNjIC1jIC14YXJjaD12OSAtSS9jdHh0b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQv
aW5jbHVkZSBjb25mdGVzdC5jID4mNQoiY29uZnRlc3QuYyIsIGxpbmUgMTA3OiB3YXJuaW5nOiBz
dGF0ZW1lbnQgbm90IHJlYWNoZWQKY29uZmlndXJlOjE0Njk3OiAkPyA9IDAKY29uZmlndXJlOjE0
NzA0OiByZXN1bHQ6IHllcwpjb25maWd1cmU6MTQ3MTI6IGNoZWNraW5nIGZvciBpbmxpbmUKY29u
ZmlndXJlOjE0NzI4OiBjYyAtYyAteGFyY2g9djkgLUkvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0
Yml0L2luY2x1ZGUgY29uZnRlc3QuYyA+JjUKY29uZmlndXJlOjE0NzI4OiAkPyA9IDAKY29uZmln
dXJlOjE0NzM2OiByZXN1bHQ6IGlubGluZQpjb25maWd1cmU6MTQ3NTY6IGNoZWNraW5nIG5vbi1i
bG9ja2luZyBzb2NrZXRzIHN0eWxlCmNvbmZpZ3VyZToxNDc5NDogY2MgLWMgLXhhcmNoPXY5IC1J
L2N0eHRvb2xzL2NvcnRleC9sb2NhbC82NGJpdC9pbmNsdWRlIGNvbmZ0ZXN0LmMgPiY1CmNvbmZp
Z3VyZToxNDc5NDogJD8gPSAwCmNvbmZpZ3VyZToxNDk1NTogcmVzdWx0OiBPX05PTkJMT0NLCmNv
bmZpZ3VyZToxNTA5MzogY3JlYXRpbmcgLi9jb25maWcuc3RhdHVzCgojIyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tICMjCiMjIFJ1bm5pbmcgY29uZmlnLnN0YXR1cy4gIyMKIyMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSAjIwoKVGhpcyBmaWxlIHdhcyBleHRlbmRlZCBieSBsaWJzc2gyIGNvbmZpZy5z
dGF0dXMgLSwgd2hpY2ggd2FzCmdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42NS4gIEludm9j
YXRpb24gY29tbWFuZCBsaW5lIHdhcwoKICBDT05GSUdfRklMRVMgICAgPSAKICBDT05GSUdfSEVB
REVSUyAgPSAKICBDT05GSUdfTElOS1MgICAgPSAKICBDT05GSUdfQ09NTUFORFMgPSAKICAkIC4v
Y29uZmlnLnN0YXR1cyAKCm9uIGNobnN1bjAxCgpjb25maWcuc3RhdHVzOjExMTQ6IGNyZWF0aW5n
IE1ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MTExNDogY3JlYXRpbmcgc3JjL01ha2VmaWxlCmNvbmZp
Zy5zdGF0dXM6MTExNDogY3JlYXRpbmcgdGVzdHMvTWFrZWZpbGUKY29uZmlnLnN0YXR1czoxMTE0
OiBjcmVhdGluZyBleGFtcGxlL01ha2VmaWxlCmNvbmZpZy5zdGF0dXM6MTExNDogY3JlYXRpbmcg
ZG9jcy9NYWtlZmlsZQpjb25maWcuc3RhdHVzOjExMTQ6IGNyZWF0aW5nIGxpYnNzaDIucGMKY29u
ZmlnLnN0YXR1czoxMTE0OiBjcmVhdGluZyBzcmMvbGlic3NoMl9jb25maWcuaApjb25maWcuc3Rh
dHVzOjEyODA6IHNyYy9saWJzc2gyX2NvbmZpZy5oIGlzIHVuY2hhbmdlZApjb25maWcuc3RhdHVz
OjExMTQ6IGNyZWF0aW5nIGV4YW1wbGUvbGlic3NoMl9jb25maWcuaApjb25maWcuc3RhdHVzOjEy
ODA6IGV4YW1wbGUvbGlic3NoMl9jb25maWcuaCBpcyB1bmNoYW5nZWQKY29uZmlnLnN0YXR1czox
MzI3OiBleGVjdXRpbmcgZGVwZmlsZXMgY29tbWFuZHMKY29uZmlnLnN0YXR1czoxMzI3OiBleGVj
dXRpbmcgbGlidG9vbCBjb21tYW5kcwoKIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwojIyBDYWNoZSB2
YXJpYWJsZXMuICMjCiMjIC0tLS0tLS0tLS0tLS0tLS0gIyMKCmFjX2N2X2J1aWxkPXNwYXJjLXN1
bi1zb2xhcmlzMi4xMAphY19jdl9jX2JpZ2VuZGlhbj15ZXMKYWNfY3ZfY19jb21waWxlcl9nbnU9
bm8KYWNfY3ZfY19jb25zdD15ZXMKYWNfY3ZfY19pbmxpbmU9aW5saW5lCmFjX2N2X2Vudl9DQ19z
ZXQ9c2V0CmFjX2N2X2Vudl9DQ192YWx1ZT1jYwphY19jdl9lbnZfQ0ZMQUdTX3NldD1zZXQKYWNf
Y3ZfZW52X0NGTEFHU192YWx1ZT0teGFyY2g9djkKYWNfY3ZfZW52X0NQUEZMQUdTX3NldD0KYWNf
Y3ZfZW52X0NQUEZMQUdTX3ZhbHVlPQphY19jdl9lbnZfQ1BQX3NldD0KYWNfY3ZfZW52X0NQUF92
YWx1ZT0KYWNfY3ZfZW52X0xERkxBR1Nfc2V0PQphY19jdl9lbnZfTERGTEFHU192YWx1ZT0KYWNf
Y3ZfZW52X0xJQlNfc2V0PQphY19jdl9lbnZfTElCU192YWx1ZT0KYWNfY3ZfZW52X2J1aWxkX2Fs
aWFzX3NldD1zZXQKYWNfY3ZfZW52X2J1aWxkX2FsaWFzX3ZhbHVlPXNwYXJjLXN1bi1zb2xhcmlz
Mi4xMAphY19jdl9lbnZfaG9zdF9hbGlhc19zZXQ9CmFjX2N2X2Vudl9ob3N0X2FsaWFzX3ZhbHVl
PQphY19jdl9lbnZfdGFyZ2V0X2FsaWFzX3NldD0KYWNfY3ZfZW52X3RhcmdldF9hbGlhc192YWx1
ZT0KYWNfY3ZfZnVuY19hbGxvY2Ffd29ya3M9eWVzCmFjX2N2X2Z1bmNfZ2V0dGltZW9mZGF5PXll
cwphY19jdl9mdW5jX3BvbGw9eWVzCmFjX2N2X2Z1bmNfc2VsZWN0PXllcwphY19jdl9mdW5jX3N0
cnRvbGw9eWVzCmFjX2N2X2hlYWRlcl9hcnBhX2luZXRfaD15ZXMKYWNfY3ZfaGVhZGVyX2RsZmNu
X2g9eWVzCmFjX2N2X2hlYWRlcl9lcnJub19oPXllcwphY19jdl9oZWFkZXJfZmNudGxfaD15ZXMK
YWNfY3ZfaGVhZGVyX2ludHR5cGVzX2g9eWVzCmFjX2N2X2hlYWRlcl9tZW1vcnlfaD15ZXMKYWNf
Y3ZfaGVhZGVyX25ldGluZXRfaW5faD15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGM9eWVzCmFjX2N2X2hl
YWRlcl9zdGRpbnRfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0ZGlvX2g9eWVzCmFjX2N2X2hlYWRlcl9z
dGRsaWJfaD15ZXMKYWNfY3ZfaGVhZGVyX3N0cmluZ19oPXllcwphY19jdl9oZWFkZXJfc3RyaW5n
c19oPXllcwphY19jdl9oZWFkZXJfc3lzX2lvY3RsX2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfc2Vs
ZWN0X2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNfc29ja2V0X2g9eWVzCmFjX2N2X2hlYWRlcl9zeXNf
c3RhdF9oPXllcwphY19jdl9oZWFkZXJfc3lzX3RpbWVfaD15ZXMKYWNfY3ZfaGVhZGVyX3N5c190
eXBlc19oPXllcwphY19jdl9oZWFkZXJfc3lzX3Vpb19oPXllcwphY19jdl9oZWFkZXJfc3lzX3Vu
X2g9eWVzCmFjX2N2X2hlYWRlcl91bmlzdGRfaD15ZXMKYWNfY3ZfaGVhZGVyX3dpbmRvd3NfaD1u
bwphY19jdl9oZWFkZXJfd2luc29jazJfaD1ubwphY19jdl9oZWFkZXJfd3MydGNwaXBfaD1ubwph
Y19jdl9ob3N0PXNwYXJjLXN1bi1zb2xhcmlzMi4xMAphY19jdl9saWJzc2w9eWVzCmFjX2N2X2xp
Yno9eWVzCmFjX2N2X29iamV4dD1vCmFjX2N2X3BhdGhfRUdSRVA9Jy91c3IveHBnNC9iaW4vZ3Jl
cCAtRScKYWNfY3ZfcGF0aF9GR1JFUD0nL3Vzci94cGc0L2Jpbi9ncmVwIC1GJwphY19jdl9wYXRo
X0dSRVA9L3Vzci94cGc0L2Jpbi9ncmVwCmFjX2N2X3BhdGhfU0VEPS91c3IvYmluL3NlZAphY19j
dl9wcm9nX0FXSz1uYXdrCmFjX2N2X3Byb2dfQ1BQPSdjYyAtRScKYWNfY3ZfcHJvZ19hY19jdF9B
Uj1hcgphY19jdl9wcm9nX2FjX2N0X0NDPWNjCmFjX2N2X3Byb2dfYWNfY3RfT0JKRFVNUD1vYmpk
dW1wCmFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPXJhbmxpYgphY19jdl9wcm9nX2FjX2N0X1NUUklQ
PXN0cmlwCmFjX2N2X3Byb2dfY2NfYzg5PQphY19jdl9wcm9nX2NjX2c9eWVzCmFjX2N2X3Byb2df
bWFrZV9tYWtlX3NldD15ZXMKYWNfY3Zfc2VhcmNoX2luZXRfYWRkcj0tbG5zbAphY19jdl9zZWFy
Y2hfc29ja2V0PS1sc29ja2V0CmFjX2N2X3N5c19maWxlX29mZnNldF9iaXRzPW5vCmFjX2N2X3N5
c19sYXJnZWZpbGVfQ0M9bm8KYWNfY3ZfdHlwZV9sb25nX2xvbmc9eWVzCmFjX2N2X3dvcmtpbmdf
YWxsb2NhX2g9eWVzCmFjbF9jdl9oYXJkY29kZV9kaXJlY3Q9bm8KYWNsX2N2X2hhcmRjb2RlX2xp
YmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKYWNsX2N2X2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0
b3I9CmFjbF9jdl9oYXJkY29kZV9taW51c19MPW5vCmFjbF9jdl9saWJleHQ9YQphY2xfY3ZfbGli
bmFtZV9zcGVjPSdsaWIkbmFtZScKYWNsX2N2X2xpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUk
c2hyZXh0JwphY2xfY3ZfcGF0aF9MRD0nL3Vzci9jY3MvYmluLy9sZCAtNjQnCmFjbF9jdl9wcm9n
X2dudV9sZD1ubwphY2xfY3ZfcnBhdGg9ZG9uZQphY2xfY3Zfc2hsaWJleHQ9c28KYWNsX2N2X3ds
PS1XbCwKYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9bm9uZQpsdF9jdl9kZXBs
aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbApsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE1BR0lDX0NN
RCcKbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9Cmx0X2N2X2xkX3JlbG9hZF9mbGFnPS1yCmx0
X2N2X25tX2ludGVyZmFjZT0nQlNEIG5tJwpsdF9jdl9vYmpkaXI9LmxpYnMKbHRfY3ZfcGF0aF9M
RD0vdXNyL2Njcy9iaW4vL2xkCmx0X2N2X3BhdGhfTk09Jy91c3IvY2NzL2Jpbi8vbm0gLXAnCmx0
X2N2X3Byb2dfY29tcGlsZXJfY19vPXllcwpsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jrcz15
ZXMKbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9bm8KbHRfY3ZfcHJvZ19nbnVfbGQ9
bm8KbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0nc2VkIC1uIC1lICdcJydzL14uKlsJIF1c
KFtCRFJUXVtCRFJUXSpcKVsJIF1bCSBdKlwoW19BLVphLXpdW19BLVphLXowLTldKlwpJC9cMSBc
MiBcMi9wJ1wnJycKbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9J3Nl
ZCAtbiAtZSAnXCcncy9eOiBcKFteIF0qXCkgJC8gIHtcIlwxXCIsICh2b2lkICopIDB9LC9wJ1wn
JyAtZSAnXCcncy9eW0JEUlRdKiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHsiXDIiLCAodm9pZCAq
KSBcJlwyfSwvcCdcJycnCmx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNz
X2xpYl9wcmVmaXg9J3NlZCAtbiAtZSAnXCcncy9eOiBcKFteIF0qXCkgJC8gIHtcIlwxXCIsICh2
b2lkICopIDB9LC9wJ1wnJyAtZSAnXCcncy9eW0JEUlRdKiBcKFteIF0qXCkgXChsaWJbXiBdKlwp
JC8gIHsiXDIiLCAodm9pZCAqKSBcJlwyfSwvcCdcJycgLWUgJ1wnJ3MvXltCRFJUXSogXChbXiBd
KlwpIFwoW14gXSpcKSQvICB7ImxpYlwyIiwgKHZvaWQgKikgXCZcMn0sL3AnXCcnJwpsdF9jdl9z
eXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0nc2VkIC1uIC1lICdcJydzL15UIC4qIFwoLipcKSQv
ZXh0ZXJuIGludCBcMSgpOy9wJ1wnJyAtZSAnXCcncy9eW0JEUlRdKiAuKiBcKC4qXCkkL2V4dGVy
biBjaGFyIFwxOy9wJ1wnJycKbHRfY3Zfc3lzX21heF9jbWRfbGVuPTc4NjI0MAoKIyMgLS0tLS0t
LS0tLS0tLS0tLS0gIyMKIyMgT3V0cHV0IHZhcmlhYmxlcy4gIyMKIyMgLS0tLS0tLS0tLS0tLS0t
LS0gIyMKCkFDTE9DQUw9JyR7U0hFTEx9IC9jb3J0ZXgvYnVpbGQvdGhpcmRfcGFydHkvNjRiaXQv
bGlic3NoMi0xLjIuNC9taXNzaW5nIC0tcnVuIGFjbG9jYWwtMS45JwpBTExPQ0E9JycKQU1ERVBC
QUNLU0xBU0g9J1wnCkFNREVQX0ZBTFNFPScjJwpBTURFUF9UUlVFPScnCkFNVEFSPScke1NIRUxM
fSAvY29ydGV4L2J1aWxkL3RoaXJkX3BhcnR5LzY0Yml0L2xpYnNzaDItMS4yLjQvbWlzc2luZyAt
LXJ1biB0YXInCkFSPSdhcicKQVM9J2FzJwpBVVRPQ09ORj0nJHtTSEVMTH0gL2NvcnRleC9idWls
ZC90aGlyZF9wYXJ0eS82NGJpdC9saWJzc2gyLTEuMi40L21pc3NpbmcgLS1ydW4gYXV0b2NvbmYn
CkFVVE9IRUFERVI9JyR7U0hFTEx9IC9jb3J0ZXgvYnVpbGQvdGhpcmRfcGFydHkvNjRiaXQvbGli
c3NoMi0xLjIuNC9taXNzaW5nIC0tcnVuIGF1dG9oZWFkZXInCkFVVE9NQUtFPScke1NIRUxMfSAv
Y29ydGV4L2J1aWxkL3RoaXJkX3BhcnR5LzY0Yml0L2xpYnNzaDItMS4yLjQvbWlzc2luZyAtLXJ1
biBhdXRvbWFrZS0xLjknCkFXSz0nbmF3aycKQ0M9J2NjJwpDQ0RFUE1PREU9J2RlcG1vZGU9bm9u
ZScKQ0ZMQUdTPScteGFyY2g9djknCkNQUD0nY2MgLUUnCkNQUEZMQUdTPSctSS9jdHh0b29scy9j
b3J0ZXgvbG9jYWwvNjRiaXQvaW5jbHVkZScKQ1lHUEFUSF9XPSdlY2hvJwpERUZTPSctREhBVkVf
Q09ORklHX0gnCkRFUERJUj0nLmRlcHMnCkRMTFRPT0w9J2RsbHRvb2wnCkRTWU1VVElMPScnCkRV
TVBCSU49JycKRUNIT19DPScnCkVDSE9fTj0nLW4nCkVDSE9fVD0nJwpFR1JFUD0nL3Vzci94cGc0
L2Jpbi9ncmVwIC1FJwpFWEVFWFQ9JycKRkdSRVA9Jy91c3IveHBnNC9iaW4vZ3JlcCAtRicKR1JF
UD0nL3Vzci94cGc0L2Jpbi9ncmVwJwpIQVZFX0xJQkdDUllQVD0nJwpIQVZFX0xJQlNTTD0neWVz
JwpIQVZFX0xJQlo9J3llcycKSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9IC1tIDY0NCcKSU5TVEFM
TF9QUk9HUkFNPScke0lOU1RBTEx9JwpJTlNUQUxMX1NDUklQVD0nJHtJTlNUQUxMfScKSU5TVEFM
TF9TVFJJUF9QUk9HUkFNPScke1NIRUxMfSAkKGluc3RhbGxfc2gpIC1jIC1zJwpMRD0nL3Vzci9j
Y3MvYmluLy9sZCAtNjQnCkxERkxBR1M9JycKTElCR0NSWVBUPScnCkxJQkdDUllQVF9GQUxTRT0n
JwpMSUJHQ1JZUFRfUFJFRklYPScnCkxJQkdDUllQVF9UUlVFPScjJwpMSUJPQkpTPScnCkxJQlM9
Jy1sbnNsIC1sc29ja2V0ICcKTElCU1NMPScvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2xp
Yi9saWJzc2wuYSAvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2xpYi9saWJjcnlwdG8uYScK
TElCU1NMX1BSRUZJWD0nL2N0eHRvb2xzL2NvcnRleC9sb2NhbC82NGJpdCcKTElCVE9PTD0nJChT
SEVMTCkgJCh0b3BfYnVpbGRkaXIpL2xpYnRvb2wnCkxJQlo9Jy9jdHh0b29scy9jb3J0ZXgvbG9j
YWwvNjRiaXQvbGliL2xpYnouYScKTElCWl9QUkVGSVg9Jy9jdHh0b29scy9jb3J0ZXgvbG9jYWwv
NjRiaXQnCkxJUE89JycKTE5fUz0nbG4gLXMnCkxUTElCR0NSWVBUPScnCkxUTElCT0JKUz0nJwpM
VExJQlNTTD0nLUwvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2xpYiAtbHNzbCAtTC9jdHh0
b29scy9jb3J0ZXgvbG9jYWwvNjRiaXQvbGliIC1sY3J5cHRvJwpMVExJQlo9Jy1ML2N0eHRvb2xz
L2NvcnRleC9sb2NhbC82NGJpdC9saWIgLWx6JwpNQUlOVD0nIycKTUFJTlRBSU5FUl9NT0RFX0ZB
TFNFPScnCk1BSU5UQUlORVJfTU9ERV9UUlVFPScjJwpNQUtFSU5GTz0nJHtTSEVMTH0gL2NvcnRl
eC9idWlsZC90aGlyZF9wYXJ0eS82NGJpdC9saWJzc2gyLTEuMi40L21pc3NpbmcgLS1ydW4gbWFr
ZWluZm8nCk5NPScvdXNyL2Njcy9iaW4vL25tIC1wJwpOTUVESVQ9JycKT0JKRFVNUD0nb2JqZHVt
cCcKT0JKRVhUPSdvJwpPVE9PTDY0PScnCk9UT09MPScnClBBQ0tBR0U9J2xpYnNzaDInClBBQ0tB
R0VfQlVHUkVQT1JUPSdsaWJzc2gyLWRldmVsQGNvb2wuaGF4eC5zZScKUEFDS0FHRV9OQU1FPSds
aWJzc2gyJwpQQUNLQUdFX1NUUklORz0nbGlic3NoMiAtJwpQQUNLQUdFX1RBUk5BTUU9J2xpYnNz
aDInClBBQ0tBR0VfVVJMPScnClBBQ0tBR0VfVkVSU0lPTj0nLScKUEFUSF9TRVBBUkFUT1I9Jzon
ClJBTkxJQj0ncmFubGliJwpTRUQ9Jy91c3IvYmluL3NlZCcKU0VUX01BS0U9JycKU0hFTEw9Jy9i
aW4vYmFzaCcKU1NIRD0nJwpTU0hEX0ZBTFNFPScnClNTSERfVFJVRT0nIycKU1RSSVA9J3N0cmlw
JwpWRVJTSU9OPScxLjIuNCcKYWNfY3RfQ0M9J2NjJwphY19jdF9EVU1QQklOPScnCmFtX19mYXN0
ZGVwQ0NfRkFMU0U9JycKYW1fX2Zhc3RkZXBDQ19UUlVFPScjJwphbV9faW5jbHVkZT0naW5jbHVk
ZScKYW1fX2xlYWRpbmdfZG90PScuJwphbV9fcXVvdGU9JycKYW1fX3Rhcj0nJHtBTVRBUn0gY2hv
ZiAtICIkJHRhcmRpciInCmFtX191bnRhcj0nJHtBTVRBUn0geGYgLScKYmluZGlyPScke2V4ZWNf
cHJlZml4fS9iaW4nCmJ1aWxkPSdzcGFyYy1zdW4tc29sYXJpczIuMTAnCmJ1aWxkX2FsaWFzPSdz
cGFyYy1zdW4tc29sYXJpczIuMTAnCmJ1aWxkX2NwdT0nc3BhcmMnCmJ1aWxkX29zPSdzb2xhcmlz
Mi4xMCcKYnVpbGRfdmVuZG9yPSdzdW4nCmRhdGFkaXI9JyR7ZGF0YXJvb3RkaXJ9JwpkYXRhcm9v
dGRpcj0nJHtwcmVmaXh9L3NoYXJlJwpkb2NkaXI9JyR7ZGF0YXJvb3RkaXJ9L2RvYy8ke1BBQ0tB
R0VfVEFSTkFNRX0nCmR2aWRpcj0nJHtkb2NkaXJ9JwpleGVjX3ByZWZpeD0nJHtwcmVmaXh9Jwpo
b3N0PSdzcGFyYy1zdW4tc29sYXJpczIuMTAnCmhvc3RfYWxpYXM9JycKaG9zdF9jcHU9J3NwYXJj
Jwpob3N0X29zPSdzb2xhcmlzMi4xMCcKaG9zdF92ZW5kb3I9J3N1bicKaHRtbGRpcj0nJHtkb2Nk
aXJ9JwppbmNsdWRlZGlyPScke3ByZWZpeH0vaW5jbHVkZScKaW5mb2Rpcj0nJHtkYXRhcm9vdGRp
cn0vaW5mbycKaW5zdGFsbF9zaD0nL2NvcnRleC9idWlsZC90aGlyZF9wYXJ0eS82NGJpdC9saWJz
c2gyLTEuMi40L2luc3RhbGwtc2gnCmxpYmRpcj0nJHtleGVjX3ByZWZpeH0vbGliJwpsaWJleGVj
ZGlyPScke2V4ZWNfcHJlZml4fS9saWJleGVjJwpsb2NhbGVkaXI9JyR7ZGF0YXJvb3RkaXJ9L2xv
Y2FsZScKbG9jYWxzdGF0ZWRpcj0nJHtwcmVmaXh9L3ZhcicKbHRfRUNITz0nZWNobycKbWFuZGly
PScke2RhdGFyb290ZGlyfS9tYW4nCm1rZGlyX3A9JyQoaW5zdGFsbF9zaCkgLWQnCm9sZGluY2x1
ZGVkaXI9Jy91c3IvaW5jbHVkZScKcGRmZGlyPScke2RvY2Rpcn0nCnByZWZpeD0nL2N0eHRvb2xz
L2NvcnRleC9sb2NhbC82NGJpdCcKcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT0ncyx4LHgsJwpwc2Rp
cj0nJHtkb2NkaXJ9JwpzYmluZGlyPScke2V4ZWNfcHJlZml4fS9zYmluJwpzaGFyZWRzdGF0ZWRp
cj0nJHtwcmVmaXh9L2NvbScKc3lzY29uZmRpcj0nJHtwcmVmaXh9L2V0YycKdGFyZ2V0X2FsaWFz
PScnCgojIyAtLS0tLS0tLS0tLSAjIwojIyBjb25mZGVmcy5oLiAjIwojIyAtLS0tLS0tLS0tLSAj
IwoKLyogY29uZmRlZnMuaCAqLwojZGVmaW5lIFBBQ0tBR0VfTkFNRSAibGlic3NoMiIKI2RlZmlu
ZSBQQUNLQUdFX1RBUk5BTUUgImxpYnNzaDIiCiNkZWZpbmUgUEFDS0FHRV9WRVJTSU9OICItIgoj
ZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICJsaWJzc2gyIC0iCiNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP
UlQgImxpYnNzaDItZGV2ZWxAY29vbC5oYXh4LnNlIgojZGVmaW5lIFBBQ0tBR0VfVVJMICIiCiNk
ZWZpbmUgUEFDS0FHRSAibGlic3NoMiIKI2RlZmluZSBWRVJTSU9OICIxLjIuNCIKI2RlZmluZSBT
VERDX0hFQURFUlMgMQojZGVmaW5lIEhBVkVfU1lTX1RZUEVTX0ggMQojZGVmaW5lIEhBVkVfU1lT
X1NUQVRfSCAxCiNkZWZpbmUgSEFWRV9TVERMSUJfSCAxCiNkZWZpbmUgSEFWRV9TVFJJTkdfSCAx
CiNkZWZpbmUgSEFWRV9NRU1PUllfSCAxCiNkZWZpbmUgSEFWRV9TVFJJTkdTX0ggMQojZGVmaW5l
IEhBVkVfSU5UVFlQRVNfSCAxCiNkZWZpbmUgSEFWRV9TVERJTlRfSCAxCiNkZWZpbmUgSEFWRV9V
TklTVERfSCAxCiNkZWZpbmUgSEFWRV9MT05HTE9ORyAxCiNkZWZpbmUgTkVFRF9SRUVOVFJBTlQg
MQojaWZuZGVmIF9SRUVOVFJBTlQKIyAgZGVmaW5lIF9SRUVOVFJBTlQKI2VuZGlmCiNkZWZpbmUg
SEFWRV9ETEZDTl9IIDEKI2RlZmluZSBMVF9PQkpESVIgIi5saWJzLyIKI2RlZmluZSBXT1JEU19C
SUdFTkRJQU4gMQojZGVmaW5lIEhBVkVfTElCU1NMIDEKI2RlZmluZSBIQVZFX0xJQlogMQojZGVm
aW5lIExJQlNTSDJfSEFWRV9aTElCIDEKI2RlZmluZSBMSUJTU0gyX0RIX0dFWF9ORVcgMQojZGVm
aW5lIEhBVkVfRVJSTk9fSCAxCiNkZWZpbmUgSEFWRV9GQ05UTF9IIDEKI2RlZmluZSBIQVZFX1NU
RElPX0ggMQojZGVmaW5lIEhBVkVfU1RETElCX0ggMQojZGVmaW5lIEhBVkVfVU5JU1REX0ggMQoj
ZGVmaW5lIEhBVkVfU1lTX1VJT19IIDEKI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAxCiNkZWZp
bmUgSEFWRV9TWVNfU09DS0VUX0ggMQojZGVmaW5lIEhBVkVfU1lTX0lPQ1RMX0ggMQojZGVmaW5l
IEhBVkVfU1lTX1RJTUVfSCAxCiNkZWZpbmUgSEFWRV9BUlBBX0lORVRfSCAxCiNkZWZpbmUgSEFW
RV9ORVRJTkVUX0lOX0ggMQojZGVmaW5lIEhBVkVfU1lTX1VOX0ggMQojZGVmaW5lIEhBVkVfUE9M
TCAxCiNkZWZpbmUgSEFWRV9HRVRUSU1FT0ZEQVkgMQojZGVmaW5lIEhBVkVfU0VMRUNUIDEKI2Rl
ZmluZSBIQVZFX1NUUlRPTEwgMQojZGVmaW5lIEhBVkVfQUxMT0NBX0ggMQojZGVmaW5lIEhBVkVf
QUxMT0NBIDEKI2RlZmluZSBIQVZFX09fTk9OQkxPQ0sgMQoKY29uZmlndXJlOiBleGl0IDAK

--_003_0A90A784B706B04A98C0CECC5CC2C2A302B434CCltcfiswmsgmb23_
Content-Type: text/plain; name="libssh2 make error.txt"
Content-Description: libssh2 make error.txt
Content-Disposition: attachment; filename="libssh2 make error.txt"; size=5714;
	creation-date="Wed, 18 Apr 2012 11:52:05 GMT";
	modification-date="Wed, 18 Apr 2012 11:52:24 GMT"
Content-Transfer-Encoding: base64

JCBtYWtlDQptYWtlOiBXYXJuaW5nOiBGaWxlIGBNYWtlZmlsZScgaGFzIG1vZGlmaWNhdGlvbiB0
aW1lIDIuMWUrMDQgcyBpbiB0aGUgZnV0dXJlDQpNYWtpbmcgYWxsIGluIHNyYw0KbWFrZVsxXTog
RW50ZXJpbmcgZGlyZWN0b3J5IGAvY29ydGV4L2J1aWxkL3RoaXJkX3BhcnR5LzY0Yml0L2xpYnNz
aDItMS4yLjQvc3JjJw0KbWFrZVsxXTogV2FybmluZzogRmlsZSBgTWFrZWZpbGUnIGhhcyBtb2Rp
ZmljYXRpb24gdGltZSAyLjFlKzA0IHMgaW4gdGhlIGZ1dHVyZQ0KbWFrZSAgYWxsLWFtDQptYWtl
WzJdOiBFbnRlcmluZyBkaXJlY3RvcnkgYC9jb3J0ZXgvYnVpbGQvdGhpcmRfcGFydHkvNjRiaXQv
bGlic3NoMi0xLjIuNC9zcmMnDQptYWtlWzJdOiBXYXJuaW5nOiBGaWxlIGBNYWtlZmlsZScgaGFz
IG1vZGlmaWNhdGlvbiB0aW1lIDIuMWUrMDQgcyBpbiB0aGUgZnV0dXJlDQptYWtlWzJdOiB3YXJu
aW5nOiAgQ2xvY2sgc2tldyBkZXRlY3RlZC4gIFlvdXIgYnVpbGQgbWF5IGJlIGluY29tcGxldGUu
DQptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL2NvcnRleC9idWlsZC90aGlyZF9wYXJ0eS82
NGJpdC9saWJzc2gyLTEuMi40L3NyYycNCm1ha2VbMV06IHdhcm5pbmc6ICBDbG9jayBza2V3IGRl
dGVjdGVkLiAgWW91ciBidWlsZCBtYXkgYmUgaW5jb21wbGV0ZS4NCm1ha2VbMV06IExlYXZpbmcg
ZGlyZWN0b3J5IGAvY29ydGV4L2J1aWxkL3RoaXJkX3BhcnR5LzY0Yml0L2xpYnNzaDItMS4yLjQv
c3JjJw0KTWFraW5nIGFsbCBpbiBleGFtcGxlDQptYWtlWzFdOiBFbnRlcmluZyBkaXJlY3Rvcnkg
YC9jb3J0ZXgvYnVpbGQvdGhpcmRfcGFydHkvNjRiaXQvbGlic3NoMi0xLjIuNC9leGFtcGxlJw0K
bWFrZVsxXTogV2FybmluZzogRmlsZSBgTWFrZWZpbGUnIGhhcyBtb2RpZmljYXRpb24gdGltZSAy
LjFlKzA0IHMgaW4gdGhlIGZ1dHVyZQ0KbWFrZSAgYWxsLWFtDQptYWtlWzJdOiBFbnRlcmluZyBk
aXJlY3RvcnkgYC9jb3J0ZXgvYnVpbGQvdGhpcmRfcGFydHkvNjRiaXQvbGlic3NoMi0xLjIuNC9l
eGFtcGxlJw0KbWFrZVsyXTogV2FybmluZzogRmlsZSBgTWFrZWZpbGUnIGhhcyBtb2RpZmljYXRp
b24gdGltZSAyLjFlKzA0IHMgaW4gdGhlIGZ1dHVyZQ0KL2Jpbi9iYXNoIC4uL2xpYnRvb2wgLS10
YWc9Q0MgLS1tb2RlPWxpbmsgY2MgIC14YXJjaD12OSAgIC1vIGRpcmVjdF90Y3BpcCAgZGlyZWN0
X3RjcGlwLm8gLi4vc3JjL2xpYnNzaDIubGEgLWxuc2wgLWxzb2NrZXQNCmxpYnRvb2w6IGxpbms6
IGNjIC14YXJjaD12OSAtbyBkaXJlY3RfdGNwaXAgZGlyZWN0X3RjcGlwLm8gIC4uL3NyYy8ubGli
cy9saWJzc2gyLmEgLUwvY3R4dG9vbHMvY29ydGV4L2xvY2FsLzY0Yml0L2xpYiAtbHogLWxuc2wg
LWxzb2NrZXQNClVuZGVmaW5lZCAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QgcmVmZXJlbmNl
ZA0KIHN5bWJvbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gZmlsZQ0KU0hBMSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShvcGVuc3Ns
Lm8pDQpFVlBfY2FzdDVfY2JjICAgICAgICAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMvbGli
c3NoMi5hKGNyeXB0Lm8pDQpITUFDX0NUWF9jbGVhbnVwICAgICAgICAgICAgICAgICAgICAuLi9z
cmMvLmxpYnMvbGlic3NoMi5hKG1hYy5vKQ0KUEVNX3JlYWRfYmlvX0RTQVByaXZhdGVLZXkgICAg
ICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShvcGVuc3NsLm8pDQpFVlBfYWVzXzEyOF9jYmMg
ICAgICAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMvbGlic3NoMi5hKGNyeXB0Lm8pDQpFVlBf
YWVzXzE5Ml9jYmMgICAgICAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMvbGlic3NoMi5hKGNy
eXB0Lm8pDQpFVlBfQ2lwaGVyICAgICAgICAgICAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMv
bGlic3NoMi5hKG9wZW5zc2wubykNCkVWUF9hZXNfMjU2X2NiYyAgICAgICAgICAgICAgICAgICAg
IC4uL3NyYy8ubGlicy9saWJzc2gyLmEoY3J5cHQubykNCkJOX21vZF9leHAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC4uL3NyYy8ubGlicy9saWJzc2gyLmEoa2V4Lm8pDQpTSEExX0luaXQgICAg
ICAgICAgICAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMvbGlic3NoMi5hKGhvc3RrZXkubykN
CkJOX25ldyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uL3NyYy8ubGlicy9saWJzc2gy
LmEob3BlbnNzbC5vKQ0KSE1BQ19VcGRhdGUgICAgICAgICAgICAgICAgICAgICAgICAgLi4vc3Jj
Ly5saWJzL2xpYnNzaDIuYShtYWMubykNClNIQTFfVXBkYXRlICAgICAgICAgICAgICAgICAgICAg
ICAgIC4uL3NyYy8ubGlicy9saWJzc2gyLmEoaG9zdGtleS5vKQ0KTUQ1X1VwZGF0ZSAgICAgICAg
ICAgICAgICAgICAgICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShrZXgubykNCkJOX2JpbjJi
biAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uL3NyYy8ubGlicy9saWJzc2gyLmEob3BlbnNz
bC5vKQ0KRVZQX2JmX2NiYyAgICAgICAgICAgICAgICAgICAgICAgICAgLi4vc3JjLy5saWJzL2xp
YnNzaDIuYShjcnlwdC5vKQ0KQk5fYm4yYmluICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4v
c3JjLy5saWJzL2xpYnNzaDIuYShvcGVuc3NsLm8pDQpITUFDX0luaXQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAuLi9zcmMvLmxpYnMvbGlic3NoMi5hKG1hYy5vKQ0KRVZQX0NpcGhlckluaXQg
ICAgICAgICAgICAgICAgICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShvcGVuc3NsLm8pDQpS
U0FfdmVyaWZ5ICAgICAgICAgICAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMvbGlic3NoMi5h
KG9wZW5zc2wubykNClNIQTFfRmluYWwgICAgICAgICAgICAgICAgICAgICAgICAgIC4uL3NyYy8u
bGlicy9saWJzc2gyLmEoaG9zdGtleS5vKQ0KQk5fcmFuZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShrZXgubykNCkRTQV9mcmVlICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC4uL3NyYy8ubGlicy9saWJzc2gyLmEoaG9zdGtleS5vKQ0KUlNBX2Zy
ZWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShob3N0
a2V5Lm8pDQpSU0Ffc2lnbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMv
bGlic3NoMi5hKG9wZW5zc2wubykNClJTQV9zaXplICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC4uL3NyYy8ubGlicy9saWJzc2gyLmEob3BlbnNzbC5vKQ0KUlNBX25ldyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShvcGVuc3NsLm8pDQpFVlBfZ2V0
X2NpcGhlcmJ5bmFtZSAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMvbGlic3NoMi5hKG9wZW5z
c2wubykNCk1ENV9Jbml0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uL3NyYy8ubGlicy9s
aWJzc2gyLmEoa2V4Lm8pDQpFVlBfQ0lQSEVSX0NUWF9pbml0ICAgICAgICAgICAgICAgICAuLi9z
cmMvLmxpYnMvbGlic3NoMi5hKG9wZW5zc2wubykNCkJOX0NUWF9uZXcgICAgICAgICAgICAgICAg
ICAgICAgICAgIC4uL3NyYy8ubGlicy9saWJzc2gyLmEoa2V4Lm8pDQpCSU9fbmV3X2ZpbGUgICAg
ICAgICAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMvbGlic3NoMi5hKG9wZW5zc2wubykNCkhN
QUNfRmluYWwgICAgICAgICAgICAgICAgICAgICAgICAgIC4uL3NyYy8ubGlicy9saWJzc2gyLmEo
bWFjLm8pDQpEU0FfU0lHX2ZyZWUgICAgICAgICAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMv
bGlic3NoMi5hKG9wZW5zc2wubykNCkRTQV9uZXcgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IC4uL3NyYy8ubGlicy9saWJzc2gyLmEob3BlbnNzbC5vKQ0KQk5fQ1RYX2ZyZWUgICAgICAgICAg
ICAgICAgICAgICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShrZXgubykNClJBTkRfYnl0ZXMg
ICAgICAgICAgICAgICAgICAgICAgICAgIC4uL3NyYy8ubGlicy9saWJzc2gyLmEoY2hhbm5lbC5v
KQ0KRVZQX21kNSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4vc3JjLy5saWJzL2xpYnNz
aDIuYShtYWMubykNCkVWUF9yYzQgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uL3NyYy8u
bGlicy9saWJzc2gyLmEoY3J5cHQubykNCkRTQV9kb19zaWduICAgICAgICAgICAgICAgICAgICAg
ICAgIC4uL3NyYy8ubGlicy9saWJzc2gyLmEob3BlbnNzbC5vKQ0KTUQ1X0ZpbmFsICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShrZXgubykNCkVWUF9zaGEx
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uL3NyYy8ubGlicy9saWJzc2gyLmEobWFjLm8p
DQpBRVNfZW5jcnlwdCAgICAgICAgICAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMvbGlic3No
Mi5hKG9wZW5zc2wubykNCkVWUF9yaXBlbWQxNjAgICAgICAgICAgICAgICAgICAgICAgIC4uL3Ny
Yy8ubGlicy9saWJzc2gyLmEobWFjLm8pDQpCTl9udW1fYml0cyAgICAgICAgICAgICAgICAgICAg
ICAgICAuLi9zcmMvLmxpYnMvbGlic3NoMi5hKG9wZW5zc2wubykNCk9wZW5TU0xfYWRkX2FsbF9j
aXBoZXJzICAgICAgICAgICAgIC4uL3NyYy8ubGlicy9saWJzc2gyLmEob3BlbnNzbC5vKQ0KQk5f
c2V0X3dvcmQgICAgICAgICAgICAgICAgICAgICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShr
ZXgubykNCkVWUF9DSVBIRVJfQ1RYX2NsZWFudXAgICAgICAgICAgICAgIC4uL3NyYy8ubGlicy9s
aWJzc2gyLmEoY3J5cHQubykNCkFFU19zZXRfZW5jcnlwdF9rZXkgICAgICAgICAgICAgICAgIC4u
L3NyYy8ubGlicy9saWJzc2gyLmEob3BlbnNzbC5vKQ0KRVZQX0NJUEhFUl9DVFhfc2V0X2FwcF9k
YXRhICAgICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShvcGVuc3NsLm8pDQpCSU9fZnJlZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAuLi9zcmMvLmxpYnMvbGlic3NoMi5hKG9wZW5zc2wu
bykNCkVWUF9DSVBIRVJfQ1RYX2dldF9hcHBfZGF0YSAgICAgICAgIC4uL3NyYy8ubGlicy9saWJz
c2gyLmEob3BlbnNzbC5vKQ0KRVZQX2Rlc19lZGUzX2NiYyAgICAgICAgICAgICAgICAgICAgLi4v
c3JjLy5saWJzL2xpYnNzaDIuYShjcnlwdC5vKQ0KQk5fY2xlYXJfZnJlZSAgICAgICAgICAgICAg
ICAgICAgICAgLi4vc3JjLy5saWJzL2xpYnNzaDIuYShvcGVuc3NsLm8pDQpQRU1fcmVhZF9iaW9f
UlNBUHJpdmF0ZUtleSAgICAgICAgICAuLi9zcmMvLmxpYnMvbGlic3NoMi5hKG9wZW5zc2wubykN
CkRTQV9kb192ZXJpZnkgICAgICAgICAgICAgICAgICAgICAgIC4uL3NyYy8ubGlicy9saWJzc2gy
LmEob3BlbnNzbC5vKQ0KbGQ6IGZhdGFsOiBTeW1ib2wgcmVmZXJlbmNpbmcgZXJyb3JzLiBObyBv
dXRwdXQgd3JpdHRlbiB0byBkaXJlY3RfdGNwaXANCm1ha2VbMl06ICoqKiBbZGlyZWN0X3RjcGlw
XSBFcnJvciAxDQptYWtlWzJdOiBMZWF2aW5nIGRpcmVjdG9yeSBgL2NvcnRleC9idWlsZC90aGly
ZF9wYXJ0eS82NGJpdC9saWJzc2gyLTEuMi40L2V4YW1wbGUnDQptYWtlWzFdOiAqKiogW2FsbF0g
RXJyb3IgMg0KbWFrZVsxXTogTGVhdmluZyBkaXJlY3RvcnkgYC9jb3J0ZXgvYnVpbGQvdGhpcmRf
cGFydHkvNjRiaXQvbGlic3NoMi0xLjIuNC9leGFtcGxlJw0KbWFrZTogKioqIFthbGwtcmVjdXJz
aXZlXSBFcnJvciAxDQo=

--_003_0A90A784B706B04A98C0CECC5CC2C2A302B434CCltcfiswmsgmb23_
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--_003_0A90A784B706B04A98C0CECC5CC2C2A302B434CCltcfiswmsgmb23_--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 18 16:37:19 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3IEb5rp003203;
	Wed, 18 Apr 2012 16:37:17 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3IEb4Wx003199
 for <libssh2-devel@cool.haxx.se>; Wed, 18 Apr 2012 16:37:04 +0200
Received: (qmail 24216 invoked by uid 501); 18 Apr 2012 14:37:05 -0000
Message-ID: <20120418143705.24215.qmail@stuge.se>
Date: Wed, 18 Apr 2012 16:37:05 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: Libssh2 make error.
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
 <20120414150134.3840.qmail@stuge.se>
 <0A90A784B706B04A98C0CECC5CC2C2A302B4318C@ltcfiswmsgmb23>
 <0A90A784B706B04A98C0CECC5CC2C2A302B434CC@ltcfiswmsgmb23>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <0A90A784B706B04A98C0CECC5CC2C2A302B434CC@ltcfiswmsgmb23>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Hi,

V, AnilKumar wrote:
> Kindly help me.

Well, actually your problem isn't related to libssh2 in any way. I
would recommend that you study and follow the Linux From Scratch
tutorials in order to learn about building packages based on
autotools.


>   $ ./configure CC=cc CFLAGS=-xarch=v9 --prefix=/ctxtools/cortex/local/64bit --build=sparc-sun-solaris2.10 --disable-shared --enable-static --with-openssl --without-libgcrypt --with-libgcrypt-prefix=/ctxtools/cortex/local/64bit --with-libssl-prefix=/ctxtools/cortex/local/64bit

Why both --without-libgcrypt and --with-libgrypt-prefix?


> configure:2946: checking libssh2 version
> configure:2948: result: 1.2.4

I already asked you to stop using this ancient version. Use the most
recent code so that you avoid wasting your time and ours on bugs that
have already been solved.


> configure:12952: checking for libssl
> configure:12971: cc -o conftest -xarch=v9 -I/ctxtools/cortex/local/64bit/include  conftest.c -lnsl -lsocket  /ctxtools/cortex/local/64bit/lib/libssl.a /ctxtools/cortex/local/64bit/lib/libcrypto.a >&5
> configure:12971: $? = 0
> configure:12981: result: yes
> configure:12988: checking how to link with libssl
> configure:12990: result: /ctxtools/cortex/local/64bit/lib/libssl.a /ctxtools/cortex/local/64bit/lib/libcrypto.a

Do you want to link statically against OpenSSL?


> $ make
> make: Warning: File `Makefile' has modification time 2.1e+04 s in the future
> Making all in src
> make[1]: Entering directory `/cortex/build/third_party/64bit/libssh2-1.2.4/src'
> make[1]: Warning: File `Makefile' has modification time 2.1e+04 s in the future
> make  all-am
> make[2]: Entering directory `/cortex/build/third_party/64bit/libssh2-1.2.4/src'
> make[2]: Warning: File `Makefile' has modification time 2.1e+04 s in the future
> make[2]: warning:  Clock skew detected.  Your build may be incomplete.
> make[2]: Leaving directory `/cortex/build/third_party/64bit/libssh2-1.2.4/src'
> make[1]: warning:  Clock skew detected.  Your build may be incomplete.
> make[1]: Leaving directory `/cortex/build/third_party/64bit/libssh2-1.2.4/src'

The above shows that the library has been built successfully.


> Making all in example
> make[1]: Entering directory `/cortex/build/third_party/64bit/libssh2-1.2.4/example'
> make[1]: Warning: File `Makefile' has modification time 2.1e+04 s in the future
> make  all-am
> make[2]: Entering directory `/cortex/build/third_party/64bit/libssh2-1.2.4/example'
> make[2]: Warning: File `Makefile' has modification time 2.1e+04 s in the future
> /bin/bash ../libtool --tag=CC --mode=link cc  -xarch=v9   -o direct_tcpip  direct_tcpip.o ../src/libssh2.la -lnsl -lsocket
> libtool: link: cc -xarch=v9 -o direct_tcpip direct_tcpip.o  ../src/.libs/libssh2.a -L/ctxtools/cortex/local/64bit/lib -lz -lnsl -lsocket
> Undefined                       first referenced
>  symbol                             in file
> SHA1                                ../src/.libs/libssh2.a(openssl.o)
> EVP_cast5_cbc                       ../src/.libs/libssh2.a(crypt.o)

And this shows that there is a bug in your version of libssh2 with
building examples statically. If this problem still exists in the
latest code we would obviously welcome a patch to the build files
that will fix these things.

If you don't care about the examples then I suggest downloading
the current git code. I have just pushed a commit which adds a
configure option to disable building of the example applications.

git clone git://git.libssh2.org/libssh2.git && cd libssh2 &&
./buildconf && ./configure --disable-examples-build followed by
your other configure options.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 18 16:52:16 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3IEqBfS013856;
	Wed, 18 Apr 2012 16:52:15 +0200
Received: from smtp.volz.ua (smtp.volz.ua [213.160.134.23])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3IEq9mD013813
 for <libssh2-devel@cool.haxx.se>; Wed, 18 Apr 2012 16:52:09 +0200
Received: from [10.20.0.32] (unknown [213.160.140.228])
 by smtp.volz.ua (Postfix) with ESMTP id CFC057AEBAA
 for <libssh2-devel@cool.haxx.se>; Wed, 18 Apr 2012 17:52:04 +0300 (EEST)
Message-ID: <4F8ED514.70903@i.ua>
Date: Wed, 18 Apr 2012 17:52:04 +0300
From: Oleksiy Zagorskyi <zalex_ua@i.ua>
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64;
 rv:11.0) Gecko/20120327 Thunderbird/11.0.1
MIME-Version: 1.0
To: libssh2-devel@cool.haxx.se
Subject: Re: [BUG]: perform check/rewrite the function to not hang if the
 library receives a path to a folder in the "publickey" value
References: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
 <20120414150134.3840.qmail@stuge.se>
 <0A90A784B706B04A98C0CECC5CC2C2A302B4318C@ltcfiswmsgmb23>
 <0A90A784B706B04A98C0CECC5CC2C2A302B434CC@ltcfiswmsgmb23>
 <20120418143705.24215.qmail@stuge.se>
In-Reply-To: <20120418143705.24215.qmail@stuge.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

The bug has been fixed here
http://git.libssh2.org/?p=libssh2.git;a=commitdiff;h=11f9dce3d708a9c0ad43702ea3eb6d93a3bbe527

Thanks,
Oleksiy
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 18 17:13:14 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3IFD36J031936;
	Wed, 18 Apr 2012 17:13:11 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3IFD2xC031922
 for <libssh2-devel@cool.haxx.se>; Wed, 18 Apr 2012 17:13:02 +0200
Received: (qmail 27052 invoked by uid 501); 18 Apr 2012 15:13:03 -0000
Message-ID: <20120418151303.27051.qmail@stuge.se>
Date: Wed, 18 Apr 2012 17:13:03 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: [BUG]: perform check/rewrite the function to not hang if the
 library receives a path to a folder in the "publickey" value
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <0A90A784B706B04A98C0CECC5CC2C2A302B43069@ltcfiswmsgmb23>
 <20120414150134.3840.qmail@stuge.se>
 <0A90A784B706B04A98C0CECC5CC2C2A302B4318C@ltcfiswmsgmb23>
 <0A90A784B706B04A98C0CECC5CC2C2A302B434CC@ltcfiswmsgmb23>
 <20120418143705.24215.qmail@stuge.se> <4F8ED514.70903@i.ua>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4F8ED514.70903@i.ua>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Oleksiy Zagorskyi wrote:
> The bug has been fixed here
> http://git.libssh2.org/?p=libssh2.git;a=commitdiff;h=11f9dce3d708a9c0ad43702ea3eb6d93a3bbe527
>
> Thanks,

Thanks for the report.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Fri Apr 20 04:06:37 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3K268DF025742;
	Fri, 20 Apr 2012 04:06:31 +0200
Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com
 [209.85.210.54])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3K263s4025591
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Fri, 20 Apr 2012 04:06:05 +0200
Received: by dady13 with SMTP id y13so11914523dad.13
 for <libssh2-devel@cool.haxx.se>; Thu, 19 Apr 2012 19:05:58 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:x-originating-ip:in-reply-to:references:date
 :message-id:subject:from:to:content-type:x-gm-message-state;
 bh=IP1hVEhgRM0oxPwcwQLdFcZfizlOMn9rPf7K/zUnXb0=;
 b=LDXedfQXAnMzjqPqWiVV42nl5TiRy+Ek+K6mTAbeBb058pGw/GgY8tAhQptUoQWOGr
 Qo6ujG5psstomGJo+jYcpQ7vCkp6maTQisXtztI6kmfj5PFkj2WcEl3fTD3Q8821Ku0S
 tSs2LGU0rjeuW7TrO5+oYLOGj06E42YaJLYuO6UzkmCJRzS4zPp/n2yBEqH4KCt12sFL
 U0StdU9WgwLTyUfegHbdKj7LgUI2rAb8meeyvOlbAKwxNxvFmTci2mao6rSRFrx17fK1
 rTDetoFDjREUmPYj0cS9AR7U09SSF4yQf+YLKQbOmDXESy4PL8IGjaS9T4hiLksEoGH0
 WA/A==
MIME-Version: 1.0
Received: by 10.68.201.65 with SMTP id jy1mr9105400pbc.5.1334887558880; Thu,
 19 Apr 2012 19:05:58 -0700 (PDT)
Received: by 10.68.194.231 with HTTP; Thu, 19 Apr 2012 19:05:58 -0700 (PDT)
X-Originating-IP: [69.228.132.56]
In-Reply-To: <20120404231415.3889.qmail@stuge.se>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
 <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
 <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
 <alpine.DEB.2.00.1204040848040.12939@tvnag.unkk.fr>
 <CAMS93LD7J2GLDi4NC9Kxde9Ee5cZZQDbsUHmSH_V9-3pTyLmKQ@mail.gmail.com>
 <20120404231415.3889.qmail@stuge.se>
Date: Thu, 19 Apr 2012 19:05:58 -0700
Message-ID: <CAMS93LBO7EXHJ57HguBFfceAahN+=sSmqdw-7ktS1uo+daUGFA@mail.gmail.com>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
From: Adam Craig <adamgcraig@accessnoexcuse.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Content-Type: multipart/mixed; boundary=047d7b15afe1c31ecc04be12ba2e
X-Gm-Message-State: ALoCoQleiyooVnYjz01D7COXqk78m06cQa64veM1Lkmddzue02zsm8LP9L2LYBGPvXttMVb/ff49
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--047d7b15afe1c31ecc04be12ba2e
Content-Type: text/plain; charset=ISO-8859-1

Hello again,

The attached spreadsheet summarizes a series of download tests made
using my Cocoa App that uses libssh2_sftp_read. I modified the program
to minimize the number of concurrent processes running during the
download and the number of application-specific lines of code running
during the download loop. My app ordinarily generates, uploads, and
downloads long strings of files. For these tests, I had it download
the same set of files each time. I used two servers for the tests: one
remote server in Santa Clara and one server on my local network here
in Los Angeles. The remote server became unavailable at the beginning
of this week, so I was not able to run as many tests using it. To
change the maximum size of packet receivable, I set #define
MAX_SFTP_READ_SIZE 325000 in sftp.h and passed in the max chunk size
in the table in bytes as the buffer size argument to
libssh2_sftp_read.

I found that, with the remote server, while larger packet sizes
yielded some improvement in speed, it was only barely noticeable
compared to the fluctuations in speed due to outside factors. On the
local network, the improvement in speed is pronounced from 2K to 20K
but levels off at higher sizes. I also noticed that, when I tried
downloading in 70K chunks, the return value was 65536, indicating some
other limit on chunk size exists elsewhere in the code or on the
server side. Even so, tracking it down does not seem worthwhile given
that it would not lead to any performance improvements.

I noticed the following comment on the line defining the limit on
upload chunk size:
/*
 * MAX_SFTP_OUTGOING_SIZE MUST not be larger than 32500 or so. This is the
 * amount of data sent in each FXP_WRITE packet
 */
#define MAX_SFTP_OUTGOING_SIZE 32500

My guess is the "MUST" is due to the following, found in libssh2_priv.h:

/* RFC4253 section 6.1 Maximum Packet Length says:
 *
 * "All implementations MUST be able to process packets with
 * uncompressed payload length of 32768 bytes or less and
 * total packet size of 35000 bytes or less (including length,
 * padding length, payload, padding, and MAC.)."
 */
#define MAX_SSH_PACKET_LEN 35000

That is, the spec only requires that the receiving end be able to
process packets no larger than 35K, so sending packets larger than
that means the receiver might not be able to process them.

I also noticed the following in sftp.c:
/* This is the maximum packet length to accept, as larger than this indicate
   some kind of server problem. */
#define LIBSSH2_SFTP_PACKET_MAXLEN  80000

I do not see why 80K is the cutoff here.

If the spec says the max packet size is 35K, then it would make more
sense to make all the hard-coded limits on packet size 35K and let
users limit packet size further through the buffer sizes they pass to
the read and write statements.

This largely resolves my question. My current plan for my app is to
set both upload and download packet sizes at around 32K. If the
program still does not download files fast enough for my purposes, I
will write a custom server side that caches frequently-requested files
in program memory, so that it can serve them without loading them from
the file system.

On 4/4/12, Peter Stuge <peter@stuge.se> wrote:
> Adam Craig wrote:
>> My understanding is that using larger packets and thus uploading or
>> downloading in fewer calls can be faster up to a point
>
> SFTP is fairly low-level. Consider that across the internet you
> rarely have larger MTUs than 1500 bytes.
>
>
>> I will try some other sizes and see.
>
> Looking forward to your results! Will you try both short and long
> links?
>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>

--047d7b15afe1c31ecc04be12ba2e
Content-Type: application/vnd.oasis.opendocument.spreadsheet; 
	name="libssh2_sftp_performance_data.ods"
Content-Disposition: attachment; 
	filename="libssh2_sftp_performance_data.ods"
Content-Transfer-Encoding: base64
X-Attachment-Id: file0

UEsDBBQAAAgAAHUHlECFbDmKLgAAAC4AAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2Fz
aXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0UEsDBBQAAAgAAHUHlEAAAAAAAAAAAAAAAAAaAAAA
Q29uZmlndXJhdGlvbnMyL3N0YXR1c2Jhci9QSwMEFAAICAgAdQeUQAAAAAAAAAAAAAAAACcAAABD
b25maWd1cmF0aW9uczIvYWNjZWxlcmF0b3IvY3VycmVudC54bWwDAFBLBwgAAAAAAgAAAAAAAABQ
SwMEFAAACAAAdQeUQAAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9uczIvZmxvYXRlci9QSwME
FAAACAAAdQeUQAAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIvcG9wdXBtZW51L1BLAwQU
AAAIAAB1B5RAAAAAAAAAAAAAAAAAHAAAAENvbmZpZ3VyYXRpb25zMi9wcm9ncmVzc2Jhci9QSwME
FAAACAAAdQeUQAAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIvdG9vbHBhbmVsL1BLAwQU
AAAIAAB1B5RAAAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi9tZW51YmFyL1BLAwQUAAAI
AAB1B5RAAAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi90b29sYmFyL1BLAwQUAAAIAAB1
B5RAAAAAAAAAAAAAAAAAHwAAAENvbmZpZ3VyYXRpb25zMi9pbWFnZXMvQml0bWFwcy9QSwMEFAAI
CAgAdQeUQAAAAAAAAAAAAAAAAAsAAABjb250ZW50LnhtbO2dW4/buBWA3/srDBco2gfLvIqUmknR
tCj2YdMWmyzQV40tj93IkiHJM5n++pLUxRQlz3rioS9jAkESH5IiRfHjOTy8ffjL93UyeozzYpWl
d2PogfEoTmfZfJU+3I1//fqPCR//5ePvPmSLxWoWh/Nstl3HaTmZZWkp/h2J1GkRVqF3422ehllU
rIowjdZxEZazMNvEaZMq1GOHKq9KUpTPycHJVWQ9dRl/Lw9NLON20kb3h+esIuup53n0dGhiGVdU
qp58kR2a+HuRTBaZqPX1JipXRim+J6v02914WZabcDp9enrynrCX5Q9TGATBVIW2BZ618TbbPFGx
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
AAB1B5RAtZLY4uMDAADjAwAACAAAAG1ldGEueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KPG9mZmljZTpkb2N1bWVudC1tZXRhIHhtbG5zOm9mZmljZT0idXJuOm9hc2lz
Om5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZmZpY2U6MS4wIiB4bWxuczp4bGluaz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9l
bGVtZW50cy8xLjEvIiB4bWxuczptZXRhPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50
OnhtbG5zOm1ldGE6MS4wIiB4bWxuczpvb289Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDA0L29m
ZmljZSIgeG1sbnM6Z3JkZGw9Imh0dHA6Ly93d3cudzMub3JnLzIwMDMvZy9kYXRhLXZpZXcjIiBv
ZmZpY2U6dmVyc2lvbj0iMS4yIiBncmRkbDp0cmFuc2Zvcm1hdGlvbj0iaHR0cDovL2RvY3Mub2Fz
aXMtb3Blbi5vcmcvb2ZmaWNlLzEuMi94c2x0L29kZjJyZGYueHNsIj48b2ZmaWNlOm1ldGE+PG1l
dGE6aW5pdGlhbC1jcmVhdG9yPkFkYW0gQ3JhaWc8L21ldGE6aW5pdGlhbC1jcmVhdG9yPjxtZXRh
OmNyZWF0aW9uLWRhdGU+MjAxMi0wNC0xNlQxNTo0MToyMjwvbWV0YTpjcmVhdGlvbi1kYXRlPjxk
YzpkYXRlPjIwMTItMDQtMTlUMTc6NTk6NDM8L2RjOmRhdGU+PGRjOmNyZWF0b3I+QWRhbSBDcmFp
ZzwvZGM6Y3JlYXRvcj48bWV0YTplZGl0aW5nLWR1cmF0aW9uPlBUMjBIOU01N1M8L21ldGE6ZWRp
dGluZy1kdXJhdGlvbj48bWV0YTplZGl0aW5nLWN5Y2xlcz4xMjwvbWV0YTplZGl0aW5nLWN5Y2xl
cz48bWV0YTpnZW5lcmF0b3I+T3Blbk9mZmljZS5vcmcvMy4zJFVuaXggT3Blbk9mZmljZS5vcmdf
cHJvamVjdC8zMzBtMjAkQnVpbGQtOTU2NzwvbWV0YTpnZW5lcmF0b3I+PG1ldGE6ZG9jdW1lbnQt
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
--047d7b15afe1c31ecc04be12ba2e
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--047d7b15afe1c31ecc04be12ba2e--

From libssh2-devel-bounces@cool.haxx.se  Fri Apr 20 04:14:27 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3K2EOUU000806;
	Fri, 20 Apr 2012 04:14:26 +0200
Received: from mail-pz0-f54.google.com (mail-pz0-f54.google.com
 [209.85.210.54])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3K2EL52000774
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Fri, 20 Apr 2012 04:14:23 +0200
Received: by dady13 with SMTP id y13so11923010dad.13
 for <libssh2-devel@cool.haxx.se>; Thu, 19 Apr 2012 19:14:17 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:x-originating-ip:in-reply-to:references:date
 :message-id:subject:from:to:content-type:x-gm-message-state;
 bh=x69nHWHInb+Hws4s6XKOpws1fP7cW0XsuVi0OAPdDDk=;
 b=YKCLIaUa2Pm4btQiGC7+svZL26KsOy64MpJKXX+Qy4horzxRhxH/WyEYjoBnq8T1+4
 rrHvJCUp8X1gAK8zv3/J9rO0erhBWJldOLA938aUtQJ4jpzbjdzrsvxel9gmm3Zw0efr
 n+4fHxuO+QnFGGCHKsP10rm764j8iWd1iIyx/ajqqwpWBHr3OoQzy7nZ6K6iIrry8gSc
 Cm4aKMkYslMmGaGYULm2xc6+APvvIi/nFj80Mn1bDk+VAVyZgc+DLz0jhD8r8HD/0NcB
 hyXh3aM3cnhQxT3fikaa1P51nsgpZKQcSFjML9vih2AETJozJQfD6DTDWb1Dlau0WTIk
 Lz4w==
MIME-Version: 1.0
Received: by 10.68.223.33 with SMTP id qr1mr9034177pbc.47.1334887731345; Thu,
 19 Apr 2012 19:08:51 -0700 (PDT)
Received: by 10.68.194.231 with HTTP; Thu, 19 Apr 2012 19:08:50 -0700 (PDT)
X-Originating-IP: [69.228.132.56]
In-Reply-To: <20120404231415.3889.qmail@stuge.se>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
 <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
 <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
 <alpine.DEB.2.00.1204040848040.12939@tvnag.unkk.fr>
 <CAMS93LD7J2GLDi4NC9Kxde9Ee5cZZQDbsUHmSH_V9-3pTyLmKQ@mail.gmail.com>
 <20120404231415.3889.qmail@stuge.se>
Date: Thu, 19 Apr 2012 19:08:50 -0700
Message-ID: <CAMS93LDBNMnywjZpOxdgUECkberwVSX=NiBWtXHqTJP+BnTxrQ@mail.gmail.com>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
From: Adam Craig <adamgcraig@accessnoexcuse.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Content-Type: multipart/mixed; boundary=047d7b1634bf0ab8ac04be12c5de
X-Gm-Message-State: ALoCoQlHZwB2pru9kGreqWxchbHUM9OfjfMxmZw7lg9tfnX8/MXMTVOhBAdjPTAV3+4lgYsdcFeD
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--047d7b1634bf0ab8ac04be12c5de
Content-Type: text/plain; charset=ISO-8859-1

Hello again,

The attached spreadsheet summarizes a series of download tests made
using my Cocoa App that uses libssh2_sftp_read. I modified the program
to minimize the number of concurrent processes running during the
download and the number of application-specific lines of code running
during the download loop. My app ordinarily generates, uploads, and
downloads long strings of files. For these tests, I had it download
the same set of files each time. I used two servers for the tests: one
remote server in Santa Clara and one server on my local network here
in Los Angeles. The remote server became unavailable at the beginning
of this week, so I was not able to run as many tests using it. To
change the maximum size of packet receivable, I set #define
MAX_SFTP_READ_SIZE 325000 in sftp.h and passed in the max chunk size
in the table in bytes as the buffer size argument to
libssh2_sftp_read.

I found that, with the remote server, while larger packet sizes
yielded some improvement in speed, it was only barely noticeable
compared to the fluctuations in speed due to outside factors. On the
local network, the improvement in speed is pronounced from 2K to 20K
but levels off at higher sizes. I also noticed that, when I tried
downloading in 70K chunks, the return value was 65536, indicating some
other limit on chunk size exists elsewhere in the code or on the
server side. Even so, tracking it down does not seem worthwhile given
that it would not lead to any performance improvements.

I noticed the following comment on the line defining the limit on
upload chunk size:
/*
 * MAX_SFTP_OUTGOING_SIZE MUST not be larger than 32500 or so. This is the
 * amount of data sent in each FXP_WRITE packet
 */
#define MAX_SFTP_OUTGOING_SIZE 32500

My guess is the "MUST" is due to the following, found in libssh2_priv.h:

/* RFC4253 section 6.1 Maximum Packet Length says:
 *
 * "All implementations MUST be able to process packets with
 * uncompressed payload length of 32768 bytes or less and
 * total packet size of 35000 bytes or less (including length,
 * padding length, payload, padding, and MAC.)."
 */
#define MAX_SSH_PACKET_LEN 35000

That is, the spec only requires that the receiving end be able to
process packets no larger than 35K, so sending packets larger than
that means the receiver might not be able to process them.

I also noticed the following in sftp.c:
/* This is the maximum packet length to accept, as larger than this indicate
   some kind of server problem. */
#define LIBSSH2_SFTP_PACKET_MAXLEN  80000

I do not see why 80K is the cutoff here.

If the spec says the max packet size is 35K, then it would make more
sense to make all the hard-coded limits on packet size 35K and let
users limit packet size further through the buffer sizes they pass to
the read and write statements.

This largely resolves my question. My current plan for my app is to
set both upload and download packet sizes at around 32K. If the
program still does not download files fast enough for my purposes, I
will write a custom server side that caches frequently-requested files
in program memory, so that it can serve them without loading them from
the file system.

That will keep me busy for a while, but I hope to contribute to this
project when circumstances permit.

Thanks again,
Adam Craig

On 4/4/12, Peter Stuge <peter@stuge.se> wrote:
> Adam Craig wrote:
>> My understanding is that using larger packets and thus uploading or
>> downloading in fewer calls can be faster up to a point
>
> SFTP is fairly low-level. Consider that across the internet you
> rarely have larger MTUs than 1500 bytes.
>
>
>> I will try some other sizes and see.
>
> Looking forward to your results! Will you try both short and long
> links?
>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>

--047d7b1634bf0ab8ac04be12c5de
Content-Type: application/vnd.oasis.opendocument.spreadsheet; 
	name="libssh2_sftp_performance_data.ods"
Content-Disposition: attachment; 
	filename="libssh2_sftp_performance_data.ods"
Content-Transfer-Encoding: base64
X-Attachment-Id: file0

UEsDBBQAAAgAAHUHlECFbDmKLgAAAC4AAAAIAAAAbWltZXR5cGVhcHBsaWNhdGlvbi92bmQub2Fz
aXMub3BlbmRvY3VtZW50LnNwcmVhZHNoZWV0UEsDBBQAAAgAAHUHlEAAAAAAAAAAAAAAAAAaAAAA
Q29uZmlndXJhdGlvbnMyL3N0YXR1c2Jhci9QSwMEFAAICAgAdQeUQAAAAAAAAAAAAAAAACcAAABD
b25maWd1cmF0aW9uczIvYWNjZWxlcmF0b3IvY3VycmVudC54bWwDAFBLBwgAAAAAAgAAAAAAAABQ
SwMEFAAACAAAdQeUQAAAAAAAAAAAAAAAABgAAABDb25maWd1cmF0aW9uczIvZmxvYXRlci9QSwME
FAAACAAAdQeUQAAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIvcG9wdXBtZW51L1BLAwQU
AAAIAAB1B5RAAAAAAAAAAAAAAAAAHAAAAENvbmZpZ3VyYXRpb25zMi9wcm9ncmVzc2Jhci9QSwME
FAAACAAAdQeUQAAAAAAAAAAAAAAAABoAAABDb25maWd1cmF0aW9uczIvdG9vbHBhbmVsL1BLAwQU
AAAIAAB1B5RAAAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi9tZW51YmFyL1BLAwQUAAAI
AAB1B5RAAAAAAAAAAAAAAAAAGAAAAENvbmZpZ3VyYXRpb25zMi90b29sYmFyL1BLAwQUAAAIAAB1
B5RAAAAAAAAAAAAAAAAAHwAAAENvbmZpZ3VyYXRpb25zMi9pbWFnZXMvQml0bWFwcy9QSwMEFAAI
CAgAdQeUQAAAAAAAAAAAAAAAAAsAAABjb250ZW50LnhtbO2dW4/buBWA3/srDBco2gfLvIqUmknR
tCj2YdMWmyzQV40tj93IkiHJM5n++pLUxRQlz3rioS9jAkESH5IiRfHjOTy8ffjL93UyeozzYpWl
d2PogfEoTmfZfJU+3I1//fqPCR//5ePvPmSLxWoWh/Nstl3HaTmZZWkp/h2J1GkRVqF3422ehllU
rIowjdZxEZazMNvEaZMq1GOHKq9KUpTPycHJVWQ9dRl/Lw9NLON20kb3h+esIuup53n0dGhiGVdU
qp58kR2a+HuRTBaZqPX1JipXRim+J6v02914WZabcDp9enrynrCX5Q9TGATBVIW2BZ618TbbPFGx
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
AAB1B5RAtZLY4uMDAADjAwAACAAAAG1ldGEueG1sPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KPG9mZmljZTpkb2N1bWVudC1tZXRhIHhtbG5zOm9mZmljZT0idXJuOm9hc2lz
Om5hbWVzOnRjOm9wZW5kb2N1bWVudDp4bWxuczpvZmZpY2U6MS4wIiB4bWxuczp4bGluaz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9l
bGVtZW50cy8xLjEvIiB4bWxuczptZXRhPSJ1cm46b2FzaXM6bmFtZXM6dGM6b3BlbmRvY3VtZW50
OnhtbG5zOm1ldGE6MS4wIiB4bWxuczpvb289Imh0dHA6Ly9vcGVub2ZmaWNlLm9yZy8yMDA0L29m
ZmljZSIgeG1sbnM6Z3JkZGw9Imh0dHA6Ly93d3cudzMub3JnLzIwMDMvZy9kYXRhLXZpZXcjIiBv
ZmZpY2U6dmVyc2lvbj0iMS4yIiBncmRkbDp0cmFuc2Zvcm1hdGlvbj0iaHR0cDovL2RvY3Mub2Fz
aXMtb3Blbi5vcmcvb2ZmaWNlLzEuMi94c2x0L29kZjJyZGYueHNsIj48b2ZmaWNlOm1ldGE+PG1l
dGE6aW5pdGlhbC1jcmVhdG9yPkFkYW0gQ3JhaWc8L21ldGE6aW5pdGlhbC1jcmVhdG9yPjxtZXRh
OmNyZWF0aW9uLWRhdGU+MjAxMi0wNC0xNlQxNTo0MToyMjwvbWV0YTpjcmVhdGlvbi1kYXRlPjxk
YzpkYXRlPjIwMTItMDQtMTlUMTc6NTk6NDM8L2RjOmRhdGU+PGRjOmNyZWF0b3I+QWRhbSBDcmFp
ZzwvZGM6Y3JlYXRvcj48bWV0YTplZGl0aW5nLWR1cmF0aW9uPlBUMjBIOU01N1M8L21ldGE6ZWRp
dGluZy1kdXJhdGlvbj48bWV0YTplZGl0aW5nLWN5Y2xlcz4xMjwvbWV0YTplZGl0aW5nLWN5Y2xl
cz48bWV0YTpnZW5lcmF0b3I+T3Blbk9mZmljZS5vcmcvMy4zJFVuaXggT3Blbk9mZmljZS5vcmdf
cHJvamVjdC8zMzBtMjAkQnVpbGQtOTU2NzwvbWV0YTpnZW5lcmF0b3I+PG1ldGE6ZG9jdW1lbnQt
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
--047d7b1634bf0ab8ac04be12c5de
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--047d7b1634bf0ab8ac04be12c5de--

From libssh2-devel-bounces@cool.haxx.se  Fri Apr 20 09:56:51 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3K7uOiF022734;
	Fri, 20 Apr 2012 09:56:47 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3K7uMJq022716
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Fri, 20 Apr 2012 09:56:22 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q3K7uLcn022713
 for <libssh2-devel@cool.haxx.se>; Fri, 20 Apr 2012 09:56:21 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Fri, 20 Apr 2012 09:56:21 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
In-Reply-To: <CAMS93LBO7EXHJ57HguBFfceAahN+=sSmqdw-7ktS1uo+daUGFA@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204200912390.9698@tvnag.unkk.fr>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
 <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
 <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
 <alpine.DEB.2.00.1204040848040.12939@tvnag.unkk.fr>
 <CAMS93LD7J2GLDi4NC9Kxde9Ee5cZZQDbsUHmSH_V9-3pTyLmKQ@mail.gmail.com>
 <20120404231415.3889.qmail@stuge.se>
 <CAMS93LBO7EXHJ57HguBFfceAahN+=sSmqdw-7ktS1uo+daUGFA@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Thu, 19 Apr 2012, Adam Craig wrote:

> I found that, with the remote server, while larger packet sizes yielded some 
> improvement in speed, it was only barely noticeable compared to the 
> fluctuations in speed due to outside factors. On the local network, the 
> improvement in speed is pronounced from 2K to 20K but levels off at higher 
> sizes.

Thanks for doing this!

Unfortunately I still believe there are too many unknowns in this equation and 
you've done your tests on a too limited test set to make us draw very many 
conclusions for libssh2 genericly as opposed for libssh2 in your particular 
case.

For example:

A) you only used OpenSSH servers on Linux, possibly not even using very
    different versions. we must expect different server ends to react
    differently

B) what were the RTT times against these servers? SFTP will perform
    significantly different for varying RTT. One of the major challanges with
    SFTP is to make it run fast for the whole range of possible RTT

C) which crypto backend and version was used in libssh2? I've seen people
    report very different results when using gcrypt vs openssl

D) how large buffers did you pass in to libssh2_sftp_read() when you ran these
    tests and how did did different such sizes affect the test results?

> I noticed the following comment on the line defining the limit on
> upload chunk size:
> /*
> * MAX_SFTP_OUTGOING_SIZE MUST not be larger than 32500 or so. This is the
> * amount of data sent in each FXP_WRITE packet
> */
> #define MAX_SFTP_OUTGOING_SIZE 32500
>
> My guess is the "MUST" is due to the following, found in libssh2_priv.h:

It is due to phrasing in the SSH and SFTP protocol specs, yes.

> I also noticed the following in sftp.c:
> /* This is the maximum packet length to accept, as larger than this indicate
>   some kind of server problem. */
> #define LIBSSH2_SFTP_PACKET_MAXLEN  80000
>
> I do not see why 80K is the cutoff here.

It is no magic "cutoff" really, it is just a way for libssh2 to detect 
problems as if it gets a very large packet size it is a sign that something is 
wrong and it should escape rather than trying to allocate memory for it.

> If the spec says the max packet size is 35K, then it would make more sense 
> to make all the hard-coded limits on packet size 35K

Then read the spec. Does it say 35K? And further, does 35K work against all 
the relevant server implementations? We're being slightly conservative in the 
name of interoperability.

> and let users limit packet size further through the buffer sizes they pass 
> to the read and write statements.

Then you have grossly missed the finer implementation details of the SFTP read 
and write functions libssh2 provides. It does a lot of work to allow 
applications to get high throughput by splitting up the buffer in many slices. 
(which is what I alluded to above in my point "D"). Leaving that to the 
application would certainly be possible, but will require a new API to still 
offer high speed transfers.

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 23 01:07:11 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3MN6orS008170;
	Mon, 23 Apr 2012 01:07:06 +0200
Received: from dns-factory.at (mail.dns-factory.at [194.242.35.75])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3MN6nRd008165
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Apr 2012 01:06:49 +0200
Received: from [172.17.100.7] lists@gknw.net [95.222.180.83]
 by dns-factory.at with NetMail SMTP Agent $Revision: 8582 $ on Novell NetWare
 via secured & encrypted transport (TLS);
 Mon, 23 Apr 2012 01:06:40 +0200
Message-ID: <4F948EF4.8090904@gknw.net>
Date: Mon, 23 Apr 2012 01:06:28 +0200
From: Guenter <lists@gknw.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de;
 rv:1.9.2.28) Gecko/20120306 Lightning/1.0b2 Thunderbird/3.1.20
MIME-Version: 1.0
To: libssh2 hacking <libssh2-devel@cool.haxx.se>
Subject: libssh2.pc lacks Requires
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q3MN6nRd008165
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-15"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id q3MN6orS008170

while on pkg-config stuff I just found that we currently miss to add the 
proper crypto lib dependencies to the libssh2.pc file; we should have a 
line like this (f.e. for libssh2 build with OpenSSL):
Requires: libssl,libcrypto

I've just committed a fix for this; please test!

Also Vincent Torri suggested this on the libcurl list (where I mentioned 
the prob 1st in another context):
[quote]
use Requires.private if pkg-config is sufficiently recent. We do this:

in configure.ac:

if $PKG_CONFIG --atleast-pkgconfig-version 0.22; then
    pkgconfig_requires_private="Requires.private"
else
    pkgconfig_requires_private="Requires"
fi
AC_SUBST(pkgconfig_requires_private)

in the .pc.in file:

@pkgconfig_requires_private@: @requirement@

(where requirements is an AC_SUBST'ed variable containing the needed 
dependencies)
[/quote]

I've no idea yet why we should prefer Requires.private over Requires and 
whats the difference/benefit ...

comments welcome!

Gün.




_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 23 01:15:52 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3MNFnHU012507;
	Mon, 23 Apr 2012 01:15:51 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3MNFl74012492
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Apr 2012 01:15:47 +0200
Received: (qmail 26143 invoked by uid 501); 22 Apr 2012 23:15:48 -0000
Message-ID: <20120422231548.26142.qmail@stuge.se>
Date: Mon, 23 Apr 2012 01:15:48 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2.pc lacks Requires
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4F948EF4.8090904@gknw.net>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <4F948EF4.8090904@gknw.net>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Guenter wrote:
> I've no idea yet why we should prefer Requires.private over Requires
> and whats the difference/benefit ...

.private (both for Libs and Requires) is shown when pkg-config is run
with --static.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 23 01:18:51 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3MNInti013635;
	Mon, 23 Apr 2012 01:18:51 +0200
Received: from dns-factory.at (mx03.dns-factory.at [194.242.35.75])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3MNIl3j013629
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Apr 2012 01:18:47 +0200
Received: from [172.17.100.7] lists@gknw.net [95.222.180.83]
 by dns-factory.at with NetMail SMTP Agent $Revision: 8582 $ on Novell NetWare
 via secured & encrypted transport (TLS);
 Mon, 23 Apr 2012 01:18:41 +0200
Message-ID: <4F9491C3.9000604@gknw.net>
Date: Mon, 23 Apr 2012 01:18:27 +0200
From: Guenter <lists@gknw.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de;
 rv:1.9.2.28) Gecko/20120306 Lightning/1.0b2 Thunderbird/3.1.20
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2.pc lacks Requires
References: <4F948EF4.8090904@gknw.net> <20120422231548.26142.qmail@stuge.se>
In-Reply-To: <20120422231548.26142.qmail@stuge.se>
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q3MNIl3j013629
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id q3MNInti013635

Am 23.04.2012 01:15, schrieb Peter Stuge:
> Guenter wrote:
>> I've no idea yet why we should prefer Requires.private over Requires
>> and whats the difference/benefit ...
>
> .private (both for Libs and Requires) is shown when pkg-config is run
> with --static.
then we should just duplicate it and have both, or?

Gün.



_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 23 01:18:58 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3MNIvET013762;
	Mon, 23 Apr 2012 01:18:58 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3MNItCx013751
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Apr 2012 01:18:55 +0200
Received: (qmail 26405 invoked by uid 501); 22 Apr 2012 23:18:57 -0000
Message-ID: <20120422231857.26404.qmail@stuge.se>
Date: Mon, 23 Apr 2012 01:18:57 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: libssh2.pc lacks Requires
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <4F948EF4.8090904@gknw.net> <20120422231548.26142.qmail@stuge.se>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <20120422231548.26142.qmail@stuge.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Peter Stuge wrote:
> Guenter wrote:
> > I've no idea yet why we should prefer Requires.private over Requires
> > and whats the difference/benefit ...
> 
> .private (both for Libs and Requires) is shown when pkg-config is run
> with --static.

So we should have both of them if pkg-config supports it.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 23 01:37:12 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3MNb4H9024228;
	Mon, 23 Apr 2012 01:37:11 +0200
Received: from dottedmag.net (mail.dottedmag.net [IPv6:2002:4e2e:4b7c::1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3MNb3Ud024220
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Apr 2012 01:37:03 +0200
Received: from leibnitz.dottedmag.net (unknown
 [IPv6:2001:0:53aa:64c:cc5:deb7:abcf:2a98])
 by dottedmag.net (Postfix) with ESMTPSA id 91E7834600B
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Apr 2012 01:37:03 +0200 (CEST)
Received: from dottedmag by leibnitz.dottedmag.net with local (Exim 4.77)
 (envelope-from <dottedmag@dottedmag.net>) id 1SM6Kk-0006P2-Ek
 for libssh2-devel@cool.haxx.se; Mon, 23 Apr 2012 01:36:46 +0200
From: Mikhail Gusarov <dottedmag@dottedmag.net>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2.pc lacks Requires
References: <4F948EF4.8090904@gknw.net> <20120422231548.26142.qmail@stuge.se>
 <4F9491C3.9000604@gknw.net>
Date: Mon, 23 Apr 2012 01:36:45 +0200
In-Reply-To: <4F9491C3.9000604@gknw.net> (Guenter's message of "Mon, 23 Apr
 2012 01:18:27 +0200")
Message-ID: <8762crmj8y.fsf@leibnitz.dottedmag.net>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux)
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0116599783=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0116599783==
Content-Type: multipart/signed; boundary="=-=-=";
	micalg=pgp-sha1; protocol="application/pgp-signature"

--=-=-=
Content-Transfer-Encoding: quoted-printable


Twas brillig at 01:18:27 23.04.2012 UTC+02 when lists@gknw.net did gyre and=
 gimble:

 >> .private (both for Libs and Requires) is shown when pkg-config is run
 >> with --static.
 G> then we should just duplicate it and have both, or?

No.

If the library is exposed in Libs/Requires, then the client of shared
version libssh2 is becoming linked to this library, which is a bad thing
(e.g. see http://wiki.mandriva.com/en/Overlinking ).

=2D-=20

--=-=-=
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iQIcBAEBAgAGBQJPlJYOAAoJEJ0g9lA+M4iI5YAQAIJ1T0wJq00sAYMOkuCRuLu4
ocrSAncX3Tzt4NdBqKh+9x7qH7URHBmc3Bl/DWzodrKUFjw0JvH4GE2JqdCfdfoC
JWd7sDuN64AP44v0uDqMlKBNQnig3Ecj4ZxlABgksd2dd2keEnisvcqQd9GMXAkl
foI7mOSKC1wMPzXNAHoHssn1X1JE20der/Io6mdiIp9FvsjghKOypFIAvEfflCS9
iVfBG1pYdF6bguo86GVcxD5HRWAPQLbSppP+AA6CSY6ZDDhudn7b/09Qnoio3/uV
W3Rqg6h99VC8/0mr+POIwAFsZpjwZ7LCKGkORg/kC/TPOw8ZxDVisWVbvyZBJNJL
Ny0TbrjgPgEuMhTCMczyNmMGKz9/+EWsqX4dFzkw/yWn9wpCE2gz5WrFt5ekYp3V
THzcP2naKt7xJneHgDfVccpxqJ5Unr89VVp8GD/tIHt7EvgVk2u/CLjeFXhMjw1o
Vyc3pqTzIwfeVuQGNxyoPg9li3iOVQP+CbkFz6Vp2ckOqV90lSvzhlS6jfkI7nHU
SASRh4hafhvYbldIfGtPeEVoufW7ohUNo/X7KaM87GWq+1HVQV33Fy4XxRYzJaqA
Mi8NEz+294/dm5XPkbVCnzD26hnclzO/NQ/1j+1ULplnslYpU7Di6pAwHiYIFVgT
ELgxyear7MJ9d0mrcVhX
=lhv6
-----END PGP SIGNATURE-----
--=-=-=--

--===============0116599783==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0116599783==--

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 23 09:49:22 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3N7n3DI019421;
	Mon, 23 Apr 2012 09:49:18 +0200
Received: from mail-qc0-f182.google.com (mail-qc0-f182.google.com
 [209.85.216.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3N7n06N019268
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Apr 2012 09:49:01 +0200
Received: by qcsg15 with SMTP id g15so7519576qcs.41
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Apr 2012 00:48:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type:content-transfer-encoding;
 bh=8UNp7MpGy8Z/kpBClRcGOsfTQ6ZICy6qL+3jlalnkXg=;
 b=KuINIYWXz5bV6TNl/G/2Q40sL8u7ZyMVX4OZXwMiOADZIEGO6/2gVhWptxu5oeSk8Y
 1VjvL2vH6Euy6WetsgL0hrIMPVh+62+cZLoLqn4/TKA7rfCoN4LC5iIUnRVAIFcKCQ4V
 5NJl+Y/fL3i6vWTz2iQPz6/v/d7PdkPZU/FK3Z1OjcgSQHzfULeEzar+gCXD9gNOD0m3
 KBZuHpKuOTK5rDkfdvt6wRCwvJ9iw8RJBEWsP7fXhI9vdT7Hg4ackWifDqHmriOmBDLQ
 mV2tvp+zGlA+y5MRb/KnYxpgk+eD6rQRr28Gl/+cAHNoOyZsmFq9GjOILEwfQ0iZtsBw
 gMdw==
MIME-Version: 1.0
Received: by 10.224.106.131 with SMTP id x3mr12665212qao.23.1335167334202;
 Mon, 23 Apr 2012 00:48:54 -0700 (PDT)
Received: by 10.224.211.133 with HTTP; Mon, 23 Apr 2012 00:48:54 -0700 (PDT)
In-Reply-To: <8762crmj8y.fsf@leibnitz.dottedmag.net>
References: <4F948EF4.8090904@gknw.net> <20120422231548.26142.qmail@stuge.se>
 <4F9491C3.9000604@gknw.net> <8762crmj8y.fsf@leibnitz.dottedmag.net>
Date: Mon, 23 Apr 2012 09:48:54 +0200
Message-ID: <CAMq1adpGBZZXg40RdGF=kVbyEzN6Kvd8t7=Kru8j1Y2acwZ0mw@mail.gmail.com>
Subject: Re: libssh2.pc lacks Requires
From: Vincent Torri <vincent.torri@gmail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q3N7n06N019268
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id q3N7n3DI019421

On Mon, Apr 23, 2012 at 1:36 AM, Mikhail Gusarov
<dottedmag@dottedmag.net> wrote:
>
> Twas brillig at 01:18:27 23.04.2012 UTC+02 when lists@gknw.net did gyre and gimble:
>
>  >> .private (both for Libs and Requires) is shown when pkg-config is run
>  >> with --static.
>  G> then we should just duplicate it and have both, or?
>
> No.
>
> If the library is exposed in Libs/Requires, then the client of shared
> version libssh2 is becoming linked to this library, which is a bad thing
> (e.g. see http://wiki.mandriva.com/en/Overlinking ).

Right. I post here a discussion i had in the pkg-config list with the
same problem : http://lists.freedesktop.org/archives/pkg-config/2010-June/000604.html

Vincent Torri

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 23 12:46:52 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3NAkZ9S030634;
	Mon, 23 Apr 2012 12:46:50 +0200
Received: from dns-factory.at (mx03.dns-factory.at [194.242.35.75])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3NAkYmE030627
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Apr 2012 12:46:34 +0200
Received: from [172.17.100.7] lists@gknw.net [95.222.180.83]
 by dns-factory.at with NetMail SMTP Agent $Revision: 8582 $ on Novell NetWare
 via secured & encrypted transport (TLS);
 Mon, 23 Apr 2012 12:46:24 +0200
Message-ID: <4F9532F6.8090403@gknw.net>
Date: Mon, 23 Apr 2012 12:46:14 +0200
From: Guenter <lists@gknw.net>
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de;
 rv:1.9.2.28) Gecko/20120306 Lightning/1.0b2 Thunderbird/3.1.20
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2.pc lacks Requires
References: <4F948EF4.8090904@gknw.net> <20120422231548.26142.qmail@stuge.se>
 <4F9491C3.9000604@gknw.net> <8762crmj8y.fsf@leibnitz.dottedmag.net>
 <CAMq1adpGBZZXg40RdGF=kVbyEzN6Kvd8t7=Kru8j1Y2acwZ0mw@mail.gmail.com>
In-Reply-To: <CAMq1adpGBZZXg40RdGF=kVbyEzN6Kvd8t7=Kru8j1Y2acwZ0mw@mail.gmail.com>
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q3NAkYmE030627
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id q3NAkZ9S030634

Am 23.04.2012 09:48, schrieb Vincent Torri:
> On Mon, Apr 23, 2012 at 1:36 AM, Mikhail Gusarov
> <dottedmag@dottedmag.net>  wrote:
>>
>> Twas brillig at 01:18:27 23.04.2012 UTC+02 when lists@gknw.net did gyre and gimble:
>>
>>   >>  .private (both for Libs and Requires) is shown when pkg-config is run
>>   >>  with --static.
>>   G>  then we should just duplicate it and have both, or?
>>
>> No.
>>
>> If the library is exposed in Libs/Requires, then the client of shared
>> version libssh2 is becoming linked to this library, which is a bad thing
>> (e.g. see http://wiki.mandriva.com/en/Overlinking ).
>
> Right. I post here a discussion i had in the pkg-config list with the
> same problem : http://lists.freedesktop.org/archives/pkg-config/2010-June/000604.html
thanks Vincent.
I did for now just change to 'Requires.private' since only apps which 
link statically against libssh2 need the dependencies. Not sure if the 
hack what you suggested is needed - pkg-config 0.22 is close to 5 years 
out already, and IMO if some uses a version < 0.22 and this fails its 
probably a good reminder to the developer to update.
One thing remains though: we do not yet cope with libz dependency. 
Shouldnt we have -lz with 'Libs.private:' when build with zlib?

Gün.



_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 23 12:54:40 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3NAsWTG003032;
	Mon, 23 Apr 2012 12:54:38 +0200
Received: from mail-qa0-f47.google.com (mail-qa0-f47.google.com
 [209.85.216.47])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3NAsTkU002966
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Apr 2012 12:54:29 +0200
Received: by qabg1 with SMTP id g1so1906498qab.13
 for <libssh2-devel@cool.haxx.se>; Mon, 23 Apr 2012 03:54:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type:content-transfer-encoding;
 bh=2PHSuPa++eEBXoCdoRabA5aPXxLKc9FFPtvN7d+hzns=;
 b=xr1U9u61ZiqVOcpJjeq+M9aFe96la4c/7Z2cCu2tRgpFJweeedB7wl1kBuhcG8Ji4W
 yUWPrYkwy4c7UnG6qs9AyhKx/KdcZRn+DgsqBgdN+oZz1mManYYTd+miZmbt2OhS05Xw
 FAv+9S2KpFCMTVPJsTZbCtGXzMjfkiezMlN/ezFxgd3lYCu/jLafHJM3/5lJehk7Ckp0
 1NUPu8nWz9Av513UMULSvDh61YTd615En8RUL3Kh7dEq2IvgvoCYlDCPFamVsbC8XLXV
 PsBiVtcbSkRdY15J6tkvVNTQvqB7kNgdlkKcoctlafbmAT30KanaZnkgdlbeZlpekqeC
 5HOg==
MIME-Version: 1.0
Received: by 10.224.109.65 with SMTP id i1mr13478958qap.39.1335178464299; Mon,
 23 Apr 2012 03:54:24 -0700 (PDT)
Received: by 10.224.211.133 with HTTP; Mon, 23 Apr 2012 03:54:24 -0700 (PDT)
In-Reply-To: <4F9532F6.8090403@gknw.net>
References: <4F948EF4.8090904@gknw.net> <20120422231548.26142.qmail@stuge.se>
 <4F9491C3.9000604@gknw.net> <8762crmj8y.fsf@leibnitz.dottedmag.net>
 <CAMq1adpGBZZXg40RdGF=kVbyEzN6Kvd8t7=Kru8j1Y2acwZ0mw@mail.gmail.com>
 <4F9532F6.8090403@gknw.net>
Date: Mon, 23 Apr 2012 12:54:24 +0200
Message-ID: <CAMq1adp_2a19=kDnT-tMExcBStkzGsS8Fe82aqER-w3C8FfcdA@mail.gmail.com>
Subject: Re: libssh2.pc lacks Requires
From: Vincent Torri <vincent.torri@gmail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id
 q3NAsTkU002966
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="iso-8859-1"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id q3NAsWTG003032

On Mon, Apr 23, 2012 at 12:46 PM, Guenter <lists@gknw.net> wrote:
> Am 23.04.2012 09:48, schrieb Vincent Torri:
>>
>> On Mon, Apr 23, 2012 at 1:36 AM, Mikhail Gusarov
>> <dottedmag@dottedmag.net>  wrote:
>>>
>>>
>>> Twas brillig at 01:18:27 23.04.2012 UTC+02 when lists@gknw.net did gyre
>>> and gimble:
>>>
>>>  >>  .private (both for Libs and Requires) is shown when pkg-config is
>>> run
>>>  >>  with --static.
>>>  G>  then we should just duplicate it and have both, or?
>>>
>>> No.
>>>
>>> If the library is exposed in Libs/Requires, then the client of shared
>>> version libssh2 is becoming linked to this library, which is a bad thing
>>> (e.g. see http://wiki.mandriva.com/en/Overlinking ).
>>
>>
>> Right. I post here a discussion i had in the pkg-config list with the
>> same problem :
>> http://lists.freedesktop.org/archives/pkg-config/2010-June/000604.html
>
> thanks Vincent.
> I did for now just change to 'Requires.private' since only apps which link
> statically against libssh2 need the dependencies. Not sure if the hack what
> you suggested is needed - pkg-config 0.22 is close to 5 years out already,
> and IMO if some uses a version < 0.22 and this fails its probably a good
> reminder to the developer to update.
> One thing remains though: we do not yet cope with libz dependency. Shouldnt
> we have -lz with 'Libs.private:' when build with zlib?

it depends on how you check zlib. zlib added zlib.pc recently
(something like zlib1.2.3 or 1.2.4, i can't remember).

what you can do:

1) check if zlib.pc exists (PKG_CHECK_MODULES)
2) if yes, add zlib to Requires.private
3) if no, check if header and library files exist
  a) if yes add -lz to Libs.private
  b) if no, well, do what you want when no zlib is not found

Vincent Torri

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Apr 24 16:55:25 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3OEsvDF022528;
	Tue, 24 Apr 2012 16:55:20 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3OEssI3022480
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 24 Apr 2012 16:54:55 +0200
Received: by iahk25 with SMTP id k25so1260349iah.41
 for <libssh2-devel@cool.haxx.se>; Tue, 24 Apr 2012 07:54:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to:content-type;
 bh=rGMNXFYfWFz3MytOv9vKN3HtF8K7VKZM24ZCH3fOpgM=;
 b=Bi9GcWVql3zr5P68HEHngVd2tX8FcNXJexZ9pgPZR5wlTY7g61b0VtyoJ7pMWO/HXz
 lvTPdn9al2aqltdwYqXFudpB/zBIkHapgSIXM34Ahh9SgpkByVcUOVnY3kJi/QsFRpdD
 vWPIysEaTXBRxTiPsEemJoNgb6yV3JYptpWo6o1n6cmJMdoV+wso7X9ovIYc+zEdS4mg
 QVyGVGU+7/gGe53jdim0DcuElcjhgR1wq5+auRaGSJ3iHfhCqq+ntIaFd17O/+7wEC50
 IlgoPcfvo2QSO88ZkJrbADTA/Pxqj01vtJ+6pwnXnnb9K3ednqzsYJvpIv6RR6Va5hiw
 775g==
MIME-Version: 1.0
Received: by 10.43.44.2 with SMTP id ue2mr1859387icb.9.1335279290276; Tue, 24
 Apr 2012 07:54:50 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Tue, 24 Apr 2012 07:54:50 -0700 (PDT)
Date: Tue, 24 Apr 2012 16:54:50 +0200
Message-ID: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
Subject: EPIPE causes 'Authentication by public key failed' for examples with
 keyfile authentication at OpenSSH server
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2-devel@cool.haxx.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1203888093=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============1203888093==
Content-Type: multipart/alternative; boundary=bcaec529a077c5dc8b04be6def2a

--bcaec529a077c5dc8b04be6def2a
Content-Type: text/plain; charset=ISO-8859-1

Dear all,

the problem could be reproduced for many of the libssh2 code examples, all
that I tested, but I will focuse in ssh2.c, which I studied most.

(OS ist Ubuntu Oneiric)

First SSH keyfile authentication runs flawless when done in a terminal. The
server is OpenSSH_5.8p1, built from source for better tracing of the
problem.

So far I could identify the sore spot as a read access (of the OpenSSH
server) by atomicio resulting in an EPIPE error, but I still don't get a
good clue how this might point to what's the difference in behaviour of
libssh2 to a terminal window...

So far I, know the read takes place
in monitor_wrap.c::mm_request_receive(), which, probably more interesting,
is called by a loop in monitor.c::monitor_read(), where a the sequence can
be indentified by its monitor_reqtype's,

In succeeding case with terminal,
1) MONITOR_REQ_SIGN
2) MONITOR_REQ_PWNAM
3) MONITOR_REQ_AUTHSERV
4) MONITOR_REQ_KEYALLOWED
5) MONITOR_REQ_KEYALLOWED // 2nd...
6) MONITOR_REQ_KEYVERIFY // success...

With libssh2, the 5th step (MONITOR_REQ_KEYALLOWED) is abandoned in the
beginning by the described EPIPE error.

Does anybody have any idea??

Thanks a lot in advance, Nick

--bcaec529a077c5dc8b04be6def2a
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Dear all,<div><br></div><div>the problem could be reproduced for many of th=
e libssh2 code examples, all that I tested, but I will focuse in ssh2.c, wh=
ich I studied most.</div><div><br></div><div>(OS ist Ubuntu Oneiric)</div>
<div><br></div><div>First SSH keyfile authentication runs flawless when don=
e in a terminal. The server is OpenSSH_5.8p1, built from source for better =
tracing of the problem.</div><div><br></div><div>So far I could identify th=
e sore spot as a read access (of the=A0OpenSSH server) by=A0atomicio result=
ing in an EPIPE error, but I still don&#39;t get a good clue how this might=
 point to what&#39;s the difference in behaviour of libssh2 to a terminal w=
indow...</div>
<div><br></div><div>So far I, know the read takes place in=A0monitor_wrap.c=
::mm_request_receive(), which, probably more interesting, is called by a lo=
op in=A0monitor.c::monitor_read(), where a the sequence can be indentified =
by its monitor_reqtype&#39;s,</div>
<div><br></div><div>In succeeding case with terminal,</div><div><div>1) MON=
ITOR_REQ_SIGN</div><div>2) MONITOR_REQ_PWNAM</div><div>3) MONITOR_REQ_AUTHS=
ERV</div><div>4) MONITOR_REQ_KEYALLOWED</div><div>5) MONITOR_REQ_KEYALLOWED=
 // 2nd...</div>
<div>6) MONITOR_REQ_KEYVERIFY // success...</div></div><div><br></div><div>=
With libssh2, the 5th step (MONITOR_REQ_KEYALLOWED) is abandoned in the beg=
inning by the described EPIPE error.</div><div><br></div><div>Does anybody =
have any idea??</div>
<div><br></div><div>Thanks a lot in advance, Nick</div>

--bcaec529a077c5dc8b04be6def2a--

--===============1203888093==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1203888093==--

From libssh2-devel-bounces@cool.haxx.se  Tue Apr 24 19:07:50 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3OH7bIj025548;
	Tue, 24 Apr 2012 19:07:48 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3OH7a7G025536
 for <libssh2-devel@cool.haxx.se>; Tue, 24 Apr 2012 19:07:36 +0200
Received: (qmail 11944 invoked by uid 501); 24 Apr 2012 17:07:37 -0000
Message-ID: <20120424170737.11943.qmail@stuge.se>
Date: Tue, 24 Apr 2012 19:07:37 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: EPIPE causes 'Authentication by public key failed' for
 examples with keyfile authentication at OpenSSH server
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Nick Rudnick wrote:
> First SSH keyfile authentication runs flawless when done in a terminal.

Do you mean "the first time" or "I will list some things, the first
is that" ?


> The server is OpenSSH_5.8p1, built from source for better tracing of
> the problem.

Where is the EPIPE reported?

Please compile libssh2 with debugging enabled, and call

libssh2_trace(session, ~0);

in the example. Please send the rich debug messages to the mailing
list. Thanks!


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Tue Apr 24 23:50:52 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3OLoUnW013325;
	Tue, 24 Apr 2012 23:50:47 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3OLoSN5013285
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Tue, 24 Apr 2012 23:50:29 +0200
Received: by iahk25 with SMTP id k25so1813120iah.41
 for <libssh2-devel@cool.haxx.se>; Tue, 24 Apr 2012 14:50:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=X8IVJM1Fukqb2v/vDunNHO4iQRTdsPCDlGX/1GX2pgU=;
 b=isF+lPPkmUbiL/+LRYUYjatQ03KdgsQmkn2UD5l5Vk3SpfPY2b5HTo3Pu2Nq4ZNmmb
 2D9vXzrbYmJDWNAG1RfFu+eoE7KvC6sBMlscP8PkNcV74XNeYh305QVI5uNTY5k2MCjI
 SJuWK45RExHfyW8fwB7qvFVVHcncsnMI7VaxyEHfozcznJeqTIpW5D43VXRykTtIReOr
 qD1r/ShGK6QrbOwheWRBnCDHe1X5X0CI03hxL3HuBxk0KWpY2457eyxGrdfkZw9nTb1d
 ZEAz5iNxPJq1/O+cQHI1AsLhCQo4N84RveNUwCaeFkaSkhGefQuqleDbGZNh3ghouZXj
 471w==
MIME-Version: 1.0
Received: by 10.50.187.169 with SMTP id ft9mr63955igc.59.1335304224268; Tue,
 24 Apr 2012 14:50:24 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Tue, 24 Apr 2012 14:50:24 -0700 (PDT)
In-Reply-To: <20120424170737.11943.qmail@stuge.se>
References: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
 <20120424170737.11943.qmail@stuge.se>
Date: Tue, 24 Apr 2012 23:50:24 +0200
Message-ID: <CA+XUKchO98wZcsS4UqhbmRQArwCkH5nGTe_HXBc2viR2vPUv5w@mail.gmail.com>
Subject: Re: EPIPE causes 'Authentication by public key failed' for examples
 with keyfile authentication at OpenSSH server
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1720267712=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============1720267712==
Content-Type: multipart/alternative; boundary=14dae9340575f4627004be73bd67

--14dae9340575f4627004be73bd67
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Hi Peter,

thanks a lot for the quick response, I was absent for some hours.

2012/4/24 Peter Stuge <peter@stuge.se>

>
> > First SSH keyfile authentication runs flawless when done in a terminal.
>
> Do you mean "the first time" or "I will list some things, the first
> is that" ?
>
The latter; I guessed this to be an important observation, expecting some
configuration issue.

>
> > The server is OpenSSH_5.8p1, built from source for better tracing of
> > the problem.
>
> Where is the EPIPE reported?
>
Here a 'manual call stack':
openssh-5.8p1,
- - - - - - - - - -
atomicio.c::atomicio6()::line 73:
This seems like an empty/closed pipe; atomicio is a "C higher order
function" given a read.
- - - - - - - - - -
monitor_wrap.c::mm_request_receive()::line 126:
- - - - - - - - - -
monitor.c::monitor_read()::line 478:
It happens when =96 with a terminal =96 OpenSSH request a message with
MONITOR_REQ_KEYALLOWED
again =96 as the first bytes of the code are identical,

\20\0\0\0\2\0\0\0\0\0\0\0\0\0\0\1\23\0\0\0\7ssh-rsa\0\0\0\3\1\0\1\0\0\1\1\0=
\0%\189\24p4q\19\163\248...
- - - - - - - - - -
monitor.c::monitor_child_preauth()::line 369:
This is the while loop (excuse me, please, not in monitor_read()...) The
preceding messages in the loop are:

MONITOR_REQ_SIGN
\4\0\0\0\0\0\0\0\20({\164\197gJ\252\(\198\163\4\232\164]\129\202\177Hr9]:
---- mo...

MONITOR_REQ_PWNAM
\6\0\0\0\1i\0\0\136\136M\170\245\127\0\00\30\6\1\0\0\0\00\30\6\1\0\0\0\0\0\=
0\0\0\0\0\0\0...

MONITOR_REQ_AUTHSERV
\3\0\0\0\14ssh-connection\0\0\0\0\00\30\6\1\0\0\0\0\1\0\0\0\0\144\179\5...

I meanwhile have come to a strong suspicion that OpenSSH might try to
re-request the same message, while ssh2.c uses a configuration which
prohibits this.

Please compile libssh2 with debugging enabled, and call
>
> libssh2_trace(session, ~0);

Good idea... one minute please...

>

in the example. Please send the rich debug messages to the mailing
> list. Thanks!
>
:-) I have to thank... Nick

--14dae9340575f4627004be73bd67
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<div class=3D"gmail_extra">Hi Peter,</div><div class=3D"gmail_extra"><br></=
div><div class=3D"gmail_extra">thanks a lot for the quick response, I was a=
bsent for some hours.<br><br><div class=3D"gmail_quote">2012/4/24 Peter Stu=
ge <span dir=3D"ltr">&lt;<a href=3D"mailto:peter@stuge.se" target=3D"_blank=
">peter@stuge.se</a>&gt;</span><br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div class=3D"im"><br>
&gt; First SSH keyfile authentication runs flawless when done in a terminal=
.<br>
<br>
</div>Do you mean &quot;the first time&quot; or &quot;I will list some thin=
gs, the first<br>
is that&quot; ?<br></blockquote><div>The latter; I guessed this to be an im=
portant observation, expecting some configuration issue.</div><blockquote c=
lass=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;=
padding-left:1ex">
<div class=3D"im"><br>
&gt; The server is OpenSSH_5.8p1, built from source for better tracing of<b=
r>
&gt; the problem.<br>
<br>
</div>Where is the EPIPE reported?<br></blockquote><div>Here a &#39;manual =
call stack&#39;:=A0</div><div>openssh-5.8p1,</div><div>- - - - - - - - - -<=
/div><div>atomicio.c::atomicio6()::line 73:</div><div>This seems like an em=
pty/closed pipe; atomicio is a &quot;C higher order function&quot; given a =
read.</div>
- - - - - - - - - -</div><div class=3D"gmail_quote">monitor_wrap.c::mm_requ=
est_receive()::line 126:</div><div class=3D"gmail_quote">- - - - - - - - - =
-</div><div class=3D"gmail_quote">monitor.c::monitor_read()::line 478:</div=
><div class=3D"gmail_quote">
It happens when =96 with a terminal =96 OpenSSH request a message with=A0<s=
pan style>MONITOR_REQ_KEYALLOWED again =96 as the first bytes of the code a=
re identical,</span></div><div class=3D"gmail_quote"><font color=3D"#222222=
" face=3D"arial, sans-serif"><br>
</font></div><div class=3D"gmail_quote">\20\0\0\0\2\0\0\0\0\0\0\0\0\0\0\1\2=
3\0\0\0\7ssh-rsa\0\0\0\3\1\0\1\0\0\1\1\0\0%\189\24p4q\19\163\248...</div><d=
iv class=3D"gmail_quote"><div class=3D"gmail_quote">- - - - - - - - - -</di=
v>
<div class=3D"gmail_quote">monitor.c::monitor_child_preauth()::line 369:</d=
iv></div><div class=3D"gmail_quote">This is the while loop (excuse me, plea=
se, not in=A0monitor_read()...) The preceding messages in the loop are:</di=
v>
<div class=3D"gmail_quote"><br></div><div class=3D"gmail_quote"><span style=
>MONITOR_REQ_SIGN</span></div><div class=3D"gmail_quote"><span style><font =
color=3D"#222222" face=3D"arial, sans-serif">\4\0\0\0\0\0\0\0\20({\164\197g=
J\252\(\198\163\4\232\164]\129\202\177Hr9]: ---- mo...</font></span></div>
<div class=3D"gmail_quote"><span style><font color=3D"#222222" face=3D"aria=
l, sans-serif"><br></font></span></div><div class=3D"gmail_quote"><span sty=
le>MONITOR_REQ_PWNAM</span></div><div class=3D"gmail_quote"><span style><fo=
nt color=3D"#222222" face=3D"arial, sans-serif">\6\0\0\0\1i\0\0\136\136M\17=
0\245\127\0\00\30\6\1\0\0\0\00\30\6\1\0\0\0\0\0\0\0\0\0\0\0\0...</font></sp=
an></div>
<div class=3D"gmail_quote"><span style><font color=3D"#222222" face=3D"aria=
l, sans-serif"><br></font></span></div><div class=3D"gmail_quote"><span sty=
le><font color=3D"#222222" face=3D"arial, sans-serif">MONITOR_REQ_AUTHSERV<=
/font></span></div>
<div class=3D"gmail_quote">\3\0\0\0\14ssh-connection\0\0\0\0\00\30\6\1\0\0\=
0\0\1\0\0\0\0\144\179\5...</div><div class=3D"gmail_quote"><br></div><div c=
lass=3D"gmail_quote">I meanwhile have come to a strong suspicion that OpenS=
SH might try to re-request the same message, while ssh2.c uses a configurat=
ion which prohibits this.</div>
<div class=3D"gmail_quote"><br></div><div class=3D"gmail_quote"><blockquote=
 class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc soli=
d;padding-left:1ex">
Please compile libssh2 with debugging enabled, and call<br>
<br>
libssh2_trace(session, ~0);</blockquote><div>Good idea... one minute please=
...=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bo=
rder-left:1px #ccc solid;padding-left:1ex">=A0</blockquote><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-left:1ex">

in the example. Please send the rich debug messages to the mailing<br>
list. Thanks!<br></blockquote><div>:-) I have to thank... Nick=A0</div></di=
v><br></div>

--14dae9340575f4627004be73bd67--

--===============1720267712==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1720267712==--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 00:46:17 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3OMk6Hl023747;
	Wed, 25 Apr 2012 00:46:15 +0200
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3OMk5o1023739
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 00:46:05 +0200
Received: (qmail 1874 invoked from network); 24 Apr 2012 22:46:04 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 24 Apr 2012 22:46:04 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 0.13dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 0.13dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Tue, 24 Apr 2012 22:46:04 -0000
X-URL: http://trac.libssh2.org/
Subject: [libssh2] #236: disconnecting libssh2 sessions results in sshd
 message "inetd[1080]: /usr/sbin/sshd[88807]: exited, status 255"
X-Trac-Ticket-URL: http://trac.libssh2.org/ticket/236
Message-ID: <038.573b17621d5fd99da7f176e9ff0c2811@libssh2.stuge.se>
X-Trac-Ticket-ID: 236
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id q3OMk5o1023739
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

#236: disconnecting libssh2 sessions results in sshd message "inetd[1080]:
/usr/sbin/sshd[88807]: exited, status 255"
--------------------+--------------------
 Reporter:  km      |       Owner:
     Type:  defect  |      Status:  new
 Priority:  normal  |   Milestone:  1.4.0
Component:  API     |     Version:  1.2.7
 Keywords:          |  Blocked By:
   Blocks:          |
--------------------+--------------------
 When a libssh2 session is created and normally disconnected by calling:

         libssh2_channel_free(channel_);
         libssh2_session_disconnect(session_, "");
         libssh2_session_free(session_);

 On the sshd server the following message is observed:
 inetd[1080]: /usr/sbin/sshd[88796]: exited, status 255

 This leads to enormous log files. If openSSH is used the error message is
 not observed.

 This happens to ssh sessions opening terminal windows, or using subsytem
 or using ssh command.

-- 
Ticket URL: <http://trac.libssh2.org/ticket/236>
libssh2 <http://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 00:48:46 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3OMmjP3025272;
	Wed, 25 Apr 2012 00:48:46 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3OMmf3C025215
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 00:48:42 +0200
Received: by iahk25 with SMTP id k25so1890861iah.41
 for <libssh2-devel@cool.haxx.se>; Tue, 24 Apr 2012 15:48:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=Qra6RwQQcEtR5i2PMFCOmcGbwxypS1gwdvP8mPQSCgc=;
 b=ioruGV8CwRRAgPcKQSDJlXTULj89s8Vvgj8tXcHk92/Znpc1J78/z75hG75aN+19bc
 Z73hN5MoYW7H5sVbLhFSBSdfQi8jZ3rGVk59faE5q6+HPPqhIf5Fwj0Ra86zT5x5YKXu
 fBSupc7gR6g2l7irbvntmmbTDs2Db5F46L6/sZ6raAlscF2Ey8uEe456NjfS2HnUVzPJ
 bLe3VGv9o1lG2A1q+U8J2Jo1+HjF21QsNAmUG0khkmCF1onD7FTcHAWb1t/si+bDR1L6
 ZTeQ8bPRPCKGTOVwMaHgSNKzIjVvM7u6rhSSu+hBwt6DoORs2CMwV2592Chypn3W4m3T
 mODA==
MIME-Version: 1.0
Received: by 10.50.106.132 with SMTP id gu4mr12098418igb.59.1335307716632;
 Tue, 24 Apr 2012 15:48:36 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Tue, 24 Apr 2012 15:48:36 -0700 (PDT)
In-Reply-To: <20120424170737.11943.qmail@stuge.se>
References: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
 <20120424170737.11943.qmail@stuge.se>
Date: Wed, 25 Apr 2012 00:48:36 +0200
Message-ID: <CA+XUKcgM5L_BgZxUjN8AmAapCo=B7NTfAY=qD7u82nDC+-nQSg@mail.gmail.com>
Subject: Re: EPIPE causes 'Authentication by public key failed' for examples
 with keyfile authentication at OpenSSH server
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0082007169=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0082007169==
Content-Type: multipart/alternative; boundary=e89a8f3ba1491da0f304be748ee0

--e89a8f3ba1491da0f304be748ee0
Content-Type: text/plain; charset=ISO-8859-1

Hi Peter


"Failure Event: -16 - Unable to open public key file"...??

Here my access rights:
drwx------  2 i i 4096 2012-04-23 10:52 .
drwxr-xr-x 58 i i 4096 2012-04-24 23:06 ..
-rw-------  1 i i  388 2012-04-22 21:07 authorized_keys
-rw-------  1 i i 1766 2012-03-23 14:55 id_rsa
-rw-------  1 i i  381 2012-03-23 14:55 id_rsa.pub
-rw-------  1 i i  727 2012-03-23 17:10 keygen.log
-rw-------  1 i i 1328 2012-04-23 10:52 known_hosts

= 8< ==================== ssh2.c > ssh2 =====
[libssh2] 0.294243 Transport: session_startup for socket 3
[libssh2] 0.294315 Transport: Sending Banner: SSH-2.0-libssh2_1.4.2-20120422
[libssh2] 0.294356 Socket: Sent 32/32 bytes at 0x7ffd5aa69fe0+0
[libssh2] 0.294381 Socket: Error recving 1 bytes: 11
[libssh2] 0.294397 Failure Event: -37 - Failed getting banner
[libssh2] 0.301856 Socket: Recved 1 bytes banner
[libssh2] 0.301885 Socket: Recved 1 bytes banner
[libssh2] 0.301901 Socket: Recved 1 bytes banner
[libssh2] 0.301917 Socket: Recved 1 bytes banner
[libssh2] 0.301933 Socket: Recved 1 bytes banner
[libssh2] 0.301954 Socket: Recved 1 bytes banner
[libssh2] 0.301981 Socket: Recved 1 bytes banner
[libssh2] 0.302007 Socket: Recved 1 bytes banner
[libssh2] 0.302033 Socket: Recved 1 bytes banner
[libssh2] 0.302061 Socket: Recved 1 bytes banner
[libssh2] 0.302089 Socket: Recved 1 bytes banner
[libssh2] 0.302115 Socket: Recved 1 bytes banner
[libssh2] 0.302141 Socket: Recved 1 bytes banner
[libssh2] 0.302167 Socket: Recved 1 bytes banner
[libssh2] 0.302191 Socket: Recved 1 bytes banner
[libssh2] 0.302230 Socket: Recved 1 bytes banner
[libssh2] 0.302252 Socket: Recved 1 bytes banner
[libssh2] 0.302268 Socket: Recved 1 bytes banner
[libssh2] 0.302285 Socket: Recved 1 bytes banner
[libssh2] 0.302310 Socket: Recved 1 bytes banner
[libssh2] 0.302337 Socket: Recved 1 bytes banner
[libssh2] 0.302364 Transport: Received Banner: SSH-2.0-OpenSSH_5.8
[libssh2] 0.302623 Key Ex: Sent KEX:
diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
[libssh2] 0.302651 Key Ex: Sent HOSTKEY: ssh-rsa,ssh-dss
[libssh2] 0.302666 Key Ex: Sent CRYPT_CS:
aes128-ctr,aes192-ctr,aes256-ctr,aes256-cbc,rijndael-cbc@lysator.liu.se
,aes192-cbc,aes128-cbc,blowfish-cbc,arcfour128,arcfour,cast128-cbc,3des-cbc
[libssh2] 0.302682 Key Ex: Sent CRYPT_SC:
aes128-ctr,aes192-ctr,aes256-ctr,aes256-cbc,rijndael-cbc@lysator.liu.se
,aes192-cbc,aes128-cbc,blowfish-cbc,arcfour128,arcfour,cast128-cbc,3des-cbc
[libssh2] 0.302698 Key Ex: Sent MAC_CS:
hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,
hmac-ripemd160@openssh.com
[libssh2] 0.302713 Key Ex: Sent MAC_SC:
hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,
hmac-ripemd160@openssh.com
[libssh2] 0.302728 Key Ex: Sent COMP_CS: none
[libssh2] 0.302742 Key Ex: Sent COMP_SC: none
[libssh2] 0.302756 Key Ex: Sent LANG_CS:
[libssh2] 0.302770 Key Ex: Sent LANG_SC:
=> libssh2_transport_write plain (636 bytes)
0000: 14 6F 84 B2 BB C3 29 C1  EF 06 19 F8 2C 7E 61 EA : .o....).....,~a.
0010: 78 00 00 00 59 64 69 66  66 69 65 2D 68 65 6C 6C : x...Ydiffie-hell
0020: 6D 61 6E 2D 67 72 6F 75  70 31 34 2D 73 68 61 31 : man-group14-sha1
0030: 2C 64 69 66 66 69 65 2D  68 65 6C 6C 6D 61 6E 2D : ,diffie-hellman-
0040: 67 72 6F 75 70 2D 65 78  63 68 61 6E 67 65 2D 73 : group-exchange-s
0050: 68 61 31 2C 64 69 66 66  69 65 2D 68 65 6C 6C 6D : ha1,diffie-hellm
0060: 61 6E 2D 67 72 6F 75 70  31 2D 73 68 61 31 00 00 : an-group1-sha1..
0070: 00 0F 73 73 68 2D 72 73  61 2C 73 73 68 2D 64 73 : ..ssh-rsa,ssh-ds
0080: 73 00 00 00 92 61 65 73  31 32 38 2D 63 74 72 2C : s....aes128-ctr,
0090: 61 65 73 31 39 32 2D 63  74 72 2C 61 65 73 32 35 : aes192-ctr,aes25
00a0: 36 2D 63 74 72 2C 61 65  73 32 35 36 2D 63 62 63 : 6-ctr,aes256-cbc
00b0: 2C 72 69 6A 6E 64 61 65  6C 2D 63 62 63 40 6C 79 : ,rijndael-cbc@ly
00c0: 73 61 74 6F 72 2E 6C 69  75 2E 73 65 2C 61 65 73 : sator.liu.se,aes
00d0: 31 39 32 2D 63 62 63 2C  61 65 73 31 32 38 2D 63 : 192-cbc,aes128-c
00e0: 62 63 2C 62 6C 6F 77 66  69 73 68 2D 63 62 63 2C : bc,blowfish-cbc,
00f0: 61 72 63 66 6F 75 72 31  32 38 2C 61 72 63 66 6F : arcfour128,arcfo
0100: 75 72 2C 63 61 73 74 31  32 38 2D 63 62 63 2C 33 : ur,cast128-cbc,3
0110: 64 65 73 2D 63 62 63 00  00 00 92 61 65 73 31 32 : des-cbc....aes12
0120: 38 2D 63 74 72 2C 61 65  73 31 39 32 2D 63 74 72 : 8-ctr,aes192-ctr
0130: 2C 61 65 73 32 35 36 2D  63 74 72 2C 61 65 73 32 : ,aes256-ctr,aes2
0140: 35 36 2D 63 62 63 2C 72  69 6A 6E 64 61 65 6C 2D : 56-cbc,rijndael-
0150: 63 62 63 40 6C 79 73 61  74 6F 72 2E 6C 69 75 2E : cbc@lysator.liu.
0160: 73 65 2C 61 65 73 31 39  32 2D 63 62 63 2C 61 65 : se,aes192-cbc,ae
0170: 73 31 32 38 2D 63 62 63  2C 62 6C 6F 77 66 69 73 : s128-cbc,blowfis
0180: 68 2D 63 62 63 2C 61 72  63 66 6F 75 72 31 32 38 : h-cbc,arcfour128
0190: 2C 61 72 63 66 6F 75 72  2C 63 61 73 74 31 32 38 : ,arcfour,cast128
01a0: 2D 63 62 63 2C 33 64 65  73 2D 63 62 63 00 00 00 : -cbc,3des-cbc...
01b0: 55 68 6D 61 63 2D 73 68  61 31 2C 68 6D 61 63 2D : Uhmac-sha1,hmac-
01c0: 73 68 61 31 2D 39 36 2C  68 6D 61 63 2D 6D 64 35 : sha1-96,hmac-md5
01d0: 2C 68 6D 61 63 2D 6D 64  35 2D 39 36 2C 68 6D 61 : ,hmac-md5-96,hma
01e0: 63 2D 72 69 70 65 6D 64  31 36 30 2C 68 6D 61 63 : c-ripemd160,hmac
01f0: 2D 72 69 70 65 6D 64 31  36 30 40 6F 70 65 6E 73 : -ripemd160@opens
0200: 73 68 2E 63 6F 6D 00 00  00 55 68 6D 61 63 2D 73 : sh.com...Uhmac-s
0210: 68 61 31 2C 68 6D 61 63  2D 73 68 61 31 2D 39 36 : ha1,hmac-sha1-96
0220: 2C 68 6D 61 63 2D 6D 64  35 2C 68 6D 61 63 2D 6D : ,hmac-md5,hmac-m
0230: 64 35 2D 39 36 2C 68 6D  61 63 2D 72 69 70 65 6D : d5-96,hmac-ripem
0240: 64 31 36 30 2C 68 6D 61  63 2D 72 69 70 65 6D 64 : d160,hmac-ripemd
0250: 31 36 30 40 6F 70 65 6E  73 73 68 2E 63 6F 6D 00 : 160@openssh.com.
0260: 00 00 04 6E 6F 6E 65 00  00 00 04 6E 6F 6E 65 00 : ...none....none.
0270: 00 00 00 00 00 00 00 00  00 00 00 00             : ............
[libssh2] 0.303383 Socket: Sent 648/648 bytes at 0xcc2088
=> libssh2_transport_write send() (648 bytes)
0000: 00 00 02 84 07 14 6F 84  B2 BB C3 29 C1 EF 06 19 : ......o....)....
0010: F8 2C 7E 61 EA 78 00 00  00 59 64 69 66 66 69 65 : .,~a.x...Ydiffie
0020: 2D 68 65 6C 6C 6D 61 6E  2D 67 72 6F 75 70 31 34 : -hellman-group14
0030: 2D 73 68 61 31 2C 64 69  66 66 69 65 2D 68 65 6C : -sha1,diffie-hel
0040: 6C 6D 61 6E 2D 67 72 6F  75 70 2D 65 78 63 68 61 : lman-group-excha
0050: 6E 67 65 2D 73 68 61 31  2C 64 69 66 66 69 65 2D : nge-sha1,diffie-
0060: 68 65 6C 6C 6D 61 6E 2D  67 72 6F 75 70 31 2D 73 : hellman-group1-s
0070: 68 61 31 00 00 00 0F 73  73 68 2D 72 73 61 2C 73 : ha1....ssh-rsa,s
0080: 73 68 2D 64 73 73 00 00  00 92 61 65 73 31 32 38 : sh-dss....aes128
0090: 2D 63 74 72 2C 61 65 73  31 39 32 2D 63 74 72 2C : -ctr,aes192-ctr,
00a0: 61 65 73 32 35 36 2D 63  74 72 2C 61 65 73 32 35 : aes256-ctr,aes25
00b0: 36 2D 63 62 63 2C 72 69  6A 6E 64 61 65 6C 2D 63 : 6-cbc,rijndael-c
00c0: 62 63 40 6C 79 73 61 74  6F 72 2E 6C 69 75 2E 73 : bc@lysator.liu.s
00d0: 65 2C 61 65 73 31 39 32  2D 63 62 63 2C 61 65 73 : e,aes192-cbc,aes
00e0: 31 32 38 2D 63 62 63 2C  62 6C 6F 77 66 69 73 68 : 128-cbc,blowfish
00f0: 2D 63 62 63 2C 61 72 63  66 6F 75 72 31 32 38 2C : -cbc,arcfour128,
0100: 61 72 63 66 6F 75 72 2C  63 61 73 74 31 32 38 2D : arcfour,cast128-
0110: 63 62 63 2C 33 64 65 73  2D 63 62 63 00 00 00 92 : cbc,3des-cbc....
0120: 61 65 73 31 32 38 2D 63  74 72 2C 61 65 73 31 39 : aes128-ctr,aes19
0130: 32 2D 63 74 72 2C 61 65  73 32 35 36 2D 63 74 72 : 2-ctr,aes256-ctr
0140: 2C 61 65 73 32 35 36 2D  63 62 63 2C 72 69 6A 6E : ,aes256-cbc,rijn
0150: 64 61 65 6C 2D 63 62 63  40 6C 79 73 61 74 6F 72 : dael-cbc@lysator
0160: 2E 6C 69 75 2E 73 65 2C  61 65 73 31 39 32 2D 63 : .liu.se,aes192-c
0170: 62 63 2C 61 65 73 31 32  38 2D 63 62 63 2C 62 6C : bc,aes128-cbc,bl
0180: 6F 77 66 69 73 68 2D 63  62 63 2C 61 72 63 66 6F : owfish-cbc,arcfo
0190: 75 72 31 32 38 2C 61 72  63 66 6F 75 72 2C 63 61 : ur128,arcfour,ca
01a0: 73 74 31 32 38 2D 63 62  63 2C 33 64 65 73 2D 63 : st128-cbc,3des-c
01b0: 62 63 00 00 00 55 68 6D  61 63 2D 73 68 61 31 2C : bc...Uhmac-sha1,
01c0: 68 6D 61 63 2D 73 68 61  31 2D 39 36 2C 68 6D 61 : hmac-sha1-96,hma
01d0: 63 2D 6D 64 35 2C 68 6D  61 63 2D 6D 64 35 2D 39 : c-md5,hmac-md5-9
01e0: 36 2C 68 6D 61 63 2D 72  69 70 65 6D 64 31 36 30 : 6,hmac-ripemd160
01f0: 2C 68 6D 61 63 2D 72 69  70 65 6D 64 31 36 30 40 : ,hmac-ripemd160@
0200: 6F 70 65 6E 73 73 68 2E  63 6F 6D 00 00 00 55 68 : openssh.com...Uh
0210: 6D 61 63 2D 73 68 61 31  2C 68 6D 61 63 2D 73 68 : mac-sha1,hmac-sh
0220: 61 31 2D 39 36 2C 68 6D  61 63 2D 6D 64 35 2C 68 : a1-96,hmac-md5,h
0230: 6D 61 63 2D 6D 64 35 2D  39 36 2C 68 6D 61 63 2D : mac-md5-96,hmac-
0240: 72 69 70 65 6D 64 31 36  30 2C 68 6D 61 63 2D 72 : ripemd160,hmac-r
0250: 69 70 65 6D 64 31 36 30  40 6F 70 65 6E 73 73 68 : ipemd160@openssh
0260: 2E 63 6F 6D 00 00 00 04  6E 6F 6E 65 00 00 00 04 : .com....none....
0270: 6E 6F 6E 65 00 00 00 00  00 00 00 00 00 00 00 00 : none............
0280: 00 E9 BC 8B F7 95 01 22                          : ......."
[libssh2] 0.304255 Transport: Looking for packet of type: 20
[libssh2] 0.304285 Socket: Recved 856/16384 bytes to 0xcbe048+0
=> libssh2_transport_read() raw (856 bytes)
0000: 00 00 03 54 05 14 40 CD  B9 8F 7F BF C8 13 A7 48 : ...T..@........H
0010: 07 AA 6E 87 56 10 00 00  00 B7 65 63 64 68 2D 73 : ..n.V.....ecdh-s
0020: 68 61 32 2D 6E 69 73 74  70 32 35 36 2C 65 63 64 : ha2-nistp256,ecd
0030: 68 2D 73 68 61 32 2D 6E  69 73 74 70 33 38 34 2C : h-sha2-nistp384,
0040: 65 63 64 68 2D 73 68 61  32 2D 6E 69 73 74 70 35 : ecdh-sha2-nistp5
0050: 32 31 2C 64 69 66 66 69  65 2D 68 65 6C 6C 6D 61 : 21,diffie-hellma
0060: 6E 2D 67 72 6F 75 70 2D  65 78 63 68 61 6E 67 65 : n-group-exchange
0070: 2D 73 68 61 32 35 36 2C  64 69 66 66 69 65 2D 68 : -sha256,diffie-h
0080: 65 6C 6C 6D 61 6E 2D 67  72 6F 75 70 2D 65 78 63 : ellman-group-exc
0090: 68 61 6E 67 65 2D 73 68  61 31 2C 64 69 66 66 69 : hange-sha1,diffi
00a0: 65 2D 68 65 6C 6C 6D 61  6E 2D 67 72 6F 75 70 31 : e-hellman-group1
00b0: 34 2D 73 68 61 31 2C 64  69 66 66 69 65 2D 68 65 : 4-sha1,diffie-he
00c0: 6C 6C 6D 61 6E 2D 67 72  6F 75 70 31 2D 73 68 61 : llman-group1-sha
00d0: 31 00 00 00 23 73 73 68  2D 72 73 61 2C 73 73 68 : 1...#ssh-rsa,ssh
00e0: 2D 64 73 73 2C 65 63 64  73 61 2D 73 68 61 32 2D : -dss,ecdsa-sha2-
00f0: 6E 69 73 74 70 32 35 36  00 00 00 9D 61 65 73 31 : nistp256....aes1
0100: 32 38 2D 63 74 72 2C 61  65 73 31 39 32 2D 63 74 : 28-ctr,aes192-ct
0110: 72 2C 61 65 73 32 35 36  2D 63 74 72 2C 61 72 63 : r,aes256-ctr,arc
0120: 66 6F 75 72 32 35 36 2C  61 72 63 66 6F 75 72 31 : four256,arcfour1
0130: 32 38 2C 61 65 73 31 32  38 2D 63 62 63 2C 33 64 : 28,aes128-cbc,3d
0140: 65 73 2D 63 62 63 2C 62  6C 6F 77 66 69 73 68 2D : es-cbc,blowfish-
0150: 63 62 63 2C 63 61 73 74  31 32 38 2D 63 62 63 2C : cbc,cast128-cbc,
0160: 61 65 73 31 39 32 2D 63  62 63 2C 61 65 73 32 35 : aes192-cbc,aes25
0170: 36 2D 63 62 63 2C 61 72  63 66 6F 75 72 2C 72 69 : 6-cbc,arcfour,ri
0180: 6A 6E 64 61 65 6C 2D 63  62 63 40 6C 79 73 61 74 : jndael-cbc@lysat
0190: 6F 72 2E 6C 69 75 2E 73  65 00 00 00 9D 61 65 73 : or.liu.se....aes
01a0: 31 32 38 2D 63 74 72 2C  61 65 73 31 39 32 2D 63 : 128-ctr,aes192-c
01b0: 74 72 2C 61 65 73 32 35  36 2D 63 74 72 2C 61 72 : tr,aes256-ctr,ar
01c0: 63 66 6F 75 72 32 35 36  2C 61 72 63 66 6F 75 72 : cfour256,arcfour
01d0: 31 32 38 2C 61 65 73 31  32 38 2D 63 62 63 2C 33 : 128,aes128-cbc,3
01e0: 64 65 73 2D 63 62 63 2C  62 6C 6F 77 66 69 73 68 : des-cbc,blowfish
01f0: 2D 63 62 63 2C 63 61 73  74 31 32 38 2D 63 62 63 : -cbc,cast128-cbc
0200: 2C 61 65 73 31 39 32 2D  63 62 63 2C 61 65 73 32 : ,aes192-cbc,aes2
0210: 35 36 2D 63 62 63 2C 61  72 63 66 6F 75 72 2C 72 : 56-cbc,arcfour,r
0220: 69 6A 6E 64 61 65 6C 2D  63 62 63 40 6C 79 73 61 : ijndael-cbc@lysa
0230: 74 6F 72 2E 6C 69 75 2E  73 65 00 00 00 69 68 6D : tor.liu.se...ihm
0240: 61 63 2D 6D 64 35 2C 68  6D 61 63 2D 73 68 61 31 : ac-md5,hmac-sha1
0250: 2C 75 6D 61 63 2D 36 34  40 6F 70 65 6E 73 73 68 : ,umac-64@openssh
0260: 2E 63 6F 6D 2C 68 6D 61  63 2D 72 69 70 65 6D 64 : .com,hmac-ripemd
0270: 31 36 30 2C 68 6D 61 63  2D 72 69 70 65 6D 64 31 : 160,hmac-ripemd1
0280: 36 30 40 6F 70 65 6E 73  73 68 2E 63 6F 6D 2C 68 : 60@openssh.com,h
0290: 6D 61 63 2D 73 68 61 31  2D 39 36 2C 68 6D 61 63 : mac-sha1-96,hmac
02a0: 2D 6D 64 35 2D 39 36 00  00 00 69 68 6D 61 63 2D : -md5-96...ihmac-
02b0: 6D 64 35 2C 68 6D 61 63  2D 73 68 61 31 2C 75 6D : md5,hmac-sha1,um
02c0: 61 63 2D 36 34 40 6F 70  65 6E 73 73 68 2E 63 6F : ac-64@openssh.co
02d0: 6D 2C 68 6D 61 63 2D 72  69 70 65 6D 64 31 36 30 : m,hmac-ripemd160
02e0: 2C 68 6D 61 63 2D 72 69  70 65 6D 64 31 36 30 40 : ,hmac-ripemd160@
02f0: 6F 70 65 6E 73 73 68 2E  63 6F 6D 2C 68 6D 61 63 : openssh.com,hmac
0300: 2D 73 68 61 31 2D 39 36  2C 68 6D 61 63 2D 6D 64 : -sha1-96,hmac-md
0310: 35 2D 39 36 00 00 00 15  6E 6F 6E 65 2C 7A 6C 69 : 5-96....none,zli
0320: 62 40 6F 70 65 6E 73 73  68 2E 63 6F 6D 00 00 00 : b@openssh.com...
0330: 15 6E 6F 6E 65 2C 7A 6C  69 62 40 6F 70 65 6E 73 : .none,zlib@opens
0340: 73 68 2E 63 6F 6D 00 00  00 00 00 00 00 00 00 00 : sh.com..........
0350: 00 00 00 00 00 00 00 00                          : ........
=> libssh2_transport_read() plain (846 bytes)
0000: 14 40 CD B9 8F 7F BF C8  13 A7 48 07 AA 6E 87 56 : .@........H..n.V
0010: 10 00 00 00 B7 65 63 64  68 2D 73 68 61 32 2D 6E : .....ecdh-sha2-n
0020: 69 73 74 70 32 35 36 2C  65 63 64 68 2D 73 68 61 : istp256,ecdh-sha
0030: 32 2D 6E 69 73 74 70 33  38 34 2C 65 63 64 68 2D : 2-nistp384,ecdh-
0040: 73 68 61 32 2D 6E 69 73  74 70 35 32 31 2C 64 69 : sha2-nistp521,di
0050: 66 66 69 65 2D 68 65 6C  6C 6D 61 6E 2D 67 72 6F : ffie-hellman-gro
0060: 75 70 2D 65 78 63 68 61  6E 67 65 2D 73 68 61 32 : up-exchange-sha2
0070: 35 36 2C 64 69 66 66 69  65 2D 68 65 6C 6C 6D 61 : 56,diffie-hellma
0080: 6E 2D 67 72 6F 75 70 2D  65 78 63 68 61 6E 67 65 : n-group-exchange
0090: 2D 73 68 61 31 2C 64 69  66 66 69 65 2D 68 65 6C : -sha1,diffie-hel
00a0: 6C 6D 61 6E 2D 67 72 6F  75 70 31 34 2D 73 68 61 : lman-group14-sha
00b0: 31 2C 64 69 66 66 69 65  2D 68 65 6C 6C 6D 61 6E : 1,diffie-hellman
00c0: 2D 67 72 6F 75 70 31 2D  73 68 61 31 00 00 00 23 : -group1-sha1...#
00d0: 73 73 68 2D 72 73 61 2C  73 73 68 2D 64 73 73 2C : ssh-rsa,ssh-dss,
00e0: 65 63 64 73 61 2D 73 68  61 32 2D 6E 69 73 74 70 : ecdsa-sha2-nistp
00f0: 32 35 36 00 00 00 9D 61  65 73 31 32 38 2D 63 74 : 256....aes128-ct
0100: 72 2C 61 65 73 31 39 32  2D 63 74 72 2C 61 65 73 : r,aes192-ctr,aes
0110: 32 35 36 2D 63 74 72 2C  61 72 63 66 6F 75 72 32 : 256-ctr,arcfour2
0120: 35 36 2C 61 72 63 66 6F  75 72 31 32 38 2C 61 65 : 56,arcfour128,ae
0130: 73 31 32 38 2D 63 62 63  2C 33 64 65 73 2D 63 62 : s128-cbc,3des-cb
0140: 63 2C 62 6C 6F 77 66 69  73 68 2D 63 62 63 2C 63 : c,blowfish-cbc,c
0150: 61 73 74 31 32 38 2D 63  62 63 2C 61 65 73 31 39 : ast128-cbc,aes19
0160: 32 2D 63 62 63 2C 61 65  73 32 35 36 2D 63 62 63 : 2-cbc,aes256-cbc
0170: 2C 61 72 63 66 6F 75 72  2C 72 69 6A 6E 64 61 65 : ,arcfour,rijndae
0180: 6C 2D 63 62 63 40 6C 79  73 61 74 6F 72 2E 6C 69 : l-cbc@lysator.li
0190: 75 2E 73 65 00 00 00 9D  61 65 73 31 32 38 2D 63 : u.se....aes128-c
01a0: 74 72 2C 61 65 73 31 39  32 2D 63 74 72 2C 61 65 : tr,aes192-ctr,ae
01b0: 73 32 35 36 2D 63 74 72  2C 61 72 63 66 6F 75 72 : s256-ctr,arcfour
01c0: 32 35 36 2C 61 72 63 66  6F 75 72 31 32 38 2C 61 : 256,arcfour128,a
01d0: 65 73 31 32 38 2D 63 62  63 2C 33 64 65 73 2D 63 : es128-cbc,3des-c
01e0: 62 63 2C 62 6C 6F 77 66  69 73 68 2D 63 62 63 2C : bc,blowfish-cbc,
01f0: 63 61 73 74 31 32 38 2D  63 62 63 2C 61 65 73 31 : cast128-cbc,aes1
0200: 39 32 2D 63 62 63 2C 61  65 73 32 35 36 2D 63 62 : 92-cbc,aes256-cb
0210: 63 2C 61 72 63 66 6F 75  72 2C 72 69 6A 6E 64 61 : c,arcfour,rijnda
0220: 65 6C 2D 63 62 63 40 6C  79 73 61 74 6F 72 2E 6C : el-cbc@lysator.l
0230: 69 75 2E 73 65 00 00 00  69 68 6D 61 63 2D 6D 64 : iu.se...ihmac-md
0240: 35 2C 68 6D 61 63 2D 73  68 61 31 2C 75 6D 61 63 : 5,hmac-sha1,umac
0250: 2D 36 34 40 6F 70 65 6E  73 73 68 2E 63 6F 6D 2C : -64@openssh.com,
0260: 68 6D 61 63 2D 72 69 70  65 6D 64 31 36 30 2C 68 : hmac-ripemd160,h
0270: 6D 61 63 2D 72 69 70 65  6D 64 31 36 30 40 6F 70 : mac-ripemd160@op
0280: 65 6E 73 73 68 2E 63 6F  6D 2C 68 6D 61 63 2D 73 : enssh.com,hmac-s
0290: 68 61 31 2D 39 36 2C 68  6D 61 63 2D 6D 64 35 2D : ha1-96,hmac-md5-
02a0: 39 36 00 00 00 69 68 6D  61 63 2D 6D 64 35 2C 68 : 96...ihmac-md5,h
02b0: 6D 61 63 2D 73 68 61 31  2C 75 6D 61 63 2D 36 34 : mac-sha1,umac-64
02c0: 40 6F 70 65 6E 73 73 68  2E 63 6F 6D 2C 68 6D 61 : @openssh.com,hma
02d0: 63 2D 72 69 70 65 6D 64  31 36 30 2C 68 6D 61 63 : c-ripemd160,hmac
02e0: 2D 72 69 70 65 6D 64 31  36 30 40 6F 70 65 6E 73 : -ripemd160@opens
02f0: 73 68 2E 63 6F 6D 2C 68  6D 61 63 2D 73 68 61 31 : sh.com,hmac-sha1
0300: 2D 39 36 2C 68 6D 61 63  2D 6D 64 35 2D 39 36 00 : -96,hmac-md5-96.
0310: 00 00 15 6E 6F 6E 65 2C  7A 6C 69 62 40 6F 70 65 : ...none,zlib@ope
0320: 6E 73 73 68 2E 63 6F 6D  00 00 00 15 6E 6F 6E 65 : nssh.com....none
0330: 2C 7A 6C 69 62 40 6F 70  65 6E 73 73 68 2E 63 6F : ,zlib@openssh.co
0340: 6D 00 00 00 00 00 00 00  00 00 00 00 00 00       : m.............
[libssh2] 0.311087 Transport: Packet type 20 received, length=846
[libssh2] 0.311098 Transport: Looking for packet of type: 20
[libssh2] 0.311112 Key Ex: Agreed on KEX method: diffie-hellman-group14-sha1
[libssh2] 0.311117 Key Ex: Agreed on HOSTKEY method: ssh-rsa
[libssh2] 0.311123 Key Ex: Agreed on CRYPT_CS method: aes128-ctr
[libssh2] 0.311128 Key Ex: Agreed on CRYPT_SC method: aes128-ctr
[libssh2] 0.311133 Key Ex: Agreed on MAC_CS method: hmac-sha1
[libssh2] 0.311138 Key Ex: Agreed on MAC_SC method: hmac-sha1
[libssh2] 0.311143 Key Ex: Agreed on COMP_CS method: none
[libssh2] 0.311148 Key Ex: Agreed on COMP_SC method: none
[libssh2] 0.311159 Key Ex: Initiating Diffie-Hellman Group14 Key Exchange
[libssh2] 0.312235 Key Ex: Sending KEX packet 30
=> libssh2_transport_write plain (261 bytes)
0000: 1E 00 00 01 00 07 28 44  DA 44 89 E9 E0 8C 86 99 : ......(D.D......
0010: 4C 8A F9 6C 7D 87 35 4F  E2 90 F1 95 D0 B5 67 46 : L..l}.5O......gF
0020: 54 09 47 25 24 EA 43 6C  C2 70 13 0D 54 8D 8E 00 : T.G%$.Cl.p..T...
0030: D7 F8 68 CC 7A B7 0B BF  4F 14 14 45 DD 45 FD 2F : ..h.z...O..E.E./
0040: 3A E0 11 9E DA 70 52 2A  B1 43 C8 A8 CF 39 91 24 : :....pR*.C...9.$
0050: DE E9 64 28 78 BE 82 99  A5 79 80 B3 BE 69 87 36 : ..d(x....y...i.6
0060: A0 B2 6A 21 69 EC 93 06  C1 07 26 55 EA 2A EE AE : ..j!i.....&U.*..
0070: 81 D2 FF 3F 58 06 8F B3  AF A7 92 9D 5F 7D 4F 00 : ...?X......._}O.
0080: F3 3B FD BD 02 BA 8E 6D  DA 99 38 8B 10 F4 BD 5E : .;.....m..8....^
0090: AD 68 E4 BD 76 F3 F2 1A  E9 B5 6E 86 D6 AB F0 80 : .h..v.....n.....
00a0: 32 4D C6 11 6C 10 53 DA  14 B8 0F DD 81 BE 13 3A : 2M..l.S........:
00b0: EA 11 26 BE 4F 23 AD F9  81 88 B4 18 0D FD C8 4C : ..&.O#.........L
00c0: 62 15 4D 0B B8 E7 0D 3E  B8 49 40 F5 70 A5 6F D6 : b.M....>.I@.p.o.
00d0: B1 90 C9 42 9B 41 2C 55  A6 5B 8B CF AD 4C 66 5C : ...B.A,U.[...Lf\
00e0: 24 11 F2 F9 71 DE 2B 7F  1E A6 37 D9 B3 69 2E 2C : $...q.+...7..i.,
00f0: 93 80 13 23 C7 01 50 7B  33 3F 8C 70 9C 43 D8 48 : ...#..P{3?.p.C.H
0100: 4E 42 5B 5E 53                                   : NB[^S
[libssh2] 0.312339 Socket: Sent 272/272 bytes at 0xcc2088
=> libssh2_transport_write send() (272 bytes)
0000: 00 00 01 0C 06 1E 00 00  01 00 07 28 44 DA 44 89 : ...........(D.D.
0010: E9 E0 8C 86 99 4C 8A F9  6C 7D 87 35 4F E2 90 F1 : .....L..l}.5O...
0020: 95 D0 B5 67 46 54 09 47  25 24 EA 43 6C C2 70 13 : ...gFT.G%$.Cl.p.
0030: 0D 54 8D 8E 00 D7 F8 68  CC 7A B7 0B BF 4F 14 14 : .T.....h.z...O..
0040: 45 DD 45 FD 2F 3A E0 11  9E DA 70 52 2A B1 43 C8 : E.E./:....pR*.C.
0050: A8 CF 39 91 24 DE E9 64  28 78 BE 82 99 A5 79 80 : ..9.$..d(x....y.
0060: B3 BE 69 87 36 A0 B2 6A  21 69 EC 93 06 C1 07 26 : ..i.6..j!i.....&
0070: 55 EA 2A EE AE 81 D2 FF  3F 58 06 8F B3 AF A7 92 : U.*.....?X......
0080: 9D 5F 7D 4F 00 F3 3B FD  BD 02 BA 8E 6D DA 99 38 : ._}O..;.....m..8
0090: 8B 10 F4 BD 5E AD 68 E4  BD 76 F3 F2 1A E9 B5 6E : ....^.h..v.....n
00a0: 86 D6 AB F0 80 32 4D C6  11 6C 10 53 DA 14 B8 0F : .....2M..l.S....
00b0: DD 81 BE 13 3A EA 11 26  BE 4F 23 AD F9 81 88 B4 : ....:..&.O#.....
00c0: 18 0D FD C8 4C 62 15 4D  0B B8 E7 0D 3E B8 49 40 : ....Lb.M....>.I@
00d0: F5 70 A5 6F D6 B1 90 C9  42 9B 41 2C 55 A6 5B 8B : .p.o....B.A,U.[.
00e0: CF AD 4C 66 5C 24 11 F2  F9 71 DE 2B 7F 1E A6 37 : ..Lf\$...q.+...7
00f0: D9 B3 69 2E 2C 93 80 13  23 C7 01 50 7B 33 3F 8C : ..i.,...#..P{3?.
0100: 70 9C 43 D8 48 4E 42 5B  5E 53 DA 92 73 D5 31 E8 : p.C.HNB[^S..s.1.
[libssh2] 0.339508 Transport: Looking for packet of type: 31
[libssh2] 0.339535 Failure Event: -37 - Unable to exchange encryption keys
[libssh2] 0.359090 Socket: Recved 848/16384 bytes to 0xcbe048+0
=> libssh2_transport_read() raw (848 bytes)
0000: 00 00 03 3C 07 1F 00 00  01 17 00 00 00 07 73 73 : ...<..........ss
0010: 68 2D 72 73 61 00 00 00  03 01 00 01 00 00 01 01 : h-rsa...........
0020: 00 E1 9C 29 61 BF 29 DE  36 93 2A 87 DF 4A 8B 54 : ...)a.).6.*..J.T
0030: 64 8E D0 9C 32 06 16 32  31 3C D5 1B F8 A0 6D 82 : d...2..21<....m.
0040: C9 3F 5C 3E 96 39 FE 9D  47 CA 74 E1 6F 58 30 D6 : .?\>.9..G.t.oX0.
0050: 99 94 44 92 D5 46 8B 11  17 26 98 F8 21 54 D7 65 : ..D..F...&..!T.e
0060: FA 22 EA 18 6A 90 5A E5  38 98 6B 87 E5 52 35 3E : ."..j.Z.8.k..R5>
0070: 3D B0 C5 DB A2 2F F8 E7  72 82 50 BF CF 75 AD 9E : =..../..r.P..u..
0080: 55 DB 60 56 4D 3C 16 10  A9 20 D1 B7 95 D1 94 8F : U.`VM<... ......
0090: B4 03 D6 B0 73 5A 64 B0  E0 46 98 D8 C6 32 91 E3 : ....sZd..F...2..
00a0: 17 37 33 1A 18 BC 6F 48  AA 06 E0 96 71 10 E4 59 : .73...oH....q..Y
00b0: E4 29 5B BF D7 24 D2 4C  81 8A 1C 2B 86 74 93 31 : .)[..$.L...+.t.1
00c0: E2 49 1D 72 EE 8F BE 6F  02 6C 06 F7 FF 3B D1 8C : .I.r...o.l...;..
00d0: 01 B2 5A 6A 60 57 48 06  9D 45 DE 91 2C F9 B9 6D : ..Zj`WH..E..,..m
00e0: 19 05 66 AF E0 FC 29 E6  01 56 05 C0 57 6E 49 47 : ..f...)..V..WnIG
00f0: 2F 45 26 E3 7D 9D 43 7C  CE 12 A6 D4 23 6B 22 F1 : /E&.}.C|....#k".
0100: 62 C6 78 12 1D 75 60 E2  C6 F9 71 E2 44 1F 8D 01 : b.x..u`...q.D...
0110: F3 C3 B0 B3 47 02 B4 97  37 9A 3A 9A 48 4F 4B 1E : ....G...7.:.HOK.
0120: 15 00 00 01 01 00 98 E4  66 87 B7 17 56 B4 2E 06 : ........f...V...
0130: 98 E0 15 92 A7 19 B0 80  22 A2 AA 6E E4 3D 74 94 : ........"..n.=t.
0140: 21 9C AC B9 D8 4C 49 CD  F4 20 CF 32 94 68 79 96 : !....LI.. .2.hy.
0150: 7F 76 73 DF E1 78 4C D8  FB 71 BE 0A C2 9E FE 2E : .vs..xL..q......
0160: CE 53 DA 29 51 B4 F0 A1  96 46 A9 EF 7F D8 7D 7E : .S.)Q....F....}~
0170: 32 B3 5E 4B 3F 94 27 A7  39 7E 88 C7 47 A4 FD 27 : 2.^K?.'.9~..G..'
0180: 9C 40 90 C9 99 75 11 68  D3 61 51 14 C3 EF 8F 6A : .@...u.h.aQ....j
0190: E3 AA 20 69 5D 80 BD 0E  7A EE 51 44 3D 1A 96 95 : .. i]...z.QD=...
01a0: 59 11 8F 89 E7 E0 EC 5B  84 96 08 47 49 4B 47 48 : Y......[...GIKGH
01b0: 8C 47 B5 79 E3 88 43 B9  4A C1 5E EF 5B C2 81 A6 : .G.y..C.J.^.[...
01c0: 01 A7 8A CE 59 8D 20 E5  A6 60 C3 21 64 3A C0 12 : ....Y. ..`.!d:..
01d0: 39 09 85 CE FA AF 06 91  90 A4 CA 32 F4 F2 06 F7 : 9..........2....
01e0: 6A D1 F3 6B 6E 42 A8 FE  C8 95 64 29 38 A3 A4 6F : j..knB....d)8..o
01f0: 00 B5 D2 11 14 0D 94 F0  32 10 D4 01 F7 F7 7D 9F : ........2.....}.
0200: C3 B3 74 E6 47 8D BD 6E  68 34 8F F4 FE 0A A6 15 : ..t.G..nh4......
0210: 50 63 20 4B 89 ED FB 72  04 F1 6D 17 64 E4 9B B2 : Pc K...r..m.d...
0220: 92 E1 2F CF 26 7F 00 00  01 0F 00 00 00 07 73 73 : ../.&.........ss
0230: 68 2D 72 73 61 00 00 01  00 70 59 EA D2 CE 6D 8B : h-rsa....pY...m.
0240: 08 66 05 4F 56 33 50 90  9C CA 1D 28 2A C2 BA 37 : .f.OV3P....(*..7
0250: 36 60 EE 98 FA 2E 5E BB  AC 72 D9 F1 28 2B A6 BA : 6`....^..r..(+..
0260: 57 BF 2D 07 9E 1F 93 59  DA 9D 91 3A 86 F1 06 FF : W.-....Y...:....
0270: C2 32 68 D8 1A 35 A3 A7  D5 24 7D 77 01 40 69 A0 : .2h..5...$}w.@i.
0280: 92 AB 06 95 2D FB FF 62  85 37 A0 F5 A5 50 AA 37 : ....-..b.7...P.7
0290: D4 95 0A 8F B6 E9 B2 FF  51 C1 89 24 C3 2E CE E5 : ........Q..$....
02a0: B5 16 6C 93 3B ED FC 9E  5B 08 A0 AA 97 F4 C5 85 : ..l.;...[.......
02b0: A2 17 F9 FF 3E D1 27 FE  E0 F1 6F 20 76 87 19 A1 : ....>.'...o v...
02c0: 68 3E 70 4F 7A E2 B7 6E  E1 B5 BC 59 C7 9D FA 5B : h>pOz..n...Y...[
02d0: B5 7A 5A 7E 6F 6E 39 DE  40 98 61 BA C3 BE FB 1C : .zZ~on9.@.a.....
02e0: 71 01 02 25 C2 4C 84 56  D0 50 E1 D5 C8 AF 6C CE : q..%.L.V.P....l.
02f0: 6C C4 E4 46 C7 03 3B AA  2D 5A E0 FC D2 16 C9 8F : l..F..;.-Z......
0300: 40 EC A0 BA 1C 3D 73 E3  E0 30 4B 00 55 7E 98 7B : @....=s..0K.U~.{
0310: 17 6C F6 27 A0 D0 DC 0F  F4 93 4C 55 F8 DB 43 AC : .l.'......LU..C.
0320: 00 54 07 B1 53 2C 09 DB  3D 53 E5 52 40 8F F9 18 : .T..S,..=S.R@...
0330: 11 43 89 48 34 62 25 F3  3E 00 00 00 00 00 00 00 : .C.H4b%.>.......
0340: 00 00 00 0C 0A 15 00 00  00 00 00 00 00 00 00 00 : ................
=> libssh2_transport_read() plain (820 bytes)
0000: 1F 00 00 01 17 00 00 00  07 73 73 68 2D 72 73 61 : .........ssh-rsa
0010: 00 00 00 03 01 00 01 00  00 01 01 00 E1 9C 29 61 : ..............)a
0020: BF 29 DE 36 93 2A 87 DF  4A 8B 54 64 8E D0 9C 32 : .).6.*..J.Td...2
0030: 06 16 32 31 3C D5 1B F8  A0 6D 82 C9 3F 5C 3E 96 : ..21<....m..?\>.
0040: 39 FE 9D 47 CA 74 E1 6F  58 30 D6 99 94 44 92 D5 : 9..G.t.oX0...D..
0050: 46 8B 11 17 26 98 F8 21  54 D7 65 FA 22 EA 18 6A : F...&..!T.e."..j
0060: 90 5A E5 38 98 6B 87 E5  52 35 3E 3D B0 C5 DB A2 : .Z.8.k..R5>=....
0070: 2F F8 E7 72 82 50 BF CF  75 AD 9E 55 DB 60 56 4D : /..r.P..u..U.`VM
0080: 3C 16 10 A9 20 D1 B7 95  D1 94 8F B4 03 D6 B0 73 : <... ..........s
0090: 5A 64 B0 E0 46 98 D8 C6  32 91 E3 17 37 33 1A 18 : Zd..F...2...73..
00a0: BC 6F 48 AA 06 E0 96 71  10 E4 59 E4 29 5B BF D7 : .oH....q..Y.)[..
00b0: 24 D2 4C 81 8A 1C 2B 86  74 93 31 E2 49 1D 72 EE : $.L...+.t.1.I.r.
00c0: 8F BE 6F 02 6C 06 F7 FF  3B D1 8C 01 B2 5A 6A 60 : ..o.l...;....Zj`
00d0: 57 48 06 9D 45 DE 91 2C  F9 B9 6D 19 05 66 AF E0 : WH..E..,..m..f..
00e0: FC 29 E6 01 56 05 C0 57  6E 49 47 2F 45 26 E3 7D : .)..V..WnIG/E&.}
00f0: 9D 43 7C CE 12 A6 D4 23  6B 22 F1 62 C6 78 12 1D : .C|....#k".b.x..
0100: 75 60 E2 C6 F9 71 E2 44  1F 8D 01 F3 C3 B0 B3 47 : u`...q.D.......G
0110: 02 B4 97 37 9A 3A 9A 48  4F 4B 1E 15 00 00 01 01 : ...7.:.HOK......
0120: 00 98 E4 66 87 B7 17 56  B4 2E 06 98 E0 15 92 A7 : ...f...V........
0130: 19 B0 80 22 A2 AA 6E E4  3D 74 94 21 9C AC B9 D8 : ..."..n.=t.!....
0140: 4C 49 CD F4 20 CF 32 94  68 79 96 7F 76 73 DF E1 : LI.. .2.hy..vs..
0150: 78 4C D8 FB 71 BE 0A C2  9E FE 2E CE 53 DA 29 51 : xL..q.......S.)Q
0160: B4 F0 A1 96 46 A9 EF 7F  D8 7D 7E 32 B3 5E 4B 3F : ....F....}~2.^K?
0170: 94 27 A7 39 7E 88 C7 47  A4 FD 27 9C 40 90 C9 99 : .'.9~..G..'.@...
0180: 75 11 68 D3 61 51 14 C3  EF 8F 6A E3 AA 20 69 5D : u.h.aQ....j.. i]
0190: 80 BD 0E 7A EE 51 44 3D  1A 96 95 59 11 8F 89 E7 : ...z.QD=...Y....
01a0: E0 EC 5B 84 96 08 47 49  4B 47 48 8C 47 B5 79 E3 : ..[...GIKGH.G.y.
01b0: 88 43 B9 4A C1 5E EF 5B  C2 81 A6 01 A7 8A CE 59 : .C.J.^.[.......Y
01c0: 8D 20 E5 A6 60 C3 21 64  3A C0 12 39 09 85 CE FA : . ..`.!d:..9....
01d0: AF 06 91 90 A4 CA 32 F4  F2 06 F7 6A D1 F3 6B 6E : ......2....j..kn
01e0: 42 A8 FE C8 95 64 29 38  A3 A4 6F 00 B5 D2 11 14 : B....d)8..o.....
01f0: 0D 94 F0 32 10 D4 01 F7  F7 7D 9F C3 B3 74 E6 47 : ...2.....}...t.G
0200: 8D BD 6E 68 34 8F F4 FE  0A A6 15 50 63 20 4B 89 : ..nh4......Pc K.
0210: ED FB 72 04 F1 6D 17 64  E4 9B B2 92 E1 2F CF 26 : ..r..m.d...../.&
0220: 7F 00 00 01 0F 00 00 00  07 73 73 68 2D 72 73 61 : .........ssh-rsa
0230: 00 00 01 00 70 59 EA D2  CE 6D 8B 08 66 05 4F 56 : ....pY...m..f.OV
0240: 33 50 90 9C CA 1D 28 2A  C2 BA 37 36 60 EE 98 FA : 3P....(*..76`...
0250: 2E 5E BB AC 72 D9 F1 28  2B A6 BA 57 BF 2D 07 9E : .^..r..(+..W.-..
0260: 1F 93 59 DA 9D 91 3A 86  F1 06 FF C2 32 68 D8 1A : ..Y...:.....2h..
0270: 35 A3 A7 D5 24 7D 77 01  40 69 A0 92 AB 06 95 2D : 5...$}w.@i.....-
0280: FB FF 62 85 37 A0 F5 A5  50 AA 37 D4 95 0A 8F B6 : ..b.7...P.7.....
0290: E9 B2 FF 51 C1 89 24 C3  2E CE E5 B5 16 6C 93 3B : ...Q..$......l.;
02a0: ED FC 9E 5B 08 A0 AA 97  F4 C5 85 A2 17 F9 FF 3E : ...[...........>
02b0: D1 27 FE E0 F1 6F 20 76  87 19 A1 68 3E 70 4F 7A : .'...o v...h>pOz
02c0: E2 B7 6E E1 B5 BC 59 C7  9D FA 5B B5 7A 5A 7E 6F : ..n...Y...[.zZ~o
02d0: 6E 39 DE 40 98 61 BA C3  BE FB 1C 71 01 02 25 C2 : n9.@.a.....q..%.
02e0: 4C 84 56 D0 50 E1 D5 C8  AF 6C CE 6C C4 E4 46 C7 : L.V.P....l.l..F.
02f0: 03 3B AA 2D 5A E0 FC D2  16 C9 8F 40 EC A0 BA 1C : .;.-Z......@....
0300: 3D 73 E3 E0 30 4B 00 55  7E 98 7B 17 6C F6 27 A0 : =s..0K.U~.{.l.'.
0310: D0 DC 0F F4 93 4C 55 F8  DB 43 AC 00 54 07 B1 53 : .....LU..C..T..S
0320: 2C 09 DB 3D 53 E5 52 40  8F F9 18 11 43 89 48 34 : ,..=S.R@....C.H4
0330: 62 25 F3 3E                                      : b%.>
[libssh2] 0.359433 Transport: Packet type 31 received, length=820
[libssh2] 0.359436 Transport: Looking for packet of type: 31
[libssh2] 0.359449 Key Ex: Server's MD5 Fingerprint:
c7:92:4a:e5:00:80:27:eb:48:17:12:51:6a:5c:e8:59
[libssh2] 0.359456 Key Ex: Server's SHA1 Fingerprint:
c9:6c:ce:5a:57:f0:30:33:f0:7a:f9:a5:47:a4:94:7a:24:5d:21:b8
[libssh2] 0.360876 Key Ex: Sending NEWKEYS message
=> libssh2_transport_write plain (1 bytes)
0000: 15                                               : .
[libssh2] 0.360898 Socket: Sent 16/16 bytes at 0xcc2088
=> libssh2_transport_write send() (16 bytes)
0000: 00 00 00 0C 0A 15 45 B2  DB 6D 68 11 86 45 22 E5 : ......E..mh..E".
[libssh2] 0.360908 Transport: Looking for packet of type: 21
=> libssh2_transport_read() plain (1 bytes)
0000: 15                                               : .
[libssh2] 0.360922 Transport: Packet type 21 received, length=1
[libssh2] 0.360926 Transport: Looking for packet of type: 21
[libssh2] 0.360929 Key Ex: Received NEWKEYS message
[libssh2] 0.360932 Key Ex: session_id calculated
[libssh2] 0.360954 Key Ex: Client to Server IV and Key calculated
[libssh2] 0.360964 Key Ex: Server to Client IV and Key calculated
[libssh2] 0.360969 Key Ex: Client to Server HMAC Key calculated
[libssh2] 0.360974 Key Ex: Server to Client HMAC Key calculated
[libssh2] 0.360977 Key Ex: Client to Server compression initialized
[libssh2] 0.360979 Key Ex: Server to Client compression initialized
[libssh2] 0.360987 Transport: Requesting userauth service
=> libssh2_transport_write plain (17 bytes)
0000: 05 00 00 00 0C 73 73 68  2D 75 73 65 72 61 75 74 : .....ssh-useraut
0010: 68                                               : h
[libssh2] 0.361014 Socket: Sent 52/52 bytes at 0xcc2088
=> libssh2_transport_write send() (52 bytes)
0000: 7F F8 F7 E1 26 F2 62 D4  33 0B 14 36 DE A1 5C 39 : ....&.b.3..6..\9
0010: 2E CF 71 F8 2A AF FA 96  57 20 B5 93 5B 6B 99 1C : ..q.*...W ..[k..
0020: BE 47 2A 5D D2 E9 39 48  4C F1 A2 7F 04 D5 DC 24 : .G*]..9HL......$
0030: 36 2F 38 7A                                      : 6/8z
[libssh2] 0.361029 Transport: Looking for packet of type: 6
[libssh2] 0.402694 Socket: Recved 52/16384 bytes to 0xcbe048+0
=> libssh2_transport_read() raw (52 bytes)
0000: A4 FF 8F C4 1E 71 C1 AE  C0 92 3C 2B 09 DF 53 A3 : .....q....<+..S.
0010: 0D 4F DB 33 BC B4 D5 CB  B5 7F F4 0F BF 52 D0 9F : .O.3.........R..
0020: ED F6 F3 02 69 FD 68 9E  A7 42 80 3F C1 0E D1 F0 : ....i.h..B.?....
0030: 65 F0 9E E8                                      : e...
=> libssh2_transport_read() plain (17 bytes)
0000: 06 00 00 00 0C 73 73 68  2D 75 73 65 72 61 75 74 : .....ssh-useraut
0010: 68                                               : h
[libssh2] 0.402784 Transport: Packet type 6 received, length=17
[libssh2] 0.402791 Transport: Looking for packet of type: 6
Fingerprint: C9 6C CE 5A 57 F0 30 33 F0 7A F9 A5 47 A4 94 7A 24 5D 21 B8
=> libssh2_transport_write plain (28 bytes)
0000: 32 00 00 00 01 69 00 00  00 0E 73 73 68 2D 63 6F : 2....i....ssh-co
0010: 6E 6E 65 63 74 69 6F 6E  00 00 00 04             : nnection....
=> libssh2_transport_write plain2 (4 bytes)
0000: 6E 6F 6E 65                                      : none
[libssh2] 0.402893 Socket: Sent 68/68 bytes at 0xcc2088
=> libssh2_transport_write send() (68 bytes)
0000: 2C E6 3A 24 A1 61 8B D7  6D E4 9F A3 EA 85 80 AA : ,.:$.a..m.......
0010: 2B 73 93 B3 51 3B C6 8A  72 79 90 AB 74 AD 1E 98 : +s..Q;..ry..t...
0020: A7 17 AA 13 2C 7C C4 EB  AE F3 85 83 E6 A9 8D 4F : ....,|.........O
0030: 35 0B C5 41 B8 F3 11 61  DC 6B 6A DA 3B F6 97 F1 : 5..A...a.kj.;...
0040: 87 FB BE 7A                                      : ...z
[libssh2] 0.402928 Transport: Looking for packet of type: 52
[libssh2] 0.402933 Transport: Looking for packet of type: 51
[libssh2] 0.402940 Failure Event: -37 - Would block requesting userauth list
[libssh2] 0.404328 Transport: Looking for packet of type: 52
[libssh2] 0.404349 Transport: Looking for packet of type: 51
[libssh2] 0.404362 Socket: Recved 52/16384 bytes to 0xcbe048+0
=> libssh2_transport_read() raw (52 bytes)
0000: 80 05 7F EA 5A 9B 47 26  C0 98 AC 07 9D BF CA 0C : ....Z.G&........
0010: EA 0D 97 6C BF 59 31 23  C1 54 28 29 B9 19 30 C9 : ...l.Y1#.T()..0.
0020: 06 DF 9D D1 48 3E F9 E6  DF 60 3F E4 E4 07 03 1F : ....H>...`?.....
0030: 35 A3 20 58                                      : 5. X
=> libssh2_transport_read() plain (15 bytes)
0000: 33 00 00 00 09 70 75 62  6C 69 63 6B 65 79 00    : 3....publickey.
[libssh2] 0.404443 Transport: Packet type 51 received, length=15
[libssh2] 0.404454 Transport: Looking for packet of type: 52
[libssh2] 0.404462 Transport: Looking for packet of type: 51
[libssh2] 0.404482 Userauth: Permitted auth methods: publickey
Authentication methods: publickey
[libssh2] 0.404525 Userauth: Loading public key file: ~/.ssh/id_rsa.pub
[libssh2] 0.404547 Failure Event: -16 - Unable to open public key file
Authentication by public key failed!
[libssh2] 0.404568 Transport: Disconnecting: reason=11, desc=Normal
Shutdown, Thank you for playing, lang=
=> libssh2_transport_write plain (51 bytes)
0000: 01 00 00 00 0B 00 00 00  26 4E 6F 72 6D 61 6C 20 : ........&Normal
0010: 53 68 75 74 64 6F 77 6E  2C 20 54 68 61 6E 6B 20 : Shutdown, Thank
0020: 79 6F 75 20 66 6F 72 20  70 6C 61 79 69 6E 67 00 : you for playing.
0030: 00 00 00                                         : ...
=> libssh2_transport_write plain2 (0 bytes)
[libssh2] 0.404675 Socket: Sent 84/84 bytes at 0xcc2088
=> libssh2_transport_write send() (84 bytes)
0000: E4 BC EF 76 3F E2 3A 6D  55 54 C1 21 1B CC 53 3C : ...v?.:mUT.!..S<
0010: 56 C8 04 43 CC 31 14 D2  48 76 9F 20 FE A4 83 3F : V..C.1..Hv. ...?
0020: 57 4B 67 F1 44 0D A6 ED  D9 17 02 20 97 55 3C 71 : WKg.D...... .U<q
0030: 59 FE 7A 2B 32 89 1A 7E  80 86 CE 55 28 A1 E3 C2 : Y.z+2..~...U(...
0040: 0E E8 D8 71 C2 8E BD 33  14 22 05 5C CA 22 56 95 : ...q...3.".\."V.
0050: B4 0F 2A A0                                      : ..*.
[libssh2] 0.404758 Transport: Freeing session resource
[libssh2] 0.404783 Transport: Extra packets left 0
all done!

2012/4/24 Peter Stuge <peter@stuge.se>

> Nick Rudnick wrote:
> > First SSH keyfile authentication runs flawless when done in a terminal.
>
> Do you mean "the first time" or "I will list some things, the first
> is that" ?
>
>
> > The server is OpenSSH_5.8p1, built from source for better tracing of
> > the problem.
>
> Where is the EPIPE reported?
>
> Please compile libssh2 with debugging enabled, and call
>
> libssh2_trace(session, ~0);
>
> in the example. Please send the rich debug messages to the mailing
> list. Thanks!
>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>

--e89a8f3ba1491da0f304be748ee0
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div class=3D"gmail_extra"><div class=3D"gmail_extra">Hi Peter</div><div cl=
ass=3D"gmail_extra"><br></div><div class=3D"gmail_extra"><br></div><div cla=
ss=3D"gmail_extra">&quot;Failure Event: -16 - Unable to open public key fil=
e&quot;...??</div>
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">Here my acc=
ess rights:</div><div class=3D"gmail_extra"><div class=3D"gmail_extra">drwx=
------ =A02 i i 4096 2012-04-23 10:52 .</div><div class=3D"gmail_extra">drw=
xr-xr-x 58 i i 4096 2012-04-24 23:06 ..</div>
<div class=3D"gmail_extra">-rw------- =A01 i i =A0388 2012-04-22 21:07 auth=
orized_keys</div><div class=3D"gmail_extra">-rw------- =A01 i i 1766 2012-0=
3-23 14:55 id_rsa</div><div class=3D"gmail_extra">-rw------- =A01 i i =A038=
1 2012-03-23 14:55 id_rsa.pub</div>
<div class=3D"gmail_extra">-rw------- =A01 i i =A0727 2012-03-23 17:10 keyg=
en.log</div><div class=3D"gmail_extra">-rw------- =A01 i i 1328 2012-04-23 =
10:52 known_hosts</div></div><div class=3D"gmail_extra"><br></div><div clas=
s=3D"gmail_extra">
=3D 8&lt; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D ssh2=
.c &gt; ssh2 =3D=3D=3D=3D=3D</div><div class=3D"gmail_extra">[libssh2] 0.29=
4243 Transport: session_startup for socket 3</div><div class=3D"gmail_extra=
">[libssh2] 0.294315 Transport: Sending Banner: SSH-2.0-libssh2_1.4.2-20120=
422</div>
<div class=3D"gmail_extra">[libssh2] 0.294356 Socket: Sent 32/32 bytes at 0=
x7ffd5aa69fe0+0</div><div class=3D"gmail_extra">[libssh2] 0.294381 Socket: =
Error recving 1 bytes: 11</div><div class=3D"gmail_extra">[libssh2] 0.29439=
7 Failure Event: -37 - Failed getting banner</div>
<div class=3D"gmail_extra">[libssh2] 0.301856 Socket: Recved 1 bytes banner=
</div><div class=3D"gmail_extra">[libssh2] 0.301885 Socket: Recved 1 bytes =
banner</div><div class=3D"gmail_extra">[libssh2] 0.301901 Socket: Recved 1 =
bytes banner</div>
<div class=3D"gmail_extra">[libssh2] 0.301917 Socket: Recved 1 bytes banner=
</div><div class=3D"gmail_extra">[libssh2] 0.301933 Socket: Recved 1 bytes =
banner</div><div class=3D"gmail_extra">[libssh2] 0.301954 Socket: Recved 1 =
bytes banner</div>
<div class=3D"gmail_extra">[libssh2] 0.301981 Socket: Recved 1 bytes banner=
</div><div class=3D"gmail_extra">[libssh2] 0.302007 Socket: Recved 1 bytes =
banner</div><div class=3D"gmail_extra">[libssh2] 0.302033 Socket: Recved 1 =
bytes banner</div>
<div class=3D"gmail_extra">[libssh2] 0.302061 Socket: Recved 1 bytes banner=
</div><div class=3D"gmail_extra">[libssh2] 0.302089 Socket: Recved 1 bytes =
banner</div><div class=3D"gmail_extra">[libssh2] 0.302115 Socket: Recved 1 =
bytes banner</div>
<div class=3D"gmail_extra">[libssh2] 0.302141 Socket: Recved 1 bytes banner=
</div><div class=3D"gmail_extra">[libssh2] 0.302167 Socket: Recved 1 bytes =
banner</div><div class=3D"gmail_extra">[libssh2] 0.302191 Socket: Recved 1 =
bytes banner</div>
<div class=3D"gmail_extra">[libssh2] 0.302230 Socket: Recved 1 bytes banner=
</div><div class=3D"gmail_extra">[libssh2] 0.302252 Socket: Recved 1 bytes =
banner</div><div class=3D"gmail_extra">[libssh2] 0.302268 Socket: Recved 1 =
bytes banner</div>
<div class=3D"gmail_extra">[libssh2] 0.302285 Socket: Recved 1 bytes banner=
</div><div class=3D"gmail_extra">[libssh2] 0.302310 Socket: Recved 1 bytes =
banner</div><div class=3D"gmail_extra">[libssh2] 0.302337 Socket: Recved 1 =
bytes banner</div>
<div class=3D"gmail_extra">[libssh2] 0.302364 Transport: Received Banner: S=
SH-2.0-OpenSSH_5.8</div><div class=3D"gmail_extra">[libssh2] 0.302623 Key E=
x: Sent KEX: diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1=
,diffie-hellman-group1-sha1</div>
<div class=3D"gmail_extra">[libssh2] 0.302651 Key Ex: Sent HOSTKEY: ssh-rsa=
,ssh-dss</div><div class=3D"gmail_extra">[libssh2] 0.302666 Key Ex: Sent CR=
YPT_CS: aes128-ctr,aes192-ctr,aes256-ctr,aes256-cbc,<a href=3D"mailto:rijnd=
ael-cbc@lysator.liu.se">rijndael-cbc@lysator.liu.se</a>,aes192-cbc,aes128-c=
bc,blowfish-cbc,arcfour128,arcfour,cast128-cbc,3des-cbc</div>
<div class=3D"gmail_extra">[libssh2] 0.302682 Key Ex: Sent CRYPT_SC: aes128=
-ctr,aes192-ctr,aes256-ctr,aes256-cbc,<a href=3D"mailto:rijndael-cbc@lysato=
r.liu.se">rijndael-cbc@lysator.liu.se</a>,aes192-cbc,aes128-cbc,blowfish-cb=
c,arcfour128,arcfour,cast128-cbc,3des-cbc</div>
<div class=3D"gmail_extra">[libssh2] 0.302698 Key Ex: Sent MAC_CS: hmac-sha=
1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,<a href=3D"mailto:hmac-r=
ipemd160@openssh.com">hmac-ripemd160@openssh.com</a></div><div class=3D"gma=
il_extra">
[libssh2] 0.302713 Key Ex: Sent MAC_SC: hmac-sha1,hmac-sha1-96,hmac-md5,hma=
c-md5-96,hmac-ripemd160,<a href=3D"mailto:hmac-ripemd160@openssh.com">hmac-=
ripemd160@openssh.com</a></div><div class=3D"gmail_extra">[libssh2] 0.30272=
8 Key Ex: Sent COMP_CS: none</div>
<div class=3D"gmail_extra">[libssh2] 0.302742 Key Ex: Sent COMP_SC: none</d=
iv><div class=3D"gmail_extra">[libssh2] 0.302756 Key Ex: Sent LANG_CS:=A0</=
div><div class=3D"gmail_extra">[libssh2] 0.302770 Key Ex: Sent LANG_SC:=A0<=
/div><div class=3D"gmail_extra">
=3D&gt; libssh2_transport_write plain (636 bytes)</div><div class=3D"gmail_=
extra">0000: 14 6F 84 B2 BB C3 29 C1 =A0EF 06 19 F8 2C 7E 61 EA : .o....)..=
...,~a.</div><div class=3D"gmail_extra">0010: 78 00 00 00 59 64 69 66 =A066=
 69 65 2D 68 65 6C 6C : x...Ydiffie-hell</div>
<div class=3D"gmail_extra">0020: 6D 61 6E 2D 67 72 6F 75 =A070 31 34 2D 73 =
68 61 31 : man-group14-sha1</div><div class=3D"gmail_extra">0030: 2C 64 69 =
66 66 69 65 2D =A068 65 6C 6C 6D 61 6E 2D : ,diffie-hellman-</div><div clas=
s=3D"gmail_extra">
0040: 67 72 6F 75 70 2D 65 78 =A063 68 61 6E 67 65 2D 73 : group-exchange-s=
</div><div class=3D"gmail_extra">0050: 68 61 31 2C 64 69 66 66 =A069 65 2D =
68 65 6C 6C 6D : ha1,diffie-hellm</div><div class=3D"gmail_extra">0060: 61 =
6E 2D 67 72 6F 75 70 =A031 2D 73 68 61 31 00 00 : an-group1-sha1..</div>
<div class=3D"gmail_extra">0070: 00 0F 73 73 68 2D 72 73 =A061 2C 73 73 68 =
2D 64 73 : ..ssh-rsa,ssh-ds</div><div class=3D"gmail_extra">0080: 73 00 00 =
00 92 61 65 73 =A031 32 38 2D 63 74 72 2C : s....aes128-ctr,</div><div clas=
s=3D"gmail_extra">
0090: 61 65 73 31 39 32 2D 63 =A074 72 2C 61 65 73 32 35 : aes192-ctr,aes25=
</div><div class=3D"gmail_extra">00a0: 36 2D 63 74 72 2C 61 65 =A073 32 35 =
36 2D 63 62 63 : 6-ctr,aes256-cbc</div><div class=3D"gmail_extra">00b0: 2C =
72 69 6A 6E 64 61 65 =A06C 2D 63 62 63 40 6C 79 : ,rijndael-cbc@ly</div>
<div class=3D"gmail_extra">00c0: 73 61 74 6F 72 2E 6C 69 =A075 2E 73 65 2C =
61 65 73 : <a href=3D"http://sator.liu.se">sator.liu.se</a>,aes</div><div c=
lass=3D"gmail_extra">00d0: 31 39 32 2D 63 62 63 2C =A061 65 73 31 32 38 2D =
63 : 192-cbc,aes128-c</div>
<div class=3D"gmail_extra">00e0: 62 63 2C 62 6C 6F 77 66 =A069 73 68 2D 63 =
62 63 2C : bc,blowfish-cbc,</div><div class=3D"gmail_extra">00f0: 61 72 63 =
66 6F 75 72 31 =A032 38 2C 61 72 63 66 6F : arcfour128,arcfo</div><div clas=
s=3D"gmail_extra">
0100: 75 72 2C 63 61 73 74 31 =A032 38 2D 63 62 63 2C 33 : ur,cast128-cbc,3=
</div><div class=3D"gmail_extra">0110: 64 65 73 2D 63 62 63 00 =A000 00 92 =
61 65 73 31 32 : des-cbc....aes12</div><div class=3D"gmail_extra">0120: 38 =
2D 63 74 72 2C 61 65 =A073 31 39 32 2D 63 74 72 : 8-ctr,aes192-ctr</div>
<div class=3D"gmail_extra">0130: 2C 61 65 73 32 35 36 2D =A063 74 72 2C 61 =
65 73 32 : ,aes256-ctr,aes2</div><div class=3D"gmail_extra">0140: 35 36 2D =
63 62 63 2C 72 =A069 6A 6E 64 61 65 6C 2D : 56-cbc,rijndael-</div><div clas=
s=3D"gmail_extra">
0150: 63 62 63 40 6C 79 73 61 =A074 6F 72 2E 6C 69 75 2E : cbc@lysator.liu.=
</div><div class=3D"gmail_extra">0160: 73 65 2C 61 65 73 31 39 =A032 2D 63 =
62 63 2C 61 65 : se,aes192-cbc,ae</div><div class=3D"gmail_extra">0170: 73 =
31 32 38 2D 63 62 63 =A02C 62 6C 6F 77 66 69 73 : s128-cbc,blowfis</div>
<div class=3D"gmail_extra">0180: 68 2D 63 62 63 2C 61 72 =A063 66 6F 75 72 =
31 32 38 : h-cbc,arcfour128</div><div class=3D"gmail_extra">0190: 2C 61 72 =
63 66 6F 75 72 =A02C 63 61 73 74 31 32 38 : ,arcfour,cast128</div><div clas=
s=3D"gmail_extra">
01a0: 2D 63 62 63 2C 33 64 65 =A073 2D 63 62 63 00 00 00 : -cbc,3des-cbc...=
</div><div class=3D"gmail_extra">01b0: 55 68 6D 61 63 2D 73 68 =A061 31 2C =
68 6D 61 63 2D : Uhmac-sha1,hmac-</div><div class=3D"gmail_extra">01c0: 73 =
68 61 31 2D 39 36 2C =A068 6D 61 63 2D 6D 64 35 : sha1-96,hmac-md5</div>
<div class=3D"gmail_extra">01d0: 2C 68 6D 61 63 2D 6D 64 =A035 2D 39 36 2C =
68 6D 61 : ,hmac-md5-96,hma</div><div class=3D"gmail_extra">01e0: 63 2D 72 =
69 70 65 6D 64 =A031 36 30 2C 68 6D 61 63 : c-ripemd160,hmac</div><div clas=
s=3D"gmail_extra">
01f0: 2D 72 69 70 65 6D 64 31 =A036 30 40 6F 70 65 6E 73 : -ripemd160@opens=
</div><div class=3D"gmail_extra">0200: 73 68 2E 63 6F 6D 00 00 =A000 55 68 =
6D 61 63 2D 73 : sh.com...Uhmac-s</div><div class=3D"gmail_extra">0210: 68 =
61 31 2C 68 6D 61 63 =A02D 73 68 61 31 2D 39 36 : ha1,hmac-sha1-96</div>
<div class=3D"gmail_extra">0220: 2C 68 6D 61 63 2D 6D 64 =A035 2C 68 6D 61 =
63 2D 6D : ,hmac-md5,hmac-m</div><div class=3D"gmail_extra">0230: 64 35 2D =
39 36 2C 68 6D =A061 63 2D 72 69 70 65 6D : d5-96,hmac-ripem</div><div clas=
s=3D"gmail_extra">
0240: 64 31 36 30 2C 68 6D 61 =A063 2D 72 69 70 65 6D 64 : d160,hmac-ripemd=
</div><div class=3D"gmail_extra">0250: 31 36 30 40 6F 70 65 6E =A073 73 68 =
2E 63 6F 6D 00 : <a href=3D"mailto:160@openssh.com">160@openssh.com</a>.</d=
iv><div class=3D"gmail_extra">
0260: 00 00 04 6E 6F 6E 65 00 =A000 00 04 6E 6F 6E 65 00 : ...none....none.=
</div><div class=3D"gmail_extra">0270: 00 00 00 00 00 00 00 00 =A000 00 00 =
00 =A0 =A0 =A0 =A0 =A0 =A0 : ............</div><div class=3D"gmail_extra">[=
libssh2] 0.303383 Socket: Sent 648/648 bytes at 0xcc2088</div>
<div class=3D"gmail_extra">=3D&gt; libssh2_transport_write send() (648 byte=
s)</div><div class=3D"gmail_extra">0000: 00 00 02 84 07 14 6F 84 =A0B2 BB C=
3 29 C1 EF 06 19 : ......o....)....</div><div class=3D"gmail_extra">0010: F=
8 2C 7E 61 EA 78 00 00 =A000 59 64 69 66 66 69 65 : .,~a.x...Ydiffie</div>
<div class=3D"gmail_extra">0020: 2D 68 65 6C 6C 6D 61 6E =A02D 67 72 6F 75 =
70 31 34 : -hellman-group14</div><div class=3D"gmail_extra">0030: 2D 73 68 =
61 31 2C 64 69 =A066 66 69 65 2D 68 65 6C : -sha1,diffie-hel</div><div clas=
s=3D"gmail_extra">
0040: 6C 6D 61 6E 2D 67 72 6F =A075 70 2D 65 78 63 68 61 : lman-group-excha=
</div><div class=3D"gmail_extra">0050: 6E 67 65 2D 73 68 61 31 =A02C 64 69 =
66 66 69 65 2D : nge-sha1,diffie-</div><div class=3D"gmail_extra">0060: 68 =
65 6C 6C 6D 61 6E 2D =A067 72 6F 75 70 31 2D 73 : hellman-group1-s</div>
<div class=3D"gmail_extra">0070: 68 61 31 00 00 00 0F 73 =A073 68 2D 72 73 =
61 2C 73 : ha1....ssh-rsa,s</div><div class=3D"gmail_extra">0080: 73 68 2D =
64 73 73 00 00 =A000 92 61 65 73 31 32 38 : sh-dss....aes128</div><div clas=
s=3D"gmail_extra">
0090: 2D 63 74 72 2C 61 65 73 =A031 39 32 2D 63 74 72 2C : -ctr,aes192-ctr,=
</div><div class=3D"gmail_extra">00a0: 61 65 73 32 35 36 2D 63 =A074 72 2C =
61 65 73 32 35 : aes256-ctr,aes25</div><div class=3D"gmail_extra">00b0: 36 =
2D 63 62 63 2C 72 69 =A06A 6E 64 61 65 6C 2D 63 : 6-cbc,rijndael-c</div>
<div class=3D"gmail_extra">00c0: 62 63 40 6C 79 73 61 74 =A06F 72 2E 6C 69 =
75 2E 73 : bc@lysator.liu.s</div><div class=3D"gmail_extra">00d0: 65 2C 61 =
65 73 31 39 32 =A02D 63 62 63 2C 61 65 73 : e,aes192-cbc,aes</div><div clas=
s=3D"gmail_extra">
00e0: 31 32 38 2D 63 62 63 2C =A062 6C 6F 77 66 69 73 68 : 128-cbc,blowfish=
</div><div class=3D"gmail_extra">00f0: 2D 63 62 63 2C 61 72 63 =A066 6F 75 =
72 31 32 38 2C : -cbc,arcfour128,</div><div class=3D"gmail_extra">0100: 61 =
72 63 66 6F 75 72 2C =A063 61 73 74 31 32 38 2D : arcfour,cast128-</div>
<div class=3D"gmail_extra">0110: 63 62 63 2C 33 64 65 73 =A02D 63 62 63 00 =
00 00 92 : cbc,3des-cbc....</div><div class=3D"gmail_extra">0120: 61 65 73 =
31 32 38 2D 63 =A074 72 2C 61 65 73 31 39 : aes128-ctr,aes19</div><div clas=
s=3D"gmail_extra">
0130: 32 2D 63 74 72 2C 61 65 =A073 32 35 36 2D 63 74 72 : 2-ctr,aes256-ctr=
</div><div class=3D"gmail_extra">0140: 2C 61 65 73 32 35 36 2D =A063 62 63 =
2C 72 69 6A 6E : ,aes256-cbc,rijn</div><div class=3D"gmail_extra">0150: 64 =
61 65 6C 2D 63 62 63 =A040 6C 79 73 61 74 6F 72 : dael-cbc@lysator</div>
<div class=3D"gmail_extra">0160: 2E 6C 69 75 2E 73 65 2C =A061 65 73 31 39 =
32 2D 63 : .<a href=3D"http://liu.se">liu.se</a>,aes192-c</div><div class=
=3D"gmail_extra">0170: 62 63 2C 61 65 73 31 32 =A038 2D 63 62 63 2C 62 6C :=
 bc,aes128-cbc,bl</div>
<div class=3D"gmail_extra">0180: 6F 77 66 69 73 68 2D 63 =A062 63 2C 61 72 =
63 66 6F : owfish-cbc,arcfo</div><div class=3D"gmail_extra">0190: 75 72 31 =
32 38 2C 61 72 =A063 66 6F 75 72 2C 63 61 : ur128,arcfour,ca</div><div clas=
s=3D"gmail_extra">
01a0: 73 74 31 32 38 2D 63 62 =A063 2C 33 64 65 73 2D 63 : st128-cbc,3des-c=
</div><div class=3D"gmail_extra">01b0: 62 63 00 00 00 55 68 6D =A061 63 2D =
73 68 61 31 2C : bc...Uhmac-sha1,</div><div class=3D"gmail_extra">01c0: 68 =
6D 61 63 2D 73 68 61 =A031 2D 39 36 2C 68 6D 61 : hmac-sha1-96,hma</div>
<div class=3D"gmail_extra">01d0: 63 2D 6D 64 35 2C 68 6D =A061 63 2D 6D 64 =
35 2D 39 : c-md5,hmac-md5-9</div><div class=3D"gmail_extra">01e0: 36 2C 68 =
6D 61 63 2D 72 =A069 70 65 6D 64 31 36 30 : 6,hmac-ripemd160</div><div clas=
s=3D"gmail_extra">
01f0: 2C 68 6D 61 63 2D 72 69 =A070 65 6D 64 31 36 30 40 : ,hmac-ripemd160@=
</div><div class=3D"gmail_extra">0200: 6F 70 65 6E 73 73 68 2E =A063 6F 6D =
00 00 00 55 68 : openssh.com...Uh</div><div class=3D"gmail_extra">0210: 6D =
61 63 2D 73 68 61 31 =A02C 68 6D 61 63 2D 73 68 : mac-sha1,hmac-sh</div>
<div class=3D"gmail_extra">0220: 61 31 2D 39 36 2C 68 6D =A061 63 2D 6D 64 =
35 2C 68 : a1-96,hmac-md5,h</div><div class=3D"gmail_extra">0230: 6D 61 63 =
2D 6D 64 35 2D =A039 36 2C 68 6D 61 63 2D : mac-md5-96,hmac-</div><div clas=
s=3D"gmail_extra">
0240: 72 69 70 65 6D 64 31 36 =A030 2C 68 6D 61 63 2D 72 : ripemd160,hmac-r=
</div><div class=3D"gmail_extra">0250: 69 70 65 6D 64 31 36 30 =A040 6F 70 =
65 6E 73 73 68 : ipemd160@openssh</div><div class=3D"gmail_extra">0260: 2E =
63 6F 6D 00 00 00 04 =A06E 6F 6E 65 00 00 00 04 : .com....none....</div>
<div class=3D"gmail_extra">0270: 6E 6F 6E 65 00 00 00 00 =A000 00 00 00 00 =
00 00 00 : none............</div><div class=3D"gmail_extra">0280: 00 E9 BC =
8B F7 95 01 22 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0: .......=
&quot;</div><div class=3D"gmail_extra">
[libssh2] 0.304255 Transport: Looking for packet of type: 20</div><div clas=
s=3D"gmail_extra">[libssh2] 0.304285 Socket: Recved 856/16384 bytes to 0xcb=
e048+0</div><div class=3D"gmail_extra">=3D&gt; libssh2_transport_read() raw=
 (856 bytes)</div>
<div class=3D"gmail_extra">0000: 00 00 03 54 05 14 40 CD =A0B9 8F 7F BF C8 =
13 A7 48 : ...T..@........H</div><div class=3D"gmail_extra">0010: 07 AA 6E =
87 56 10 00 00 =A000 B7 65 63 64 68 2D 73 : ..n.V.....ecdh-s</div><div clas=
s=3D"gmail_extra">
0020: 68 61 32 2D 6E 69 73 74 =A070 32 35 36 2C 65 63 64 : ha2-nistp256,ecd=
</div><div class=3D"gmail_extra">0030: 68 2D 73 68 61 32 2D 6E =A069 73 74 =
70 33 38 34 2C : h-sha2-nistp384,</div><div class=3D"gmail_extra">0040: 65 =
63 64 68 2D 73 68 61 =A032 2D 6E 69 73 74 70 35 : ecdh-sha2-nistp5</div>
<div class=3D"gmail_extra">0050: 32 31 2C 64 69 66 66 69 =A065 2D 68 65 6C =
6C 6D 61 : 21,diffie-hellma</div><div class=3D"gmail_extra">0060: 6E 2D 67 =
72 6F 75 70 2D =A065 78 63 68 61 6E 67 65 : n-group-exchange</div><div clas=
s=3D"gmail_extra">
0070: 2D 73 68 61 32 35 36 2C =A064 69 66 66 69 65 2D 68 : -sha256,diffie-h=
</div><div class=3D"gmail_extra">0080: 65 6C 6C 6D 61 6E 2D 67 =A072 6F 75 =
70 2D 65 78 63 : ellman-group-exc</div><div class=3D"gmail_extra">0090: 68 =
61 6E 67 65 2D 73 68 =A061 31 2C 64 69 66 66 69 : hange-sha1,diffi</div>
<div class=3D"gmail_extra">00a0: 65 2D 68 65 6C 6C 6D 61 =A06E 2D 67 72 6F =
75 70 31 : e-hellman-group1</div><div class=3D"gmail_extra">00b0: 34 2D 73 =
68 61 31 2C 64 =A069 66 66 69 65 2D 68 65 : 4-sha1,diffie-he</div><div clas=
s=3D"gmail_extra">
00c0: 6C 6C 6D 61 6E 2D 67 72 =A06F 75 70 31 2D 73 68 61 : llman-group1-sha=
</div><div class=3D"gmail_extra">00d0: 31 00 00 00 23 73 73 68 =A02D 72 73 =
61 2C 73 73 68 : 1...#ssh-rsa,ssh</div><div class=3D"gmail_extra">00e0: 2D =
64 73 73 2C 65 63 64 =A073 61 2D 73 68 61 32 2D : -dss,ecdsa-sha2-</div>
<div class=3D"gmail_extra">00f0: 6E 69 73 74 70 32 35 36 =A000 00 00 9D 61 =
65 73 31 : nistp256....aes1</div><div class=3D"gmail_extra">0100: 32 38 2D =
63 74 72 2C 61 =A065 73 31 39 32 2D 63 74 : 28-ctr,aes192-ct</div><div clas=
s=3D"gmail_extra">
0110: 72 2C 61 65 73 32 35 36 =A02D 63 74 72 2C 61 72 63 : r,aes256-ctr,arc=
</div><div class=3D"gmail_extra">0120: 66 6F 75 72 32 35 36 2C =A061 72 63 =
66 6F 75 72 31 : four256,arcfour1</div><div class=3D"gmail_extra">0130: 32 =
38 2C 61 65 73 31 32 =A038 2D 63 62 63 2C 33 64 : 28,aes128-cbc,3d</div>
<div class=3D"gmail_extra">0140: 65 73 2D 63 62 63 2C 62 =A06C 6F 77 66 69 =
73 68 2D : es-cbc,blowfish-</div><div class=3D"gmail_extra">0150: 63 62 63 =
2C 63 61 73 74 =A031 32 38 2D 63 62 63 2C : cbc,cast128-cbc,</div><div clas=
s=3D"gmail_extra">
0160: 61 65 73 31 39 32 2D 63 =A062 63 2C 61 65 73 32 35 : aes192-cbc,aes25=
</div><div class=3D"gmail_extra">0170: 36 2D 63 62 63 2C 61 72 =A063 66 6F =
75 72 2C 72 69 : 6-cbc,arcfour,ri</div><div class=3D"gmail_extra">0180: 6A =
6E 64 61 65 6C 2D 63 =A062 63 40 6C 79 73 61 74 : jndael-cbc@lysat</div>
<div class=3D"gmail_extra">0190: 6F 72 2E 6C 69 75 2E 73 =A065 00 00 00 9D =
61 65 73 : or.liu.se....aes</div><div class=3D"gmail_extra">01a0: 31 32 38 =
2D 63 74 72 2C =A061 65 73 31 39 32 2D 63 : 128-ctr,aes192-c</div><div clas=
s=3D"gmail_extra">
01b0: 74 72 2C 61 65 73 32 35 =A036 2D 63 74 72 2C 61 72 : tr,aes256-ctr,ar=
</div><div class=3D"gmail_extra">01c0: 63 66 6F 75 72 32 35 36 =A02C 61 72 =
63 66 6F 75 72 : cfour256,arcfour</div><div class=3D"gmail_extra">01d0: 31 =
32 38 2C 61 65 73 31 =A032 38 2D 63 62 63 2C 33 : 128,aes128-cbc,3</div>
<div class=3D"gmail_extra">01e0: 64 65 73 2D 63 62 63 2C =A062 6C 6F 77 66 =
69 73 68 : des-cbc,blowfish</div><div class=3D"gmail_extra">01f0: 2D 63 62 =
63 2C 63 61 73 =A074 31 32 38 2D 63 62 63 : -cbc,cast128-cbc</div><div clas=
s=3D"gmail_extra">
0200: 2C 61 65 73 31 39 32 2D =A063 62 63 2C 61 65 73 32 : ,aes192-cbc,aes2=
</div><div class=3D"gmail_extra">0210: 35 36 2D 63 62 63 2C 61 =A072 63 66 =
6F 75 72 2C 72 : 56-cbc,arcfour,r</div><div class=3D"gmail_extra">0220: 69 =
6A 6E 64 61 65 6C 2D =A063 62 63 40 6C 79 73 61 : ijndael-cbc@lysa</div>
<div class=3D"gmail_extra">0230: 74 6F 72 2E 6C 69 75 2E =A073 65 00 00 00 =
69 68 6D : tor.liu.se...ihm</div><div class=3D"gmail_extra">0240: 61 63 2D =
6D 64 35 2C 68 =A06D 61 63 2D 73 68 61 31 : ac-md5,hmac-sha1</div><div clas=
s=3D"gmail_extra">
0250: 2C 75 6D 61 63 2D 36 34 =A040 6F 70 65 6E 73 73 68 : ,umac-64@openssh=
</div><div class=3D"gmail_extra">0260: 2E 63 6F 6D 2C 68 6D 61 =A063 2D 72 =
69 70 65 6D 64 : .com,hmac-ripemd</div><div class=3D"gmail_extra">0270: 31 =
36 30 2C 68 6D 61 63 =A02D 72 69 70 65 6D 64 31 : 160,hmac-ripemd1</div>
<div class=3D"gmail_extra">0280: 36 30 40 6F 70 65 6E 73 =A073 68 2E 63 6F =
6D 2C 68 : <a href=3D"mailto:60@openssh.com">60@openssh.com</a>,h</div><div=
 class=3D"gmail_extra">0290: 6D 61 63 2D 73 68 61 31 =A02D 39 36 2C 68 6D 6=
1 63 : mac-sha1-96,hmac</div>
<div class=3D"gmail_extra">02a0: 2D 6D 64 35 2D 39 36 00 =A000 00 69 68 6D =
61 63 2D : -md5-96...ihmac-</div><div class=3D"gmail_extra">02b0: 6D 64 35 =
2C 68 6D 61 63 =A02D 73 68 61 31 2C 75 6D : md5,hmac-sha1,um</div><div clas=
s=3D"gmail_extra">
02c0: 61 63 2D 36 34 40 6F 70 =A065 6E 73 73 68 2E 63 6F : <a href=3D"mailt=
o:ac-64@openssh.co">ac-64@openssh.co</a></div><div class=3D"gmail_extra">02=
d0: 6D 2C 68 6D 61 63 2D 72 =A069 70 65 6D 64 31 36 30 : m,hmac-ripemd160</=
div>
<div class=3D"gmail_extra">02e0: 2C 68 6D 61 63 2D 72 69 =A070 65 6D 64 31 =
36 30 40 : ,hmac-ripemd160@</div><div class=3D"gmail_extra">02f0: 6F 70 65 =
6E 73 73 68 2E =A063 6F 6D 2C 68 6D 61 63 : <a href=3D"http://openssh.com">=
openssh.com</a>,hmac</div>
<div class=3D"gmail_extra">0300: 2D 73 68 61 31 2D 39 36 =A02C 68 6D 61 63 =
2D 6D 64 : -sha1-96,hmac-md</div><div class=3D"gmail_extra">0310: 35 2D 39 =
36 00 00 00 15 =A06E 6F 6E 65 2C 7A 6C 69 : 5-96....none,zli</div><div clas=
s=3D"gmail_extra">
0320: 62 40 6F 70 65 6E 73 73 =A068 2E 63 6F 6D 00 00 00 : b@openssh.com...=
</div><div class=3D"gmail_extra">0330: 15 6E 6F 6E 65 2C 7A 6C =A069 62 40 =
6F 70 65 6E 73 : .none,zlib@opens</div><div class=3D"gmail_extra">0340: 73 =
68 2E 63 6F 6D 00 00 =A000 00 00 00 00 00 00 00 : sh.com..........</div>
<div class=3D"gmail_extra">0350: 00 00 00 00 00 00 00 00 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0: ........</div><div class=3D"gmail_extr=
a">=3D&gt; libssh2_transport_read() plain (846 bytes)</div><div class=3D"gm=
ail_extra">0000: 14 40 CD B9 8F 7F BF C8 =A013 A7 48 07 AA 6E 87 56 : .@...=
.....H..n.V</div>
<div class=3D"gmail_extra">0010: 10 00 00 00 B7 65 63 64 =A068 2D 73 68 61 =
32 2D 6E : .....ecdh-sha2-n</div><div class=3D"gmail_extra">0020: 69 73 74 =
70 32 35 36 2C =A065 63 64 68 2D 73 68 61 : istp256,ecdh-sha</div><div clas=
s=3D"gmail_extra">
0030: 32 2D 6E 69 73 74 70 33 =A038 34 2C 65 63 64 68 2D : 2-nistp384,ecdh-=
</div><div class=3D"gmail_extra">0040: 73 68 61 32 2D 6E 69 73 =A074 70 35 =
32 31 2C 64 69 : sha2-nistp521,di</div><div class=3D"gmail_extra">0050: 66 =
66 69 65 2D 68 65 6C =A06C 6D 61 6E 2D 67 72 6F : ffie-hellman-gro</div>
<div class=3D"gmail_extra">0060: 75 70 2D 65 78 63 68 61 =A06E 67 65 2D 73 =
68 61 32 : up-exchange-sha2</div><div class=3D"gmail_extra">0070: 35 36 2C =
64 69 66 66 69 =A065 2D 68 65 6C 6C 6D 61 : 56,diffie-hellma</div><div clas=
s=3D"gmail_extra">
0080: 6E 2D 67 72 6F 75 70 2D =A065 78 63 68 61 6E 67 65 : n-group-exchange=
</div><div class=3D"gmail_extra">0090: 2D 73 68 61 31 2C 64 69 =A066 66 69 =
65 2D 68 65 6C : -sha1,diffie-hel</div><div class=3D"gmail_extra">00a0: 6C =
6D 61 6E 2D 67 72 6F =A075 70 31 34 2D 73 68 61 : lman-group14-sha</div>
<div class=3D"gmail_extra">00b0: 31 2C 64 69 66 66 69 65 =A02D 68 65 6C 6C =
6D 61 6E : 1,diffie-hellman</div><div class=3D"gmail_extra">00c0: 2D 67 72 =
6F 75 70 31 2D =A073 68 61 31 00 00 00 23 : -group1-sha1...#</div><div clas=
s=3D"gmail_extra">
00d0: 73 73 68 2D 72 73 61 2C =A073 73 68 2D 64 73 73 2C : ssh-rsa,ssh-dss,=
</div><div class=3D"gmail_extra">00e0: 65 63 64 73 61 2D 73 68 =A061 32 2D =
6E 69 73 74 70 : ecdsa-sha2-nistp</div><div class=3D"gmail_extra">00f0: 32 =
35 36 00 00 00 9D 61 =A065 73 31 32 38 2D 63 74 : 256....aes128-ct</div>
<div class=3D"gmail_extra">0100: 72 2C 61 65 73 31 39 32 =A02D 63 74 72 2C =
61 65 73 : r,aes192-ctr,aes</div><div class=3D"gmail_extra">0110: 32 35 36 =
2D 63 74 72 2C =A061 72 63 66 6F 75 72 32 : 256-ctr,arcfour2</div><div clas=
s=3D"gmail_extra">
0120: 35 36 2C 61 72 63 66 6F =A075 72 31 32 38 2C 61 65 : 56,arcfour128,ae=
</div><div class=3D"gmail_extra">0130: 73 31 32 38 2D 63 62 63 =A02C 33 64 =
65 73 2D 63 62 : s128-cbc,3des-cb</div><div class=3D"gmail_extra">0140: 63 =
2C 62 6C 6F 77 66 69 =A073 68 2D 63 62 63 2C 63 : c,blowfish-cbc,c</div>
<div class=3D"gmail_extra">0150: 61 73 74 31 32 38 2D 63 =A062 63 2C 61 65 =
73 31 39 : ast128-cbc,aes19</div><div class=3D"gmail_extra">0160: 32 2D 63 =
62 63 2C 61 65 =A073 32 35 36 2D 63 62 63 : 2-cbc,aes256-cbc</div><div clas=
s=3D"gmail_extra">
0170: 2C 61 72 63 66 6F 75 72 =A02C 72 69 6A 6E 64 61 65 : ,arcfour,rijndae=
</div><div class=3D"gmail_extra">0180: 6C 2D 63 62 63 40 6C 79 =A073 61 74 =
6F 72 2E 6C 69 : <a href=3D"mailto:l-cbc@lysator.li">l-cbc@lysator.li</a></=
div>
<div class=3D"gmail_extra">0190: 75 2E 73 65 00 00 00 9D =A061 65 73 31 32 =
38 2D 63 : u.se....aes128-c</div><div class=3D"gmail_extra">01a0: 74 72 2C =
61 65 73 31 39 =A032 2D 63 74 72 2C 61 65 : tr,aes192-ctr,ae</div><div clas=
s=3D"gmail_extra">
01b0: 73 32 35 36 2D 63 74 72 =A02C 61 72 63 66 6F 75 72 : s256-ctr,arcfour=
</div><div class=3D"gmail_extra">01c0: 32 35 36 2C 61 72 63 66 =A06F 75 72 =
31 32 38 2C 61 : 256,arcfour128,a</div><div class=3D"gmail_extra">01d0: 65 =
73 31 32 38 2D 63 62 =A063 2C 33 64 65 73 2D 63 : es128-cbc,3des-c</div>
<div class=3D"gmail_extra">01e0: 62 63 2C 62 6C 6F 77 66 =A069 73 68 2D 63 =
62 63 2C : bc,blowfish-cbc,</div><div class=3D"gmail_extra">01f0: 63 61 73 =
74 31 32 38 2D =A063 62 63 2C 61 65 73 31 : cast128-cbc,aes1</div><div clas=
s=3D"gmail_extra">
0200: 39 32 2D 63 62 63 2C 61 =A065 73 32 35 36 2D 63 62 : 92-cbc,aes256-cb=
</div><div class=3D"gmail_extra">0210: 63 2C 61 72 63 66 6F 75 =A072 2C 72 =
69 6A 6E 64 61 : c,arcfour,rijnda</div><div class=3D"gmail_extra">0220: 65 =
6C 2D 63 62 63 40 6C =A079 73 61 74 6F 72 2E 6C : el-cbc@lysator.l</div>
<div class=3D"gmail_extra">0230: 69 75 2E 73 65 00 00 00 =A069 68 6D 61 63 =
2D 6D 64 : iu.se...ihmac-md</div><div class=3D"gmail_extra">0240: 35 2C 68 =
6D 61 63 2D 73 =A068 61 31 2C 75 6D 61 63 : 5,hmac-sha1,umac</div><div clas=
s=3D"gmail_extra">
0250: 2D 36 34 40 6F 70 65 6E =A073 73 68 2E 63 6F 6D 2C : -<a href=3D"mail=
to:64@openssh.com">64@openssh.com</a>,</div><div class=3D"gmail_extra">0260=
: 68 6D 61 63 2D 72 69 70 =A065 6D 64 31 36 30 2C 68 : hmac-ripemd160,h</di=
v><div class=3D"gmail_extra">
0270: 6D 61 63 2D 72 69 70 65 =A06D 64 31 36 30 40 6F 70 : mac-ripemd160@op=
</div><div class=3D"gmail_extra">0280: 65 6E 73 73 68 2E 63 6F =A06D 2C 68 =
6D 61 63 2D 73 : <a href=3D"http://enssh.com">enssh.com</a>,hmac-s</div><di=
v class=3D"gmail_extra">
0290: 68 61 31 2D 39 36 2C 68 =A06D 61 63 2D 6D 64 35 2D : ha1-96,hmac-md5-=
</div><div class=3D"gmail_extra">02a0: 39 36 00 00 00 69 68 6D =A061 63 2D =
6D 64 35 2C 68 : 96...ihmac-md5,h</div><div class=3D"gmail_extra">02b0: 6D =
61 63 2D 73 68 61 31 =A02C 75 6D 61 63 2D 36 34 : mac-sha1,umac-64</div>
<div class=3D"gmail_extra">02c0: 40 6F 70 65 6E 73 73 68 =A02E 63 6F 6D 2C =
68 6D 61 : @<a href=3D"http://openssh.com">openssh.com</a>,hma</div><div cl=
ass=3D"gmail_extra">02d0: 63 2D 72 69 70 65 6D 64 =A031 36 30 2C 68 6D 61 6=
3 : c-ripemd160,hmac</div>
<div class=3D"gmail_extra">02e0: 2D 72 69 70 65 6D 64 31 =A036 30 40 6F 70 =
65 6E 73 : -ripemd160@opens</div><div class=3D"gmail_extra">02f0: 73 68 2E =
63 6F 6D 2C 68 =A06D 61 63 2D 73 68 61 31 : <a href=3D"http://sh.com">sh.co=
m</a>,hmac-sha1</div>
<div class=3D"gmail_extra">0300: 2D 39 36 2C 68 6D 61 63 =A02D 6D 64 35 2D =
39 36 00 : -96,hmac-md5-96.</div><div class=3D"gmail_extra">0310: 00 00 15 =
6E 6F 6E 65 2C =A07A 6C 69 62 40 6F 70 65 : ...none,zlib@ope</div><div clas=
s=3D"gmail_extra">
0320: 6E 73 73 68 2E 63 6F 6D =A000 00 00 15 6E 6F 6E 65 : nssh.com....none=
</div><div class=3D"gmail_extra">0330: 2C 7A 6C 69 62 40 6F 70 =A065 6E 73 =
73 68 2E 63 6F : ,<a href=3D"mailto:zlib@openssh.co">zlib@openssh.co</a></d=
iv><div class=3D"gmail_extra">
0340: 6D 00 00 00 00 00 00 00 =A000 00 00 00 00 00 =A0 =A0 =A0 : m.........=
....</div><div class=3D"gmail_extra">[libssh2] 0.311087 Transport: Packet t=
ype 20 received, length=3D846</div><div class=3D"gmail_extra">[libssh2] 0.3=
11098 Transport: Looking for packet of type: 20</div>
<div class=3D"gmail_extra">[libssh2] 0.311112 Key Ex: Agreed on KEX method:=
 diffie-hellman-group14-sha1</div><div class=3D"gmail_extra">[libssh2] 0.31=
1117 Key Ex: Agreed on HOSTKEY method: ssh-rsa</div><div class=3D"gmail_ext=
ra">
[libssh2] 0.311123 Key Ex: Agreed on CRYPT_CS method: aes128-ctr</div><div =
class=3D"gmail_extra">[libssh2] 0.311128 Key Ex: Agreed on CRYPT_SC method:=
 aes128-ctr</div><div class=3D"gmail_extra">[libssh2] 0.311133 Key Ex: Agre=
ed on MAC_CS method: hmac-sha1</div>
<div class=3D"gmail_extra">[libssh2] 0.311138 Key Ex: Agreed on MAC_SC meth=
od: hmac-sha1</div><div class=3D"gmail_extra">[libssh2] 0.311143 Key Ex: Ag=
reed on COMP_CS method: none</div><div class=3D"gmail_extra">[libssh2] 0.31=
1148 Key Ex: Agreed on COMP_SC method: none</div>
<div class=3D"gmail_extra">[libssh2] 0.311159 Key Ex: Initiating Diffie-Hel=
lman Group14 Key Exchange</div><div class=3D"gmail_extra">[libssh2] 0.31223=
5 Key Ex: Sending KEX packet 30</div><div class=3D"gmail_extra">=3D&gt; lib=
ssh2_transport_write plain (261 bytes)</div>
<div class=3D"gmail_extra">0000: 1E 00 00 01 00 07 28 44 =A0DA 44 89 E9 E0 =
8C 86 99 : ......(D.D......</div><div class=3D"gmail_extra">0010: 4C 8A F9 =
6C 7D 87 35 4F =A0E2 90 F1 95 D0 B5 67 46 : L..l}.5O......gF</div><div clas=
s=3D"gmail_extra">
0020: 54 09 47 25 24 EA 43 6C =A0C2 70 13 0D 54 8D 8E 00 : T.G%$.Cl.p..T...=
</div><div class=3D"gmail_extra">0030: D7 F8 68 CC 7A B7 0B BF =A04F 14 14 =
45 DD 45 FD 2F : ..h.z...O..E.E./</div><div class=3D"gmail_extra">0040: 3A =
E0 11 9E DA 70 52 2A =A0B1 43 C8 A8 CF 39 91 24 : :....pR*.C...9.$</div>
<div class=3D"gmail_extra">0050: DE E9 64 28 78 BE 82 99 =A0A5 79 80 B3 BE =
69 87 36 : ..d(x....y...i.6</div><div class=3D"gmail_extra">0060: A0 B2 6A =
21 69 EC 93 06 =A0C1 07 26 55 EA 2A EE AE : ..j!i.....&amp;U.*..</div><div =
class=3D"gmail_extra">
0070: 81 D2 FF 3F 58 06 8F B3 =A0AF A7 92 9D 5F 7D 4F 00 : ...?X......._}O.=
</div><div class=3D"gmail_extra">0080: F3 3B FD BD 02 BA 8E 6D =A0DA 99 38 =
8B 10 F4 BD 5E : .;.....m..8....^</div><div class=3D"gmail_extra">0090: AD =
68 E4 BD 76 F3 F2 1A =A0E9 B5 6E 86 D6 AB F0 80 : .h..v.....n.....</div>
<div class=3D"gmail_extra">00a0: 32 4D C6 11 6C 10 53 DA =A014 B8 0F DD 81 =
BE 13 3A : 2M..l.S........:</div><div class=3D"gmail_extra">00b0: EA 11 26 =
BE 4F 23 AD F9 =A081 88 B4 18 0D FD C8 4C : ..&amp;.O#.........L</div><div =
class=3D"gmail_extra">
00c0: 62 15 4D 0B B8 E7 0D 3E =A0B8 49 40 F5 70 A5 6F D6 : b.M....&gt;.I@.p=
.o.</div><div class=3D"gmail_extra">00d0: B1 90 C9 42 9B 41 2C 55 =A0A6 5B =
8B CF AD 4C 66 5C : ...B.A,U.[...Lf\</div><div class=3D"gmail_extra">00e0: =
24 11 F2 F9 71 DE 2B 7F =A01E A6 37 D9 B3 69 2E 2C : $...q.+...7..i.,</div>
<div class=3D"gmail_extra">00f0: 93 80 13 23 C7 01 50 7B =A033 3F 8C 70 9C =
43 D8 48 : ...#..P{3?.p.C.H</div><div class=3D"gmail_extra">0100: 4E 42 5B =
5E 53 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 :=
 NB[^S</div><div class=3D"gmail_extra">
[libssh2] 0.312339 Socket: Sent 272/272 bytes at 0xcc2088</div><div class=
=3D"gmail_extra">=3D&gt; libssh2_transport_write send() (272 bytes)</div><d=
iv class=3D"gmail_extra">0000: 00 00 01 0C 06 1E 00 00 =A001 00 07 28 44 DA=
 44 89 : ...........(D.D.</div>
<div class=3D"gmail_extra">0010: E9 E0 8C 86 99 4C 8A F9 =A06C 7D 87 35 4F =
E2 90 F1 : .....L..l}.5O...</div><div class=3D"gmail_extra">0020: 95 D0 B5 =
67 46 54 09 47 =A025 24 EA 43 6C C2 70 13 : ...gFT.G%$.Cl.p.</div><div clas=
s=3D"gmail_extra">
0030: 0D 54 8D 8E 00 D7 F8 68 =A0CC 7A B7 0B BF 4F 14 14 : .T.....h.z...O..=
</div><div class=3D"gmail_extra">0040: 45 DD 45 FD 2F 3A E0 11 =A09E DA 70 =
52 2A B1 43 C8 : E.E./:....pR*.C.</div><div class=3D"gmail_extra">0050: A8 =
CF 39 91 24 DE E9 64 =A028 78 BE 82 99 A5 79 80 : ..9.$..d(x....y.</div>
<div class=3D"gmail_extra">0060: B3 BE 69 87 36 A0 B2 6A =A021 69 EC 93 06 =
C1 07 26 : ..i.6..j!i.....&amp;</div><div class=3D"gmail_extra">0070: 55 EA=
 2A EE AE 81 D2 FF =A03F 58 06 8F B3 AF A7 92 : U.*.....?X......</div><div =
class=3D"gmail_extra">
0080: 9D 5F 7D 4F 00 F3 3B FD =A0BD 02 BA 8E 6D DA 99 38 : ._}O..;.....m..8=
</div><div class=3D"gmail_extra">0090: 8B 10 F4 BD 5E AD 68 E4 =A0BD 76 F3 =
F2 1A E9 B5 6E : ....^.h..v.....n</div><div class=3D"gmail_extra">00a0: 86 =
D6 AB F0 80 32 4D C6 =A011 6C 10 53 DA 14 B8 0F : .....2M..l.S....</div>
<div class=3D"gmail_extra">00b0: DD 81 BE 13 3A EA 11 26 =A0BE 4F 23 AD F9 =
81 88 B4 : ....:..&amp;.O#.....</div><div class=3D"gmail_extra">00c0: 18 0D=
 FD C8 4C 62 15 4D =A00B B8 E7 0D 3E B8 49 40 : ....Lb.M....&gt;.I@</div><d=
iv class=3D"gmail_extra">
00d0: F5 70 A5 6F D6 B1 90 C9 =A042 9B 41 2C 55 A6 5B 8B : .p.o....B.A,U.[.=
</div><div class=3D"gmail_extra">00e0: CF AD 4C 66 5C 24 11 F2 =A0F9 71 DE =
2B 7F 1E A6 37 : ..Lf\$...q.+...7</div><div class=3D"gmail_extra">00f0: D9 =
B3 69 2E 2C 93 80 13 =A023 C7 01 50 7B 33 3F 8C : ..i.,...#..P{3?.</div>
<div class=3D"gmail_extra">0100: 70 9C 43 D8 48 4E 42 5B =A05E 53 DA 92 73 =
D5 31 E8 : p.C.HNB[^S..s.1.</div><div class=3D"gmail_extra">[libssh2] 0.339=
508 Transport: Looking for packet of type: 31</div><div class=3D"gmail_extr=
a">[libssh2] 0.339535 Failure Event: -37 - Unable to exchange encryption ke=
ys</div>
<div class=3D"gmail_extra">[libssh2] 0.359090 Socket: Recved 848/16384 byte=
s to 0xcbe048+0</div><div class=3D"gmail_extra">=3D&gt; libssh2_transport_r=
ead() raw (848 bytes)</div><div class=3D"gmail_extra">0000: 00 00 03 3C 07 =
1F 00 00 =A001 17 00 00 00 07 73 73 : ...&lt;..........ss</div>
<div class=3D"gmail_extra">0010: 68 2D 72 73 61 00 00 00 =A003 01 00 01 00 =
00 01 01 : h-rsa...........</div><div class=3D"gmail_extra">0020: 00 E1 9C =
29 61 BF 29 DE =A036 93 2A 87 DF 4A 8B 54 : ...)a.).6.*..J.T</div><div clas=
s=3D"gmail_extra">
0030: 64 8E D0 9C 32 06 16 32 =A031 3C D5 1B F8 A0 6D 82 : d...2..21&lt;...=
.m.</div><div class=3D"gmail_extra">0040: C9 3F 5C 3E 96 39 FE 9D =A047 CA =
74 E1 6F 58 30 D6 : .?\&gt;.9..G.t.oX0.</div><div class=3D"gmail_extra">005=
0: 99 94 44 92 D5 46 8B 11 =A017 26 98 F8 21 54 D7 65 : ..D..F...&amp;..!T.=
e</div>
<div class=3D"gmail_extra">0060: FA 22 EA 18 6A 90 5A E5 =A038 98 6B 87 E5 =
52 35 3E : .&quot;..j.Z.8.k..R5&gt;</div><div class=3D"gmail_extra">0070: 3=
D B0 C5 DB A2 2F F8 E7 =A072 82 50 BF CF 75 AD 9E : =3D..../..r.P..u..</div=
><div class=3D"gmail_extra">
0080: 55 DB 60 56 4D 3C 16 10 =A0A9 20 D1 B7 95 D1 94 8F : U.`VM&lt;... ...=
...</div><div class=3D"gmail_extra">0090: B4 03 D6 B0 73 5A 64 B0 =A0E0 46 =
98 D8 C6 32 91 E3 : ....sZd..F...2..</div><div class=3D"gmail_extra">00a0: =
17 37 33 1A 18 BC 6F 48 =A0AA 06 E0 96 71 10 E4 59 : .73...oH....q..Y</div>
<div class=3D"gmail_extra">00b0: E4 29 5B BF D7 24 D2 4C =A081 8A 1C 2B 86 =
74 93 31 : .)[..$.L...+.t.1</div><div class=3D"gmail_extra">00c0: E2 49 1D =
72 EE 8F BE 6F =A002 6C 06 F7 FF 3B D1 8C : .I.r...o.l...;..</div><div clas=
s=3D"gmail_extra">
00d0: 01 B2 5A 6A 60 57 48 06 =A09D 45 DE 91 2C F9 B9 6D : ..Zj`WH..E..,..m=
</div><div class=3D"gmail_extra">00e0: 19 05 66 AF E0 FC 29 E6 =A001 56 05 =
C0 57 6E 49 47 : ..f...)..V..WnIG</div><div class=3D"gmail_extra">00f0: 2F =
45 26 E3 7D 9D 43 7C =A0CE 12 A6 D4 23 6B 22 F1 : /E&amp;.}.C|....#k&quot;.=
</div>
<div class=3D"gmail_extra">0100: 62 C6 78 12 1D 75 60 E2 =A0C6 F9 71 E2 44 =
1F 8D 01 : b.x..u`...q.D...</div><div class=3D"gmail_extra">0110: F3 C3 B0 =
B3 47 02 B4 97 =A037 9A 3A 9A 48 4F 4B 1E : ....G...7.:.HOK.</div><div clas=
s=3D"gmail_extra">
0120: 15 00 00 01 01 00 98 E4 =A066 87 B7 17 56 B4 2E 06 : ........f...V...=
</div><div class=3D"gmail_extra">0130: 98 E0 15 92 A7 19 B0 80 =A022 A2 AA =
6E E4 3D 74 94 : ........&quot;..n.=3Dt.</div><div class=3D"gmail_extra">01=
40: 21 9C AC B9 D8 4C 49 CD =A0F4 20 CF 32 94 68 79 96 : !....LI.. .2.hy.</=
div>
<div class=3D"gmail_extra">0150: 7F 76 73 DF E1 78 4C D8 =A0FB 71 BE 0A C2 =
9E FE 2E : .vs..xL..q......</div><div class=3D"gmail_extra">0160: CE 53 DA =
29 51 B4 F0 A1 =A096 46 A9 EF 7F D8 7D 7E : .S.)Q....F....}~</div><div clas=
s=3D"gmail_extra">
0170: 32 B3 5E 4B 3F 94 27 A7 =A039 7E 88 C7 47 A4 FD 27 : 2.^K?.&#39;.9~..=
G..&#39;</div><div class=3D"gmail_extra">0180: 9C 40 90 C9 99 75 11 68 =A0D=
3 61 51 14 C3 EF 8F 6A : .@...u.h.aQ....j</div><div class=3D"gmail_extra">0=
190: E3 AA 20 69 5D 80 BD 0E =A07A EE 51 44 3D 1A 96 95 : .. i]...z.QD=3D..=
.</div>
<div class=3D"gmail_extra">01a0: 59 11 8F 89 E7 E0 EC 5B =A084 96 08 47 49 =
4B 47 48 : Y......[...GIKGH</div><div class=3D"gmail_extra">01b0: 8C 47 B5 =
79 E3 88 43 B9 =A04A C1 5E EF 5B C2 81 A6 : .G.y..C.J.^.[...</div><div clas=
s=3D"gmail_extra">
01c0: 01 A7 8A CE 59 8D 20 E5 =A0A6 60 C3 21 64 3A C0 12 : ....Y. ..`.!d:..=
</div><div class=3D"gmail_extra">01d0: 39 09 85 CE FA AF 06 91 =A090 A4 CA =
32 F4 F2 06 F7 : 9..........2....</div><div class=3D"gmail_extra">01e0: 6A =
D1 F3 6B 6E 42 A8 FE =A0C8 95 64 29 38 A3 A4 6F : j..knB....d)8..o</div>
<div class=3D"gmail_extra">01f0: 00 B5 D2 11 14 0D 94 F0 =A032 10 D4 01 F7 =
F7 7D 9F : ........2.....}.</div><div class=3D"gmail_extra">0200: C3 B3 74 =
E6 47 8D BD 6E =A068 34 8F F4 FE 0A A6 15 : ..t.G..nh4......</div><div clas=
s=3D"gmail_extra">
0210: 50 63 20 4B 89 ED FB 72 =A004 F1 6D 17 64 E4 9B B2 : Pc K...r..m.d...=
</div><div class=3D"gmail_extra">0220: 92 E1 2F CF 26 7F 00 00 =A001 0F 00 =
00 00 07 73 73 : ../.&amp;.........ss</div><div class=3D"gmail_extra">0230:=
 68 2D 72 73 61 00 00 01 =A000 70 59 EA D2 CE 6D 8B : h-rsa....pY...m.</div=
>
<div class=3D"gmail_extra">0240: 08 66 05 4F 56 33 50 90 =A09C CA 1D 28 2A =
C2 BA 37 : .f.OV3P....(*..7</div><div class=3D"gmail_extra">0250: 36 60 EE =
98 FA 2E 5E BB =A0AC 72 D9 F1 28 2B A6 BA : 6`....^..r..(+..</div><div clas=
s=3D"gmail_extra">
0260: 57 BF 2D 07 9E 1F 93 59 =A0DA 9D 91 3A 86 F1 06 FF : W.-....Y...:....=
</div><div class=3D"gmail_extra">0270: C2 32 68 D8 1A 35 A3 A7 =A0D5 24 7D =
77 01 40 69 A0 : .2h..5...$}w.@i.</div><div class=3D"gmail_extra">0280: 92 =
AB 06 95 2D FB FF 62 =A085 37 A0 F5 A5 50 AA 37 : ....-..b.7...P.7</div>
<div class=3D"gmail_extra">0290: D4 95 0A 8F B6 E9 B2 FF =A051 C1 89 24 C3 =
2E CE E5 : ........Q..$....</div><div class=3D"gmail_extra">02a0: B5 16 6C =
93 3B ED FC 9E =A05B 08 A0 AA 97 F4 C5 85 : ..l.;...[.......</div><div clas=
s=3D"gmail_extra">
02b0: A2 17 F9 FF 3E D1 27 FE =A0E0 F1 6F 20 76 87 19 A1 : ....&gt;.&#39;..=
.o v...</div><div class=3D"gmail_extra">02c0: 68 3E 70 4F 7A E2 B7 6E =A0E1=
 B5 BC 59 C7 9D FA 5B : h&gt;pOz..n...Y...[</div><div class=3D"gmail_extra"=
>02d0: B5 7A 5A 7E 6F 6E 39 DE =A040 98 61 BA C3 BE FB 1C : .zZ~on9.@.a....=
.</div>
<div class=3D"gmail_extra">02e0: 71 01 02 25 C2 4C 84 56 =A0D0 50 E1 D5 C8 =
AF 6C CE : q..%.L.V.P....l.</div><div class=3D"gmail_extra">02f0: 6C C4 E4 =
46 C7 03 3B AA =A02D 5A E0 FC D2 16 C9 8F : l..F..;.-Z......</div><div clas=
s=3D"gmail_extra">
0300: 40 EC A0 BA 1C 3D 73 E3 =A0E0 30 4B 00 55 7E 98 7B : @....=3Ds..0K.U~=
.{</div><div class=3D"gmail_extra">0310: 17 6C F6 27 A0 D0 DC 0F =A0F4 93 4=
C 55 F8 DB 43 AC : .l.&#39;......LU..C.</div><div class=3D"gmail_extra">032=
0: 00 54 07 B1 53 2C 09 DB =A03D 53 E5 52 40 8F F9 18 : .T..S,..=3DS.R@...<=
/div>
<div class=3D"gmail_extra">0330: 11 43 89 48 34 62 25 F3 =A03E 00 00 00 00 =
00 00 00 : .C.H4b%.&gt;.......</div><div class=3D"gmail_extra">0340: 00 00 =
00 0C 0A 15 00 00 =A000 00 00 00 00 00 00 00 : ................</div><div c=
lass=3D"gmail_extra">
=3D&gt; libssh2_transport_read() plain (820 bytes)</div><div class=3D"gmail=
_extra">0000: 1F 00 00 01 17 00 00 00 =A007 73 73 68 2D 72 73 61 : ........=
.ssh-rsa</div><div class=3D"gmail_extra">0010: 00 00 00 03 01 00 01 00 =A00=
0 01 01 00 E1 9C 29 61 : ..............)a</div>
<div class=3D"gmail_extra">0020: BF 29 DE 36 93 2A 87 DF =A04A 8B 54 64 8E =
D0 9C 32 : .).6.*..J.Td...2</div><div class=3D"gmail_extra">0030: 06 16 32 =
31 3C D5 1B F8 =A0A0 6D 82 C9 3F 5C 3E 96 : ..21&lt;....m..?\&gt;.</div><di=
v class=3D"gmail_extra">
0040: 39 FE 9D 47 CA 74 E1 6F =A058 30 D6 99 94 44 92 D5 : 9..G.t.oX0...D..=
</div><div class=3D"gmail_extra">0050: 46 8B 11 17 26 98 F8 21 =A054 D7 65 =
FA 22 EA 18 6A : F...&amp;..!T.e.&quot;..j</div><div class=3D"gmail_extra">=
0060: 90 5A E5 38 98 6B 87 E5 =A052 35 3E 3D B0 C5 DB A2 : .Z.8.k..R5&gt;=
=3D....</div>
<div class=3D"gmail_extra">0070: 2F F8 E7 72 82 50 BF CF =A075 AD 9E 55 DB =
60 56 4D : /..r.P..u..U.`VM</div><div class=3D"gmail_extra">0080: 3C 16 10 =
A9 20 D1 B7 95 =A0D1 94 8F B4 03 D6 B0 73 : &lt;... ..........s</div><div c=
lass=3D"gmail_extra">
0090: 5A 64 B0 E0 46 98 D8 C6 =A032 91 E3 17 37 33 1A 18 : Zd..F...2...73..=
</div><div class=3D"gmail_extra">00a0: BC 6F 48 AA 06 E0 96 71 =A010 E4 59 =
E4 29 5B BF D7 : .oH....q..Y.)[..</div><div class=3D"gmail_extra">00b0: 24 =
D2 4C 81 8A 1C 2B 86 =A074 93 31 E2 49 1D 72 EE : $.L...+.t.1.I.r.</div>
<div class=3D"gmail_extra">00c0: 8F BE 6F 02 6C 06 F7 FF =A03B D1 8C 01 B2 =
5A 6A 60 : ..o.l...;....Zj`</div><div class=3D"gmail_extra">00d0: 57 48 06 =
9D 45 DE 91 2C =A0F9 B9 6D 19 05 66 AF E0 : WH..E..,..m..f..</div><div clas=
s=3D"gmail_extra">
00e0: FC 29 E6 01 56 05 C0 57 =A06E 49 47 2F 45 26 E3 7D : .)..V..WnIG/E&am=
p;.}</div><div class=3D"gmail_extra">00f0: 9D 43 7C CE 12 A6 D4 23 =A06B 22=
 F1 62 C6 78 12 1D : .C|....#k&quot;.b.x..</div><div class=3D"gmail_extra">=
0100: 75 60 E2 C6 F9 71 E2 44 =A01F 8D 01 F3 C3 B0 B3 47 : u`...q.D.......G=
</div>
<div class=3D"gmail_extra">0110: 02 B4 97 37 9A 3A 9A 48 =A04F 4B 1E 15 00 =
00 01 01 : ...7.:.HOK......</div><div class=3D"gmail_extra">0120: 00 98 E4 =
66 87 B7 17 56 =A0B4 2E 06 98 E0 15 92 A7 : ...f...V........</div><div clas=
s=3D"gmail_extra">
0130: 19 B0 80 22 A2 AA 6E E4 =A03D 74 94 21 9C AC B9 D8 : ...&quot;..n.=3D=
t.!....</div><div class=3D"gmail_extra">0140: 4C 49 CD F4 20 CF 32 94 =A068=
 79 96 7F 76 73 DF E1 : LI.. .2.hy..vs..</div><div class=3D"gmail_extra">01=
50: 78 4C D8 FB 71 BE 0A C2 =A09E FE 2E CE 53 DA 29 51 : xL..q.......S.)Q</=
div>
<div class=3D"gmail_extra">0160: B4 F0 A1 96 46 A9 EF 7F =A0D8 7D 7E 32 B3 =
5E 4B 3F : ....F....}~2.^K?</div><div class=3D"gmail_extra">0170: 94 27 A7 =
39 7E 88 C7 47 =A0A4 FD 27 9C 40 90 C9 99 : .&#39;.9~..G..&#39;.@...</div><=
div class=3D"gmail_extra">
0180: 75 11 68 D3 61 51 14 C3 =A0EF 8F 6A E3 AA 20 69 5D : u.h.aQ....j.. i]=
</div><div class=3D"gmail_extra">0190: 80 BD 0E 7A EE 51 44 3D =A01A 96 95 =
59 11 8F 89 E7 : ...z.QD=3D...Y....</div><div class=3D"gmail_extra">01a0: E=
0 EC 5B 84 96 08 47 49 =A04B 47 48 8C 47 B5 79 E3 : ..[...GIKGH.G.y.</div>
<div class=3D"gmail_extra">01b0: 88 43 B9 4A C1 5E EF 5B =A0C2 81 A6 01 A7 =
8A CE 59 : .C.J.^.[.......Y</div><div class=3D"gmail_extra">01c0: 8D 20 E5 =
A6 60 C3 21 64 =A03A C0 12 39 09 85 CE FA : . ..`.!d:..9....</div><div clas=
s=3D"gmail_extra">
01d0: AF 06 91 90 A4 CA 32 F4 =A0F2 06 F7 6A D1 F3 6B 6E : ......2....j..kn=
</div><div class=3D"gmail_extra">01e0: 42 A8 FE C8 95 64 29 38 =A0A3 A4 6F =
00 B5 D2 11 14 : B....d)8..o.....</div><div class=3D"gmail_extra">01f0: 0D =
94 F0 32 10 D4 01 F7 =A0F7 7D 9F C3 B3 74 E6 47 : ...2.....}...t.G</div>
<div class=3D"gmail_extra">0200: 8D BD 6E 68 34 8F F4 FE =A00A A6 15 50 63 =
20 4B 89 : ..nh4......Pc K.</div><div class=3D"gmail_extra">0210: ED FB 72 =
04 F1 6D 17 64 =A0E4 9B B2 92 E1 2F CF 26 : ..r..m.d...../.&amp;</div><div =
class=3D"gmail_extra">
0220: 7F 00 00 01 0F 00 00 00 =A007 73 73 68 2D 72 73 61 : .........ssh-rsa=
</div><div class=3D"gmail_extra">0230: 00 00 01 00 70 59 EA D2 =A0CE 6D 8B =
08 66 05 4F 56 : ....pY...m..f.OV</div><div class=3D"gmail_extra">0240: 33 =
50 90 9C CA 1D 28 2A =A0C2 BA 37 36 60 EE 98 FA : 3P....(*..76`...</div>
<div class=3D"gmail_extra">0250: 2E 5E BB AC 72 D9 F1 28 =A02B A6 BA 57 BF =
2D 07 9E : .^..r..(+..W.-..</div><div class=3D"gmail_extra">0260: 1F 93 59 =
DA 9D 91 3A 86 =A0F1 06 FF C2 32 68 D8 1A : ..Y...:.....2h..</div><div clas=
s=3D"gmail_extra">
0270: 35 A3 A7 D5 24 7D 77 01 =A040 69 A0 92 AB 06 95 2D : 5...$}w.@i.....-=
</div><div class=3D"gmail_extra">0280: FB FF 62 85 37 A0 F5 A5 =A050 AA 37 =
D4 95 0A 8F B6 : ..b.7...P.7.....</div><div class=3D"gmail_extra">0290: E9 =
B2 FF 51 C1 89 24 C3 =A02E CE E5 B5 16 6C 93 3B : ...Q..$......l.;</div>
<div class=3D"gmail_extra">02a0: ED FC 9E 5B 08 A0 AA 97 =A0F4 C5 85 A2 17 =
F9 FF 3E : ...[...........&gt;</div><div class=3D"gmail_extra">02b0: D1 27 =
FE E0 F1 6F 20 76 =A087 19 A1 68 3E 70 4F 7A : .&#39;...o v...h&gt;pOz</div=
><div class=3D"gmail_extra">
02c0: E2 B7 6E E1 B5 BC 59 C7 =A09D FA 5B B5 7A 5A 7E 6F : ..n...Y...[.zZ~o=
</div><div class=3D"gmail_extra">02d0: 6E 39 DE 40 98 61 BA C3 =A0BE FB 1C =
71 01 02 25 C2 : n9.@.a.....q..%.</div><div class=3D"gmail_extra">02e0: 4C =
84 56 D0 50 E1 D5 C8 =A0AF 6C CE 6C C4 E4 46 C7 : L.V.P....l.l..F.</div>
<div class=3D"gmail_extra">02f0: 03 3B AA 2D 5A E0 FC D2 =A016 C9 8F 40 EC =
A0 BA 1C : .;.-Z......@....</div><div class=3D"gmail_extra">0300: 3D 73 E3 =
E0 30 4B 00 55 =A07E 98 7B 17 6C F6 27 A0 : =3Ds..0K.U~.{.l.&#39;.</div><di=
v class=3D"gmail_extra">
0310: D0 DC 0F F4 93 4C 55 F8 =A0DB 43 AC 00 54 07 B1 53 : .....LU..C..T..S=
</div><div class=3D"gmail_extra">0320: 2C 09 DB 3D 53 E5 52 40 =A08F F9 18 =
11 43 89 48 34 : ,..=3DS.R@....C.H4</div><div class=3D"gmail_extra">0330: 6=
2 25 F3 3E =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0: b%.&gt;</div>
<div class=3D"gmail_extra">[libssh2] 0.359433 Transport: Packet type 31 rec=
eived, length=3D820</div><div class=3D"gmail_extra">[libssh2] 0.359436 Tran=
sport: Looking for packet of type: 31</div><div class=3D"gmail_extra">[libs=
sh2] 0.359449 Key Ex: Server&#39;s MD5 Fingerprint: c7:92:4a:e5:00:80:27:eb=
:48:17:12:51:6a:5c:e8:59</div>
<div class=3D"gmail_extra">[libssh2] 0.359456 Key Ex: Server&#39;s SHA1 Fin=
gerprint: c9:6c:ce:5a:57:f0:30:33:f0:7a:f9:a5:47:a4:94:7a:24:5d:21:b8</div>=
<div class=3D"gmail_extra">[libssh2] 0.360876 Key Ex: Sending NEWKEYS messa=
ge</div>
<div class=3D"gmail_extra">=3D&gt; libssh2_transport_write plain (1 bytes)<=
/div><div class=3D"gmail_extra">0000: 15 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 : .</div><div c=
lass=3D"gmail_extra">[libssh2] 0.360898 Socket: Sent 16/16 bytes at 0xcc208=
8</div>
<div class=3D"gmail_extra">=3D&gt; libssh2_transport_write send() (16 bytes=
)</div><div class=3D"gmail_extra">0000: 00 00 00 0C 0A 15 45 B2 =A0DB 6D 68=
 11 86 45 22 E5 : ......E..mh..E&quot;.</div><div class=3D"gmail_extra">[li=
bssh2] 0.360908 Transport: Looking for packet of type: 21</div>
<div class=3D"gmail_extra">=3D&gt; libssh2_transport_read() plain (1 bytes)=
</div><div class=3D"gmail_extra">0000: 15 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 : .</div><div c=
lass=3D"gmail_extra">[libssh2] 0.360922 Transport: Packet type 21 received,=
 length=3D1</div>
<div class=3D"gmail_extra">[libssh2] 0.360926 Transport: Looking for packet=
 of type: 21</div><div class=3D"gmail_extra">[libssh2] 0.360929 Key Ex: Rec=
eived NEWKEYS message</div><div class=3D"gmail_extra">[libssh2] 0.360932 Ke=
y Ex: session_id calculated</div>
<div class=3D"gmail_extra">[libssh2] 0.360954 Key Ex: Client to Server IV a=
nd Key calculated</div><div class=3D"gmail_extra">[libssh2] 0.360964 Key Ex=
: Server to Client IV and Key calculated</div><div class=3D"gmail_extra">[l=
ibssh2] 0.360969 Key Ex: Client to Server HMAC Key calculated</div>
<div class=3D"gmail_extra">[libssh2] 0.360974 Key Ex: Server to Client HMAC=
 Key calculated</div><div class=3D"gmail_extra">[libssh2] 0.360977 Key Ex: =
Client to Server compression initialized</div><div class=3D"gmail_extra">[l=
ibssh2] 0.360979 Key Ex: Server to Client compression initialized</div>
<div class=3D"gmail_extra">[libssh2] 0.360987 Transport: Requesting useraut=
h service</div><div class=3D"gmail_extra">=3D&gt; libssh2_transport_write p=
lain (17 bytes)</div><div class=3D"gmail_extra">0000: 05 00 00 00 0C 73 73 =
68 =A02D 75 73 65 72 61 75 74 : .....ssh-useraut</div>
<div class=3D"gmail_extra">0010: 68 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 : h</div><div class=3D=
"gmail_extra">[libssh2] 0.361014 Socket: Sent 52/52 bytes at 0xcc2088</div>=
<div class=3D"gmail_extra">=3D&gt; libssh2_transport_write send() (52 bytes=
)</div>
<div class=3D"gmail_extra">0000: 7F F8 F7 E1 26 F2 62 D4 =A033 0B 14 36 DE =
A1 5C 39 : ....&amp;.b.3..6..\9</div><div class=3D"gmail_extra">0010: 2E CF=
 71 F8 2A AF FA 96 =A057 20 B5 93 5B 6B 99 1C : ..q.*...W ..[k..</div><div =
class=3D"gmail_extra">
0020: BE 47 2A 5D D2 E9 39 48 =A04C F1 A2 7F 04 D5 DC 24 : .G*]..9HL......$=
</div><div class=3D"gmail_extra">0030: 36 2F 38 7A =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0: 6/8z</div><div class=
=3D"gmail_extra">[libssh2] 0.361029 Transport: Looking for packet of type: =
6</div>
<div class=3D"gmail_extra">[libssh2] 0.402694 Socket: Recved 52/16384 bytes=
 to 0xcbe048+0</div><div class=3D"gmail_extra">=3D&gt; libssh2_transport_re=
ad() raw (52 bytes)</div><div class=3D"gmail_extra">0000: A4 FF 8F C4 1E 71=
 C1 AE =A0C0 92 3C 2B 09 DF 53 A3 : .....q....&lt;+..S.</div>
<div class=3D"gmail_extra">0010: 0D 4F DB 33 BC B4 D5 CB =A0B5 7F F4 0F BF =
52 D0 9F : .O.3.........R..</div><div class=3D"gmail_extra">0020: ED F6 F3 =
02 69 FD 68 9E =A0A7 42 80 3F C1 0E D1 F0 : ....i.h..B.?....</div><div clas=
s=3D"gmail_extra">
0030: 65 F0 9E E8 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0: e...</div><div class=3D"gmail_extra">=3D&gt; libssh2_t=
ransport_read() plain (17 bytes)</div><div class=3D"gmail_extra">0000: 06 0=
0 00 00 0C 73 73 68 =A02D 75 73 65 72 61 75 74 : .....ssh-useraut</div>
<div class=3D"gmail_extra">0010: 68 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 : h</div><div class=3D=
"gmail_extra">[libssh2] 0.402784 Transport: Packet type 6 received, length=
=3D17</div><div class=3D"gmail_extra">[libssh2] 0.402791 Transport: Looking=
 for packet of type: 6</div>
<div class=3D"gmail_extra">Fingerprint: C9 6C CE 5A 57 F0 30 33 F0 7A F9 A5=
 47 A4 94 7A 24 5D 21 B8=A0</div><div class=3D"gmail_extra">=3D&gt; libssh2=
_transport_write plain (28 bytes)</div><div class=3D"gmail_extra">0000: 32 =
00 00 00 01 69 00 00 =A000 0E 73 73 68 2D 63 6F : 2....i....ssh-co</div>
<div class=3D"gmail_extra">0010: 6E 6E 65 63 74 69 6F 6E =A000 00 00 04 =A0=
 =A0 =A0 =A0 =A0 =A0 : nnection....</div><div class=3D"gmail_extra">=3D&gt;=
 libssh2_transport_write plain2 (4 bytes)</div><div class=3D"gmail_extra">0=
000: 6E 6F 6E 65 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0: none</div>
<div class=3D"gmail_extra">[libssh2] 0.402893 Socket: Sent 68/68 bytes at 0=
xcc2088</div><div class=3D"gmail_extra">=3D&gt; libssh2_transport_write sen=
d() (68 bytes)</div><div class=3D"gmail_extra">0000: 2C E6 3A 24 A1 61 8B D=
7 =A06D E4 9F A3 EA 85 80 AA : ,.:$.a..m.......</div>
<div class=3D"gmail_extra">0010: 2B 73 93 B3 51 3B C6 8A =A072 79 90 AB 74 =
AD 1E 98 : +s..Q;..ry..t...</div><div class=3D"gmail_extra">0020: A7 17 AA =
13 2C 7C C4 EB =A0AE F3 85 83 E6 A9 8D 4F : ....,|.........O</div><div clas=
s=3D"gmail_extra">
0030: 35 0B C5 41 B8 F3 11 61 =A0DC 6B 6A DA 3B F6 97 F1 : 5..A...a.kj.;...=
</div><div class=3D"gmail_extra">0040: 87 FB BE 7A =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0: ...z</div><div class=
=3D"gmail_extra">[libssh2] 0.402928 Transport: Looking for packet of type: =
52</div>
<div class=3D"gmail_extra">[libssh2] 0.402933 Transport: Looking for packet=
 of type: 51</div><div class=3D"gmail_extra">[libssh2] 0.402940 Failure Eve=
nt: -37 - Would block requesting userauth list</div><div class=3D"gmail_ext=
ra">
[libssh2] 0.404328 Transport: Looking for packet of type: 52</div><div clas=
s=3D"gmail_extra">[libssh2] 0.404349 Transport: Looking for packet of type:=
 51</div><div class=3D"gmail_extra">[libssh2] 0.404362 Socket: Recved 52/16=
384 bytes to 0xcbe048+0</div>
<div class=3D"gmail_extra">=3D&gt; libssh2_transport_read() raw (52 bytes)<=
/div><div class=3D"gmail_extra">0000: 80 05 7F EA 5A 9B 47 26 =A0C0 98 AC 0=
7 9D BF CA 0C : ....Z.G&amp;........</div><div class=3D"gmail_extra">0010: =
EA 0D 97 6C BF 59 31 23 =A0C1 54 28 29 B9 19 30 C9 : ...l.Y1#.T()..0.</div>
<div class=3D"gmail_extra">0020: 06 DF 9D D1 48 3E F9 E6 =A0DF 60 3F E4 E4 =
07 03 1F : ....H&gt;...`?.....</div><div class=3D"gmail_extra">0030: 35 A3 =
20 58 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0: 5. X</div><div class=3D"gmail_extra">
=3D&gt; libssh2_transport_read() plain (15 bytes)</div><div class=3D"gmail_=
extra">0000: 33 00 00 00 09 70 75 62 =A06C 69 63 6B 65 79 00 =A0 =A0: 3....=
publickey.</div><div class=3D"gmail_extra">[libssh2] 0.404443 Transport: Pa=
cket type 51 received, length=3D15</div>
<div class=3D"gmail_extra">[libssh2] 0.404454 Transport: Looking for packet=
 of type: 52</div><div class=3D"gmail_extra">[libssh2] 0.404462 Transport: =
Looking for packet of type: 51</div><div class=3D"gmail_extra">[libssh2] 0.=
404482 Userauth: Permitted auth methods: publickey</div>
<div class=3D"gmail_extra">Authentication methods: publickey</div><div clas=
s=3D"gmail_extra">[libssh2] 0.404525 Userauth: Loading public key file: ~/.=
ssh/id_rsa.pub</div><div class=3D"gmail_extra">[libssh2] 0.404547 Failure E=
vent: -16 - Unable to open public key file</div>
<div class=3D"gmail_extra"><span class=3D"Apple-tab-span" style=3D"white-sp=
ace:pre">	</span>Authentication by public key failed!</div><div class=3D"gm=
ail_extra">[libssh2] 0.404568 Transport: Disconnecting: reason=3D11, desc=
=3DNormal Shutdown, Thank you for playing, lang=3D</div>
<div class=3D"gmail_extra">=3D&gt; libssh2_transport_write plain (51 bytes)=
</div><div class=3D"gmail_extra">0000: 01 00 00 00 0B 00 00 00 =A026 4E 6F =
72 6D 61 6C 20 : ........&amp;Normal=A0</div><div class=3D"gmail_extra">001=
0: 53 68 75 74 64 6F 77 6E =A02C 20 54 68 61 6E 6B 20 : Shutdown, Thank=A0<=
/div>
<div class=3D"gmail_extra">0020: 79 6F 75 20 66 6F 72 20 =A070 6C 61 79 69 =
6E 67 00 : you for playing.</div><div class=3D"gmail_extra">0030: 00 00 00 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 : ...</div><div class=3D"gmail_extra">=3D&gt; libssh2_transport_write =
plain2 (0 bytes)</div>
<div class=3D"gmail_extra">[libssh2] 0.404675 Socket: Sent 84/84 bytes at 0=
xcc2088</div><div class=3D"gmail_extra">=3D&gt; libssh2_transport_write sen=
d() (84 bytes)</div><div class=3D"gmail_extra">0000: E4 BC EF 76 3F E2 3A 6=
D =A055 54 C1 21 1B CC 53 3C : ...v?.:mUT.!..S&lt;</div>
<div class=3D"gmail_extra">0010: 56 C8 04 43 CC 31 14 D2 =A048 76 9F 20 FE =
A4 83 3F : V..C.1..Hv. ...?</div><div class=3D"gmail_extra">0020: 57 4B 67 =
F1 44 0D A6 ED =A0D9 17 02 20 97 55 3C 71 : WKg.D...... .U&lt;q</div><div c=
lass=3D"gmail_extra">
0030: 59 FE 7A 2B 32 89 1A 7E =A080 86 CE 55 28 A1 E3 C2 : Y.z+2..~...U(...=
</div><div class=3D"gmail_extra">0040: 0E E8 D8 71 C2 8E BD 33 =A014 22 05 =
5C CA 22 56 95 : ...q...3.&quot;.\.&quot;V.</div><div class=3D"gmail_extra"=
>0050: B4 0F 2A A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0: ..*.</div>
<div class=3D"gmail_extra">[libssh2] 0.404758 Transport: Freeing session re=
source</div><div class=3D"gmail_extra">[libssh2] 0.404783 Transport: Extra =
packets left 0</div><div class=3D"gmail_extra">all done!</div><br><div clas=
s=3D"gmail_quote">
2012/4/24 Peter Stuge <span dir=3D"ltr">&lt;<a href=3D"mailto:peter@stuge.s=
e" target=3D"_blank">peter@stuge.se</a>&gt;</span><br><blockquote class=3D"=
gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-=
left:1ex">
<div class=3D"im">Nick Rudnick wrote:<br>
&gt; First SSH keyfile authentication runs flawless when done in a terminal=
.<br>
<br>
</div>Do you mean &quot;the first time&quot; or &quot;I will list some thin=
gs, the first<br>
is that&quot; ?<br>
<div class=3D"im"><br>
<br>
&gt; The server is OpenSSH_5.8p1, built from source for better tracing of<b=
r>
&gt; the problem.<br>
<br>
</div>Where is the EPIPE reported?<br>
<br>
Please compile libssh2 with debugging enabled, and call<br>
<br>
libssh2_trace(session, ~0);<br>
<br>
in the example. Please send the rich debug messages to the mailing<br>
list. Thanks!<br>
<br>
<br>
//Peter<br>
_______________________________________________<br>
libssh2-devel <a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libss=
h2-devel" target=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/li=
bssh2-devel</a><br>
</blockquote></div><br></div>

--e89a8f3ba1491da0f304be748ee0--

--===============0082007169==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0082007169==--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 00:54:01 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3OMrriR028766;
	Wed, 25 Apr 2012 00:53:59 +0200
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com
 [66.111.4.27])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3OMrpQv028759
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 00:53:52 +0200
Received: from compute3.internal (compute3.nyi.mail.srv.osa [10.202.2.43])
 by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id E5ABF2129B
 for <libssh2-devel@cool.haxx.se>; Tue, 24 Apr 2012 18:53:52 -0400 (EDT)
Received: from frontend2.nyi.mail.srv.osa ([10.202.2.161])
 by compute3.internal (MEProxy); Tue, 24 Apr 2012 18:53:52 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=castaglia.org; h=
 date:from:to:subject:in-reply-to:message-id:references
 :mime-version:content-type; s=mesmtp; bh=RYvGbP+NhecadQvLqOE1wam
 E1N0=; b=1zkAIQjFrm4nXjJr0xpKd1KiGFGnWT8ZTANLqv3xFEfvcW/ut1N5AUy
 e90kpCQ1M6CHTbSqEQ5lvLjjPk1AUhlcGOBWU3eLVbOs6eT9d9E+ph0BJCf6tS0X
 NlRTt0ng/TkHnGeMPsUefxqUM/JY4+TLYw1L/CwC3yIQtK4c5ddk=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
 messagingengine.com; h=date:from:to:subject:in-reply-to
 :message-id:references:mime-version:content-type; s=smtpout; bh=
 RYvGbP+NhecadQvLqOE1wamE1N0=; b=fMIbrhgClY/+3YgSmYIy9Bl/dhpBtTlv
 age4M7qkt6t/k/IO/0pdy9N9mLN+D0OZVw/OddncmmxKduaEHKxZFW1bg87JEF0D
 jU3Sulz23eB0ViwTi7z9RXKuxK6EVABAkbMCY+WYWveorR8bXz7WpKvMngRv7QhV
 hnowK93LLkU=
X-Sasl-enc: 0qtYqhPYkytzlHyCILTiH1oU9JOo1+zfwv1/G7huj9PB 1335308032
Received: from familiar.local (64-71-23-251.static.wiline.com [64.71.23.251])
 by mail.messagingengine.com (Postfix) with ESMTPSA id 86AB84827A1
 for <libssh2-devel@cool.haxx.se>; Tue, 24 Apr 2012 18:53:52 -0400 (EDT)
Date: Tue, 24 Apr 2012 15:53:51 -0700 (PDT)
From: TJ Saunders <tj@castaglia.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: EPIPE causes 'Authentication by public key failed' for examples
 with keyfile authentication at OpenSSH server
In-Reply-To: <CA+XUKcgM5L_BgZxUjN8AmAapCo=B7NTfAY=qD7u82nDC+-nQSg@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204241551550.3570@familiar.castaglia.org>
References: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
 <20120424170737.11943.qmail@stuge.se>
 <CA+XUKcgM5L_BgZxUjN8AmAapCo=B7NTfAY=qD7u82nDC+-nQSg@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se


> "Failure Event: -16 - Unable to open public key file"...??

> Here my access rights:
> drwx------  2 i i 4096 2012-04-23 10:52 .
> drwxr-xr-x 58 i i 4096 2012-04-24 23:06 ..
> -rw-------  1 i i  388 2012-04-22 21:07 authorized_keys
> -rw-------  1 i i 1766 2012-03-23 14:55 id_rsa
> -rw-------  1 i i  381 2012-03-23 14:55 id_rsa.pub
> -rw-------  1 i i  727 2012-03-23 17:10 keygen.log
> -rw-------  1 i i 1328 2012-04-23 10:52 known_hosts

> [libssh2] 0.404525 Userauth: Loading public key file: ~/.ssh/id_rsa.pub

The libssh2 library does not automatically resolve the tilde (~) 
character, as I recall.  You might try configuring in the full path to 
that id_rsa.pub file.

Cheers,
TJ

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   Words are also actions, and actions are a kind of words.

     -Ralph Waldo Emerson

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 01:06:00 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3ON5tOx008649;
	Wed, 25 Apr 2012 01:05:59 +0200
Received: from mail-gy0-f182.google.com (mail-gy0-f182.google.com
 [209.85.160.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3ON5rDB008617
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 01:05:54 +0200
Received: by ghrr20 with SMTP id r20so938757ghr.41
 for <libssh2-devel@cool.haxx.se>; Tue, 24 Apr 2012 16:05:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=ZAeaM4Xa9i634jWjE5Rq+w+he0olAM7sF/4pO+qi2Bo=;
 b=0W4y9D05Oi2Msi095Jzby7JrAcYTN+ovzjQpthNp7Rd8hp+l4vY/wWRbWqNJbGOXrY
 vQSMWOU+ffy/7dgALt1gkV+eTDmW3+tURh8FQtk3eJBoVMUwRkKzc4wbfJ0/RjxKL31I
 3VmUAaJ1aDLKblxFJ4bI1ta/nas0YfKvA997JMPBq8hbetcPY25i2av+/S4m/1jUCo56
 zejttBslN791w5TySXwe2S0pfN2SuBAxLm24kTc++NgXmaoTb1wyuZoYPIyNppzLwhu4
 X9QLl0QZtxgF9VCUXwt8MKjRc5DxUq1h+FDOdu6I1rGrYr9qBdeIE3XcuhvQXWcNY59K
 SE+Q==
MIME-Version: 1.0
Received: by 10.50.106.132 with SMTP id gu4mr12126669igb.59.1335308749491;
 Tue, 24 Apr 2012 16:05:49 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Tue, 24 Apr 2012 16:05:49 -0700 (PDT)
In-Reply-To: <alpine.DEB.2.00.1204241551550.3570@familiar.castaglia.org>
References: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
 <20120424170737.11943.qmail@stuge.se>
 <CA+XUKcgM5L_BgZxUjN8AmAapCo=B7NTfAY=qD7u82nDC+-nQSg@mail.gmail.com>
 <alpine.DEB.2.00.1204241551550.3570@familiar.castaglia.org>
Date: Wed, 25 Apr 2012 01:05:49 +0200
Message-ID: <CA+XUKci1zwBgzc1=VH4chOAmL=eWs=RcN1qCYF2qm_Xk-O7QSA@mail.gmail.com>
Subject: Re: EPIPE causes 'Authentication by public key failed' for examples
 with keyfile authentication at OpenSSH server
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0074238269=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0074238269==
Content-Type: multipart/alternative; boundary=e89a8f3ba149adcea404be74cb59

--e89a8f3ba149adcea404be74cb59
Content-Type: text/plain; charset=ISO-8859-1

:-) Thanks, TJ, this seems to be the case...

Here's the next:

[libssh2] 0.414362 Userauth: Loading private key file: /home/i/.ssh/id_rsa
[libssh2] 0.414594 Failure Event: -16 - Unable to initialize private key
from file
[libssh2] 0.414606 Failure Event: -19 - Callback returned error
Authentication by public key failed!

Any idea about the meaning of "Unable to initialize private key from file"?

Thanks a lot, Nick

2012/4/25 TJ Saunders <tj@castaglia.org>

>
> > "Failure Event: -16 - Unable to open public key file"...??
>
> > Here my access rights:
> > drwx------  2 i i 4096 2012-04-23 10:52 .
> > drwxr-xr-x 58 i i 4096 2012-04-24 23:06 ..
> > -rw-------  1 i i  388 2012-04-22 21:07 authorized_keys
> > -rw-------  1 i i 1766 2012-03-23 14:55 id_rsa
> > -rw-------  1 i i  381 2012-03-23 14:55 id_rsa.pub
> > -rw-------  1 i i  727 2012-03-23 17:10 keygen.log
> > -rw-------  1 i i 1328 2012-04-23 10:52 known_hosts
>
> > [libssh2] 0.404525 Userauth: Loading public key file: ~/.ssh/id_rsa.pub
>
> The libssh2 library does not automatically resolve the tilde (~)
> character, as I recall.  You might try configuring in the full path to
> that id_rsa.pub file.
>
> Cheers,
> TJ
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>   Words are also actions, and actions are a kind of words.
>
>     -Ralph Waldo Emerson
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>

--e89a8f3ba149adcea404be74cb59
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div class=3D"gmail_extra">:-) Thanks, TJ, this seems to be the case...</di=
v><div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">Here&#39;=
s the next:</div><div class=3D"gmail_extra"><br></div><div class=3D"gmail_e=
xtra"><div class=3D"gmail_extra">
[libssh2] 0.414362 Userauth: Loading private key file: /home/i/.ssh/id_rsa<=
/div><div class=3D"gmail_extra">[libssh2] 0.414594 Failure Event: -16 - Una=
ble to initialize private key from file</div><div class=3D"gmail_extra">[li=
bssh2] 0.414606 Failure Event: -19 - Callback returned error</div>
<div class=3D"gmail_extra"><span class=3D"Apple-tab-span" style=3D"white-sp=
ace:pre">	</span>Authentication by public key failed!</div><div><br></div><=
div>Any idea about the meaning of &quot;Unable to initialize private key fr=
om file&quot;?</div>
<div><br></div><div>Thanks a lot, Nick</div><br><div class=3D"gmail_quote">=
2012/4/25 TJ Saunders <span dir=3D"ltr">&lt;<a href=3D"mailto:tj@castaglia.=
org" target=3D"_blank">tj@castaglia.org</a>&gt;</span><br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
<div class=3D"im"><br>
&gt; &quot;Failure Event: -16 - Unable to open public key file&quot;...??<b=
r>
<br>
&gt; Here my access rights:<br>
&gt; drwx------ =A02 i i 4096 2012-04-23 10:52 .<br>
&gt; drwxr-xr-x 58 i i 4096 2012-04-24 23:06 ..<br>
&gt; -rw------- =A01 i i =A0388 2012-04-22 21:07 authorized_keys<br>
&gt; -rw------- =A01 i i 1766 2012-03-23 14:55 id_rsa<br>
&gt; -rw------- =A01 i i =A0381 2012-03-23 14:55 id_rsa.pub<br>
&gt; -rw------- =A01 i i =A0727 2012-03-23 17:10 keygen.log<br>
&gt; -rw------- =A01 i i 1328 2012-04-23 10:52 known_hosts<br>
<br>
</div><div class=3D"im">&gt; [libssh2] 0.404525 Userauth: Loading public ke=
y file: ~/.ssh/id_rsa.pub<br>
<br>
</div>The libssh2 library does not automatically resolve the tilde (~)<br>
character, as I recall. =A0You might try configuring in the full path to<br=
>
that id_rsa.pub file.<br>
<br>
Cheers,<br>
TJ<br>
<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
<br>
 =A0 Words are also actions, and actions are a kind of words.<br>
<br>
 =A0 =A0 -Ralph Waldo Emerson<br>
<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
_______________________________________________<br>
libssh2-devel <a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libss=
h2-devel" target=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/li=
bssh2-devel</a><br>
</blockquote></div><br></div>

--e89a8f3ba149adcea404be74cb59--

--===============0074238269==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0074238269==--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 07:22:38 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P5MJuB023931;
	Wed, 25 Apr 2012 07:22:34 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3P5MIqH023877
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 07:22:18 +0200
Received: (qmail 6654 invoked by uid 501); 25 Apr 2012 05:22:18 -0000
Message-ID: <20120425052218.6653.qmail@stuge.se>
Date: Wed, 25 Apr 2012 07:22:18 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: EPIPE causes 'Authentication by public key failed' for
 examples with keyfile authentication at OpenSSH server
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
 <20120424170737.11943.qmail@stuge.se>
 <CA+XUKcgM5L_BgZxUjN8AmAapCo=B7NTfAY=qD7u82nDC+-nQSg@mail.gmail.com>
 <alpine.DEB.2.00.1204241551550.3570@familiar.castaglia.org>
 <CA+XUKci1zwBgzc1=VH4chOAmL=eWs=RcN1qCYF2qm_Xk-O7QSA@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CA+XUKci1zwBgzc1=VH4chOAmL=eWs=RcN1qCYF2qm_Xk-O7QSA@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Nick Rudnick wrote:
> [libssh2] 0.414362 Userauth: Loading private key file: /home/i/.ssh/id_rsa
> [libssh2] 0.414594 Failure Event: -16 - Unable to initialize private key from file

The libssh2 backend using libgcrypt does not support encrypted
private keys.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 07:41:34 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P5fSLG004417;
	Wed, 25 Apr 2012 07:41:33 +0200
Received: from earth.stuge.se (earth.stuge.se [212.116.89.126])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P5fR5H004390
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 07:41:27 +0200
Received: (qmail 7606 invoked from network); 25 Apr 2012 05:41:27 -0000
Received: from unknown (HELO earth.stuge.se) (127.0.0.1)
 by localhost with SMTP; 25 Apr 2012 05:41:27 -0000
MIME-Version: 1.0
From: "libssh2 Trac" <trac@libssh2.stuge.se>
X-Trac-Version: 0.13dev
Precedence: bulk
Cc: libssh2-devel@cool.haxx.se
Auto-Submitted: auto-generated
X-Mailer: Trac 0.13dev, by Edgewall Software
X-Trac-Project: libssh2
Date: Wed, 25 Apr 2012 05:41:27 -0000
X-URL: http://trac.libssh2.org/
Subject: Re: [libssh2] #236: disconnecting libssh2 sessions results in sshd
 message "inetd[1080]: /usr/sbin/sshd[88807]: exited, status 255"
X-Trac-Ticket-URL: http://trac.libssh2.org/ticket/236#comment:1
Message-ID: <053.9761330fe0f4e3120e9f82329b6541f6@libssh2.stuge.se>
References: <038.573b17621d5fd99da7f176e9ff0c2811@libssh2.stuge.se>
X-Trac-Ticket-ID: 236
In-Reply-To: <038.573b17621d5fd99da7f176e9ff0c2811@libssh2.stuge.se>
X-MIME-Autoconverted: from base64 to 8bit by giant.haxx.se id q3P5fR5H004390
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Reply-To: trac@libssh2.stuge.se,
        libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

#236: disconnecting libssh2 sessions results in sshd message "inetd[1080]:
/usr/sbin/sshd[88807]: exited, status 255"
---------------------+-------------------
  Reporter:  km      |      Owner:
      Type:  defect  |     Status:  new
  Priority:  normal  |  Milestone:  1.4.0
 Component:  API     |    Version:  1.2.7
Resolution:          |   Keywords:
Blocked By:          |     Blocks:
---------------------+-------------------

Comment (by stuge):

 Replying to [ticket:236 km]:
 > When a libssh2 session is created and normally disconnected by calling:
 >
 >         libssh2_channel_free(channel_);
 >         libssh2_session_disconnect(session_, "");
 >         libssh2_session_free(session_);
 >
 > On the sshd server the following message is observed:
 > inetd[1080]: /usr/sbin/sshd[88796]: exited, status 255

 Which of the function calls triggers this warning?

 Remove one at a time from the end, and please report when the warning
 disappears.

 Thanks!

-- 
Ticket URL: <http://trac.libssh2.org/ticket/236#comment:1>
libssh2 <http://trac.libssh2.org/>
C library for writing portable SSH2 clients

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 08:28:33 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P6SGSE010565;
	Wed, 25 Apr 2012 08:28:30 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P6SDVx010492
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 08:28:14 +0200
Received: by iahk25 with SMTP id k25so2453669iah.41
 for <libssh2-devel@cool.haxx.se>; Tue, 24 Apr 2012 23:28:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=OtvNRcRy3T1oIXfkIQxnxbmDiwWfuh4WDd4GMhcnV6g=;
 b=EsDIjtXlfxQrl6UYWGDcT2TZEwjRcCSDhGHUfdjVF2nKPojM4OS8bZJQ2toPpB9klv
 +iM7SnyhwpMcDpENPkweRNZ/QDq+ErCG1rf6A3xPiZp248mMgIbE9hMT+uAnbLUtOZnj
 w5yV8M3wUbkBL0/LNVfNn9egI1TbtGa7pjHcmlu1JcUz4FYYeYZN/WNjdwA4ZYJ3fbxo
 AwqQs+gjiOPJTeWPcBmvOOjaUCh8vdjkOVXBYHyXzA80LACl6JYoy+b2Os+4gUyE2QfD
 wJ8RdI13Fbm44FKVbBHyzP9IbOXT09c/XTVo2twE6EyPzmFeQVJB/S5UtWDyS4rfgAVa
 4/dg==
MIME-Version: 1.0
Received: by 10.50.220.129 with SMTP id pw1mr953385igc.29.1335335289746; Tue,
 24 Apr 2012 23:28:09 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Tue, 24 Apr 2012 23:28:09 -0700 (PDT)
In-Reply-To: <20120425052218.6653.qmail@stuge.se>
References: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
 <20120424170737.11943.qmail@stuge.se>
 <CA+XUKcgM5L_BgZxUjN8AmAapCo=B7NTfAY=qD7u82nDC+-nQSg@mail.gmail.com>
 <alpine.DEB.2.00.1204241551550.3570@familiar.castaglia.org>
 <CA+XUKci1zwBgzc1=VH4chOAmL=eWs=RcN1qCYF2qm_Xk-O7QSA@mail.gmail.com>
 <20120425052218.6653.qmail@stuge.se>
Date: Wed, 25 Apr 2012 08:28:09 +0200
Message-ID: <CA+XUKci-yOUt8SR7x5JCS7jh+L+hh2jidHvWC2E-4W=scie+Qg@mail.gmail.com>
Subject: Re: EPIPE causes 'Authentication by public key failed' for examples
 with keyfile authentication at OpenSSH server
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0125985744=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0125985744==
Content-Type: multipart/alternative; boundary=bcaec554008e99f4b804be7af915

--bcaec554008e99f4b804be7af915
Content-Type: text/plain; charset=ISO-8859-1

Hi Peter,

thank you very much... :-)

Also I found the debug messaging surprisingly helpful.

./configure --enable-debug --with-openssl

isn't an option, is it? I tried out without success. Anyway, I think I can
live without encrypted keys so far... ;-)

Thank you very much again, Nick

2012/4/25 Peter Stuge <peter@stuge.se>

> Nick Rudnick wrote:
> > [libssh2] 0.414362 Userauth: Loading private key file:
> /home/i/.ssh/id_rsa
> > [libssh2] 0.414594 Failure Event: -16 - Unable to initialize private key
> from file
>
> The libssh2 backend using libgcrypt does not support encrypted
> private keys.
>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>

--bcaec554008e99f4b804be7af915
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div class=3D"gmail_extra">Hi Peter,</div><div class=3D"gmail_extra"><br></=
div><div class=3D"gmail_extra">thank you very much... :-)=A0</div><div clas=
s=3D"gmail_extra"><br></div><div class=3D"gmail_extra">Also I found the deb=
ug messaging surprisingly helpful.</div>
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">./configure=
 --enable-debug --with-openssl</div><div class=3D"gmail_extra"><div><br></d=
iv><div>isn&#39;t an option, is it? I tried out without success. Anyway, I =
think I can live without encrypted keys so far... ;-)</div>
<div><br></div><div>Thank you very much again, Nick</div></div><div class=
=3D"gmail_extra"><br><div class=3D"gmail_quote">2012/4/25 Peter Stuge <span=
 dir=3D"ltr">&lt;<a href=3D"mailto:peter@stuge.se" target=3D"_blank">peter@=
stuge.se</a>&gt;</span><br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div class=3D"im">Nick Rudnick wrote:<br>
&gt; [libssh2] 0.414362 Userauth: Loading private key file: /home/i/.ssh/id=
_rsa<br>
&gt; [libssh2] 0.414594 Failure Event: -16 - Unable to initialize private k=
ey from file<br>
<br>
</div>The libssh2 backend using libgcrypt does not support encrypted<br>
private keys.<br>
<div class=3D"HOEnZb"><div class=3D"h5"><br>
<br>
//Peter<br>
_______________________________________________<br>
libssh2-devel <a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libss=
h2-devel" target=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/li=
bssh2-devel</a><br>
</div></div></blockquote></div><br></div>

--bcaec554008e99f4b804be7af915--

--===============0125985744==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0125985744==--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 08:40:58 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P6eqaR019473;
	Wed, 25 Apr 2012 08:40:56 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3P6epYd019410
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 08:40:51 +0200
Received: (qmail 13003 invoked by uid 501); 25 Apr 2012 06:40:51 -0000
Message-ID: <20120425064051.13002.qmail@stuge.se>
Date: Wed, 25 Apr 2012 08:40:51 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: EPIPE causes 'Authentication by public key failed' for
 examples with keyfile authentication at OpenSSH server
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
 <20120424170737.11943.qmail@stuge.se>
 <CA+XUKcgM5L_BgZxUjN8AmAapCo=B7NTfAY=qD7u82nDC+-nQSg@mail.gmail.com>
 <alpine.DEB.2.00.1204241551550.3570@familiar.castaglia.org>
 <CA+XUKci1zwBgzc1=VH4chOAmL=eWs=RcN1qCYF2qm_Xk-O7QSA@mail.gmail.com>
 <20120425052218.6653.qmail@stuge.se>
 <CA+XUKci-yOUt8SR7x5JCS7jh+L+hh2jidHvWC2E-4W=scie+Qg@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CA+XUKci-yOUt8SR7x5JCS7jh+L+hh2jidHvWC2E-4W=scie+Qg@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Nick Rudnick wrote:
> ./configure --enable-debug --with-openssl
> 
> isn't an option, is it?

Yes, it is.


> I tried out without success.

Please show the error you got so that someone can comment.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 09:39:54 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P7dfjl031947;
	Wed, 25 Apr 2012 09:39:52 +0200
Received: from mail-gy0-f182.google.com (mail-gy0-f182.google.com
 [209.85.160.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P7dc7V031908
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 09:39:39 +0200
Received: by ghrr20 with SMTP id r20so1060764ghr.41
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 00:39:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to:content-type;
 bh=3ni+NjxcLjFEzQAXG2dpl1surQKMdT45Nez/ocCkcJ8=;
 b=e99RX3H1UhUO0YPjWHsK3/86TVJugqB+d5+Lo+0LVe43byM08xWiAhRmQBku8MycNj
 YgW/Oh+bBhN9CTwnYKs6DiSr0G0DM4sZaYkUU1/3QCsiRe+rd3Tj2Q9+0ryK3wddZlAs
 FLpbdr7R1ZizMYOvGQhZ/tkLaZthhBCm6zeO0m0V9OlRDSKVBH++jNVtXVgMOY6C6q1x
 /g3sxWHt+nnM49xbrawbk2mmVnQd+BhYmOAESkfCqWZ2NpbFxIRrMKRCn6uQipI+2V/x
 o2NTq1d4ut6X7WHCy1E8MRtvMLkWsB/UKrnGyyRXJnn8yHhLiMocWGT3WY4Vimzpw5xc
 X82g==
MIME-Version: 1.0
Received: by 10.236.145.34 with SMTP id o22mr1501609yhj.7.1335339574710; Wed,
 25 Apr 2012 00:39:34 -0700 (PDT)
Received: by 10.147.168.1 with HTTP; Wed, 25 Apr 2012 00:39:34 -0700 (PDT)
Date: Wed, 25 Apr 2012 11:39:34 +0400
Message-ID: <CAJ9p1N7e_C6imbw0ueDjGMvbiK5+7SwqC+jfyo+v+_6kLemJ1w@mail.gmail.com>
Subject: libssh2 connection time
From: Dmitry <russiankickingbear@gmail.com>
To: libssh2-devel@cool.haxx.se
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1148388539=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============1148388539==
Content-Type: multipart/alternative; boundary=20cf303b3cdf01513e04be7bf962

--20cf303b3cdf01513e04be7bf962
Content-Type: text/plain; charset=ISO-8859-1

Hi, folks!

Have some interesting problem. In my project i used libcurl, which based on
libssh2. When i try to download from sftp server directory with many
sub-directories and sub-files, libssh2_sftp_readdir_ex return error ""
Than I try to reconnect to server after every 100 transactions (for
example). And i have no any error and all of the files successfully
downloaded.
So, maybe there is some limit on connection time or transaction count in
one connection?

I will be grateful for any advice

--20cf303b3cdf01513e04be7bf962
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div><font>Hi, folks!</font><br></div><div><font><br></font></div><div><fon=
t>Have some interesting problem. In my project i used libcurl, which based =
on libssh2. When i try to download from sftp server directory with many sub=
-directories and sub-files, libssh2_sftp_readdir_ex return error &quot;&quo=
t;<br>
</font></div><div><font>Than I try to reconnect to server after every 100 t=
ransactions (for example). And i have no any error and all of the files suc=
cessfully downloaded.</font></div><div><font>So, maybe there is some limit =
on connection time or transaction count in one connection?<br>
</font></div><div><font><br></font></div><div><font>I will be grateful for =
any advice<br></font></div>

--20cf303b3cdf01513e04be7bf962--

--===============1148388539==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1148388539==--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 09:54:19 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P7sFfX012801;
	Wed, 25 Apr 2012 09:54:18 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P7sCpA012758
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 09:54:13 +0200
Received: by iahk25 with SMTP id k25so2551616iah.41
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 00:54:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=Es7dmds3/19K39b+s66yEPCwIEjPZYGdDB3lweTUXOY=;
 b=PJzWfZ2U1RfWTPq+/QAt/npoDF+ZKUBqGqXTidoKPf/J29IgCesFltdqC4Sajsm5ca
 MnvEbBhJEW58a+Am+5/mYmZpb9FIvJGjdukC4iML73EVhbSovB6nDLVH7ejIygCMgOyf
 CEdiEdiWwpQyUEe2pXIfZwesveC4Kubd4JCk6xpcHkNS/0QPVr1cL9P5E6zKPKbAtWxT
 eXJitn5FE1KUvN65cfR4LGcKNQoDpStOsRBcIdspfrb+MvVvNu0qocU0R6M/oUzlsFeC
 bEW4AOhZFl5Ij74vkb2uMlk1P5+m+m9GMdbS2BumWfgIVZ3HK5v4pcNugguZObunwYk9
 DT9A==
MIME-Version: 1.0
Received: by 10.43.44.2 with SMTP id ue2mr1017005icb.9.1335340448238; Wed, 25
 Apr 2012 00:54:08 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Wed, 25 Apr 2012 00:54:08 -0700 (PDT)
In-Reply-To: <20120425064051.13002.qmail@stuge.se>
References: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
 <20120424170737.11943.qmail@stuge.se>
 <CA+XUKcgM5L_BgZxUjN8AmAapCo=B7NTfAY=qD7u82nDC+-nQSg@mail.gmail.com>
 <alpine.DEB.2.00.1204241551550.3570@familiar.castaglia.org>
 <CA+XUKci1zwBgzc1=VH4chOAmL=eWs=RcN1qCYF2qm_Xk-O7QSA@mail.gmail.com>
 <20120425052218.6653.qmail@stuge.se>
 <CA+XUKci-yOUt8SR7x5JCS7jh+L+hh2jidHvWC2E-4W=scie+Qg@mail.gmail.com>
 <20120425064051.13002.qmail@stuge.se>
Date: Wed, 25 Apr 2012 09:54:08 +0200
Message-ID: <CA+XUKcgM8cJ_PJYRcCVXrKSX8778Op2bsW38kUc8scUdrUSuFA@mail.gmail.com>
Subject: Re: EPIPE causes 'Authentication by public key failed' for examples
 with keyfile authentication at OpenSSH server
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1389018410=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============1389018410==
Content-Type: multipart/alternative; boundary=bcaec529a077124e7504be7c2d87

--bcaec529a077124e7504be7c2d87
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Hi Peter,

:-) problem solved =96 after I had realized the passphrase was for private
key encryption, which was different to "i" used for the test account,
together with replacement of "~/.ssh/..." by "/home/i/.ssh/...", as
suggested by TJ Saunders, everything ran well, even without
"--with-openssl".

The "~/.ssh/..." appears in ssh2.c & sftp.c =96 is there an interest that I
prepare a diff for these files?

Thanks a lot, Nick

2012/4/25 Peter Stuge <peter@stuge.se>

> Nick Rudnick wrote:
> > ./configure --enable-debug --with-openssl
> >
> > isn't an option, is it?
>
> Yes, it is.
>
>
> > I tried out without success.
>
> Please show the error you got so that someone can comment.
>
>
> //Peter
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>

--bcaec529a077124e7504be7c2d87
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<div class=3D"gmail_extra">Hi Peter,</div><div class=3D"gmail_extra"><br></=
div><div class=3D"gmail_extra">:-) problem solved =96 after I had realized =
the passphrase was for private key encryption, which was different to &quot=
;i&quot; used for the test account, together with replacement of &quot;~/.s=
sh/...&quot; by &quot;/home/i/.ssh/...&quot;, as suggested by TJ Saunders, =
everything ran well, even without &quot;--with-openssl&quot;.</div>
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">The=A0&quot=
;~/.ssh/...&quot; appears in ssh2.c &amp; sftp.c =96 is there an interest t=
hat I prepare a diff for these files?</div><div class=3D"gmail_extra"><br><=
/div><div class=3D"gmail_extra">
Thanks a lot, Nick</div><div class=3D"gmail_extra"><br></div><div class=3D"=
gmail_extra"><div class=3D"gmail_quote">2012/4/25 Peter Stuge <span dir=3D"=
ltr">&lt;<a href=3D"mailto:peter@stuge.se" target=3D"_blank">peter@stuge.se=
</a>&gt;</span><br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div class=3D"im">Nick Rudnick wrote:<br>
&gt; ./configure --enable-debug --with-openssl<br>
&gt;<br>
&gt; isn&#39;t an option, is it?<br>
<br>
</div>Yes, it is.<br>
<div class=3D"im"><br>
<br>
&gt; I tried out without success.<br>
<br>
</div>Please show the error you got so that someone can comment.<br>
<div class=3D"HOEnZb"><div class=3D"h5"><br>
<br>
//Peter<br>
_______________________________________________<br>
libssh2-devel <a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libss=
h2-devel" target=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/li=
bssh2-devel</a><br>
</div></div></blockquote></div><br></div>

--bcaec529a077124e7504be7c2d87--

--===============1389018410==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1389018410==--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 11:12:13 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P9BtnG013147;
	Wed, 25 Apr 2012 11:12:09 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P9BsUD013136
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 11:11:54 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q3P9BsoI013130
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 11:11:54 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Wed, 25 Apr 2012 11:11:53 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: EPIPE causes 'Authentication by public key failed' for examples
 with keyfile authentication at OpenSSH server
In-Reply-To: <CA+XUKcgM8cJ_PJYRcCVXrKSX8778Op2bsW38kUc8scUdrUSuFA@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204251111320.10304@tvnag.unkk.fr>
References: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
 <20120424170737.11943.qmail@stuge.se>
 <CA+XUKcgM5L_BgZxUjN8AmAapCo=B7NTfAY=qD7u82nDC+-nQSg@mail.gmail.com>
 <alpine.DEB.2.00.1204241551550.3570@familiar.castaglia.org>
 <CA+XUKci1zwBgzc1=VH4chOAmL=eWs=RcN1qCYF2qm_Xk-O7QSA@mail.gmail.com>
 <20120425052218.6653.qmail@stuge.se>
 <CA+XUKci-yOUt8SR7x5JCS7jh+L+hh2jidHvWC2E-4W=scie+Qg@mail.gmail.com>
 <20120425064051.13002.qmail@stuge.se>
 <CA+XUKcgM8cJ_PJYRcCVXrKSX8778Op2bsW38kUc8scUdrUSuFA@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED;
 BOUNDARY="1129329158-252178868-1335345114=:10304"
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--1129329158-252178868-1335345114=:10304
Content-Type: TEXT/PLAIN; charset=windows-1252; format=flowed
Content-Transfer-Encoding: 8BIT

On Wed, 25 Apr 2012, Nick Rudnick wrote:

> The "~/.ssh/..." appears in ssh2.c & sftp.c – is there an interest that I 
> prepare a diff for these files?

Yes, please that error is really misleading!

-- 

  / daniel.haxx.se
--1129329158-252178868-1335345114=:10304
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--1129329158-252178868-1335345114=:10304--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 11:12:43 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P9Chfr013661;
	Wed, 25 Apr 2012 11:12:43 +0200
Received: from mail-qa0-f47.google.com (mail-qa0-f47.google.com
 [209.85.216.47])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3P9CeJd013604
 (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 11:12:41 +0200
Received: by qabg1 with SMTP id g1so3678797qab.20
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 02:12:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
 h=mime-version:sender:in-reply-to:references:date
 :x-google-sender-auth:message-id:subject:from:to:content-type;
 bh=6qK2dxq/K/Wrog2pT7YkKMCxbUBJsE6a987ewcPSfao=;
 b=ZNuj96fON+K83Q50+ngZXwRA478Ln6WnQVJad/y0rZ5TSuBt6MN/JFifVda1R7FVUh
 9XWeQj7+UyQWzcyZfdS3m8cZ2qrCLG/UXhWLplXoj8uKMsdzM5BYquATW0/dzL70k8Ay
 RAKIDtZw/wWDs0eOu15lch+k0XsNaDLG6+Y+g/jOhieJrRJRHZ1xPoFJi374v6qSVW2a
 4cKtYq0i9AYi9+q2dUn2DvCLLtZIN1+eg1e9fZPYQE9djwRqWhDFacDv8qnKbqpsfO1m
 FkIWERO+b4Q4CQYyUqNQrWcFaOzbgrwXcI2nBajzEITQ4xmrBe2gP0MOUJjYyv7oo+T6
 +ccw==
MIME-Version: 1.0
Received: by 10.224.174.206 with SMTP id u14mr1296936qaz.90.1335345153963;
 Wed, 25 Apr 2012 02:12:33 -0700 (PDT)
Received: by 10.229.120.82 with HTTP; Wed, 25 Apr 2012 02:12:33 -0700 (PDT)
In-Reply-To: <CAJ9p1N7e_C6imbw0ueDjGMvbiK5+7SwqC+jfyo+v+_6kLemJ1w@mail.gmail.com>
References: <CAJ9p1N7e_C6imbw0ueDjGMvbiK5+7SwqC+jfyo+v+_6kLemJ1w@mail.gmail.com>
Date: Wed, 25 Apr 2012 10:12:33 +0100
X-Google-Sender-Auth: viblz7XmU22y4YfCoHdrXvKnGxo
Message-ID: <CADyPeTMm1QO35rA7P8k9wDAvMPcJ4JCBWF0OQc8xcqmtxAbMzA@mail.gmail.com>
Subject: Re: libssh2 connection time
From: Alexander Lamaison <swish@lammy.co.uk>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 25 April 2012 08:39, Dmitry <russiankickingbear@gmail.com> wrote:
>
> Have some interesting problem. In my project i used libcurl, which based
> on libssh2. When i try to download from sftp server directory with many
> sub-directories and sub-files, libssh2_sftp_readdir_ex return error ""
> Than I try to reconnect to server after every 100 transactions (for
> example). And i have no any error and all of the files successfully
> downloaded.

We need much more information than that: a complete program that
reproduces the problem, a debug trace output and information on the
versions of libssh2, OS etc.

Alex

--
Swish - Easy SFTP for Windows Explorer (http://www.swish-sftp.org)
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 14:57:46 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PCvPfc031154;
	Wed, 25 Apr 2012 14:57:41 +0200
Received: from giant.haxx.se (localhost.localdomain [127.0.0.1])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PCvNcO031131
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 14:57:23 +0200
Received: from localhost (dast@localhost)
 by giant.haxx.se (8.14.4/8.14.4/Submit) with ESMTP id q3PCvNLB031126
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 14:57:23 +0200
X-Authentication-Warning: giant.haxx.se: dast owned process doing -bs
Date: Wed, 25 Apr 2012 14:57:23 +0200 (CEST)
From: Daniel Stenberg <daniel@haxx.se>
X-X-Sender: dast@giant.haxx.se
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: libssh2 connection time
In-Reply-To: <CAJ9p1N7e_C6imbw0ueDjGMvbiK5+7SwqC+jfyo+v+_6kLemJ1w@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204251455490.10304@tvnag.unkk.fr>
References: <CAJ9p1N7e_C6imbw0ueDjGMvbiK5+7SwqC+jfyo+v+_6kLemJ1w@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
X-fromdanielhimself: yes
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="us-ascii"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On Wed, 25 Apr 2012, Dmitry wrote:

> When i try to download from sftp server directory with many sub-directories 
> and sub-files, libssh2_sftp_readdir_ex return error ""

What is that error supposed to mean? libssh2_sftp_readdir_ex() returns a 
numeric error value...

Which libssh2 version on what platform?

-- 

  / daniel.haxx.se
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 19:53:24 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PHqusG005010;
	Wed, 25 Apr 2012 19:53:17 +0200
Received: from mail-gy0-f182.google.com (mail-gy0-f182.google.com
 [209.85.160.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PHqrJt004953
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 19:52:54 +0200
Received: by ghrr20 with SMTP id r20so411852ghr.41
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 10:52:49 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=SKk6LVHO6UqjQSOENrnxHwBHngdW2nIaWhzQZyAsCWw=;
 b=j7i4FNqrvDPM9tcFrwcG8WcxUZKygp5u0ezE7wo1+ecPhYpsFzlufmRmL435tDAROA
 SjdWM+KZedcL9xYUkGH7wyU1EFqOID3UjZLHuFVW7VcplqvawU1jkgdf1IzcucbH698v
 CWPr4qo5fU5REbFbky3IBfRKhnVX1E9x4AprfklVeTEvhgdvxneNcI01DReOdxw/+IEN
 WqCcWISmjsuVojbOBqpdv3HfrrWxYd28sAJ1SzG99I5ijHfM9kh2F/nhQKZaZUX/THaI
 wImNMLI84W2Z7AVY9Al9SkCYwwqqvS6NlwtIHAFmLB3t4nqhrKDf/xC6x5NDgIazOPKz
 EIZg==
MIME-Version: 1.0
Received: by 10.50.106.132 with SMTP id gu4mr15695868igb.59.1335376369273;
 Wed, 25 Apr 2012 10:52:49 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Wed, 25 Apr 2012 10:52:49 -0700 (PDT)
In-Reply-To: <alpine.DEB.2.00.1204251111320.10304@tvnag.unkk.fr>
References: <CA+XUKcjwn6TGahPfYCg0x5942Hku-zEHgx4Yw_FSS5_TutmctQ@mail.gmail.com>
 <20120424170737.11943.qmail@stuge.se>
 <CA+XUKcgM5L_BgZxUjN8AmAapCo=B7NTfAY=qD7u82nDC+-nQSg@mail.gmail.com>
 <alpine.DEB.2.00.1204241551550.3570@familiar.castaglia.org>
 <CA+XUKci1zwBgzc1=VH4chOAmL=eWs=RcN1qCYF2qm_Xk-O7QSA@mail.gmail.com>
 <20120425052218.6653.qmail@stuge.se>
 <CA+XUKci-yOUt8SR7x5JCS7jh+L+hh2jidHvWC2E-4W=scie+Qg@mail.gmail.com>
 <20120425064051.13002.qmail@stuge.se>
 <CA+XUKcgM8cJ_PJYRcCVXrKSX8778Op2bsW38kUc8scUdrUSuFA@mail.gmail.com>
 <alpine.DEB.2.00.1204251111320.10304@tvnag.unkk.fr>
Date: Wed, 25 Apr 2012 19:52:49 +0200
Message-ID: <CA+XUKciV8CyC5Qts+aZ4NHZ_P_rw1OcBG6M_NT7fg8uCp-R+zQ@mail.gmail.com>
Subject: Re: EPIPE causes 'Authentication by public key failed' for examples
 with keyfile authentication at OpenSSH server
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Content-Type: multipart/mixed; boundary=e89a8f3ba14921ca1104be848ae3
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--e89a8f3ba14921ca1104be848ae3
Content-Type: multipart/alternative; boundary=e89a8f3ba14921ca0b04be848ae1

--e89a8f3ba14921ca0b04be848ae1
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

With pleasure... :-)

A Git patch is attached =96 or is it to be directed to a special address?

Cheers, Nick

2012/4/25 Daniel Stenberg <daniel@haxx.se>

> On Wed, 25 Apr 2012, Nick Rudnick wrote:
>
>  The "~/.ssh/..." appears in ssh2.c & sftp.c =96 is there an interest tha=
t I
>> prepare a diff for these files?
>>
>
> Yes, please that error is really misleading!
>
> --
>
>  / daniel.haxx.se
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
>

--e89a8f3ba14921ca0b04be848ae1
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<div class=3D"gmail_extra">With pleasure... :-)</div><div class=3D"gmail_ex=
tra"><br></div><div class=3D"gmail_extra">A Git patch is attached =96 or is=
 it to be directed to a special address?</div><div class=3D"gmail_extra"><b=
r></div>
<div class=3D"gmail_extra">Cheers, Nick<br><br><div class=3D"gmail_quote">2=
012/4/25 Daniel Stenberg <span dir=3D"ltr">&lt;<a href=3D"mailto:daniel@hax=
x.se" target=3D"_blank">daniel@haxx.se</a>&gt;</span><br><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex">
<div class=3D"im">On Wed, 25 Apr 2012, Nick Rudnick wrote:<br>
<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
The &quot;~/.ssh/...&quot; appears in ssh2.c &amp; sftp.c =96 is there an i=
nterest that I prepare a diff for these files?<br>
</blockquote>
<br></div>
Yes, please that error is really misleading!<span class=3D"HOEnZb"><font co=
lor=3D"#888888"><br>
<br>
-- <br>
<br>
=A0/ <a href=3D"http://daniel.haxx.se" target=3D"_blank">daniel.haxx.se</a>=
</font></span><br>_______________________________________________<br>
libssh2-devel <a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libss=
h2-devel" target=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/li=
bssh2-devel</a><br>
<br></blockquote></div><br></div>

--e89a8f3ba14921ca0b04be848ae1--
--e89a8f3ba14921ca1104be848ae3
Content-Type: application/octet-stream; 
	name="0001-examples-without-HOME-tilde-in-default-paths.patch"
Content-Disposition: attachment; 
	filename="0001-examples-without-HOME-tilde-in-default-paths.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h1goiy0y0

RnJvbSA5NTEyYTFjMTdhYjIxNzVhMWQ2YmY2ZjkwMWZiZGY2MTU4OWRiYzU0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJIDxpQGl0Lihub25lKT4KRGF0ZTogV2VkLCAyNSBBcHIgMjAx
MiAxOTo0NzoyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGV4YW1wbGVzIHdpdGhvdXQgSE9NRSB0
aWxkZSBpbiBkZWZhdWx0IHBhdGhzCgotLS0KIGV4YW1wbGUvc2Z0cC5jIHwgICAgNCArKy0tCiBl
eGFtcGxlL3NzaDIuYyB8ICAgIDQgKystLQogMiBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMo
KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZXhhbXBsZS9zZnRwLmMgYi9leGFtcGxl
L3NmdHAuYwppbmRleCBlNjliM2MzLi4xMTM0ODNlIDEwMDY0NAotLS0gYS9leGFtcGxlL3NmdHAu
YworKysgYi9leGFtcGxlL3NmdHAuYwpAQCAtMzcsOCArMzcsOCBAQAogI2luY2x1ZGUgPGN0eXBl
Lmg+CiAKIAotY29uc3QgY2hhciAqa2V5ZmlsZTE9In4vLnNzaC9pZF9yc2EucHViIjsKLWNvbnN0
IGNoYXIgKmtleWZpbGUyPSJ+Ly5zc2gvaWRfcnNhIjsKK2NvbnN0IGNoYXIgKmtleWZpbGUxPSIv
aG9tZS91c2VybmFtZS8uc3NoL2lkX3JzYS5wdWIiOworY29uc3QgY2hhciAqa2V5ZmlsZTI9Ii9o
b21lL3VzZXJuYW1lLy5zc2gvaWRfcnNhIjsKIGNvbnN0IGNoYXIgKnVzZXJuYW1lPSJ1c2VybmFt
ZSI7CiBjb25zdCBjaGFyICpwYXNzd29yZD0icGFzc3dvcmQiOwogY29uc3QgY2hhciAqc2Z0cHBh
dGg9Ii90bXAvVEVTVCI7CmRpZmYgLS1naXQgYS9leGFtcGxlL3NzaDIuYyBiL2V4YW1wbGUvc3No
Mi5jCmluZGV4IGQ1ZTYxNjYuLmJhZGNhY2MgMTAwNjQ0Ci0tLSBhL2V4YW1wbGUvc3NoMi5jCisr
KyBiL2V4YW1wbGUvc3NoMi5jCkBAIC0zNyw4ICszNyw4IEBACiAjaW5jbHVkZSA8Y3R5cGUuaD4K
IAogCi1jb25zdCBjaGFyICprZXlmaWxlMT0ifi8uc3NoL2lkX3JzYS5wdWIiOwotY29uc3QgY2hh
ciAqa2V5ZmlsZTI9In4vLnNzaC9pZF9yc2EiOworY29uc3QgY2hhciAqa2V5ZmlsZTE9Ii9ob21l
L3VzZXJuYW1lLy5zc2gvaWRfcnNhLnB1YiI7Citjb25zdCBjaGFyICprZXlmaWxlMj0iL2hvbWUv
dXNlcm5hbWUvLnNzaC9pZF9yc2EiOwogY29uc3QgY2hhciAqdXNlcm5hbWU9InVzZXJuYW1lIjsK
IGNvbnN0IGNoYXIgKnBhc3N3b3JkPSJwYXNzd29yZCI7CiAKLS0gCjEuNy41LjQKCg==
--e89a8f3ba14921ca1104be848ae3
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--e89a8f3ba14921ca1104be848ae3--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 20:59:20 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PIx6Qo025212;
	Wed, 25 Apr 2012 20:59:18 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PIx4dO025005
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 20:59:05 +0200
Received: by iahk25 with SMTP id k25so534245iah.41
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 11:59:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to:content-type;
 bh=4ioZrvgXPHkiocPRv05aN4owS2LeSuqGpBHlpIXtjKA=;
 b=ZkGqF572c11uWsykRbArbgweJrVApxFcj8pHwtQld947kJ9BI0PS7uvjTOxexioqmf
 QgVT0db3JYG+hNyPDzl2d67Ho+MvirhnnRzeSTU8fvhw4evXgJ4EYQQqYtz2YKcTPTAO
 rKNSidjB/iwnjEn+PC6WOi5QMGsvwpF2aTfFUjsqoBKZdg8na4XbwrRScLyrAVZZQnPt
 4FvIkwBPchtHkJFSaGRcJ/orT3JbMuKh9dLJjIh3wCJUfEv5B8b35R+HOxxAK53H5Etk
 bPv1bomkkcpK0o1b615prhRLEEq+DGeZnVsp4HU2GAXAwC3rp8kV8XiVZuhdjimrbYSD
 yDDw==
MIME-Version: 1.0
Received: by 10.43.44.2 with SMTP id ue2mr3267341icb.9.1335380340589; Wed, 25
 Apr 2012 11:59:00 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Wed, 25 Apr 2012 11:59:00 -0700 (PDT)
Date: Wed, 25 Apr 2012 20:59:00 +0200
Message-ID: <CA+XUKcgr3iE8skx=RM_6J+nFBL-y+rkOAK2DE=Js173nFjC0UA@mail.gmail.com>
Subject: [libssh2] meaning of -37 "Failed getting banner" / "Unable to
 exchange encryption keys" /
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0660067556=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0660067556==
Content-Type: multipart/alternative; boundary=bcaec529a077d7433a04be8576ef

--bcaec529a077d7433a04be8576ef
Content-Type: text/plain; charset=ISO-8859-1

Dear all,

beginning my actual work now, making run a Haskell interface to libssh2, I
(greatly appreciating libssh2 debug messaging) stumbled over two -37 error
messages which I di not understand nor found an explanation for so that I
can imagine what's going on.

Any enlightenment welcome... :-) As usual, thanks a lot in advance, Nick

= = = = = = = = = = = = = = = = =
Failure Event: -37 - Failed getting banner
- - - - - - - - - - - - - - - - - -
[libssh2] 0.953485 Transport: session_startup for socket 3
[libssh2] 0.953504 Transport: Sending Banner: SSH-2.0-libssh2_1.4.2-20120422
[libssh2] 0.953539 Socket: Sent 32/32 bytes at 0x7f9517e99020+0
[libssh2] 0.953586 Socket: Error recving 1 bytes: 11
[libssh2] 0.953603 Failure Event: -37 - Failed getting banner
Main: TIMEOUT


= = = = = = = = = = = = = = = = =
Failure Event: -37 - Failed getting banner
- - - - - - - - - - - - - - - - - -
[libssh2] 0.299932 Transport: session_startup for socket 3
[libssh2] 0.299979 Transport: Sending Banner: SSH-2.0-OpenSSH_5.4
[libssh2] 0.300057 Socket: Sent 21/21 bytes at 0x1ffb630+0
[libssh2] 0.300118 Socket: Error recving 1 bytes: 11
[libssh2] 0.300149 Failure Event: -37 - Failed getting banner
[libssh2] 0.307140 Socket: Recved 1 bytes banner
[libssh2] 0.307161 Socket: Recved 1 bytes banner
[libssh2] 0.307168 Socket: Recved 1 bytes banner
[libssh2] 0.307174 Socket: Recved 1 bytes banner
[libssh2] 0.307179 Socket: Recved 1 bytes banner
[libssh2] 0.307184 Socket: Recved 1 bytes banner
[libssh2] 0.307189 Socket: Recved 1 bytes banner
[libssh2] 0.307195 Socket: Recved 1 bytes banner
[libssh2] 0.307200 Socket: Recved 1 bytes banner
[libssh2] 0.307205 Socket: Recved 1 bytes banner
[libssh2] 0.307210 Socket: Recved 1 bytes banner
[libssh2] 0.307215 Socket: Recved 1 bytes banner
[libssh2] 0.307220 Socket: Recved 1 bytes banner
[libssh2] 0.307226 Socket: Recved 1 bytes banner
[libssh2] 0.307231 Socket: Recved 1 bytes banner
[libssh2] 0.307236 Socket: Recved 1 bytes banner
[libssh2] 0.307241 Socket: Recved 1 bytes banner
[libssh2] 0.307246 Socket: Recved 1 bytes banner
[libssh2] 0.307251 Socket: Recved 1 bytes banner
[libssh2] 0.307257 Socket: Recved 1 bytes banner
[libssh2] 0.307263 Socket: Recved 1 bytes banner
[libssh2] 0.307273 Transport: Received Banner: SSH-2.0-OpenSSH_5.8
[libssh2] 0.307467 Key Ex: Sent KEX:
diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
[libssh2] 0.307478 Key Ex: Sent HOSTKEY: ssh-rsa,ssh-dss
[libssh2] 0.307483 Key Ex: Sent CRYPT_CS:
aes128-ctr,aes192-ctr,aes256-ctr,aes256-cbc,rijndael-cbc@lysator.liu.se
,aes192-cbc,aes128-cbc,blowfish-cbc,arcfour128,arcfour,cast128-cbc,3des-cbc
[libssh2] 0.307490 Key Ex: Sent CRYPT_SC:
aes128-ctr,aes192-ctr,aes256-ctr,aes256-cbc,rijndael-cbc@lysator.liu.se
,aes192-cbc,aes128-cbc,blowfish-cbc,arcfour128,arcfour,cast128-cbc,3des-cbc
[libssh2] 0.307496 Key Ex: Sent MAC_CS:
hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,
hmac-ripemd160@openssh.com
[libssh2] 0.307502 Key Ex: Sent MAC_SC:
hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,
hmac-ripemd160@openssh.com
[libssh2] 0.307507 Key Ex: Sent COMP_CS: none
[libssh2] 0.307512 Key Ex: Sent COMP_SC: none
[libssh2] 0.307517 Key Ex: Sent LANG_CS:
[libssh2] 0.307521 Key Ex: Sent LANG_SC:
=> libssh2_transport_write plain (636 bytes)
0000: 14 30 50 D8 1E 8E 7C DC  B4 F0 E3 24 BD CB 75 76 : .0P...|....$..uv
0010: C8 00 00 00 59 64 69 66  66 69 65 2D 68 65 6C 6C : ....Ydiffie-hell
0020: 6D 61 6E 2D 67 72 6F 75  70 31 34 2D 73 68 61 31 : man-group14-sha1
0030: 2C 64 69 66 66 69 65 2D  68 65 6C 6C 6D 61 6E 2D : ,diffie-hellman-
0040: 67 72 6F 75 70 2D 65 78  63 68 61 6E 67 65 2D 73 : group-exchange-s
0050: 68 61 31 2C 64 69 66 66  69 65 2D 68 65 6C 6C 6D : ha1,diffie-hellm
0060: 61 6E 2D 67 72 6F 75 70  31 2D 73 68 61 31 00 00 : an-group1-sha1..
0070: 00 0F 73 73 68 2D 72 73  61 2C 73 73 68 2D 64 73 : ..ssh-rsa,ssh-ds
0080: 73 00 00 00 92 61 65 73  31 32 38 2D 63 74 72 2C : s....aes128-ctr,
0090: 61 65 73 31 39 32 2D 63  74 72 2C 61 65 73 32 35 : aes192-ctr,aes25
00a0: 36 2D 63 74 72 2C 61 65  73 32 35 36 2D 63 62 63 : 6-ctr,aes256-cbc
00b0: 2C 72 69 6A 6E 64 61 65  6C 2D 63 62 63 40 6C 79 : ,rijndael-cbc@ly
00c0: 73 61 74 6F 72 2E 6C 69  75 2E 73 65 2C 61 65 73 : sator.liu.se,aes
00d0: 31 39 32 2D 63 62 63 2C  61 65 73 31 32 38 2D 63 : 192-cbc,aes128-c
00e0: 62 63 2C 62 6C 6F 77 66  69 73 68 2D 63 62 63 2C : bc,blowfish-cbc,
00f0: 61 72 63 66 6F 75 72 31  32 38 2C 61 72 63 66 6F : arcfour128,arcfo
0100: 75 72 2C 63 61 73 74 31  32 38 2D 63 62 63 2C 33 : ur,cast128-cbc,3
0110: 64 65 73 2D 63 62 63 00  00 00 92 61 65 73 31 32 : des-cbc....aes12
0120: 38 2D 63 74 72 2C 61 65  73 31 39 32 2D 63 74 72 : 8-ctr,aes192-ctr
0130: 2C 61 65 73 32 35 36 2D  63 74 72 2C 61 65 73 32 : ,aes256-ctr,aes2
0140: 35 36 2D 63 62 63 2C 72  69 6A 6E 64 61 65 6C 2D : 56-cbc,rijndael-
0150: 63 62 63 40 6C 79 73 61  74 6F 72 2E 6C 69 75 2E : cbc@lysator.liu.
0160: 73 65 2C 61 65 73 31 39  32 2D 63 62 63 2C 61 65 : se,aes192-cbc,ae
0170: 73 31 32 38 2D 63 62 63  2C 62 6C 6F 77 66 69 73 : s128-cbc,blowfis
0180: 68 2D 63 62 63 2C 61 72  63 66 6F 75 72 31 32 38 : h-cbc,arcfour128
0190: 2C 61 72 63 66 6F 75 72  2C 63 61 73 74 31 32 38 : ,arcfour,cast128
01a0: 2D 63 62 63 2C 33 64 65  73 2D 63 62 63 00 00 00 : -cbc,3des-cbc...
01b0: 55 68 6D 61 63 2D 73 68  61 31 2C 68 6D 61 63 2D : Uhmac-sha1,hmac-
01c0: 73 68 61 31 2D 39 36 2C  68 6D 61 63 2D 6D 64 35 : sha1-96,hmac-md5
01d0: 2C 68 6D 61 63 2D 6D 64  35 2D 39 36 2C 68 6D 61 : ,hmac-md5-96,hma
01e0: 63 2D 72 69 70 65 6D 64  31 36 30 2C 68 6D 61 63 : c-ripemd160,hmac
01f0: 2D 72 69 70 65 6D 64 31  36 30 40 6F 70 65 6E 73 : -ripemd160@opens
0200: 73 68 2E 63 6F 6D 00 00  00 55 68 6D 61 63 2D 73 : sh.com...Uhmac-s
0210: 68 61 31 2C 68 6D 61 63  2D 73 68 61 31 2D 39 36 : ha1,hmac-sha1-96
0220: 2C 68 6D 61 63 2D 6D 64  35 2C 68 6D 61 63 2D 6D : ,hmac-md5,hmac-m
0230: 64 35 2D 39 36 2C 68 6D  61 63 2D 72 69 70 65 6D : d5-96,hmac-ripem
0240: 64 31 36 30 2C 68 6D 61  63 2D 72 69 70 65 6D 64 : d160,hmac-ripemd
0250: 31 36 30 40 6F 70 65 6E  73 73 68 2E 63 6F 6D 00 : 160@openssh.com.
0260: 00 00 04 6E 6F 6E 65 00  00 00 04 6E 6F 6E 65 00 : ...none....none.
0270: 00 00 00 00 00 00 00 00  00 00 00 00             : ............
[libssh2] 0.307746 Socket: Sent 648/648 bytes at 0x1fee638
=> libssh2_transport_write send() (648 bytes)
0000: 00 00 02 84 07 14 30 50  D8 1E 8E 7C DC B4 F0 E3 : ......0P...|....
0010: 24 BD CB 75 76 C8 00 00  00 59 64 69 66 66 69 65 : $..uv....Ydiffie
0020: 2D 68 65 6C 6C 6D 61 6E  2D 67 72 6F 75 70 31 34 : -hellman-group14
0030: 2D 73 68 61 31 2C 64 69  66 66 69 65 2D 68 65 6C : -sha1,diffie-hel
0040: 6C 6D 61 6E 2D 67 72 6F  75 70 2D 65 78 63 68 61 : lman-group-excha
0050: 6E 67 65 2D 73 68 61 31  2C 64 69 66 66 69 65 2D : nge-sha1,diffie-
0060: 68 65 6C 6C 6D 61 6E 2D  67 72 6F 75 70 31 2D 73 : hellman-group1-s
0070: 68 61 31 00 00 00 0F 73  73 68 2D 72 73 61 2C 73 : ha1....ssh-rsa,s
0080: 73 68 2D 64 73 73 00 00  00 92 61 65 73 31 32 38 : sh-dss....aes128
0090: 2D 63 74 72 2C 61 65 73  31 39 32 2D 63 74 72 2C : -ctr,aes192-ctr,
00a0: 61 65 73 32 35 36 2D 63  74 72 2C 61 65 73 32 35 : aes256-ctr,aes25
00b0: 36 2D 63 62 63 2C 72 69  6A 6E 64 61 65 6C 2D 63 : 6-cbc,rijndael-c
00c0: 62 63 40 6C 79 73 61 74  6F 72 2E 6C 69 75 2E 73 : bc@lysator.liu.s
00d0: 65 2C 61 65 73 31 39 32  2D 63 62 63 2C 61 65 73 : e,aes192-cbc,aes
00e0: 31 32 38 2D 63 62 63 2C  62 6C 6F 77 66 69 73 68 : 128-cbc,blowfish
00f0: 2D 63 62 63 2C 61 72 63  66 6F 75 72 31 32 38 2C : -cbc,arcfour128,
0100: 61 72 63 66 6F 75 72 2C  63 61 73 74 31 32 38 2D : arcfour,cast128-
0110: 63 62 63 2C 33 64 65 73  2D 63 62 63 00 00 00 92 : cbc,3des-cbc....
0120: 61 65 73 31 32 38 2D 63  74 72 2C 61 65 73 31 39 : aes128-ctr,aes19
0130: 32 2D 63 74 72 2C 61 65  73 32 35 36 2D 63 74 72 : 2-ctr,aes256-ctr
0140: 2C 61 65 73 32 35 36 2D  63 62 63 2C 72 69 6A 6E : ,aes256-cbc,rijn
0150: 64 61 65 6C 2D 63 62 63  40 6C 79 73 61 74 6F 72 : dael-cbc@lysator
0160: 2E 6C 69 75 2E 73 65 2C  61 65 73 31 39 32 2D 63 : .liu.se,aes192-c
0170: 62 63 2C 61 65 73 31 32  38 2D 63 62 63 2C 62 6C : bc,aes128-cbc,bl
0180: 6F 77 66 69 73 68 2D 63  62 63 2C 61 72 63 66 6F : owfish-cbc,arcfo
0190: 75 72 31 32 38 2C 61 72  63 66 6F 75 72 2C 63 61 : ur128,arcfour,ca
01a0: 73 74 31 32 38 2D 63 62  63 2C 33 64 65 73 2D 63 : st128-cbc,3des-c
01b0: 62 63 00 00 00 55 68 6D  61 63 2D 73 68 61 31 2C : bc...Uhmac-sha1,
01c0: 68 6D 61 63 2D 73 68 61  31 2D 39 36 2C 68 6D 61 : hmac-sha1-96,hma
01d0: 63 2D 6D 64 35 2C 68 6D  61 63 2D 6D 64 35 2D 39 : c-md5,hmac-md5-9
01e0: 36 2C 68 6D 61 63 2D 72  69 70 65 6D 64 31 36 30 : 6,hmac-ripemd160
01f0: 2C 68 6D 61 63 2D 72 69  70 65 6D 64 31 36 30 40 : ,hmac-ripemd160@
0200: 6F 70 65 6E 73 73 68 2E  63 6F 6D 00 00 00 55 68 : openssh.com...Uh
0210: 6D 61 63 2D 73 68 61 31  2C 68 6D 61 63 2D 73 68 : mac-sha1,hmac-sh
0220: 61 31 2D 39 36 2C 68 6D  61 63 2D 6D 64 35 2C 68 : a1-96,hmac-md5,h
0230: 6D 61 63 2D 6D 64 35 2D  39 36 2C 68 6D 61 63 2D : mac-md5-96,hmac-
0240: 72 69 70 65 6D 64 31 36  30 2C 68 6D 61 63 2D 72 : ripemd160,hmac-r
0250: 69 70 65 6D 64 31 36 30  40 6F 70 65 6E 73 73 68 : ipemd160@openssh
0260: 2E 63 6F 6D 00 00 00 04  6E 6F 6E 65 00 00 00 04 : .com....none....
0270: 6E 6F 6E 65 00 00 00 00  00 00 00 00 00 00 00 00 : none............
0280: 00 7C 35 B5 57 B8 5C 5A                          : .|5.W.\Z
[libssh2] 0.307979 Transport: Looking for packet of type: 20
[libssh2] 0.307988 Failure Event: -37 - Unable to exchange encryption keys
[libssh2] 0.308285 Socket: Recved 856/16384 bytes to 0x1fea5f8+0
=> libssh2_transport_read() raw (856 bytes)
0000: 00 00 03 54 05 14 5E FC  1B 02 C3 97 1D 0E E4 4F : ...T..^........O
0010: 35 3F 27 DF F6 6F 00 00  00 B7 65 63 64 68 2D 73 : 5?'..o....ecdh-s
0020: 68 61 32 2D 6E 69 73 74  70 32 35 36 2C 65 63 64 : ha2-nistp256,ecd
0030: 68 2D 73 68 61 32 2D 6E  69 73 74 70 33 38 34 2C : h-sha2-nistp384,
0040: 65 63 64 68 2D 73 68 61  32 2D 6E 69 73 74 70 35 : ecdh-sha2-nistp5
0050: 32 31 2C 64 69 66 66 69  65 2D 68 65 6C 6C 6D 61 : 21,diffie-hellma
0060: 6E 2D 67 72 6F 75 70 2D  65 78 63 68 61 6E 67 65 : n-group-exchange
0070: 2D 73 68 61 32 35 36 2C  64 69 66 66 69 65 2D 68 : -sha256,diffie-h
0080: 65 6C 6C 6D 61 6E 2D 67  72 6F 75 70 2D 65 78 63 : ellman-group-exc
0090: 68 61 6E 67 65 2D 73 68  61 31 2C 64 69 66 66 69 : hange-sha1,diffi
00a0: 65 2D 68 65 6C 6C 6D 61  6E 2D 67 72 6F 75 70 31 : e-hellman-group1
00b0: 34 2D 73 68 61 31 2C 64  69 66 66 69 65 2D 68 65 : 4-sha1,diffie-he
00c0: 6C 6C 6D 61 6E 2D 67 72  6F 75 70 31 2D 73 68 61 : llman-group1-sha
00d0: 31 00 00 00 23 73 73 68  2D 72 73 61 2C 73 73 68 : 1...#ssh-rsa,ssh
00e0: 2D 64 73 73 2C 65 63 64  73 61 2D 73 68 61 32 2D : -dss,ecdsa-sha2-
00f0: 6E 69 73 74 70 32 35 36  00 00 00 9D 61 65 73 31 : nistp256....aes1
0100: 32 38 2D 63 74 72 2C 61  65 73 31 39 32 2D 63 74 : 28-ctr,aes192-ct
0110: 72 2C 61 65 73 32 35 36  2D 63 74 72 2C 61 72 63 : r,aes256-ctr,arc
0120: 66 6F 75 72 32 35 36 2C  61 72 63 66 6F 75 72 31 : four256,arcfour1
0130: 32 38 2C 61 65 73 31 32  38 2D 63 62 63 2C 33 64 : 28,aes128-cbc,3d
0140: 65 73 2D 63 62 63 2C 62  6C 6F 77 66 69 73 68 2D : es-cbc,blowfish-
0150: 63 62 63 2C 63 61 73 74  31 32 38 2D 63 62 63 2C : cbc,cast128-cbc,
0160: 61 65 73 31 39 32 2D 63  62 63 2C 61 65 73 32 35 : aes192-cbc,aes25
0170: 36 2D 63 62 63 2C 61 72  63 66 6F 75 72 2C 72 69 : 6-cbc,arcfour,ri
0180: 6A 6E 64 61 65 6C 2D 63  62 63 40 6C 79 73 61 74 : jndael-cbc@lysat
0190: 6F 72 2E 6C 69 75 2E 73  65 00 00 00 9D 61 65 73 : or.liu.se....aes
01a0: 31 32 38 2D 63 74 72 2C  61 65 73 31 39 32 2D 63 : 128-ctr,aes192-c
01b0: 74 72 2C 61 65 73 32 35  36 2D 63 74 72 2C 61 72 : tr,aes256-ctr,ar
01c0: 63 66 6F 75 72 32 35 36  2C 61 72 63 66 6F 75 72 : cfour256,arcfour
01d0: 31 32 38 2C 61 65 73 31  32 38 2D 63 62 63 2C 33 : 128,aes128-cbc,3
01e0: 64 65 73 2D 63 62 63 2C  62 6C 6F 77 66 69 73 68 : des-cbc,blowfish
01f0: 2D 63 62 63 2C 63 61 73  74 31 32 38 2D 63 62 63 : -cbc,cast128-cbc
0200: 2C 61 65 73 31 39 32 2D  63 62 63 2C 61 65 73 32 : ,aes192-cbc,aes2
0210: 35 36 2D 63 62 63 2C 61  72 63 66 6F 75 72 2C 72 : 56-cbc,arcfour,r
0220: 69 6A 6E 64 61 65 6C 2D  63 62 63 40 6C 79 73 61 : ijndael-cbc@lysa
0230: 74 6F 72 2E 6C 69 75 2E  73 65 00 00 00 69 68 6D : tor.liu.se...ihm
0240: 61 63 2D 6D 64 35 2C 68  6D 61 63 2D 73 68 61 31 : ac-md5,hmac-sha1
0250: 2C 75 6D 61 63 2D 36 34  40 6F 70 65 6E 73 73 68 : ,umac-64@openssh
0260: 2E 63 6F 6D 2C 68 6D 61  63 2D 72 69 70 65 6D 64 : .com,hmac-ripemd
0270: 31 36 30 2C 68 6D 61 63  2D 72 69 70 65 6D 64 31 : 160,hmac-ripemd1
0280: 36 30 40 6F 70 65 6E 73  73 68 2E 63 6F 6D 2C 68 : 60@openssh.com,h
0290: 6D 61 63 2D 73 68 61 31  2D 39 36 2C 68 6D 61 63 : mac-sha1-96,hmac
02a0: 2D 6D 64 35 2D 39 36 00  00 00 69 68 6D 61 63 2D : -md5-96...ihmac-
02b0: 6D 64 35 2C 68 6D 61 63  2D 73 68 61 31 2C 75 6D : md5,hmac-sha1,um
02c0: 61 63 2D 36 34 40 6F 70  65 6E 73 73 68 2E 63 6F : ac-64@openssh.co
02d0: 6D 2C 68 6D 61 63 2D 72  69 70 65 6D 64 31 36 30 : m,hmac-ripemd160
02e0: 2C 68 6D 61 63 2D 72 69  70 65 6D 64 31 36 30 40 : ,hmac-ripemd160@
02f0: 6F 70 65 6E 73 73 68 2E  63 6F 6D 2C 68 6D 61 63 : openssh.com,hmac
0300: 2D 73 68 61 31 2D 39 36  2C 68 6D 61 63 2D 6D 64 : -sha1-96,hmac-md
0310: 35 2D 39 36 00 00 00 15  6E 6F 6E 65 2C 7A 6C 69 : 5-96....none,zli
0320: 62 40 6F 70 65 6E 73 73  68 2E 63 6F 6D 00 00 00 : b@openssh.com...
0330: 15 6E 6F 6E 65 2C 7A 6C  69 62 40 6F 70 65 6E 73 : .none,zlib@opens
0340: 73 68 2E 63 6F 6D 00 00  00 00 00 00 00 00 00 00 : sh.com..........
0350: 00 00 00 00 00 00 00 00                          : ........
=> libssh2_transport_read() plain (846 bytes)
0000: 14 5E FC 1B 02 C3 97 1D  0E E4 4F 35 3F 27 DF F6 : .^........O5?'..
0010: 6F 00 00 00 B7 65 63 64  68 2D 73 68 61 32 2D 6E : o....ecdh-sha2-n
0020: 69 73 74 70 32 35 36 2C  65 63 64 68 2D 73 68 61 : istp256,ecdh-sha
0030: 32 2D 6E 69 73 74 70 33  38 34 2C 65 63 64 68 2D : 2-nistp384,ecdh-
0040: 73 68 61 32 2D 6E 69 73  74 70 35 32 31 2C 64 69 : sha2-nistp521,di
0050: 66 66 69 65 2D 68 65 6C  6C 6D 61 6E 2D 67 72 6F : ffie-hellman-gro
0060: 75 70 2D 65 78 63 68 61  6E 67 65 2D 73 68 61 32 : up-exchange-sha2
0070: 35 36 2C 64 69 66 66 69  65 2D 68 65 6C 6C 6D 61 : 56,diffie-hellma
0080: 6E 2D 67 72 6F 75 70 2D  65 78 63 68 61 6E 67 65 : n-group-exchange
0090: 2D 73 68 61 31 2C 64 69  66 66 69 65 2D 68 65 6C : -sha1,diffie-hel
00a0: 6C 6D 61 6E 2D 67 72 6F  75 70 31 34 2D 73 68 61 : lman-group14-sha
00b0: 31 2C 64 69 66 66 69 65  2D 68 65 6C 6C 6D 61 6E : 1,diffie-hellman
00c0: 2D 67 72 6F 75 70 31 2D  73 68 61 31 00 00 00 23 : -group1-sha1...#
00d0: 73 73 68 2D 72 73 61 2C  73 73 68 2D 64 73 73 2C : ssh-rsa,ssh-dss,
00e0: 65 63 64 73 61 2D 73 68  61 32 2D 6E 69 73 74 70 : ecdsa-sha2-nistp
00f0: 32 35 36 00 00 00 9D 61  65 73 31 32 38 2D 63 74 : 256....aes128-ct
0100: 72 2C 61 65 73 31 39 32  2D 63 74 72 2C 61 65 73 : r,aes192-ctr,aes
0110: 32 35 36 2D 63 74 72 2C  61 72 63 66 6F 75 72 32 : 256-ctr,arcfour2
0120: 35 36 2C 61 72 63 66 6F  75 72 31 32 38 2C 61 65 : 56,arcfour128,ae
0130: 73 31 32 38 2D 63 62 63  2C 33 64 65 73 2D 63 62 : s128-cbc,3des-cb
0140: 63 2C 62 6C 6F 77 66 69  73 68 2D 63 62 63 2C 63 : c,blowfish-cbc,c
0150: 61 73 74 31 32 38 2D 63  62 63 2C 61 65 73 31 39 : ast128-cbc,aes19
0160: 32 2D 63 62 63 2C 61 65  73 32 35 36 2D 63 62 63 : 2-cbc,aes256-cbc
0170: 2C 61 72 63 66 6F 75 72  2C 72 69 6A 6E 64 61 65 : ,arcfour,rijndae
0180: 6C 2D 63 62 63 40 6C 79  73 61 74 6F 72 2E 6C 69 : l-cbc@lysator.li
0190: 75 2E 73 65 00 00 00 9D  61 65 73 31 32 38 2D 63 : u.se....aes128-c
01a0: 74 72 2C 61 65 73 31 39  32 2D 63 74 72 2C 61 65 : tr,aes192-ctr,ae
01b0: 73 32 35 36 2D 63 74 72  2C 61 72 63 66 6F 75 72 : s256-ctr,arcfour
01c0: 32 35 36 2C 61 72 63 66  6F 75 72 31 32 38 2C 61 : 256,arcfour128,a
01d0: 65 73 31 32 38 2D 63 62  63 2C 33 64 65 73 2D 63 : es128-cbc,3des-c
01e0: 62 63 2C 62 6C 6F 77 66  69 73 68 2D 63 62 63 2C : bc,blowfish-cbc,
01f0: 63 61 73 74 31 32 38 2D  63 62 63 2C 61 65 73 31 : cast128-cbc,aes1
0200: 39 32 2D 63 62 63 2C 61  65 73 32 35 36 2D 63 62 : 92-cbc,aes256-cb
0210: 63 2C 61 72 63 66 6F 75  72 2C 72 69 6A 6E 64 61 : c,arcfour,rijnda
0220: 65 6C 2D 63 62 63 40 6C  79 73 61 74 6F 72 2E 6C : el-cbc@lysator.l
0230: 69 75 2E 73 65 00 00 00  69 68 6D 61 63 2D 6D 64 : iu.se...ihmac-md
0240: 35 2C 68 6D 61 63 2D 73  68 61 31 2C 75 6D 61 63 : 5,hmac-sha1,umac
0250: 2D 36 34 40 6F 70 65 6E  73 73 68 2E 63 6F 6D 2C : -64@openssh.com,
0260: 68 6D 61 63 2D 72 69 70  65 6D 64 31 36 30 2C 68 : hmac-ripemd160,h
0270: 6D 61 63 2D 72 69 70 65  6D 64 31 36 30 40 6F 70 : mac-ripemd160@op
0280: 65 6E 73 73 68 2E 63 6F  6D 2C 68 6D 61 63 2D 73 : enssh.com,hmac-s
0290: 68 61 31 2D 39 36 2C 68  6D 61 63 2D 6D 64 35 2D : ha1-96,hmac-md5-
02a0: 39 36 00 00 00 69 68 6D  61 63 2D 6D 64 35 2C 68 : 96...ihmac-md5,h
02b0: 6D 61 63 2D 73 68 61 31  2C 75 6D 61 63 2D 36 34 : mac-sha1,umac-64
02c0: 40 6F 70 65 6E 73 73 68  2E 63 6F 6D 2C 68 6D 61 : @openssh.com,hma
02d0: 63 2D 72 69 70 65 6D 64  31 36 30 2C 68 6D 61 63 : c-ripemd160,hmac
02e0: 2D 72 69 70 65 6D 64 31  36 30 40 6F 70 65 6E 73 : -ripemd160@opens
02f0: 73 68 2E 63 6F 6D 2C 68  6D 61 63 2D 73 68 61 31 : sh.com,hmac-sha1
0300: 2D 39 36 2C 68 6D 61 63  2D 6D 64 35 2D 39 36 00 : -96,hmac-md5-96.
0310: 00 00 15 6E 6F 6E 65 2C  7A 6C 69 62 40 6F 70 65 : ...none,zlib@ope
0320: 6E 73 73 68 2E 63 6F 6D  00 00 00 15 6E 6F 6E 65 : nssh.com....none
0330: 2C 7A 6C 69 62 40 6F 70  65 6E 73 73 68 2E 63 6F : ,zlib@openssh.co
0340: 6D 00 00 00 00 00 00 00  00 00 00 00 00 00       : m.............
[libssh2] 0.309464 Transport: Packet type 20 received, length=846
[libssh2] 0.309474 Transport: Looking for packet of type: 20
[libssh2] 0.309490 Key Ex: Agreed on KEX method: diffie-hellman-group14-sha1
[libssh2] 0.309499 Key Ex: Agreed on HOSTKEY method: ssh-rsa
[libssh2] 0.309508 Key Ex: Agreed on CRYPT_CS method: aes128-ctr
[libssh2] 0.309516 Key Ex: Agreed on CRYPT_SC method: aes128-ctr
[libssh2] 0.309524 Key Ex: Agreed on MAC_CS method: hmac-sha1
[libssh2] 0.309532 Key Ex: Agreed on MAC_SC method: hmac-sha1
[libssh2] 0.309541 Key Ex: Agreed on COMP_CS method: none
[libssh2] 0.309549 Key Ex: Agreed on COMP_SC method: none
[libssh2] 0.309566 Key Ex: Initiating Diffie-Hellman Group14 Key Exchange
[libssh2] 0.311442 Key Ex: Sending KEX packet 30
=> libssh2_transport_write plain (262 bytes)
0000: 1E 00 00 01 01 00 AA 90  AC 94 A1 0C 5C 04 49 08 : ............\.I.
0010: 01 61 C7 C8 43 C0 D8 7C  A7 55 54 96 F5 39 F7 DB : .a..C..|.UT..9..
0020: 94 ED 5E AB 6B 75 8B CE  E7 8F 2D 07 C0 E2 FD 80 : ..^.ku....-.....
0030: F6 E7 AA 2C AD 00 06 21  54 7F F4 EB A4 2A 13 84 : ...,...!T....*..
0040: FD D9 9E D9 82 0A A8 AF  6C 4A F7 83 0A E6 07 61 : ........lJ.....a
0050: 19 B7 62 73 70 57 2F CD  AE DB 22 66 E9 8C 5D CA : ..bspW/..."f..].
0060: ED FF ED 71 68 10 B4 FF  6B B8 63 5C C4 F7 FF 7F : ...qh...k.c\....
0070: 4A 20 8D 30 F5 08 62 11  7F 22 0A 66 14 A4 AD 02 : J .0..b..".f....
0080: B0 06 14 67 54 35 31 E0  E5 15 E9 19 0D 1C C5 27 : ...gT51........'
0090: 58 5C E4 06 BC A7 28 61  11 3A 62 CD 2C 72 84 FB : X\....(a.:b.,r..
00a0: 1A 26 65 88 09 7D 5D BB  3D 2D 5D 23 AF 52 DF D9 : .&e..}].=-]#.R..
00b0: 54 01 B1 18 FE 2F F1 F1  D5 E0 FC 25 95 0E 5E 89 : T..../.....%..^.
00c0: BE D5 E4 A2 A1 C7 E0 E3  7D 4F 85 61 A0 22 2C 71 : ........}O.a.",q
00d0: C1 D0 5B C6 64 D7 92 0C  6C 69 80 8D A2 96 6B 60 : ..[.d...li....k`
00e0: 85 BB 0A 4E 42 19 AD 85  F8 34 57 D2 7C A3 D4 A9 : ...NB....4W.|...
00f0: 20 A1 9F C2 B8 28 8C E1  5E 5B 06 E1 90 8C BB F4 :  ....(..^[......
0100: 90 28 05 FA 05 48                                : .(...H
[libssh2] 0.311600 Socket: Sent 272/272 bytes at 0x1fee638
=> libssh2_transport_write send() (272 bytes)
0000: 00 00 01 0C 05 1E 00 00  01 01 00 AA 90 AC 94 A1 : ................
0010: 0C 5C 04 49 08 01 61 C7  C8 43 C0 D8 7C A7 55 54 : .\.I..a..C..|.UT
0020: 96 F5 39 F7 DB 94 ED 5E  AB 6B 75 8B CE E7 8F 2D : ..9....^.ku....-
0030: 07 C0 E2 FD 80 F6 E7 AA  2C AD 00 06 21 54 7F F4 : ........,...!T..
0040: EB A4 2A 13 84 FD D9 9E  D9 82 0A A8 AF 6C 4A F7 : ..*..........lJ.
0050: 83 0A E6 07 61 19 B7 62  73 70 57 2F CD AE DB 22 : ....a..bspW/..."
0060: 66 E9 8C 5D CA ED FF ED  71 68 10 B4 FF 6B B8 63 : f..]....qh...k.c
0070: 5C C4 F7 FF 7F 4A 20 8D  30 F5 08 62 11 7F 22 0A : \....J .0..b..".
0080: 66 14 A4 AD 02 B0 06 14  67 54 35 31 E0 E5 15 E9 : f.......gT51....
0090: 19 0D 1C C5 27 58 5C E4  06 BC A7 28 61 11 3A 62 : ....'X\....(a.:b
00a0: CD 2C 72 84 FB 1A 26 65  88 09 7D 5D BB 3D 2D 5D : .,r...&e..}].=-]
00b0: 23 AF 52 DF D9 54 01 B1  18 FE 2F F1 F1 D5 E0 FC : #.R..T..../.....
00c0: 25 95 0E 5E 89 BE D5 E4  A2 A1 C7 E0 E3 7D 4F 85 : %..^.........}O.
00d0: 61 A0 22 2C 71 C1 D0 5B  C6 64 D7 92 0C 6C 69 80 : a.",q..[.d...li.
00e0: 8D A2 96 6B 60 85 BB 0A  4E 42 19 AD 85 F8 34 57 : ...k`...NB....4W
00f0: D2 7C A3 D4 A9 20 A1 9F  C2 B8 28 8C E1 5E 5B 06 : .|... ....(..^[.
0100: E1 90 8C BB F4 90 28 05  FA 05 48 29 CD D0 03 CE : ......(...H)....
[libssh2] 0.312216 Transport: Looking for packet of type: 31
[libssh2] 0.312230 Failure Event: -37 - Unable to exchange encryption keys
Main: TIMEOUT

--bcaec529a077d7433a04be8576ef
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

Dear all,<div><br></div><div>beginning my actual work now, making run a Has=
kell interface to libssh2, I (greatly appreciating libssh2 debug messaging)=
 stumbled over two -37 error messages which I di not understand nor found a=
n explanation for so that I can imagine what&#39;s going on.</div>
<div><br></div><div>Any enlightenment welcome... :-) As usual, thanks a lot=
 in advance, Nick</div><div><br class=3D"Apple-interchange-newline">=3D =3D=
 =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D</div><div>Fail=
ure Event: -37 - Failed getting banner</div>
<div>- - - - - - - - - - - - - - - - - -</div><div><div>[libssh2] 0.953485 =
Transport: session_startup for socket 3</div><div>[libssh2] 0.953504 Transp=
ort: Sending Banner: SSH-2.0-libssh2_1.4.2-20120422</div><div>[libssh2] 0.9=
53539 Socket: Sent 32/32 bytes at 0x7f9517e99020+0</div>
<div>[libssh2] 0.953586 Socket: Error recving 1 bytes: 11</div><div>[libssh=
2] 0.953603 Failure Event: -37 - Failed getting banner</div></div><div><div=
>Main: TIMEOUT</div></div><div><br></div><div><br></div><div>=3D =3D =3D =
=3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D</div>
<div>Failure Event: -37 - Failed getting banner</div><div>- - - - - - - - -=
 - - - - - - - - -</div><div><div>[libssh2] 0.299932 Transport: session_sta=
rtup for socket 3</div><div>[libssh2] 0.299979 Transport: Sending Banner: S=
SH-2.0-OpenSSH_5.4</div>
<div>[libssh2] 0.300057 Socket: Sent 21/21 bytes at 0x1ffb630+0</div><div>[=
libssh2] 0.300118 Socket: Error recving 1 bytes: 11</div><div>[libssh2] 0.3=
00149 Failure Event: -37 - Failed getting banner</div><div>[libssh2] 0.3071=
40 Socket: Recved 1 bytes banner</div>
<div>[libssh2] 0.307161 Socket: Recved 1 bytes banner</div><div>[libssh2] 0=
.307168 Socket: Recved 1 bytes banner</div><div>[libssh2] 0.307174 Socket: =
Recved 1 bytes banner</div><div>[libssh2] 0.307179 Socket: Recved 1 bytes b=
anner</div>
<div>[libssh2] 0.307184 Socket: Recved 1 bytes banner</div><div>[libssh2] 0=
.307189 Socket: Recved 1 bytes banner</div><div>[libssh2] 0.307195 Socket: =
Recved 1 bytes banner</div><div>[libssh2] 0.307200 Socket: Recved 1 bytes b=
anner</div>
<div>[libssh2] 0.307205 Socket: Recved 1 bytes banner</div><div>[libssh2] 0=
.307210 Socket: Recved 1 bytes banner</div><div>[libssh2] 0.307215 Socket: =
Recved 1 bytes banner</div><div>[libssh2] 0.307220 Socket: Recved 1 bytes b=
anner</div>
<div>[libssh2] 0.307226 Socket: Recved 1 bytes banner</div><div>[libssh2] 0=
.307231 Socket: Recved 1 bytes banner</div><div>[libssh2] 0.307236 Socket: =
Recved 1 bytes banner</div><div>[libssh2] 0.307241 Socket: Recved 1 bytes b=
anner</div>
<div>[libssh2] 0.307246 Socket: Recved 1 bytes banner</div><div>[libssh2] 0=
.307251 Socket: Recved 1 bytes banner</div><div>[libssh2] 0.307257 Socket: =
Recved 1 bytes banner</div><div>[libssh2] 0.307263 Socket: Recved 1 bytes b=
anner</div>
<div>[libssh2] 0.307273 Transport: Received Banner: SSH-2.0-OpenSSH_5.8</di=
v><div>[libssh2] 0.307467 Key Ex: Sent KEX: diffie-hellman-group14-sha1,dif=
fie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1</div><div>[libss=
h2] 0.307478 Key Ex: Sent HOSTKEY: ssh-rsa,ssh-dss</div>
<div>[libssh2] 0.307483 Key Ex: Sent CRYPT_CS: aes128-ctr,aes192-ctr,aes256=
-ctr,aes256-cbc,<a href=3D"mailto:rijndael-cbc@lysator.liu.se">rijndael-cbc=
@lysator.liu.se</a>,aes192-cbc,aes128-cbc,blowfish-cbc,arcfour128,arcfour,c=
ast128-cbc,3des-cbc</div>
<div>[libssh2] 0.307490 Key Ex: Sent CRYPT_SC: aes128-ctr,aes192-ctr,aes256=
-ctr,aes256-cbc,<a href=3D"mailto:rijndael-cbc@lysator.liu.se">rijndael-cbc=
@lysator.liu.se</a>,aes192-cbc,aes128-cbc,blowfish-cbc,arcfour128,arcfour,c=
ast128-cbc,3des-cbc</div>
<div>[libssh2] 0.307496 Key Ex: Sent MAC_CS: hmac-sha1,hmac-sha1-96,hmac-md=
5,hmac-md5-96,hmac-ripemd160,<a href=3D"mailto:hmac-ripemd160@openssh.com">=
hmac-ripemd160@openssh.com</a></div><div>[libssh2] 0.307502 Key Ex: Sent MA=
C_SC: hmac-sha1,hmac-sha1-96,hmac-md5,hmac-md5-96,hmac-ripemd160,<a href=3D=
"mailto:hmac-ripemd160@openssh.com">hmac-ripemd160@openssh.com</a></div>
<div>[libssh2] 0.307507 Key Ex: Sent COMP_CS: none</div><div>[libssh2] 0.30=
7512 Key Ex: Sent COMP_SC: none</div><div>[libssh2] 0.307517 Key Ex: Sent L=
ANG_CS:=A0</div><div>[libssh2] 0.307521 Key Ex: Sent LANG_SC:=A0</div><div>
=3D&gt; libssh2_transport_write plain (636 bytes)</div><div>0000: 14 30 50 =
D8 1E 8E 7C DC =A0B4 F0 E3 24 BD CB 75 76 : .0P...|....$..uv</div><div>0010=
: C8 00 00 00 59 64 69 66 =A066 69 65 2D 68 65 6C 6C : ....Ydiffie-hell</di=
v>
<div>0020: 6D 61 6E 2D 67 72 6F 75 =A070 31 34 2D 73 68 61 31 : man-group14=
-sha1</div><div>0030: 2C 64 69 66 66 69 65 2D =A068 65 6C 6C 6D 61 6E 2D : =
,diffie-hellman-</div><div>0040: 67 72 6F 75 70 2D 65 78 =A063 68 61 6E 67 =
65 2D 73 : group-exchange-s</div>
<div>0050: 68 61 31 2C 64 69 66 66 =A069 65 2D 68 65 6C 6C 6D : ha1,diffie-=
hellm</div><div>0060: 61 6E 2D 67 72 6F 75 70 =A031 2D 73 68 61 31 00 00 : =
an-group1-sha1..</div><div>0070: 00 0F 73 73 68 2D 72 73 =A061 2C 73 73 68 =
2D 64 73 : ..ssh-rsa,ssh-ds</div>
<div>0080: 73 00 00 00 92 61 65 73 =A031 32 38 2D 63 74 72 2C : s....aes128=
-ctr,</div><div>0090: 61 65 73 31 39 32 2D 63 =A074 72 2C 61 65 73 32 35 : =
aes192-ctr,aes25</div><div>00a0: 36 2D 63 74 72 2C 61 65 =A073 32 35 36 2D =
63 62 63 : 6-ctr,aes256-cbc</div>
<div>00b0: 2C 72 69 6A 6E 64 61 65 =A06C 2D 63 62 63 40 6C 79 : ,rijndael-c=
bc@ly</div><div>00c0: 73 61 74 6F 72 2E 6C 69 =A075 2E 73 65 2C 61 65 73 : =
<a href=3D"http://sator.liu.se">sator.liu.se</a>,aes</div><div>00d0: 31 39 =
32 2D 63 62 63 2C =A061 65 73 31 32 38 2D 63 : 192-cbc,aes128-c</div>
<div>00e0: 62 63 2C 62 6C 6F 77 66 =A069 73 68 2D 63 62 63 2C : bc,blowfish=
-cbc,</div><div>00f0: 61 72 63 66 6F 75 72 31 =A032 38 2C 61 72 63 66 6F : =
arcfour128,arcfo</div><div>0100: 75 72 2C 63 61 73 74 31 =A032 38 2D 63 62 =
63 2C 33 : ur,cast128-cbc,3</div>
<div>0110: 64 65 73 2D 63 62 63 00 =A000 00 92 61 65 73 31 32 : des-cbc....=
aes12</div><div>0120: 38 2D 63 74 72 2C 61 65 =A073 31 39 32 2D 63 74 72 : =
8-ctr,aes192-ctr</div><div>0130: 2C 61 65 73 32 35 36 2D =A063 74 72 2C 61 =
65 73 32 : ,aes256-ctr,aes2</div>
<div>0140: 35 36 2D 63 62 63 2C 72 =A069 6A 6E 64 61 65 6C 2D : 56-cbc,rijn=
dael-</div><div>0150: 63 62 63 40 6C 79 73 61 =A074 6F 72 2E 6C 69 75 2E : =
cbc@lysator.liu.</div><div>0160: 73 65 2C 61 65 73 31 39 =A032 2D 63 62 63 =
2C 61 65 : se,aes192-cbc,ae</div>
<div>0170: 73 31 32 38 2D 63 62 63 =A02C 62 6C 6F 77 66 69 73 : s128-cbc,bl=
owfis</div><div>0180: 68 2D 63 62 63 2C 61 72 =A063 66 6F 75 72 31 32 38 : =
h-cbc,arcfour128</div><div>0190: 2C 61 72 63 66 6F 75 72 =A02C 63 61 73 74 =
31 32 38 : ,arcfour,cast128</div>
<div>01a0: 2D 63 62 63 2C 33 64 65 =A073 2D 63 62 63 00 00 00 : -cbc,3des-c=
bc...</div><div>01b0: 55 68 6D 61 63 2D 73 68 =A061 31 2C 68 6D 61 63 2D : =
Uhmac-sha1,hmac-</div><div>01c0: 73 68 61 31 2D 39 36 2C =A068 6D 61 63 2D =
6D 64 35 : sha1-96,hmac-md5</div>
<div>01d0: 2C 68 6D 61 63 2D 6D 64 =A035 2D 39 36 2C 68 6D 61 : ,hmac-md5-9=
6,hma</div><div>01e0: 63 2D 72 69 70 65 6D 64 =A031 36 30 2C 68 6D 61 63 : =
c-ripemd160,hmac</div><div>01f0: 2D 72 69 70 65 6D 64 31 =A036 30 40 6F 70 =
65 6E 73 : -ripemd160@opens</div>
<div>0200: 73 68 2E 63 6F 6D 00 00 =A000 55 68 6D 61 63 2D 73 : sh.com...Uh=
mac-s</div><div>0210: 68 61 31 2C 68 6D 61 63 =A02D 73 68 61 31 2D 39 36 : =
ha1,hmac-sha1-96</div><div>0220: 2C 68 6D 61 63 2D 6D 64 =A035 2C 68 6D 61 =
63 2D 6D : ,hmac-md5,hmac-m</div>
<div>0230: 64 35 2D 39 36 2C 68 6D =A061 63 2D 72 69 70 65 6D : d5-96,hmac-=
ripem</div><div>0240: 64 31 36 30 2C 68 6D 61 =A063 2D 72 69 70 65 6D 64 : =
d160,hmac-ripemd</div><div>0250: 31 36 30 40 6F 70 65 6E =A073 73 68 2E 63 =
6F 6D 00 : <a href=3D"mailto:160@openssh.com">160@openssh.com</a>.</div>
<div>0260: 00 00 04 6E 6F 6E 65 00 =A000 00 04 6E 6F 6E 65 00 : ...none....=
none.</div><div>0270: 00 00 00 00 00 00 00 00 =A000 00 00 00 =A0 =A0 =A0 =
=A0 =A0 =A0 : ............</div><div>[libssh2] 0.307746 Socket: Sent 648/64=
8 bytes at 0x1fee638</div>
<div>=3D&gt; libssh2_transport_write send() (648 bytes)</div><div>0000: 00 =
00 02 84 07 14 30 50 =A0D8 1E 8E 7C DC B4 F0 E3 : ......0P...|....</div><di=
v>0010: 24 BD CB 75 76 C8 00 00 =A000 59 64 69 66 66 69 65 : $..uv....Ydiff=
ie</div>
<div>0020: 2D 68 65 6C 6C 6D 61 6E =A02D 67 72 6F 75 70 31 34 : -hellman-gr=
oup14</div><div>0030: 2D 73 68 61 31 2C 64 69 =A066 66 69 65 2D 68 65 6C : =
-sha1,diffie-hel</div><div>0040: 6C 6D 61 6E 2D 67 72 6F =A075 70 2D 65 78 =
63 68 61 : lman-group-excha</div>
<div>0050: 6E 67 65 2D 73 68 61 31 =A02C 64 69 66 66 69 65 2D : nge-sha1,di=
ffie-</div><div>0060: 68 65 6C 6C 6D 61 6E 2D =A067 72 6F 75 70 31 2D 73 : =
hellman-group1-s</div><div>0070: 68 61 31 00 00 00 0F 73 =A073 68 2D 72 73 =
61 2C 73 : ha1....ssh-rsa,s</div>
<div>0080: 73 68 2D 64 73 73 00 00 =A000 92 61 65 73 31 32 38 : sh-dss....a=
es128</div><div>0090: 2D 63 74 72 2C 61 65 73 =A031 39 32 2D 63 74 72 2C : =
-ctr,aes192-ctr,</div><div>00a0: 61 65 73 32 35 36 2D 63 =A074 72 2C 61 65 =
73 32 35 : aes256-ctr,aes25</div>
<div>00b0: 36 2D 63 62 63 2C 72 69 =A06A 6E 64 61 65 6C 2D 63 : 6-cbc,rijnd=
ael-c</div><div>00c0: 62 63 40 6C 79 73 61 74 =A06F 72 2E 6C 69 75 2E 73 : =
bc@lysator.liu.s</div><div>00d0: 65 2C 61 65 73 31 39 32 =A02D 63 62 63 2C =
61 65 73 : e,aes192-cbc,aes</div>
<div>00e0: 31 32 38 2D 63 62 63 2C =A062 6C 6F 77 66 69 73 68 : 128-cbc,blo=
wfish</div><div>00f0: 2D 63 62 63 2C 61 72 63 =A066 6F 75 72 31 32 38 2C : =
-cbc,arcfour128,</div><div>0100: 61 72 63 66 6F 75 72 2C =A063 61 73 74 31 =
32 38 2D : arcfour,cast128-</div>
<div>0110: 63 62 63 2C 33 64 65 73 =A02D 63 62 63 00 00 00 92 : cbc,3des-cb=
c....</div><div>0120: 61 65 73 31 32 38 2D 63 =A074 72 2C 61 65 73 31 39 : =
aes128-ctr,aes19</div><div>0130: 32 2D 63 74 72 2C 61 65 =A073 32 35 36 2D =
63 74 72 : 2-ctr,aes256-ctr</div>
<div>0140: 2C 61 65 73 32 35 36 2D =A063 62 63 2C 72 69 6A 6E : ,aes256-cbc=
,rijn</div><div>0150: 64 61 65 6C 2D 63 62 63 =A040 6C 79 73 61 74 6F 72 : =
dael-cbc@lysator</div><div>0160: 2E 6C 69 75 2E 73 65 2C =A061 65 73 31 39 =
32 2D 63 : .<a href=3D"http://liu.se">liu.se</a>,aes192-c</div>
<div>0170: 62 63 2C 61 65 73 31 32 =A038 2D 63 62 63 2C 62 6C : bc,aes128-c=
bc,bl</div><div>0180: 6F 77 66 69 73 68 2D 63 =A062 63 2C 61 72 63 66 6F : =
owfish-cbc,arcfo</div><div>0190: 75 72 31 32 38 2C 61 72 =A063 66 6F 75 72 =
2C 63 61 : ur128,arcfour,ca</div>
<div>01a0: 73 74 31 32 38 2D 63 62 =A063 2C 33 64 65 73 2D 63 : st128-cbc,3=
des-c</div><div>01b0: 62 63 00 00 00 55 68 6D =A061 63 2D 73 68 61 31 2C : =
bc...Uhmac-sha1,</div><div>01c0: 68 6D 61 63 2D 73 68 61 =A031 2D 39 36 2C =
68 6D 61 : hmac-sha1-96,hma</div>
<div>01d0: 63 2D 6D 64 35 2C 68 6D =A061 63 2D 6D 64 35 2D 39 : c-md5,hmac-=
md5-9</div><div>01e0: 36 2C 68 6D 61 63 2D 72 =A069 70 65 6D 64 31 36 30 : =
6,hmac-ripemd160</div><div>01f0: 2C 68 6D 61 63 2D 72 69 =A070 65 6D 64 31 =
36 30 40 : ,hmac-ripemd160@</div>
<div>0200: 6F 70 65 6E 73 73 68 2E =A063 6F 6D 00 00 00 55 68 : openssh.com=
...Uh</div><div>0210: 6D 61 63 2D 73 68 61 31 =A02C 68 6D 61 63 2D 73 68 : =
mac-sha1,hmac-sh</div><div>0220: 61 31 2D 39 36 2C 68 6D =A061 63 2D 6D 64 =
35 2C 68 : a1-96,hmac-md5,h</div>
<div>0230: 6D 61 63 2D 6D 64 35 2D =A039 36 2C 68 6D 61 63 2D : mac-md5-96,=
hmac-</div><div>0240: 72 69 70 65 6D 64 31 36 =A030 2C 68 6D 61 63 2D 72 : =
ripemd160,hmac-r</div><div>0250: 69 70 65 6D 64 31 36 30 =A040 6F 70 65 6E =
73 73 68 : ipemd160@openssh</div>
<div>0260: 2E 63 6F 6D 00 00 00 04 =A06E 6F 6E 65 00 00 00 04 : .com....non=
e....</div><div>0270: 6E 6F 6E 65 00 00 00 00 =A000 00 00 00 00 00 00 00 : =
none............</div><div>0280: 00 7C 35 B5 57 B8 5C 5A =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0: .|5.W.\Z</div>
<div>[libssh2] 0.307979 Transport: Looking for packet of type: 20</div><div=
>[libssh2] 0.307988 Failure Event: -37 - Unable to exchange encryption keys=
</div><div>[libssh2] 0.308285 Socket: Recved 856/16384 bytes to 0x1fea5f8+0=
</div>
<div>=3D&gt; libssh2_transport_read() raw (856 bytes)</div><div>0000: 00 00=
 03 54 05 14 5E FC =A01B 02 C3 97 1D 0E E4 4F : ...T..^........O</div><div>=
0010: 35 3F 27 DF F6 6F 00 00 =A000 B7 65 63 64 68 2D 73 : 5?&#39;..o....ec=
dh-s</div>
<div>0020: 68 61 32 2D 6E 69 73 74 =A070 32 35 36 2C 65 63 64 : ha2-nistp25=
6,ecd</div><div>0030: 68 2D 73 68 61 32 2D 6E =A069 73 74 70 33 38 34 2C : =
h-sha2-nistp384,</div><div>0040: 65 63 64 68 2D 73 68 61 =A032 2D 6E 69 73 =
74 70 35 : ecdh-sha2-nistp5</div>
<div>0050: 32 31 2C 64 69 66 66 69 =A065 2D 68 65 6C 6C 6D 61 : 21,diffie-h=
ellma</div><div>0060: 6E 2D 67 72 6F 75 70 2D =A065 78 63 68 61 6E 67 65 : =
n-group-exchange</div><div>0070: 2D 73 68 61 32 35 36 2C =A064 69 66 66 69 =
65 2D 68 : -sha256,diffie-h</div>
<div>0080: 65 6C 6C 6D 61 6E 2D 67 =A072 6F 75 70 2D 65 78 63 : ellman-grou=
p-exc</div><div>0090: 68 61 6E 67 65 2D 73 68 =A061 31 2C 64 69 66 66 69 : =
hange-sha1,diffi</div><div>00a0: 65 2D 68 65 6C 6C 6D 61 =A06E 2D 67 72 6F =
75 70 31 : e-hellman-group1</div>
<div>00b0: 34 2D 73 68 61 31 2C 64 =A069 66 66 69 65 2D 68 65 : 4-sha1,diff=
ie-he</div><div>00c0: 6C 6C 6D 61 6E 2D 67 72 =A06F 75 70 31 2D 73 68 61 : =
llman-group1-sha</div><div>00d0: 31 00 00 00 23 73 73 68 =A02D 72 73 61 2C =
73 73 68 : 1...#ssh-rsa,ssh</div>
<div>00e0: 2D 64 73 73 2C 65 63 64 =A073 61 2D 73 68 61 32 2D : -dss,ecdsa-=
sha2-</div><div>00f0: 6E 69 73 74 70 32 35 36 =A000 00 00 9D 61 65 73 31 : =
nistp256....aes1</div><div>0100: 32 38 2D 63 74 72 2C 61 =A065 73 31 39 32 =
2D 63 74 : 28-ctr,aes192-ct</div>
<div>0110: 72 2C 61 65 73 32 35 36 =A02D 63 74 72 2C 61 72 63 : r,aes256-ct=
r,arc</div><div>0120: 66 6F 75 72 32 35 36 2C =A061 72 63 66 6F 75 72 31 : =
four256,arcfour1</div><div>0130: 32 38 2C 61 65 73 31 32 =A038 2D 63 62 63 =
2C 33 64 : 28,aes128-cbc,3d</div>
<div>0140: 65 73 2D 63 62 63 2C 62 =A06C 6F 77 66 69 73 68 2D : es-cbc,blow=
fish-</div><div>0150: 63 62 63 2C 63 61 73 74 =A031 32 38 2D 63 62 63 2C : =
cbc,cast128-cbc,</div><div>0160: 61 65 73 31 39 32 2D 63 =A062 63 2C 61 65 =
73 32 35 : aes192-cbc,aes25</div>
<div>0170: 36 2D 63 62 63 2C 61 72 =A063 66 6F 75 72 2C 72 69 : 6-cbc,arcfo=
ur,ri</div><div>0180: 6A 6E 64 61 65 6C 2D 63 =A062 63 40 6C 79 73 61 74 : =
jndael-cbc@lysat</div><div>0190: 6F 72 2E 6C 69 75 2E 73 =A065 00 00 00 9D =
61 65 73 : or.liu.se....aes</div>
<div>01a0: 31 32 38 2D 63 74 72 2C =A061 65 73 31 39 32 2D 63 : 128-ctr,aes=
192-c</div><div>01b0: 74 72 2C 61 65 73 32 35 =A036 2D 63 74 72 2C 61 72 : =
tr,aes256-ctr,ar</div><div>01c0: 63 66 6F 75 72 32 35 36 =A02C 61 72 63 66 =
6F 75 72 : cfour256,arcfour</div>
<div>01d0: 31 32 38 2C 61 65 73 31 =A032 38 2D 63 62 63 2C 33 : 128,aes128-=
cbc,3</div><div>01e0: 64 65 73 2D 63 62 63 2C =A062 6C 6F 77 66 69 73 68 : =
des-cbc,blowfish</div><div>01f0: 2D 63 62 63 2C 63 61 73 =A074 31 32 38 2D =
63 62 63 : -cbc,cast128-cbc</div>
<div>0200: 2C 61 65 73 31 39 32 2D =A063 62 63 2C 61 65 73 32 : ,aes192-cbc=
,aes2</div><div>0210: 35 36 2D 63 62 63 2C 61 =A072 63 66 6F 75 72 2C 72 : =
56-cbc,arcfour,r</div><div>0220: 69 6A 6E 64 61 65 6C 2D =A063 62 63 40 6C =
79 73 61 : ijndael-cbc@lysa</div>
<div>0230: 74 6F 72 2E 6C 69 75 2E =A073 65 00 00 00 69 68 6D : tor.liu.se.=
..ihm</div><div>0240: 61 63 2D 6D 64 35 2C 68 =A06D 61 63 2D 73 68 61 31 : =
ac-md5,hmac-sha1</div><div>0250: 2C 75 6D 61 63 2D 36 34 =A040 6F 70 65 6E =
73 73 68 : ,umac-64@openssh</div>
<div>0260: 2E 63 6F 6D 2C 68 6D 61 =A063 2D 72 69 70 65 6D 64 : .com,hmac-r=
ipemd</div><div>0270: 31 36 30 2C 68 6D 61 63 =A02D 72 69 70 65 6D 64 31 : =
160,hmac-ripemd1</div><div>0280: 36 30 40 6F 70 65 6E 73 =A073 68 2E 63 6F =
6D 2C 68 : <a href=3D"mailto:60@openssh.com">60@openssh.com</a>,h</div>
<div>0290: 6D 61 63 2D 73 68 61 31 =A02D 39 36 2C 68 6D 61 63 : mac-sha1-96=
,hmac</div><div>02a0: 2D 6D 64 35 2D 39 36 00 =A000 00 69 68 6D 61 63 2D : =
-md5-96...ihmac-</div><div>02b0: 6D 64 35 2C 68 6D 61 63 =A02D 73 68 61 31 =
2C 75 6D : md5,hmac-sha1,um</div>
<div>02c0: 61 63 2D 36 34 40 6F 70 =A065 6E 73 73 68 2E 63 6F : <a href=3D"=
mailto:ac-64@openssh.co">ac-64@openssh.co</a></div><div>02d0: 6D 2C 68 6D 6=
1 63 2D 72 =A069 70 65 6D 64 31 36 30 : m,hmac-ripemd160</div><div>02e0: 2C=
 68 6D 61 63 2D 72 69 =A070 65 6D 64 31 36 30 40 : ,hmac-ripemd160@</div>
<div>02f0: 6F 70 65 6E 73 73 68 2E =A063 6F 6D 2C 68 6D 61 63 : <a href=3D"=
http://openssh.com">openssh.com</a>,hmac</div><div>0300: 2D 73 68 61 31 2D =
39 36 =A02C 68 6D 61 63 2D 6D 64 : -sha1-96,hmac-md</div><div>0310: 35 2D 3=
9 36 00 00 00 15 =A06E 6F 6E 65 2C 7A 6C 69 : 5-96....none,zli</div>
<div>0320: 62 40 6F 70 65 6E 73 73 =A068 2E 63 6F 6D 00 00 00 : b@openssh.c=
om...</div><div>0330: 15 6E 6F 6E 65 2C 7A 6C =A069 62 40 6F 70 65 6E 73 : =
.none,zlib@opens</div><div>0340: 73 68 2E 63 6F 6D 00 00 =A000 00 00 00 00 =
00 00 00 : sh.com..........</div>
<div>0350: 00 00 00 00 00 00 00 00 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0: ........</div><div>=3D&gt; libssh2_transport_read() plain (846=
 bytes)</div><div>0000: 14 5E FC 1B 02 C3 97 1D =A00E E4 4F 35 3F 27 DF F6 =
: .^........O5?&#39;..</div>
<div>0010: 6F 00 00 00 B7 65 63 64 =A068 2D 73 68 61 32 2D 6E : o....ecdh-s=
ha2-n</div><div>0020: 69 73 74 70 32 35 36 2C =A065 63 64 68 2D 73 68 61 : =
istp256,ecdh-sha</div><div>0030: 32 2D 6E 69 73 74 70 33 =A038 34 2C 65 63 =
64 68 2D : 2-nistp384,ecdh-</div>
<div>0040: 73 68 61 32 2D 6E 69 73 =A074 70 35 32 31 2C 64 69 : sha2-nistp5=
21,di</div><div>0050: 66 66 69 65 2D 68 65 6C =A06C 6D 61 6E 2D 67 72 6F : =
ffie-hellman-gro</div><div>0060: 75 70 2D 65 78 63 68 61 =A06E 67 65 2D 73 =
68 61 32 : up-exchange-sha2</div>
<div>0070: 35 36 2C 64 69 66 66 69 =A065 2D 68 65 6C 6C 6D 61 : 56,diffie-h=
ellma</div><div>0080: 6E 2D 67 72 6F 75 70 2D =A065 78 63 68 61 6E 67 65 : =
n-group-exchange</div><div>0090: 2D 73 68 61 31 2C 64 69 =A066 66 69 65 2D =
68 65 6C : -sha1,diffie-hel</div>
<div>00a0: 6C 6D 61 6E 2D 67 72 6F =A075 70 31 34 2D 73 68 61 : lman-group1=
4-sha</div><div>00b0: 31 2C 64 69 66 66 69 65 =A02D 68 65 6C 6C 6D 61 6E : =
1,diffie-hellman</div><div>00c0: 2D 67 72 6F 75 70 31 2D =A073 68 61 31 00 =
00 00 23 : -group1-sha1...#</div>
<div>00d0: 73 73 68 2D 72 73 61 2C =A073 73 68 2D 64 73 73 2C : ssh-rsa,ssh=
-dss,</div><div>00e0: 65 63 64 73 61 2D 73 68 =A061 32 2D 6E 69 73 74 70 : =
ecdsa-sha2-nistp</div><div>00f0: 32 35 36 00 00 00 9D 61 =A065 73 31 32 38 =
2D 63 74 : 256....aes128-ct</div>
<div>0100: 72 2C 61 65 73 31 39 32 =A02D 63 74 72 2C 61 65 73 : r,aes192-ct=
r,aes</div><div>0110: 32 35 36 2D 63 74 72 2C =A061 72 63 66 6F 75 72 32 : =
256-ctr,arcfour2</div><div>0120: 35 36 2C 61 72 63 66 6F =A075 72 31 32 38 =
2C 61 65 : 56,arcfour128,ae</div>
<div>0130: 73 31 32 38 2D 63 62 63 =A02C 33 64 65 73 2D 63 62 : s128-cbc,3d=
es-cb</div><div>0140: 63 2C 62 6C 6F 77 66 69 =A073 68 2D 63 62 63 2C 63 : =
c,blowfish-cbc,c</div><div>0150: 61 73 74 31 32 38 2D 63 =A062 63 2C 61 65 =
73 31 39 : ast128-cbc,aes19</div>
<div>0160: 32 2D 63 62 63 2C 61 65 =A073 32 35 36 2D 63 62 63 : 2-cbc,aes25=
6-cbc</div><div>0170: 2C 61 72 63 66 6F 75 72 =A02C 72 69 6A 6E 64 61 65 : =
,arcfour,rijndae</div><div>0180: 6C 2D 63 62 63 40 6C 79 =A073 61 74 6F 72 =
2E 6C 69 : <a href=3D"mailto:l-cbc@lysator.li">l-cbc@lysator.li</a></div>
<div>0190: 75 2E 73 65 00 00 00 9D =A061 65 73 31 32 38 2D 63 : u.se....aes=
128-c</div><div>01a0: 74 72 2C 61 65 73 31 39 =A032 2D 63 74 72 2C 61 65 : =
tr,aes192-ctr,ae</div><div>01b0: 73 32 35 36 2D 63 74 72 =A02C 61 72 63 66 =
6F 75 72 : s256-ctr,arcfour</div>
<div>01c0: 32 35 36 2C 61 72 63 66 =A06F 75 72 31 32 38 2C 61 : 256,arcfour=
128,a</div><div>01d0: 65 73 31 32 38 2D 63 62 =A063 2C 33 64 65 73 2D 63 : =
es128-cbc,3des-c</div><div>01e0: 62 63 2C 62 6C 6F 77 66 =A069 73 68 2D 63 =
62 63 2C : bc,blowfish-cbc,</div>
<div>01f0: 63 61 73 74 31 32 38 2D =A063 62 63 2C 61 65 73 31 : cast128-cbc=
,aes1</div><div>0200: 39 32 2D 63 62 63 2C 61 =A065 73 32 35 36 2D 63 62 : =
92-cbc,aes256-cb</div><div>0210: 63 2C 61 72 63 66 6F 75 =A072 2C 72 69 6A =
6E 64 61 : c,arcfour,rijnda</div>
<div>0220: 65 6C 2D 63 62 63 40 6C =A079 73 61 74 6F 72 2E 6C : el-cbc@lysa=
tor.l</div><div>0230: 69 75 2E 73 65 00 00 00 =A069 68 6D 61 63 2D 6D 64 : =
iu.se...ihmac-md</div><div>0240: 35 2C 68 6D 61 63 2D 73 =A068 61 31 2C 75 =
6D 61 63 : 5,hmac-sha1,umac</div>
<div>0250: 2D 36 34 40 6F 70 65 6E =A073 73 68 2E 63 6F 6D 2C : -<a href=3D=
"mailto:64@openssh.com">64@openssh.com</a>,</div><div>0260: 68 6D 61 63 2D =
72 69 70 =A065 6D 64 31 36 30 2C 68 : hmac-ripemd160,h</div><div>0270: 6D 6=
1 63 2D 72 69 70 65 =A06D 64 31 36 30 40 6F 70 : mac-ripemd160@op</div>
<div>0280: 65 6E 73 73 68 2E 63 6F =A06D 2C 68 6D 61 63 2D 73 : <a href=3D"=
http://enssh.com">enssh.com</a>,hmac-s</div><div>0290: 68 61 31 2D 39 36 2C=
 68 =A06D 61 63 2D 6D 64 35 2D : ha1-96,hmac-md5-</div><div>02a0: 39 36 00 =
00 00 69 68 6D =A061 63 2D 6D 64 35 2C 68 : 96...ihmac-md5,h</div>
<div>02b0: 6D 61 63 2D 73 68 61 31 =A02C 75 6D 61 63 2D 36 34 : mac-sha1,um=
ac-64</div><div>02c0: 40 6F 70 65 6E 73 73 68 =A02E 63 6F 6D 2C 68 6D 61 : =
@<a href=3D"http://openssh.com">openssh.com</a>,hma</div><div>02d0: 63 2D 7=
2 69 70 65 6D 64 =A031 36 30 2C 68 6D 61 63 : c-ripemd160,hmac</div>
<div>02e0: 2D 72 69 70 65 6D 64 31 =A036 30 40 6F 70 65 6E 73 : -ripemd160@=
opens</div><div>02f0: 73 68 2E 63 6F 6D 2C 68 =A06D 61 63 2D 73 68 61 31 : =
<a href=3D"http://sh.com">sh.com</a>,hmac-sha1</div><div>0300: 2D 39 36 2C =
68 6D 61 63 =A02D 6D 64 35 2D 39 36 00 : -96,hmac-md5-96.</div>
<div>0310: 00 00 15 6E 6F 6E 65 2C =A07A 6C 69 62 40 6F 70 65 : ...none,zli=
b@ope</div><div>0320: 6E 73 73 68 2E 63 6F 6D =A000 00 00 15 6E 6F 6E 65 : =
nssh.com....none</div><div>0330: 2C 7A 6C 69 62 40 6F 70 =A065 6E 73 73 68 =
2E 63 6F : ,<a href=3D"mailto:zlib@openssh.co">zlib@openssh.co</a></div>
<div>0340: 6D 00 00 00 00 00 00 00 =A000 00 00 00 00 00 =A0 =A0 =A0 : m....=
.........</div><div>[libssh2] 0.309464 Transport: Packet type 20 received, =
length=3D846</div><div>[libssh2] 0.309474 Transport: Looking for packet of =
type: 20</div>
<div>[libssh2] 0.309490 Key Ex: Agreed on KEX method: diffie-hellman-group1=
4-sha1</div><div>[libssh2] 0.309499 Key Ex: Agreed on HOSTKEY method: ssh-r=
sa</div><div>[libssh2] 0.309508 Key Ex: Agreed on CRYPT_CS method: aes128-c=
tr</div>
<div>[libssh2] 0.309516 Key Ex: Agreed on CRYPT_SC method: aes128-ctr</div>=
<div>[libssh2] 0.309524 Key Ex: Agreed on MAC_CS method: hmac-sha1</div><di=
v>[libssh2] 0.309532 Key Ex: Agreed on MAC_SC method: hmac-sha1</div><div>
[libssh2] 0.309541 Key Ex: Agreed on COMP_CS method: none</div><div>[libssh=
2] 0.309549 Key Ex: Agreed on COMP_SC method: none</div><div>[libssh2] 0.30=
9566 Key Ex: Initiating Diffie-Hellman Group14 Key Exchange</div><div>[libs=
sh2] 0.311442 Key Ex: Sending KEX packet 30</div>
<div>=3D&gt; libssh2_transport_write plain (262 bytes)</div><div>0000: 1E 0=
0 00 01 01 00 AA 90 =A0AC 94 A1 0C 5C 04 49 08 : ............\.I.</div><div=
>0010: 01 61 C7 C8 43 C0 D8 7C =A0A7 55 54 96 F5 39 F7 DB : .a..C..|.UT..9.=
.</div>
<div>0020: 94 ED 5E AB 6B 75 8B CE =A0E7 8F 2D 07 C0 E2 FD 80 : ..^.ku....-=
.....</div><div>0030: F6 E7 AA 2C AD 00 06 21 =A054 7F F4 EB A4 2A 13 84 : =
...,...!T....*..</div><div>0040: FD D9 9E D9 82 0A A8 AF =A06C 4A F7 83 0A =
E6 07 61 : ........lJ.....a</div>
<div>0050: 19 B7 62 73 70 57 2F CD =A0AE DB 22 66 E9 8C 5D CA : ..bspW/...&=
quot;f..].</div><div>0060: ED FF ED 71 68 10 B4 FF =A06B B8 63 5C C4 F7 FF =
7F : ...qh...k.c\....</div><div>0070: 4A 20 8D 30 F5 08 62 11 =A07F 22 0A 6=
6 14 A4 AD 02 : J .0..b..&quot;.f....</div>
<div>0080: B0 06 14 67 54 35 31 E0 =A0E5 15 E9 19 0D 1C C5 27 : ...gT51....=
....&#39;</div><div>0090: 58 5C E4 06 BC A7 28 61 =A011 3A 62 CD 2C 72 84 F=
B : X\....(a.:b.,r..</div><div>00a0: 1A 26 65 88 09 7D 5D BB =A03D 2D 5D 23=
 AF 52 DF D9 : .&amp;e..}].=3D-]#.R..</div>
<div>00b0: 54 01 B1 18 FE 2F F1 F1 =A0D5 E0 FC 25 95 0E 5E 89 : T..../.....=
%..^.</div><div>00c0: BE D5 E4 A2 A1 C7 E0 E3 =A07D 4F 85 61 A0 22 2C 71 : =
........}O.a.&quot;,q</div><div>00d0: C1 D0 5B C6 64 D7 92 0C =A06C 69 80 8=
D A2 96 6B 60 : ..[.d...li....k`</div>
<div>00e0: 85 BB 0A 4E 42 19 AD 85 =A0F8 34 57 D2 7C A3 D4 A9 : ...NB....4W=
.|...</div><div>00f0: 20 A1 9F C2 B8 28 8C E1 =A05E 5B 06 E1 90 8C BB F4 : =
=A0....(..^[......</div><div>0100: 90 28 05 FA 05 48 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0: .(...H</div>
<div>[libssh2] 0.311600 Socket: Sent 272/272 bytes at 0x1fee638</div><div>=
=3D&gt; libssh2_transport_write send() (272 bytes)</div><div>0000: 00 00 01=
 0C 05 1E 00 00 =A001 01 00 AA 90 AC 94 A1 : ................</div><div>001=
0: 0C 5C 04 49 08 01 61 C7 =A0C8 43 C0 D8 7C A7 55 54 : .\.I..a..C..|.UT</d=
iv>
<div>0020: 96 F5 39 F7 DB 94 ED 5E =A0AB 6B 75 8B CE E7 8F 2D : ..9....^.ku=
....-</div><div>0030: 07 C0 E2 FD 80 F6 E7 AA =A02C AD 00 06 21 54 7F F4 : =
........,...!T..</div><div>0040: EB A4 2A 13 84 FD D9 9E =A0D9 82 0A A8 AF =
6C 4A F7 : ..*..........lJ.</div>
<div>0050: 83 0A E6 07 61 19 B7 62 =A073 70 57 2F CD AE DB 22 : ....a..bspW=
/...&quot;</div><div>0060: 66 E9 8C 5D CA ED FF ED =A071 68 10 B4 FF 6B B8 =
63 : f..]....qh...k.c</div><div>0070: 5C C4 F7 FF 7F 4A 20 8D =A030 F5 08 6=
2 11 7F 22 0A : \....J .0..b..&quot;.</div>
<div>0080: 66 14 A4 AD 02 B0 06 14 =A067 54 35 31 E0 E5 15 E9 : f.......gT5=
1....</div><div>0090: 19 0D 1C C5 27 58 5C E4 =A006 BC A7 28 61 11 3A 62 : =
....&#39;X\....(a.:b</div><div>00a0: CD 2C 72 84 FB 1A 26 65 =A088 09 7D 5D=
 BB 3D 2D 5D : .,r...&amp;e..}].=3D-]</div>
<div>00b0: 23 AF 52 DF D9 54 01 B1 =A018 FE 2F F1 F1 D5 E0 FC : #.R..T..../=
.....</div><div>00c0: 25 95 0E 5E 89 BE D5 E4 =A0A2 A1 C7 E0 E3 7D 4F 85 : =
%..^.........}O.</div><div>00d0: 61 A0 22 2C 71 C1 D0 5B =A0C6 64 D7 92 0C =
6C 69 80 : a.&quot;,q..[.d...li.</div>
<div>00e0: 8D A2 96 6B 60 85 BB 0A =A04E 42 19 AD 85 F8 34 57 : ...k`...NB.=
...4W</div><div>00f0: D2 7C A3 D4 A9 20 A1 9F =A0C2 B8 28 8C E1 5E 5B 06 : =
.|... ....(..^[.</div><div>0100: E1 90 8C BB F4 90 28 05 =A0FA 05 48 29 CD =
D0 03 CE : ......(...H)....</div>
<div>[libssh2] 0.312216 Transport: Looking for packet of type: 31</div><div=
>[libssh2] 0.312230 Failure Event: -37 - Unable to exchange encryption keys=
</div><div>Main: TIMEOUT</div></div><div><br></div>

--bcaec529a077d7433a04be8576ef--

--===============0660067556==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0660067556==--

From libssh2-devel-bounces@cool.haxx.se  Wed Apr 25 22:09:58 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PK9ia8021280;
	Wed, 25 Apr 2012 22:09:56 +0200
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com
 [66.111.4.27])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PK9gPs021257
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 22:09:42 +0200
Received: from compute4.internal (compute4.nyi.mail.srv.osa [10.202.2.44])
 by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id E6E7722257
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 16:09:41 -0400 (EDT)
Received: from frontend1.nyi.mail.srv.osa ([10.202.2.160])
 by compute4.internal (MEProxy); Wed, 25 Apr 2012 16:09:41 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=castaglia.org; h=
 date:from:to:subject:in-reply-to:message-id:references
 :mime-version:content-type; s=mesmtp; bh=7hTez7jnHy30bc0FNNLmRPE
 Hzys=; b=GtjWston2gBt6OVLiK178orM+njODlDDbcytCSnxZENeIKr5dudWmlq
 FCJwAoC5s5AZmGCgLZxT5+mvh4/X2W/a24JC1lp03Cxc0FFDOmnVP+ANpj3qcjUE
 8DMa/zKn12RXM7CkFm34LMCpbalBKGxSCTOsULfUj/czDYn62oKk=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
 messagingengine.com; h=date:from:to:subject:in-reply-to
 :message-id:references:mime-version:content-type; s=smtpout; bh=
 7hTez7jnHy30bc0FNNLmRPEHzys=; b=WoHCWWSf+jUE9qn5bFdksDZ+YEwHck/q
 xCjhk4Yh0uBH28/7MKg9O5Zoo8LEzUmNwAJ7vl5i+5cvg4CmU6y4Zea0iDRlswNg
 jkjiRLwy4fsayB1sZxD+maFl3kPpicLaxtGvnu0NcuJMv6b96HX+xA7D8INkolVO
 qT2fRDt3hCM=
X-Sasl-enc: W1eQSUZYHsXtRultebzV77d+/HmILllaFEVzWZrxixTs 1335384581
Received: from familiar.local (64-71-23-251.static.wiline.com [64.71.23.251])
 by mail.messagingengine.com (Postfix) with ESMTPSA id 78C328E025D
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 16:09:41 -0400 (EDT)
Date: Wed, 25 Apr 2012 13:09:40 -0700 (PDT)
From: TJ Saunders <tj@castaglia.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: [libssh2] meaning of -37 "Failed getting banner" / "Unable to
 exchange encryption keys" /
In-Reply-To: <CA+XUKcgr3iE8skx=RM_6J+nFBL-y+rkOAK2DE=Js173nFjC0UA@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204251301390.3570@familiar.castaglia.org>
References: <CA+XUKcgr3iE8skx=RM_6J+nFBL-y+rkOAK2DE=Js173nFjC0UA@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
MIME-Version: 1.0
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se


> [libssh2] 0.953586 Socket: Error recving 1 bytes: 11
> [libssh2] 0.953603 Failure Event: -37 - Failed getting banner
> Main: TIMEOUT

The "Error recving 1 bytes: 11" message comes from this code in 
src/session.c:

  _libssh2_debug(session, LIBSSH2_TRACE_SOCKET,
     "Error recving %d bytes: %d", 1, errno);

which means that that 11 is the errno value on your system.  (On my Ubuntu 
Linux machine, errno 11 is EGAIN.  Arguably, that error message could be 
made more legible using strerror(), e.g.:

  _libssh2_debug(session, LIBSSH2_TRACE_SOCKET,
     "Error recving %d bytes: [%d] %s", 1, errno, strerror(errno));

The -37 value is defined in the <libssh2.h> header file:

  #define LIBSSH2_ERROR_EAGAIN                    -37

indicating that the calling code should try the call again.  So the error 
could be transient (e.g. your socket is non-blocking, and there simply 
wasn't data to be read yet on the socket when you called).  In fact, you 
see evidence of this in your second trace:

> = = = = = = = = = = = = = = = = =
> Failure Event: -37 - Failed getting banner
> - - - - - - - - - - - - - - - - - -
> [libssh2] 0.299932 Transport: session_startup for socket 3
> [libssh2] 0.299979 Transport: Sending Banner: SSH-2.0-OpenSSH_5.4
> [libssh2] 0.300057 Socket: Sent 21/21 bytes at 0x1ffb630+0
> [libssh2] 0.300118 Socket: Error recving 1 bytes: 11
> [libssh2] 0.300149 Failure Event: -37 - Failed getting banner
> [libssh2] 0.307140 Socket: Recved 1 bytes banner

Here we see the "-37 - Failed getting banner", but then it is followed by 
reading the bytes for the banner, one at a time:

> [libssh2] 0.307161 Socket: Recved 1 bytes banner
> [libssh2] 0.307168 Socket: Recved 1 bytes banner
> [libssh2] 0.307174 Socket: Recved 1 bytes banner
> [libssh2] 0.307179 Socket: Recved 1 bytes banner
> [libssh2] 0.307184 Socket: Recved 1 bytes banner
> [libssh2] 0.307189 Socket: Recved 1 bytes banner
> [libssh2] 0.307195 Socket: Recved 1 bytes banner
> [libssh2] 0.307200 Socket: Recved 1 bytes banner
> [libssh2] 0.307205 Socket: Recved 1 bytes banner
> [libssh2] 0.307210 Socket: Recved 1 bytes banner
> [libssh2] 0.307215 Socket: Recved 1 bytes banner
> [libssh2] 0.307220 Socket: Recved 1 bytes banner
> [libssh2] 0.307226 Socket: Recved 1 bytes banner
> [libssh2] 0.307231 Socket: Recved 1 bytes banner
> [libssh2] 0.307236 Socket: Recved 1 bytes banner
> [libssh2] 0.307241 Socket: Recved 1 bytes banner
> [libssh2] 0.307246 Socket: Recved 1 bytes banner
> [libssh2] 0.307251 Socket: Recved 1 bytes banner
> [libssh2] 0.307257 Socket: Recved 1 bytes banner
> [libssh2] 0.307263 Socket: Recved 1 bytes banner
> [libssh2] 0.307273 Transport: Received Banner: SSH-2.0-OpenSSH_5.8

And again here, as part of the key exchange:

> [libssh2] 0.307979 Transport: Looking for packet of type: 20
> [libssh2] 0.307988 Failure Event: -37 - Unable to exchange encryption keys
> [libssh2] 0.308285 Socket: Recved 856/16384 bytes to 0x1fea5f8+0

<snip>

> [libssh2] 0.309464 Transport: Packet type 20 received, length=846
> [libssh2] 0.309474 Transport: Looking for packet of type: 20

So the looked-for packet of type 20 was found.

Hope this helps shed some light on things,
TJ

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   We can understand one another; but each of us is able to
   interpret himself to himself alone.

     -Hermann Hesse

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Apr 26 00:42:31 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PMg50V006171;
	Thu, 26 Apr 2012 00:42:24 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PMg2XP006005
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 26 Apr 2012 00:42:03 +0200
Received: by iahk25 with SMTP id k25so839798iah.41
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 15:41:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=OPKbbJbtvYRgGqXtjyAm3lx1UkgQ7SzOc9u8Dw5qRFk=;
 b=Zhn6BojLJWn6QcFuJWqtmDGHvrnIR6l7Lw7EVO/sT7pJeXj+5pirGxI9pgp94FAIH3
 BLs/XvZic0JDqOUc2RbcZVZJNxlLAmCpSg0+iq06pm4qx6Xz3v4ECq9XuBAi6ROgYWLJ
 G6TaBNxW7abiUDsfGlpajf/7QIitjbh/MmTv37AnYcsDwtW7tgdELzDG8s8iR1lm8gHl
 MGpZRz5p7OzeIMLfqtoz9nVKR4dINwQMghSKMwa6hXwAZOr8MiumBD73jfu4di40wHi/
 jTPXCj6Sl26Mezujc4Tsq4xT5h5WHCEqFlEJ8N2ySbcX6YTHxkHPRblg0SzUwGvMshqa
 v02A==
MIME-Version: 1.0
Received: by 10.50.155.132 with SMTP id vw4mr4409581igb.27.1335393718837; Wed,
 25 Apr 2012 15:41:58 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Wed, 25 Apr 2012 15:41:58 -0700 (PDT)
In-Reply-To: <alpine.DEB.2.00.1204251301390.3570@familiar.castaglia.org>
References: <CA+XUKcgr3iE8skx=RM_6J+nFBL-y+rkOAK2DE=Js173nFjC0UA@mail.gmail.com>
 <alpine.DEB.2.00.1204251301390.3570@familiar.castaglia.org>
Date: Thu, 26 Apr 2012 00:41:58 +0200
Message-ID: <CA+XUKcgAfK5=kRVZMeNO4=GRo=UdA+BoA-RzyFMMAN+9h17=Gw@mail.gmail.com>
Subject: Re: [libssh2] meaning of -37 "Failed getting banner" / "Unable to
 exchange encryption keys" /
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0447670248=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0447670248==
Content-Type: multipart/alternative; boundary=e89a8f3bb0433f218804be8894df

--e89a8f3bb0433f218804be8894df
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Thank you very much... :-)

With your method, the error message is 'Resource temporarily unavailable'
(!)

Digging deeper, I found two remarkable things:

1) session->api_timeout =3D=3D 0
... might be due to the interface (no session->api_timeout set??), but this
doesn't seem to lead to program interruption.

2) in session.c::_libssh2_wait_socket(), line 632 =96 HAVE_POLL holds...

rc =3D poll(sockets, 1, has_timeout?ms_to_next: -1);

returns -1, which directly leads to LIBSSH2_ERROR_TIMEOUT.

Any idea??

Thanks a lot in advance, Nick

2012/4/25 TJ Saunders <tj@castaglia.org>

>
> > [libssh2] 0.953586 Socket: Error recving 1 bytes: 11
> > [libssh2] 0.953603 Failure Event: -37 - Failed getting banner
> > Main: TIMEOUT
>
> The "Error recving 1 bytes: 11" message comes from this code in
> src/session.c:
>
>  _libssh2_debug(session, LIBSSH2_TRACE_SOCKET,
>     "Error recving %d bytes: %d", 1, errno);
>
> which means that that 11 is the errno value on your system.  (On my Ubunt=
u
> Linux machine, errno 11 is EGAIN.  Arguably, that error message could be
> made more legible using strerror(), e.g.:
>
>  _libssh2_debug(session, LIBSSH2_TRACE_SOCKET,
>     "Error recving %d bytes: [%d] %s", 1, errno, strerror(errno));
>
> The -37 value is defined in the <libssh2.h> header file:
>
>  #define LIBSSH2_ERROR_EAGAIN                    -37
>
> indicating that the calling code should try the call again.  So the error
> could be transient (e.g. your socket is non-blocking, and there simply
> wasn't data to be read yet on the socket when you called).  In fact, you
> see evidence of this in your second trace:
>
> > =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D
> > Failure Event: -37 - Failed getting banner
> > - - - - - - - - - - - - - - - - - -
> > [libssh2] 0.299932 Transport: session_startup for socket 3
> > [libssh2] 0.299979 Transport: Sending Banner: SSH-2.0-OpenSSH_5.4
> > [libssh2] 0.300057 Socket: Sent 21/21 bytes at 0x1ffb630+0
> > [libssh2] 0.300118 Socket: Error recving 1 bytes: 11
> > [libssh2] 0.300149 Failure Event: -37 - Failed getting banner
> > [libssh2] 0.307140 Socket: Recved 1 bytes banner
>
> Here we see the "-37 - Failed getting banner", but then it is followed by
> reading the bytes for the banner, one at a time:
>
> > [libssh2] 0.307161 Socket: Recved 1 bytes banner
> > [libssh2] 0.307168 Socket: Recved 1 bytes banner
> > [libssh2] 0.307174 Socket: Recved 1 bytes banner
> > [libssh2] 0.307179 Socket: Recved 1 bytes banner
> > [libssh2] 0.307184 Socket: Recved 1 bytes banner
> > [libssh2] 0.307189 Socket: Recved 1 bytes banner
> > [libssh2] 0.307195 Socket: Recved 1 bytes banner
> > [libssh2] 0.307200 Socket: Recved 1 bytes banner
> > [libssh2] 0.307205 Socket: Recved 1 bytes banner
> > [libssh2] 0.307210 Socket: Recved 1 bytes banner
> > [libssh2] 0.307215 Socket: Recved 1 bytes banner
> > [libssh2] 0.307220 Socket: Recved 1 bytes banner
> > [libssh2] 0.307226 Socket: Recved 1 bytes banner
> > [libssh2] 0.307231 Socket: Recved 1 bytes banner
> > [libssh2] 0.307236 Socket: Recved 1 bytes banner
> > [libssh2] 0.307241 Socket: Recved 1 bytes banner
> > [libssh2] 0.307246 Socket: Recved 1 bytes banner
> > [libssh2] 0.307251 Socket: Recved 1 bytes banner
> > [libssh2] 0.307257 Socket: Recved 1 bytes banner
> > [libssh2] 0.307263 Socket: Recved 1 bytes banner
> > [libssh2] 0.307273 Transport: Received Banner: SSH-2.0-OpenSSH_5.8
>
> And again here, as part of the key exchange:
>
> > [libssh2] 0.307979 Transport: Looking for packet of type: 20
> > [libssh2] 0.307988 Failure Event: -37 - Unable to exchange encryption
> keys
> > [libssh2] 0.308285 Socket: Recved 856/16384 bytes to 0x1fea5f8+0
>
> <snip>
>
> > [libssh2] 0.309464 Transport: Packet type 20 received, length=3D846
> > [libssh2] 0.309474 Transport: Looking for packet of type: 20
>
> So the looked-for packet of type 20 was found.
>
> Hope this helps shed some light on things,
> TJ
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>   We can understand one another; but each of us is able to
>   interpret himself to himself alone.
>
>     -Hermann Hesse
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>

--e89a8f3bb0433f218804be8894df
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<div class=3D"gmail_extra">Thank you very much... :-)</div><div class=3D"gm=
ail_extra"><br></div><div class=3D"gmail_extra">With your method, the error=
 message is &#39;Resource temporarily unavailable&#39; (!)</div><div class=
=3D"gmail_extra">
<br></div><div class=3D"gmail_extra">Digging deeper, I found two remarkable=
 things:</div><div class=3D"gmail_extra"><br></div><div class=3D"gmail_extr=
a">1)=A0session-&gt;api_timeout =3D=3D 0=A0</div><div class=3D"gmail_extra"=
>... might be due to the interface (no=A0session-&gt;api_timeout set??), bu=
t this doesn&#39;t seem to lead to program interruption.</div>
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">2) in sessi=
on.c::_libssh2_wait_socket(), line 632 =96 HAVE_POLL holds...=A0</div><div =
class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">rc =3D poll(sock=
ets, 1, has_timeout?ms_to_next: -1);=A0</div>
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">returns -1,=
=A0which directly leads to=A0LIBSSH2_ERROR_TIMEOUT.</div><div class=3D"gmai=
l_extra"><br></div><div class=3D"gmail_extra">Any idea??</div><div class=3D=
"gmail_extra">
<br></div><div class=3D"gmail_extra">Thanks a lot in advance, Nick</div><di=
v class=3D"gmail_extra"><br><div class=3D"gmail_quote">2012/4/25 TJ Saunder=
s <span dir=3D"ltr">&lt;<a href=3D"mailto:tj@castaglia.org" target=3D"_blan=
k">tj@castaglia.org</a>&gt;</span><br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div class=3D"im"><br>
&gt; [libssh2] 0.953586 Socket: Error recving 1 bytes: 11<br>
&gt; [libssh2] 0.953603 Failure Event: -37 - Failed getting banner<br>
&gt; Main: TIMEOUT<br>
<br>
</div>The &quot;Error recving 1 bytes: 11&quot; message comes from this cod=
e in<br>
src/session.c:<br>
<br>
 =A0_libssh2_debug(session, LIBSSH2_TRACE_SOCKET,<br>
 =A0 =A0 &quot;Error recving %d bytes: %d&quot;, 1, errno);<br>
<br>
which means that that 11 is the errno value on your system. =A0(On my Ubunt=
u<br>
Linux machine, errno 11 is EGAIN. =A0Arguably, that error message could be<=
br>
made more legible using strerror(), e.g.:<br>
<br>
 =A0_libssh2_debug(session, LIBSSH2_TRACE_SOCKET,<br>
 =A0 =A0 &quot;Error recving %d bytes: [%d] %s&quot;, 1, errno, strerror(er=
rno));<br>
<br>
The -37 value is defined in the &lt;libssh2.h&gt; header file:<br>
<br>
 =A0#define LIBSSH2_ERROR_EAGAIN =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0-37=
<br>
<br>
indicating that the calling code should try the call again. =A0So the error=
<br>
could be transient (e.g. your socket is non-blocking, and there simply<br>
wasn&#39;t data to be read yet on the socket when you called). =A0In fact, =
you<br>
see evidence of this in your second trace:<br>
<div class=3D"im"><br>
&gt; =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D =3D<br=
>
&gt; Failure Event: -37 - Failed getting banner<br>
&gt; - - - - - - - - - - - - - - - - - -<br>
&gt; [libssh2] 0.299932 Transport: session_startup for socket 3<br>
&gt; [libssh2] 0.299979 Transport: Sending Banner: SSH-2.0-OpenSSH_5.4<br>
&gt; [libssh2] 0.300057 Socket: Sent 21/21 bytes at 0x1ffb630+0<br>
&gt; [libssh2] 0.300118 Socket: Error recving 1 bytes: 11<br>
&gt; [libssh2] 0.300149 Failure Event: -37 - Failed getting banner<br>
&gt; [libssh2] 0.307140 Socket: Recved 1 bytes banner<br>
<br>
</div>Here we see the &quot;-37 - Failed getting banner&quot;, but then it =
is followed by<br>
reading the bytes for the banner, one at a time:<br>
<div class=3D"im"><br>
&gt; [libssh2] 0.307161 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307168 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307174 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307179 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307184 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307189 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307195 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307200 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307205 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307210 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307215 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307220 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307226 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307231 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307236 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307241 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307246 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307251 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307257 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307263 Socket: Recved 1 bytes banner<br>
&gt; [libssh2] 0.307273 Transport: Received Banner: SSH-2.0-OpenSSH_5.8<br>
<br>
</div>And again here, as part of the key exchange:<br>
<div class=3D"im"><br>
&gt; [libssh2] 0.307979 Transport: Looking for packet of type: 20<br>
&gt; [libssh2] 0.307988 Failure Event: -37 - Unable to exchange encryption =
keys<br>
&gt; [libssh2] 0.308285 Socket: Recved 856/16384 bytes to 0x1fea5f8+0<br>
<br>
</div>&lt;snip&gt;<br>
<div class=3D"im"><br>
&gt; [libssh2] 0.309464 Transport: Packet type 20 received, length=3D846<br=
>
&gt; [libssh2] 0.309474 Transport: Looking for packet of type: 20<br>
<br>
</div>So the looked-for packet of type 20 was found.<br>
<br>
Hope this helps shed some light on things,<br>
TJ<br>
<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
<br>
 =A0 We can understand one another; but each of us is able to<br>
 =A0 interpret himself to himself alone.<br>
<br>
 =A0 =A0 -Hermann Hesse<br>
<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
_______________________________________________<br>
libssh2-devel <a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libss=
h2-devel" target=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/li=
bssh2-devel</a><br>
</blockquote></div><br></div>

--e89a8f3bb0433f218804be8894df--

--===============0447670248==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0447670248==--

From libssh2-devel-bounces@cool.haxx.se  Thu Apr 26 01:31:39 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PNVWXx006573;
	Thu, 26 Apr 2012 01:31:37 +0200
Received: from mail-pb0-f54.google.com (mail-pb0-f54.google.com
 [209.85.160.54])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3PNVSE7006537
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 26 Apr 2012 01:31:30 +0200
Received: by pbcwz17 with SMTP id wz17so2029071pbc.41
 for <libssh2-devel@cool.haxx.se>; Wed, 25 Apr 2012 16:31:24 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=google.com; s=20120113;
 h=mime-version:x-originating-ip:in-reply-to:references:date
 :message-id:subject:from:to:content-type:x-gm-message-state;
 bh=U8M2JEWBpk/n0WlgzlpujtGjUnrcCBPQbJgih2tiSMA=;
 b=XcfYdtY0PMYSd8uaXFRxFve/Xq5J9X/fLsLU/tELJHxPZ/69eQgHXQ+yRmZ2ymo5G9
 l/JkIceJUCHWb//SQ9ZGTcgcFJbwt0ahSS3AIq6Du8rd3opy1ALnVyA9i1Bbfrcdg5PY
 Y0UoYlniq8jwwEsvxIuG59d+oIrELy1qyZP3z0VA1fv3nXvQDBxz6o1H7yz60MCoPq6L
 EsXtEB8aV4VMezmQb+dcCZAhcaR0Cc3EBnVLAaAiH73uWH1zycKudNpFT5Cl1EyneEbq
 i4gSXfqvjEdyqSEXuQeJHmduIvD6274/o5HpzWOk0K4gJ81tmRCxVIqA3vEJSi9qPVWn
 S7xg==
MIME-Version: 1.0
Received: by 10.68.218.198 with SMTP id pi6mr5426230pbc.121.1335396684593;
 Wed, 25 Apr 2012 16:31:24 -0700 (PDT)
Received: by 10.68.194.1 with HTTP; Wed, 25 Apr 2012 16:31:24 -0700 (PDT)
X-Originating-IP: [69.226.35.42]
In-Reply-To: <alpine.DEB.2.00.1204200912390.9698@tvnag.unkk.fr>
References: <CAMS93LDFhP8bM6StBBscg5Tz7TEVcbsD4rvEgAh4=xax_2EGmA@mail.gmail.com>
 <CADyPeTOJVpVELVj+z1aafn2XijJJ6cGv-3nuT76bEw9GKRZFRg@mail.gmail.com>
 <CAMS93LAp0=dBs=3vdKKspft-jY73+MTyeCU+XkoG9+mcnnYfhw@mail.gmail.com>
 <alpine.DEB.2.00.1204032345350.5003@tvnag.unkk.fr>
 <CAMS93LB7GNsD=otvHqTr=FGrfNFh_em9rHT+RjGhP7aQQO3uPw@mail.gmail.com>
 <CADyPeTM1X7RAUxqvU6SYxys+K2BkOJmF93gtajVh+JN06n4Wdg@mail.gmail.com>
 <CAMS93LDSZn6eXBE-_cyTLb64TQqYzeO=sXye51HqGtCMjmi1Xw@mail.gmail.com>
 <alpine.DEB.2.00.1204040848040.12939@tvnag.unkk.fr>
 <CAMS93LD7J2GLDi4NC9Kxde9Ee5cZZQDbsUHmSH_V9-3pTyLmKQ@mail.gmail.com>
 <20120404231415.3889.qmail@stuge.se>
 <CAMS93LBO7EXHJ57HguBFfceAahN+=sSmqdw-7ktS1uo+daUGFA@mail.gmail.com>
 <alpine.DEB.2.00.1204200912390.9698@tvnag.unkk.fr>
Date: Wed, 25 Apr 2012 16:31:24 -0700
Message-ID: <CAMS93LAXtvVqv-bOiGA55t+XQakCw9534xSzf+hHRqQ7YuYfZA@mail.gmail.com>
Subject: Re: libssh2_sftp_read reads a number of bytes smaller than both the
 file size and the specified buffer size
From: Adam Craig <adamgcraig@accessnoexcuse.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-Gm-Message-State: ALoCoQltZJk9qEP1qNf6Q4m5vy4/S5K7pL7B+LIZF2/kSL5amf6BnXft8r43KKz7rHo3H4m++8Iy
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

On 4/20/12, Daniel Stenberg <daniel@haxx.se> wrote:
> On Thu, 19 Apr 2012, Adam Craig wrote:
>
>> I found that, with the remote server, while larger packet sizes yielded
>> some
>> improvement in speed, it was only barely noticeable compared to the
>> fluctuations in speed due to outside factors. On the local network, the
>> improvement in speed is pronounced from 2K to 20K but levels off at higher
>>
>> sizes.
>
> Thanks for doing this!
>
> Unfortunately I still believe there are too many unknowns in this equation
> and
> you've done your tests on a too limited test set to make us draw very many
> conclusions for libssh2 genericly as opposed for libssh2 in your particular
> case.
>

My apologies. I do not have the time or resources right now to do a
more comprehensive study. Hopefully I will when I take care of some of
my other standing commitments. In the mean time, I will study the RFC
and libssh2 source code more carefully.

> For example:
>
> A) you only used OpenSSH servers on Linux, possibly not even using very
>     different versions. we must expect different server ends to react
>     differently
>
> B) what were the RTT times against these servers? SFTP will perform
>     significantly different for varying RTT. One of the major challanges
> with
>     SFTP is to make it run fast for the whole range of possible RTT
>

Again, I must apologize. The remote Red Hat server has become
permanently unavailable, so I cannot get an RTT measurement for it.

Ubuntu Server on local network:
PING 10.0.0.16 (10.0.0.16): 56 data bytes
64 bytes from 10.0.0.16: icmp_seq=0 ttl=64 time=3.821 ms
64 bytes from 10.0.0.16: icmp_seq=1 ttl=64 time=2.786 ms
64 bytes from 10.0.0.16: icmp_seq=2 ttl=64 time=3.268 ms
64 bytes from 10.0.0.16: icmp_seq=3 ttl=64 time=2.501 ms
64 bytes from 10.0.0.16: icmp_seq=4 ttl=64 time=2.616 ms
64 bytes from 10.0.0.16: icmp_seq=5 ttl=64 time=4.580 ms
64 bytes from 10.0.0.16: icmp_seq=6 ttl=64 time=3.031 ms
64 bytes from 10.0.0.16: icmp_seq=7 ttl=64 time=5.368 ms
64 bytes from 10.0.0.16: icmp_seq=8 ttl=64 time=3.966 ms
64 bytes from 10.0.0.16: icmp_seq=9 ttl=64 time=3.210 ms
64 bytes from 10.0.0.16: icmp_seq=10 ttl=64 time=4.215 ms
64 bytes from 10.0.0.16: icmp_seq=11 ttl=64 time=6.010 ms
64 bytes from 10.0.0.16: icmp_seq=12 ttl=64 time=2.678 ms
64 bytes from 10.0.0.16: icmp_seq=13 ttl=64 time=2.765 ms
64 bytes from 10.0.0.16: icmp_seq=14 ttl=64 time=2.799 ms
64 bytes from 10.0.0.16: icmp_seq=15 ttl=64 time=2.788 ms
64 bytes from 10.0.0.16: icmp_seq=16 ttl=64 time=2.998 ms
64 bytes from 10.0.0.16: icmp_seq=17 ttl=64 time=3.258 ms
64 bytes from 10.0.0.16: icmp_seq=18 ttl=64 time=3.044 ms
64 bytes from 10.0.0.16: icmp_seq=19 ttl=64 time=2.806 ms
64 bytes from 10.0.0.16: icmp_seq=20 ttl=64 time=2.652 ms
64 bytes from 10.0.0.16: icmp_seq=21 ttl=64 time=2.678 ms
64 bytes from 10.0.0.16: icmp_seq=22 ttl=64 time=3.037 ms

> C) which crypto backend and version was used in libssh2? I've seen people
>     report very different results when using gcrypt vs openssl
libssh2 version: 1.4.0-20120229
Since I did not specify gcrypt, it should be using openssl.
OpenSSL version: 0.9.8r 8 Feb 2011, which came with the Macbook. It
seems to have some customizations unique to OS X, like automatically
using the OS X keychain in stead of requiring a trust store from a
file or directory. I have not been able to find a complete list of
differences between the openssl that ships with OS X and the standard
version.

>
> D) how large buffers did you pass in to libssh2_sftp_read() when you ran
> these
>     tests and how did did different such sizes affect the test results?
>
I allocated a buffer of size 524288, about twice the size of the
largest file I needed to upload. The stated sizes I passed in to the
libssh2_sftp_read function were the same as the max chunk sizes listed
in the spreadsheet.

>> I noticed the following comment on the line defining the limit on
>> upload chunk size:
>> /*
>> * MAX_SFTP_OUTGOING_SIZE MUST not be larger than 32500 or so. This is the
>> * amount of data sent in each FXP_WRITE packet
>> */
>> #define MAX_SFTP_OUTGOING_SIZE 32500
>>
>> My guess is the "MUST" is due to the following, found in libssh2_priv.h:
>
> It is due to phrasing in the SSH and SFTP protocol specs, yes.
>
>> I also noticed the following in sftp.c:
>> /* This is the maximum packet length to accept, as larger than this
>> indicate
>>   some kind of server problem. */
>> #define LIBSSH2_SFTP_PACKET_MAXLEN  80000
>>
>> I do not see why 80K is the cutoff here.
>
> It is no magic "cutoff" really, it is just a way for libssh2 to detect
> problems as if it gets a very large packet size it is a sign that something
> is
> wrong and it should escape rather than trying to allocate memory for it.
>
>> If the spec says the max packet size is 35K, then it would make more sense
>>
>> to make all the hard-coded limits on packet size 35K
>
> Then read the spec. Does it say 35K? And further, does 35K work against all
> the relevant server implementations? We're being slightly conservative in
> the
> name of interoperability.
>
This was a mistake on my part. According to
http://tools.ietf.org/html/rfc4253#section-6.1, 35K is the maximum
total packet size. The uncompressed data payload should only be up to
32768 bytes. Thus, 32768 should work against any spec-compliant server
implementations. Have you encountered many cases where it has needed
to be smaller?

>> and let users limit packet size further through the buffer sizes they pass
>>
>> to the read and write statements.
>
> Then you have grossly missed the finer implementation details of the SFTP
> read
> and write functions libssh2 provides. It does a lot of work to allow
> applications to get high throughput by splitting up the buffer in many
> slices.
> (which is what I alluded to above in my point "D"). Leaving that to the
> application would certainly be possible, but will require a new API to still
> offer high speed transfers.
>

Apparently I have misunderstood something. I will look into it, but it
may be a while, since I have other aspects of my current project that
still need a lot of work.

Thank you again,
Adam Craig


> --
>
>   / daniel.haxx.se
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Thu Apr 26 19:57:36 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3QHvCve001000;
	Thu, 26 Apr 2012 19:57:30 +0200
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com
 [66.111.4.27])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3QHv0wg000730
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 26 Apr 2012 19:57:11 +0200
Received: from compute3.internal (compute3.nyi.mail.srv.osa [10.202.2.43])
 by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 170BE2253E
 for <libssh2-devel@cool.haxx.se>; Thu, 26 Apr 2012 13:56:57 -0400 (EDT)
Received: from frontend2.nyi.mail.srv.osa ([10.202.2.161])
 by compute3.internal (MEProxy); Thu, 26 Apr 2012 13:56:59 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=castaglia.org; h=
 date:from:to:subject:in-reply-to:message-id:references
 :mime-version:content-type; s=mesmtp; bh=cAvTmC/DUVE/+je/ngfrbWB
 9CSE=; b=RSdPuJrneMd0vz8eTzPmwgFGYp6ohEnD5mHNs02A4RSbyBx+n6yXJ4d
 j4hZa+ZDyykFs0iH8kvnybW5HS+/d8E1GH/Ora1g86S9oCLzi2bmQWxYwSJtLeiu
 qw5Y2wwsXblBq3lPIdrAC7aw0+LCGDS/0D2elZkIsHoQIBJ0fen4=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
 messagingengine.com; h=date:from:to:subject:in-reply-to
 :message-id:references:mime-version:content-type; s=smtpout; bh=
 cAvTmC/DUVE/+je/ngfrbWB9CSE=; b=ImMqiCq+6QG/dEdJR0SmaSb/2cGWHqpp
 Z0C+oUm6Ks/5POMUUTOkFycp9kKvkrqFI9fUuPJMLSL58fDy0TTjR+Abr0/qSpqQ
 k0sJCkuBy3mXISgntVovYtJSQ2eQ8hVgyyF1mgTyc+aWKTYNCClKwsqtiJTlfrl9
 TGdkSqoe9Yg=
X-Sasl-enc: 2TSF6cSbs9DzYcLXxyOd8aabF7h82Pvs7cayQWheyPF1 1335463017
Received: from familiar.local (64-71-23-251.static.wiline.com [64.71.23.251])
 by mail.messagingengine.com (Postfix) with ESMTPSA id 0CFC8482537
 for <libssh2-devel@cool.haxx.se>; Thu, 26 Apr 2012 13:56:56 -0400 (EDT)
Date: Thu, 26 Apr 2012 10:56:55 -0700 (PDT)
From: TJ Saunders <tj@castaglia.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: [libssh2] meaning of -37 "Failed getting banner" / "Unable to
 exchange encryption keys" /
In-Reply-To: <CA+XUKcgAfK5=kRVZMeNO4=GRo=UdA+BoA-RzyFMMAN+9h17=Gw@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204261056060.3570@familiar.castaglia.org>
References: <CA+XUKcgr3iE8skx=RM_6J+nFBL-y+rkOAK2DE=Js173nFjC0UA@mail.gmail.com>
 <alpine.DEB.2.00.1204251301390.3570@familiar.castaglia.org>
 <CA+XUKcgAfK5=kRVZMeNO4=GRo=UdA+BoA-RzyFMMAN+9h17=Gw@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-581934812-1335463017=:3570"
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323328-581934812-1335463017=:3570
Content-Type: TEXT/PLAIN; charset=windows-1252
Content-Transfer-Encoding: 8BIT


> With your method, the error message is 'Resource temporarily unavailable'
> (!)
> 
> Digging deeper, I found two remarkable things:
> 
> 1) session->api_timeout == 0
> ... might be due to the interface (no session->api_timeout set??), but this
> doesn't seem to lead to program interruption.
> 
> 2) in session.c::_libssh2_wait_socket(), line 632 – HAVE_POLL holds...
> 
> rc = poll(sockets, 1, has_timeout?ms_to_next: -1);
> 
> returns -1, which directly leads to LIBSSH2_ERROR_TIMEOUT.
> 
> Any idea??

From that "Main: TIMEOUT" message you reported, it sounds like your 
application (which is using libssh2) has some sort of overall 
timeout/timer set.  Is it possible that that timer is being exceeded 
unexpectedly, or set too short?

TJ

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   Mankind will not be reasoned out of the feelings of humanity.

   	-Sir William Blackstone

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--8323328-581934812-1335463017=:3570
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--8323328-581934812-1335463017=:3570--

From libssh2-devel-bounces@cool.haxx.se  Thu Apr 26 21:53:56 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3QJrdBB029032;
	Thu, 26 Apr 2012 21:53:53 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3QJrbxW028944
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 26 Apr 2012 21:53:38 +0200
Received: by iahk25 with SMTP id k25so2467464iah.41
 for <libssh2-devel@cool.haxx.se>; Thu, 26 Apr 2012 12:53:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=YHnLR0xxQ1bOZSOJtWdQHcsaX86Nav8R+bFvTMAbUW4=;
 b=X6o208y9ZiKSwozzSiV2XdZ7ozvu2CTVqsHDgPlbWAUHoVyvGXiSYMaU0+qMC8U7Xt
 vd0mTAt1rk1wkv3B1MzzyETTQw/749POnvqWfvhGRIbFvT2iaspcbMJXtfLWopoeNDue
 t3i9URtvA0f1ExVLpUx7BkdgyRWTEBom93mOHmgX43uoHnLrYqyteRZ2odu9jxotN+Om
 VBWEEs5w8KEagK9i41kUbr8+tlgOLNNv8tyA55qlruq6SbZJtv9ilhT+Q6aEXGDCvpzk
 DJU9D16Oj7VF13sXHsKWdK65EIyjz4laHEQWzRJqpLlhypklAOeoFhWguySqCwS+nb1C
 Uuww==
MIME-Version: 1.0
Received: by 10.50.46.135 with SMTP id v7mr4827708igm.29.1335470013413; Thu,
 26 Apr 2012 12:53:33 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Thu, 26 Apr 2012 12:53:33 -0700 (PDT)
In-Reply-To: <alpine.DEB.2.00.1204261056060.3570@familiar.castaglia.org>
References: <CA+XUKcgr3iE8skx=RM_6J+nFBL-y+rkOAK2DE=Js173nFjC0UA@mail.gmail.com>
 <alpine.DEB.2.00.1204251301390.3570@familiar.castaglia.org>
 <CA+XUKcgAfK5=kRVZMeNO4=GRo=UdA+BoA-RzyFMMAN+9h17=Gw@mail.gmail.com>
 <alpine.DEB.2.00.1204261056060.3570@familiar.castaglia.org>
Date: Thu, 26 Apr 2012 21:53:33 +0200
Message-ID: <CA+XUKch4n5S0dCreRnRvU6adOLf8O_sDv_ok3uUK_iq3TjqBkw@mail.gmail.com>
Subject: Re: [libssh2] meaning of -37 "Failed getting banner" / "Unable to
 exchange encryption keys" /
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============1459408952=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============1459408952==
Content-Type: multipart/alternative; boundary=14dae93410fdc1f71704be9a5726

--14dae93410fdc1f71704be9a5726
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Hi TJ,

strangely, there isn't, but instead a return code of -1 means poll()
throwing an error =96 namely "Interrupted system call" (errno=3D4).

*poll*() returns the number of descriptors that are ready for I/O, or
-1 if an error occurred.  If the time limit expires, *poll*() returns
0.  If *poll*() returns with an error, including one due to an
interrupted call, the fds array will be unmodified.
(http://www.daemon-systems.org/man/poll.2.html)


Seemingly, this has something to do with a property of

session->socket_fd


Thanks for your interest, Nick

2012/4/26 TJ Saunders <tj@castaglia.org>

>
> > With your method, the error message is 'Resource temporarily unavailabl=
e'
> > (!)
> >
> > Digging deeper, I found two remarkable things:
> >
> > 1) session->api_timeout =3D=3D 0
> > ... might be due to the interface (no session->api_timeout set??), but
> this
> > doesn't seem to lead to program interruption.
> >
> > 2) in session.c::_libssh2_wait_socket(), line 632 =96 HAVE_POLL holds..=
.
> >
> > rc =3D poll(sockets, 1, has_timeout?ms_to_next: -1);
> >
> > returns -1, which directly leads to LIBSSH2_ERROR_TIMEOUT.
> >
> > Any idea??
>
> From that "Main: TIMEOUT" message you reported, it sounds like your
> application (which is using libssh2) has some sort of overall
> timeout/timer set.  Is it possible that that timer is being exceeded
> unexpectedly, or set too short?
>
> TJ
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>   Mankind will not be reasoned out of the feelings of humanity.
>
>        -Sir William Blackstone
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> _______________________________________________
> libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel
>
>

--14dae93410fdc1f71704be9a5726
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<div class=3D"gmail_extra">Hi TJ,</div><div class=3D"gmail_extra"><br></div=
><div class=3D"gmail_extra">strangely, there isn&#39;t, but instead a retur=
n code of -1 means poll() throwing an error =96 namely &quot;Interrupted sy=
stem call&quot; (errno=3D4).</div>
<div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra"><pre style=
=3D"font-size:medium"><strong>poll</strong>() returns the number of descrip=
tors that are=A0ready for I/O, or -1 if an error occurred.  If the time lim=
it expires, <strong>poll</strong>() returns 0.  If <strong>poll</strong>() =
returns with an error, including one due to an interrupted call, the <span =
class=3D"underline" style=3D"text-decoration:underline">fds</span> array wi=
ll be unmodified. (<a href=3D"http://www.daemon-systems.org/man/poll.2.html=
">http://www.daemon-systems.org/man/poll.2.html</a>)</pre>
</div><div class=3D"gmail_extra"><br></div><div class=3D"gmail_extra">Seemi=
ngly, this has something to do with a property of=A0</div><div class=3D"gma=
il_extra"><br></div><blockquote style=3D"margin:0 0 0 40px;border:none;padd=
ing:0px">
<div class=3D"gmail_extra">session-&gt;socket_fd</div></blockquote><div cla=
ss=3D"gmail_extra"><br></div><div class=3D"gmail_extra">Thanks for your int=
erest, Nick<br><br><div class=3D"gmail_quote">2012/4/26 TJ Saunders <span d=
ir=3D"ltr">&lt;<a href=3D"mailto:tj@castaglia.org" target=3D"_blank">tj@cas=
taglia.org</a>&gt;</span><br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex"><div class=3D"im"><br>
&gt; With your method, the error message is &#39;Resource temporarily unava=
ilable&#39;<br>
&gt; (!)<br>
&gt;<br>
&gt; Digging deeper, I found two remarkable things:<br>
&gt;<br>
&gt; 1) session-&gt;api_timeout =3D=3D 0<br>
&gt; ... might be due to the interface (no session-&gt;api_timeout set??), =
but this<br>
&gt; doesn&#39;t seem to lead to program interruption.<br>
&gt;<br>
&gt; 2) in session.c::_libssh2_wait_socket(), line 632 =96 HAVE_POLL holds.=
..<br>
&gt;<br>
&gt; rc =3D poll(sockets, 1, has_timeout?ms_to_next: -1);<br>
&gt;<br>
&gt; returns -1, which directly leads to LIBSSH2_ERROR_TIMEOUT.<br>
&gt;<br>
&gt; Any idea??<br>
<br>
</div>From that &quot;Main: TIMEOUT&quot; message you reported, it sounds l=
ike your<br>
application (which is using libssh2) has some sort of overall<br>
timeout/timer set. =A0Is it possible that that timer is being exceeded<br>
unexpectedly, or set too short?<br>
<br>
TJ<br>
<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
<br>
 =A0 Mankind will not be reasoned out of the feelings of humanity.<br>
<br>
 =A0 =A0 =A0 =A0-Sir William Blackstone<br>
<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>______=
_________________________________________<br>
libssh2-devel <a href=3D"http://cool.haxx.se/cgi-bin/mailman/listinfo/libss=
h2-devel" target=3D"_blank">http://cool.haxx.se/cgi-bin/mailman/listinfo/li=
bssh2-devel</a><br>
<br></blockquote></div><br></div>

--14dae93410fdc1f71704be9a5726--

--===============1459408952==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============1459408952==--

From libssh2-devel-bounces@cool.haxx.se  Thu Apr 26 22:04:01 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3QK3u0d007046;
	Thu, 26 Apr 2012 22:03:59 +0200
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com
 [66.111.4.27])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3QK3r0s006921
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Thu, 26 Apr 2012 22:03:54 +0200
Received: from compute1.internal (compute1.nyi.mail.srv.osa [10.202.2.41])
 by gateway1.nyi.mail.srv.osa (Postfix) with ESMTP id 3878021AB3
 for <libssh2-devel@cool.haxx.se>; Thu, 26 Apr 2012 16:03:54 -0400 (EDT)
Received: from frontend2.nyi.mail.srv.osa ([10.202.2.161])
 by compute1.internal (MEProxy); Thu, 26 Apr 2012 16:03:55 -0400
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=castaglia.org; h=
 date:from:to:subject:in-reply-to:message-id:references
 :mime-version:content-type; s=mesmtp; bh=SW4qQQ/8lhqWJ9nzRJVgMw1
 BDWE=; b=qB+a+AgIco0CPxAKlM+nnmqhDjas5hOpmTrqi8fpGzuYngJb7kTGRks
 12JFYS+k1WSocTs9jPiQmKZ4ab/9OB+qwjjjOBfC1GrFqYZJua7UEOACUT5ylicZ
 xu5CgAcYcz6MoAKYaTolngEDMsA/nil+c93BTItpombrkgQfKWnc=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=
 messagingengine.com; h=date:from:to:subject:in-reply-to
 :message-id:references:mime-version:content-type; s=smtpout; bh=
 SW4qQQ/8lhqWJ9nzRJVgMw1BDWE=; b=PDQ7UuYgzkqTf4B7uDzp4p//CUjRa0pM
 5Rl6zpGfTc4UjpvEymSylIxv8bhpqFH+r7jn2b1IavgDFLI6dW+mpH354u4489uc
 U9A5fOxmDYOpZHWCeupg59hoqWSV/W/RDYECUWVVF9VEsqvcBeTcb7nVg42byB6S
 XOCO/WQCsG8=
X-Sasl-enc: pS+Ws/NuA417YC4EcqNXff8buutiLXJshefCpKzd0ftt 1335470633
Received: from familiar.local (64-71-23-251.static.wiline.com [64.71.23.251])
 by mail.messagingengine.com (Postfix) with ESMTPSA id D2CE5482787
 for <libssh2-devel@cool.haxx.se>; Thu, 26 Apr 2012 16:03:53 -0400 (EDT)
Date: Thu, 26 Apr 2012 13:03:52 -0700 (PDT)
From: TJ Saunders <tj@castaglia.org>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: [libssh2] meaning of -37 "Failed getting banner" / "Unable to
 exchange encryption keys" /
In-Reply-To: <CA+XUKch4n5S0dCreRnRvU6adOLf8O_sDv_ok3uUK_iq3TjqBkw@mail.gmail.com>
Message-ID: <alpine.DEB.2.00.1204261301090.3570@familiar.castaglia.org>
References: <CA+XUKcgr3iE8skx=RM_6J+nFBL-y+rkOAK2DE=Js173nFjC0UA@mail.gmail.com>
 <alpine.DEB.2.00.1204251301390.3570@familiar.castaglia.org>
 <CA+XUKcgAfK5=kRVZMeNO4=GRo=UdA+BoA-RzyFMMAN+9h17=Gw@mail.gmail.com>
 <alpine.DEB.2.00.1204261056060.3570@familiar.castaglia.org>
 <CA+XUKch4n5S0dCreRnRvU6adOLf8O_sDv_ok3uUK_iq3TjqBkw@mail.gmail.com>
User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-722053970-1335470633=:3570"
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--8323328-722053970-1335470633=:3570
Content-Type: TEXT/PLAIN; charset=windows-1252
Content-Transfer-Encoding: 8BIT


> strangely, there isn't, but instead a return code of -1 means poll()
> throwing an error – namely "Interrupted system call" (errno=4).

This can happen if, for example, some other portion of your code uses 
alarm(3) (or something similar), i.e. some other signal was received by 
your process which interrupted the poll(2) call.  So to progress on your 
task, maybe you can install signal handlers for the various signals; each 
signal handler could set a bit in some bitset indicating which signal was 
received.  Thus any time you get an errno of EINTR, you can check that 
bitset to see which signal interrupted your system call.

Hope this helps,
TJ

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   The reasonable man adapts himself to the world: the unreasonable
   man persists in trying to adapt the world to himself.  Therefore
   all progress depends on the unreasonable man.

   	-George Bernard Shaw

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--8323328-722053970-1335470633=:3570
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--8323328-722053970-1335470633=:3570--

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 28 13:18:25 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3SBHvHZ021419;
	Sat, 28 Apr 2012 13:18:18 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3SBHsD8021387
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Sat, 28 Apr 2012 13:17:55 +0200
Received: by iahk25 with SMTP id k25so2785420iah.41
 for <libssh2-devel@cool.haxx.se>; Sat, 28 Apr 2012 04:17:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20120113;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :content-type; bh=lUdlx0U0eJ4bLtbyAbsZ7aDn12TiNStL7Z+xWDUTJx0=;
 b=oJoZaNImd3eurArxBCUepLcsNNeAg7GD4dIKLK/P4S6oQUimien4ImjmTyx3NJxyYx
 MyIrsk7np89IqSY+SVAhumnVh5k3RaLjpKz4p0KjMF1/l6HuWUXtavxqUcefqBXq1uq7
 p5piDj7YoDSVAwjEZUQKHp36lnp1yyXfL2DruARaakt/8AcoeF2EkKhBfM2QIffpXsW1
 rG3drSFHSb+bBjpPQXxUh1FAUIqOEI5fnuE1Imj8Clerx4Vhrx/fDEXKUte3n5xp+K+B
 DKZ10/iqnnhuKQhKOIPKUuQDNsBWmKe3JCLflimLLOL2ZEqOn2zgh5p6XTzS2kzFmHbY
 uPUA==
MIME-Version: 1.0
Received: by 10.50.155.132 with SMTP id vw4mr5514716igb.27.1335611870201; Sat,
 28 Apr 2012 04:17:50 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Sat, 28 Apr 2012 04:17:50 -0700 (PDT)
In-Reply-To: <alpine.DEB.2.00.1204261301090.3570@familiar.castaglia.org>
References: <CA+XUKcgr3iE8skx=RM_6J+nFBL-y+rkOAK2DE=Js173nFjC0UA@mail.gmail.com>
 <alpine.DEB.2.00.1204251301390.3570@familiar.castaglia.org>
 <CA+XUKcgAfK5=kRVZMeNO4=GRo=UdA+BoA-RzyFMMAN+9h17=Gw@mail.gmail.com>
 <alpine.DEB.2.00.1204261056060.3570@familiar.castaglia.org>
 <CA+XUKch4n5S0dCreRnRvU6adOLf8O_sDv_ok3uUK_iq3TjqBkw@mail.gmail.com>
 <alpine.DEB.2.00.1204261301090.3570@familiar.castaglia.org>
Date: Sat, 28 Apr 2012 13:17:50 +0200
Message-ID: <CA+XUKciZ5K-Gz08gbNUL9hfPB3biVOu89iGihyauFCmA40TvXw@mail.gmail.com>
Subject: Re: [libssh2] meaning of -37 "Failed getting banner" / "Unable to
 exchange encryption keys" /
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0088524525=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--===============0088524525==
Content-Type: multipart/alternative; boundary=e89a8f3bb04314c9a804bebb5fdd

--e89a8f3bb04314c9a804bebb5fdd
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Hi TJ,

to be honest, I did not understand you completely, as there is no other
code left to emit a signal, neither in Haskell, nor the C code =96 you told
an interference can't come from other sources, didn't you?

Meanwhile, I extended libssh2 by a new function with roughly the
functionality of examples/ssh2.c libssh2_test():

LIBSSH2_API void libssh2_test(void){
  struct sockaddr_in sin;
  LIBSSH2_SESSION *session;
  const char *fingerprint;
  LIBSSH2_CHANNEL *channel;
  const unsigned long hostaddr=3D htonl(0x7F000001);
  const char *username=3D "i";
  const char *keyfile1=3D"/home/i/.ssh/id_rsa.pub";
  const char *keyfile2=3D"/home/i/.ssh/id_rsa";
  const char *password=3D "D0r1nha23";
  int got=3D 0;
  int sock=3D socket(AF_INET, SOCK_STREAM, 0);
  sin.sin_family=3D AF_INET;
  sin.sin_port=3D htons(22);
  sin.sin_addr.s_addr=3D hostaddr;
  if(connect( sock, (struct sockaddr*)(&sin), sizeof(struct sockaddr_in)
            ) !=3D 0 ) {
    fprintf(stderr, "failed to connect!\n");
    return;
  }
  session=3D libssh2_session_init();
  libssh2_trace(session,~0);
  if(libssh2_session_handshake(session, sock)) {
    _libssh2_debug(session, LIBSSH2_TRACE_TRANS
                  , "Failure establishing SSH session" );
    return;
  }
  fingerprint=3D libssh2_hostkey_hash(session, LIBSSH2_HOSTKEY_HASH_SHA1);
  libssh2_userauth_list(session, username, strlen(username)); // ??
  if(libssh2_userauth_publickey_fromfile( session
                                        , username
                                        , keyfile1
                                        , keyfile2
                                        , password )) {
    _libssh2_debug(session, LIBSSH2_TRACE_TRANS
                  , "\tAuthentication by public key failed!" );
    return;
  } else {
    _libssh2_debug( session, LIBSSH2_TRACE_TRANS
                  , "\tAuthentication by public key succeeded." );
    if(!(channel=3D libssh2_channel_open_session(session))) {
      _libssh2_debug( session, LIBSSH2_TRACE_TRANS
                    , "Unable to open a session" );
      return;
    } else {
      libssh2_channel_setenv(channel, "FOO", "bar");
      if(libssh2_channel_request_pty(channel, "vanilla")) {
        _libssh2_debug( session, LIBSSH2_TRACE_TRANS
                      , "Failed requesting pty" );
      } else {
        if(libssh2_channel_shell(channel)) {
          _libssh2_debug( session, LIBSSH2_TRACE_TRANS
                        , "Unable to request shell on allocated pty" );
        } else {
          if(channel){
            libssh2_channel_free(channel);
            channel=3D NULL;
          }
        }
      }
    }
  }
  libssh2_session_disconnect( session
                            , "Normal Shutdown, Thank you for playing" );
  libssh2_session_free(session);
  close(sock);
  libssh2_exit();
  return;
}

A call to libssh2_test() runs flawless from C, while from Haskell, using
two different approaches, without any other Haskell statements, leads to
EINTR. I sent a question to a Haskell mailing list in how far, such a
signal might have its origin in the Haskell foreign function interface.

Thanks for your support, and a nice weekend, Nick

--e89a8f3bb04314c9a804bebb5fdd
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<div>Hi TJ,=A0</div><div><br></div><div>to be honest, I did not understand =
you completely, as there is no other code left to emit a signal, neither in=
 Haskell, nor the C code =96 you told an interference can&#39;t come from o=
ther sources, didn&#39;t you?</div>
<div><br></div><div>Meanwhile, I extended libssh2 by a new function with ro=
ughly the functionality of examples/ssh2.c libssh2_test():</div><div><br></=
div><div><span style>LIBSSH2_API void libssh2_test(void){</span><br style>
<span style>=A0 struct sockaddr_in sin;</span><br style><span style>=A0 LIB=
SSH2_SESSION *session;</span><br style><span style>=A0 const char *fingerpr=
int;</span><br style><span style>=A0 LIBSSH2_CHANNEL *channel;</span><br st=
yle>
<span style>=A0 const unsigned long hostaddr=3D htonl(0x7F000001);</span><b=
r style><span style>=A0 const char *username=3D &quot;i&quot;;</span><br st=
yle><span style>=A0 const char *keyfile1=3D&quot;/home/i/.ssh/id_</span><sp=
an style>rsa.pub&quot;;</span><br style>
<span style>=A0 const char *keyfile2=3D&quot;/home/i/.ssh/id_</span><span s=
tyle>rsa&quot;;</span><br style><span style>=A0 const char *password=3D &qu=
ot;D0r1nha23&quot;;</span><br style><span style>=A0 int got=3D 0;</span><br=
 style><span style>=A0 int sock=3D socket(AF_INET, SOCK_STREAM, 0);</span><=
br style>
<span style>=A0 sin.sin_family=3D AF_INET;</span><br style><span style>=A0 =
sin.sin_port=3D htons(22);</span><br style><span style>=A0 sin.sin_addr.s_a=
ddr=3D hostaddr;</span><br style><span style>=A0 if(connect( sock, (struct =
sockaddr*)(&amp;sin), sizeof(struct sockaddr_in)</span><br style>
<span style>=A0 =A0 =A0 =A0 =A0 =A0 ) !=3D 0 ) {</span><br style><span styl=
e>=A0 =A0 fprintf(stderr, &quot;failed to connect!\n&quot;);</span><br styl=
e><span style>=A0 =A0 return;</span><br style><span style>=A0 }</span><br s=
tyle><span style>=A0 session=3D libssh2_session_init();</span><br style>
<span style>=A0 libssh2_trace(session,~0);</span><br style><span style>=A0 =
if(libssh2_session_handshake(</span><span style>session, sock)) {</span><br=
 style><span style>=A0 =A0 _libssh2_debug(session, LIBSSH2_TRACE_TRANS</spa=
n><br style>
<span style>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 , &quot;Failure establishin=
g SSH session&quot; );</span><br style><span style>=A0 =A0 return;</span><b=
r style><span style>=A0 }</span><br style><span style>=A0 fingerprint=3D li=
bssh2_hostkey_hash(session, LIBSSH2_HOSTKEY_HASH_SHA1);</span><br style>
<span style>=A0 libssh2_userauth_list(session, username, strlen(username));=
 // ??</span><br style><span style>=A0 if(libssh2_userauth_publickey_</span=
><span style>fromfile( session</span><br style><span style>=A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 , username<=
/span><br style>
<span style>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A0 =A0 , keyfile1</span><br style><span style>=A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 , keyfile2</sp=
an><br style><span style>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 , password )) {</span><br style>
<span style>=A0 =A0 _libssh2_debug(session, LIBSSH2_TRACE_TRANS</span><br s=
tyle><span style>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 , &quot;\tAuthenticati=
on by public key failed!&quot; );</span><br style><span style>=A0 =A0 retur=
n;</span><br style><span style>=A0 } else {</span><br style>
<span style>=A0 =A0 _libssh2_debug( session, LIBSSH2_TRACE_TRANS</span><br =
style><span style>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 , &quot;\tAuthenticat=
ion by public key succeeded.&quot; );</span><br style><span style>=A0 =A0 i=
f(!(channel=3D libssh2_channel_open_session(</span><span style>session))) {=
</span><br style>
<span style>=A0 =A0 =A0 _libssh2_debug( session, LIBSSH2_TRACE_TRANS</span>=
<br style><span style>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 , &quot;Unabl=
e to open a session&quot; );</span><br style><span style>=A0 =A0 =A0 return=
;</span><br style><span style>=A0 =A0 } else {</span><br style>
<span style>=A0 =A0 =A0 libssh2_channel_setenv(</span><span style>channel, =
&quot;FOO&quot;, &quot;bar&quot;);</span><br style><span style>=A0 =A0 =A0 =
if(libssh2_channel_request_</span><span style>pty(channel, &quot;vanilla&qu=
ot;)) {</span><br style>
<span style>=A0 =A0 =A0 =A0 _libssh2_debug( session, LIBSSH2_TRACE_TRANS</s=
pan><br style><span style>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 , &qu=
ot;Failed requesting pty&quot; );</span><br style><span style>=A0 =A0 =A0 }=
 else {</span><br style><span style>=A0 =A0 =A0 =A0 if(libssh2_channel_shel=
l(</span><span style>channel)) {</span><br style>
<span style>=A0 =A0 =A0 =A0 =A0 _libssh2_debug( session, LIBSSH2_TRACE_TRAN=
S</span><br style><span style>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 , &quot;Unable to request shell on allocated pty&quot; );</span><br sty=
le><span style>=A0 =A0 =A0 =A0 } else {</span><br style>
<span style>=A0 =A0 =A0 =A0 =A0 if(channel){</span><br style><span style>=
=A0 =A0 =A0 =A0 =A0 =A0 libssh2_channel_free(channel);</span><br style><spa=
n style>=A0 =A0 =A0 =A0 =A0 =A0 channel=3D NULL;</span><br style><span styl=
e>=A0 =A0 =A0 =A0 =A0 }</span><br style><span style>=A0 =A0 =A0 =A0 }</span=
><br style>
<span style>=A0 =A0 =A0 }</span><br style><span style>=A0 =A0 }</span><br s=
tyle><span style>=A0 }</span><br style><span style>=A0 libssh2_session_disc=
onnect( session</span><br style><span style>=A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A0 =A0 =A0 =A0 , &quot;Normal Shutdown, Thank you for playing&quo=
t; );</span><br style>
<span style>=A0 libssh2_session_free(session);</span><br style><span style>=
=A0 close(sock);</span><br style><span style>=A0 libssh2_exit();</span><br =
style><span style>=A0 return;</span><br style><span style>}</span></div><di=
v><br>
</div><div>A call to libssh2_test() runs flawless from C, while from Haskel=
l, using two different approaches, without any other Haskell statements, le=
ads to EINTR. I sent a question to a Haskell mailing list in how far, such =
a signal might have its origin in the Haskell foreign function interface.</=
div>
<div><br></div><div>Thanks for your support, and a nice weekend, Nick</div>=
<div><br></div><div><br></div>

--e89a8f3bb04314c9a804bebb5fdd--

--===============0088524525==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0088524525==--

From libssh2-devel-bounces@cool.haxx.se  Sat Apr 28 23:02:14 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3SL1kdG013103;
	Sat, 28 Apr 2012 23:02:07 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3SL1jZC013084
 for <libssh2-devel@cool.haxx.se>; Sat, 28 Apr 2012 23:01:45 +0200
Received: (qmail 29607 invoked by uid 501); 28 Apr 2012 21:01:45 -0000
Message-ID: <20120428210145.29606.qmail@stuge.se>
Date: Sat, 28 Apr 2012 23:01:45 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: [libssh2] meaning of -37 "Failed getting banner" / "Unable to
 exchange encryption keys" /
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <CA+XUKcgr3iE8skx=RM_6J+nFBL-y+rkOAK2DE=Js173nFjC0UA@mail.gmail.com>
 <alpine.DEB.2.00.1204251301390.3570@familiar.castaglia.org>
 <CA+XUKcgAfK5=kRVZMeNO4=GRo=UdA+BoA-RzyFMMAN+9h17=Gw@mail.gmail.com>
 <alpine.DEB.2.00.1204261056060.3570@familiar.castaglia.org>
 <CA+XUKch4n5S0dCreRnRvU6adOLf8O_sDv_ok3uUK_iq3TjqBkw@mail.gmail.com>
 <alpine.DEB.2.00.1204261301090.3570@familiar.castaglia.org>
 <CA+XUKciZ5K-Gz08gbNUL9hfPB3biVOu89iGihyauFCmA40TvXw@mail.gmail.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <CA+XUKciZ5K-Gz08gbNUL9hfPB3biVOu89iGihyauFCmA40TvXw@mail.gmail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Nick Rudnick wrote:
> you told an interference can't come from other sources, didn't you?

No. Signals can be sent to any process by any process with the same
or higher privileges in the system. This is a fundamental unix truth.


> A call to libssh2_test() runs flawless from C, while from Haskell, using
> two different approaches, without any other Haskell statements, leads to
> EINTR. I sent a question to a Haskell mailing list in how far, such a
> signal might have its origin in the Haskell foreign function interface.

I don't think the foreign function interface is neccessarily
involved, but some other part of Haskell can of course be sending a
signal to your process.

Write a minimal example and run it with strace -fF and hope that you
will see some process sending it.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Sun Apr 29 10:59:03 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3T8wdhR011703;
	Sun, 29 Apr 2012 10:58:59 +0200
Received: from mailout.il.cyber-ark.com (mailout.il.cyber-ark.com
 [194.90.225.107])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3T8wbJ8011668
 for <libssh2-devel@cool.haxx.se>; Sun, 29 Apr 2012 10:58:38 +0200
Received: from ca-il-prod2.il.cyber-ark.com ([192.168.47.22]) by
 mailout.il.cyber-ark.com with Microsoft SMTPSVC(6.0.3790.4675); 
 Sun, 29 Apr 2012 11:58:32 +0300
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Subject: SFTP using libSSH2
Date: Sun, 29 Apr 2012 11:57:13 +0300
Message-ID: <FCFB4726EE8B1349BC1FD4D89C0B272C06348B38@ca-il-prod2.il.cyber-ark.com>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: SFTP using libSSH2
Thread-Index: Ac0l5hG9r6Bjr0ttR2aNmUFmR0oLCA==
From: "Michal Lev" <michall@cyber-ark.com>
To: <libssh2-devel@cool.haxx.se>
X-OriginalArrivalTime: 29 Apr 2012 08:58:32.0367 (UTC)
 FILETIME=[40CFABF0:01CD25E6]
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: multipart/mixed; boundary="===============0612786717=="
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

This is a multi-part message in MIME format.

--===============0612786717==
Content-class: urn:content-classes:message
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01CD25E6.40857AD5"

This is a multi-part message in MIME format.

------_=_NextPart_001_01CD25E6.40857AD5
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hello,

=20

I'm using libSSH2 for connecting to remote server with SFTP protocol. I
doing it using Curl that use OpenSSL and libssh2.

I need to know which bug\change causing me to succeed to connect to the
target server, after upgrading the libssh2 version from version 1.1.

=20

When I using curl.exe (7.19.4) and OpenSSL(0.8.9) and LibSSH2(1.1)=20
I get the error:=20
curl: (79) Could not open directory for reading: Unknown error in
libssh2.=20

When trying to connect with curl.exe (7.19.4)  and OpenSSL(0.8.9) and
upgrade the LibSSH2(1.2.7\1.4)=20
I success to connect.

=20

Target Server information:

operating system :OpenVMS.=20
SSH server : TCPWare=20
SSH version : SSH2.=20
Extra info: standard SSH over the standard port

=20

What where the problem in LibSSH2 ver 1.1 ? Is it connected to the
server type I'm using? Or it something else?

=20

Thanks!

Michal


------_=_NextPart_001_01CD25E6.40857AD5
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
xmlns=3D"http://www.w3.org/TR/REC-html40"><head><META =
HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii"><meta name=3DGenerator content=3D"Microsoft Word 12 =
(filtered medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-US link=3Dblue =
vlink=3Dpurple><div class=3DWordSection1><p class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'>Hello,<o:p></o:p><=
/span></p><p class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'><o:p>&nbsp;</o:p><=
/span></p><p class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'>I'm using libSSH2 =
for connecting to remote server with SFTP protocol. I doing it using =
Curl that use OpenSSL and libssh2.<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'>I need to know =
which bug\change causing me to succeed to connect to the target server, =
after upgrading the libssh2 version from version =
1.1.<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'><o:p>&nbsp;</o:p><=
/span></p><p class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'>When I using =
curl.exe (7.19.4) and OpenSSL(0.8.9) and <b>LibSSH2(1.1)</b> <br>I get =
the error: <br>curl: (79) Could not open directory for reading: Unknown =
error in libssh2. <br><br>When trying to connect with curl.exe (7.19.4) =
&nbsp;and OpenSSL(0.8.9) and <b>upgrade the LibSSH2(1.2.7\1.4)</b> <br>I =
success to connect.<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'><o:p>&nbsp;</o:p><=
/span></p><p class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'>Target Server =
information:<o:p></o:p></span></p><p class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'>operating system =
:OpenVMS. <br>SSH server : TCPWare <br>SSH version : SSH2. <br>Extra =
info: standard SSH over the standard port<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'><o:p>&nbsp;</o:p><=
/span></p><p class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'>What where the =
problem in <b>LibSSH2 ver 1.1 </b>? Is it connected to the server type =
I'm using? Or it something else?<o:p></o:p></span></p><p =
class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'><o:p>&nbsp;</o:p><=
/span></p><p class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'>Thanks!<o:p></o:p>=
</span></p><p class=3DMsoNormal><span =
style=3D'font-family:"Arial","sans-serif";color:black'>Michal</span><o:p>=
</o:p></p></div></body></html>
------_=_NextPart_001_01CD25E6.40857AD5--

--===============0612786717==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--===============0612786717==--

From libssh2-devel-bounces@cool.haxx.se  Sun Apr 29 11:19:39 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3T9JX0v028817;
	Sun, 29 Apr 2012 11:19:38 +0200
Received: from foo.stuge.se (qmailr@foo.stuge.se [212.116.89.98])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with SMTP id q3T9JX05028749
 for <libssh2-devel@cool.haxx.se>; Sun, 29 Apr 2012 11:19:33 +0200
Received: (qmail 22159 invoked by uid 501); 29 Apr 2012 09:19:33 -0000
Message-ID: <20120429091933.22158.qmail@stuge.se>
Date: Sun, 29 Apr 2012 11:19:33 +0200
From: Peter Stuge <peter@stuge.se>
To: libssh2-devel@cool.haxx.se
Subject: Re: SFTP using libSSH2
Mail-Followup-To: libssh2-devel@cool.haxx.se
References: <FCFB4726EE8B1349BC1FD4D89C0B272C06348B38@ca-il-prod2.il.cyber-ark.com>
MIME-Version: 1.0
Content-Disposition: inline
In-Reply-To: <FCFB4726EE8B1349BC1FD4D89C0B272C06348B38@ca-il-prod2.il.cyber-ark.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

Hi Michal,

Michal Lev wrote:
> I need to know which bug\change causing me to succeed to connect to the
> target server, after upgrading the libssh2 version from version 1.1.

Noone can tell you this but you can quite trivially find out
yourself by using git bisect.

Create a script to build libssh2 and your application, and run your
application and return error or success.

Study the git bisect documentation. You will do a git clone of the
libssh2 code repository, and then do something like:

git bisect start RELEASE.1.1 libssh2-1.2.7 -- && \
  git bisect run yourscript

This will then output which of the 499 commits between 1.1 and 1.2.7
has fixed your problem.


> What where the problem in LibSSH2 ver 1.1 ?

There were obviously at least 499 problems fixed in 1.2.7.


> Is it connected to the server type I'm using? Or it something else?

It's silly to believe that anyone can answer you. You just have to
test it. git makes it trivial.


//Peter
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 30 11:31:31 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3U9V7th018142;
	Mon, 30 Apr 2012 11:31:26 +0200
Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com
 [209.85.210.182])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3U9V4tJ017991
 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT)
 for <libssh2-devel@cool.haxx.se>; Mon, 30 Apr 2012 11:31:05 +0200
Received: by iahk25 with SMTP id k25so5438019iah.41
 for <libssh2-devel@cool.haxx.se>; Mon, 30 Apr 2012 02:31:00 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=googlemail.com; s=20120113;
 h=mime-version:date:message-id:subject:from:to:content-type;
 bh=i4KrHWmWh2MiEqghwVlBubbPpyiYl0IqBQFJq7ubQzw=;
 b=bGEN8RTx2a3FwNnKYrdDW2e+wJGBXpiyvFJDxiB8sVzQZdqGMde7tNuBTb+VLs+NM1
 qNHDHmweIn11vab7hU7nhA0T59afgd6QCUjBUmdk9f7WjgrZ4CmO2nQb19B0AqYtOM+I
 fldTv5dilM7Hid76W8ax6E4v17isnaabbinyrlZMFgWh/8ZHdxSgmbTU1R7/XPKVJGLr
 tfQJMEwYbYL7Q2F95kUe1rCQSFbBFs+/TiChhmIzvrigUGSWLk4IqnSyNFBYM1bKEn6X
 UjR/LT+aM90twsagrq+fcf5vB3uDgI1tD8YL8XlZv2KDvyqUSH/BYg4OCDhYcuKAIn1P
 RL7w==
MIME-Version: 1.0
Received: by 10.43.44.2 with SMTP id ue2mr266512icb.9.1335778260427; Mon, 30
 Apr 2012 02:31:00 -0700 (PDT)
Received: by 10.43.124.195 with HTTP; Mon, 30 Apr 2012 02:31:00 -0700 (PDT)
Date: Mon, 30 Apr 2012 11:31:00 +0200
Message-ID: <CA+XUKci=tEcN9k_hAkaS8cAxsfLRRJCuCY6OJCH-m7vCiWB4yg@mail.gmail.com>
Subject: [libssh2] EINTR treatment at session.c/ _libssh2_wait_socket()
From: Nick Rudnick <nick.rudnick@googlemail.com>
To: libssh2 development <libssh2-devel@cool.haxx.se>
Content-Type: multipart/mixed; boundary=bcaec529a077b6249504bee21ced
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se

--bcaec529a077b6249504bee21ced
Content-Type: multipart/alternative; boundary=bcaec529a077b6249104bee21ceb

--bcaec529a077b6249104bee21ceb
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Dear all,

thanks to your help I was able to find a workaround for my problem, being
in relation to Haskell and maybe other languages emitting signals that may
interfere libssh2 processing (info thanks to Edward Z. Yang):

http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Signals

This problem seems to be solved by a very small modification (diff file is
attached):

663,664c663,666
<         session->err_code =3D LIBSSH2_ERROR_TIMEOUT;
<         return LIBSSH2_ERROR_TIMEOUT;
---
>     if(errno !=3D EINTR){
>             session->err_code =3D LIBSSH2_ERROR_TIMEOUT;
>             return LIBSSH2_ERROR_TIMEOUT;
>     }

Pondering the operational semantics of  _libssh2_wait_socket() now, with
the impression that an EINTR usually would be regarded as a transient
incident, I am asking myself in how far not aborting at EINTR might violate
the intended behavior in any way.

If there were no objections, an introduction to the code base would be
great =96 especially on Windows, where a necessity to compile often means a
considerable amount of effort.

Thanks a lot for your support, Nick

--bcaec529a077b6249104bee21ceb
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Dear all,<div><br></div><div>thanks to your help I was able to find a worka=
round for my problem, being in relation to Haskell and maybe other language=
s emitting signals that may interfere libssh2 processing (info thanks to=A0=
Edward Z. Yang):</div>
<div><br></div><div><a href=3D"http://hackage.haskell.org/trac/ghc/wiki/Com=
mentary/Rts/Signals" target=3D"_blank" style>http://hackage.haskell.org/tra=
c/ghc/wiki/Commentary/Rts/Signals</a></div><div><br></div><div>This problem=
 seems to be solved by a very small modification (diff file is attached):</=
div>
<div><br></div><div><div>663,664c663,666</div><div>&lt; =A0 =A0 =A0 =A0 ses=
sion-&gt;err_code =3D LIBSSH2_ERROR_TIMEOUT;</div><div>&lt; =A0 =A0 =A0 =A0=
 return LIBSSH2_ERROR_TIMEOUT;</div><div>---</div><div>&gt; <span class=3D"=
Apple-tab-span" style=3D"white-space:pre">	</span> =A0 =A0if(errno !=3D EIN=
TR){</div>
<div>&gt; =A0 =A0 =A0 =A0 =A0 =A0 session-&gt;err_code =3D LIBSSH2_ERROR_TI=
MEOUT;</div><div>&gt; =A0 =A0 =A0 =A0 =A0 =A0 return LIBSSH2_ERROR_TIMEOUT;=
</div><div>&gt; <span class=3D"Apple-tab-span" style=3D"white-space:pre">	<=
/span> =A0 =A0}</div></div><div>
<br></div><div>Pondering the operational semantics of=A0=A0_libssh2_wait_so=
cket() now, with the impression that an=A0EINTR usually would be regarded a=
s a transient incident, I am asking myself in how far not aborting at=A0EIN=
TR might violate the intended behavior in any way.=A0</div>
<div><br></div><div>If there were no objections, an introduction to the cod=
e base would be great =96 especially on Windows, where a necessity to compi=
le often means a considerable amount of effort.</div><div><br></div><div>
Thanks a lot for your support, Nick</div><div><br></div>

--bcaec529a077b6249104bee21ceb--
--bcaec529a077b6249504bee21ced
Content-Type: application/octet-stream; name="session.c.diff"
Content-Disposition: attachment; filename="session.c.diff"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_h1nbgaa50

NjYzLDY2NGM2NjMsNjY2CjwgICAgICAgICBzZXNzaW9uLT5lcnJfY29kZSA9IExJQlNTSDJfRVJS
T1JfVElNRU9VVDsKPCAgICAgICAgIHJldHVybiBMSUJTU0gyX0VSUk9SX1RJTUVPVVQ7Ci0tLQo+
IAkgICAgaWYoZXJybm8gIT0gRUlOVFIpewo+ICAgICAgICAgICAgIHNlc3Npb24tPmVycl9jb2Rl
ID0gTElCU1NIMl9FUlJPUl9USU1FT1VUOwo+ICAgICAgICAgICAgIHJldHVybiBMSUJTU0gyX0VS
Uk9SX1RJTUVPVVQ7Cj4gCSAgICB9Cg==
--bcaec529a077b6249504bee21ced
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

--bcaec529a077b6249504bee21ced--

From libssh2-devel-bounces@cool.haxx.se  Mon Apr 30 12:28:45 2012
Return-Path: <libssh2-devel-bounces@cool.haxx.se>
Received: from www.haxx.se (localhost.localdomain [127.0.0.1])
	by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3UASa0x031549;
	Mon, 30 Apr 2012 12:28:43 +0200
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28])
 by giant.haxx.se (8.14.4/8.14.4/Debian-2) with ESMTP id q3UASY8H031540
 for <libssh2-devel@cool.haxx.se>; Mon, 30 Apr 2012 12:28:34 +0200
Received: from int-mx12.intmail.prod.int.phx2.redhat.com
 (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25])
 by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q3UASX0b027726
 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
 Mon, 30 Apr 2012 06:28:33 -0400
Received: from t500.mbooth (vpn1-5-243.ams2.redhat.com [10.36.5.243])
 by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id
 q3UASWGM022322; Mon, 30 Apr 2012 06:28:33 -0400
Message-ID: <4F9E6950.60403@redhat.com>
Date: Mon, 30 Apr 2012 11:28:32 +0100
From: Matthew Booth <mbooth@redhat.com>
Organization: Red Hat
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:12.0) Gecko/20120425 Thunderbird/12.0
MIME-Version: 1.0
To: libssh2 development <libssh2-devel@cool.haxx.se>
Subject: Re: [libssh2] EINTR treatment at session.c/ _libssh2_wait_socket()
References: <CA+XUKci=tEcN9k_hAkaS8cAxsfLRRJCuCY6OJCH-m7vCiWB4yg@mail.gmail.com>
In-Reply-To: <CA+XUKci=tEcN9k_hAkaS8cAxsfLRRJCuCY6OJCH-m7vCiWB4yg@mail.gmail.com>
X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25
Cc: Nick Rudnick <nick.rudnick@googlemail.com>
X-BeenThere: libssh2-devel@cool.haxx.se
X-Mailman-Version: 2.1.14
Precedence: list
Reply-To: libssh2 development <libssh2-devel@cool.haxx.se>
List-Id: libssh2 development <libssh2-devel.cool.haxx.se>
List-Unsubscribe: <http://cool.haxx.se/cgi-bin/mailman/options/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=unsubscribe>
List-Archive: <http://cool.haxx.se/pipermail/libssh2-devel>
List-Post: <mailto:libssh2-devel@cool.haxx.se>
List-Help: <mailto:libssh2-devel-request@cool.haxx.se?subject=help>
List-Subscribe: <http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel>, 
 <mailto:libssh2-devel-request@cool.haxx.se?subject=subscribe>
Content-Type: text/plain; charset="windows-1252"; Format="flowed"
Errors-To: libssh2-devel-bounces@cool.haxx.se
Sender: libssh2-devel-bounces@cool.haxx.se
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by giant.haxx.se id q3UASa0x031549

On 30/04/12 10:31, Nick Rudnick wrote:
> Dear all,
>
> thanks to your help I was able to find a workaround for my problem,
> being in relation to Haskell and maybe other languages emitting signals
> that may interfere libssh2 processing (info thanks to Edward Z. Yang):
>
> http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Signals
>
> This problem seems to be solved by a very small modification (diff file
> is attached):
>
> 663,664c663,666
> <         session->err_code = LIBSSH2_ERROR_TIMEOUT;
> <         return LIBSSH2_ERROR_TIMEOUT;
> ---
>  >    if(errno != EINTR){
>  >             session->err_code = LIBSSH2_ERROR_TIMEOUT;
>  >             return LIBSSH2_ERROR_TIMEOUT;
>  >    }
>
> Pondering the operational semantics of  _libssh2_wait_socket() now, with
> the impression that an EINTR usually would be regarded as a transient
> incident, I am asking myself in how far not aborting at EINTR might
> violate the intended behavior in any way.
>
> If there were no objections, an introduction to the code base would be
> great – especially on Windows, where a necessity to compile often means
> a considerable amount of effort.

The above would cause BLOCK_ADJUST to automatically go around when 
interrupted. This would make it impossible, for example, to allow a user 
to interrupt a long running process with Ctrl-C if the API was in 
blocking mode.

Unfortunately, all uses of IO operations must be wrapped in checks which 
include a test for EINTR. This allows you to do this:

int cancelled = 0;

void signal_handler() {
   cancelled = 1;
}

do {
   rc = libssh2_channel_read();
} while (!rc || (rc == LIBSSH2_ERROR_TIMEOUT && !cancelled));

There should be a different return code for EINTR, though.

Matt
-- 
Matthew Booth, RHCA, RHCSS
Red Hat Engineering, Virtualisation Team

GPG ID:  D33C3490
GPG FPR: 3733 612D 2D05 5458 8A8A 1600 3441 EA19 D33C 3490
_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

