Re: CURL Keberos, how to build or download DLL?

2020-04-19 Thread Jan Ehrhardt via curl-library
Christian Schmitz via curl-library in gmane.comp.web.curl.library (Sun,
19 Apr 2020 17:33:33 +0200):
>I looked into the pre-built CURL DLLs for Windows.
>But those I found on the website are all without Keberos.
>The download website doesn't list the features enabled for each build.

The curl by the curl project itself has Kerberos support:

curl 7.69.1 (x86_64-pc-win32) libcurl/7.69.1 OpenSSL/1.1.1f (Schannel)
zlib/1.2.11 brotli/1.0.7 WinIDN libssh2/1.9.0 nghttp2/1.40.0
Release-Date: 2020-03-11
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps
pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile
MultiSSL NTLM SPNEGO SSL SSPI TLS-SRP brotli libz

https://curl.haxx.se/windows/

The downloads do come with a DLL (in the bin directory). Here is a
snippet of the code that builds it:

https://ci.appveyor.com/project/curlorg/curl-for-win/builds/31857141#L10131

Github project:

https://github.com/curl/curl-for-win

You will probably want a .lib file to use the .dll in your own projects.
Try generating one with procedures like

https://stackoverflow.com/a/37760062/872051
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Looking for a HTTP test server which doesn't send Content-Length

2019-10-22 Thread Jan Ehrhardt via curl-library
Andreas Falkenhahn via curl-library in gmane.comp.web.curl.library (Sat,
19 Oct 2019 18:40:49 +0200):
>Please excuse this slightly off-topic question but I think this is the best
>place to ask about it ;)
>
>So unfortunately, my old test case HTTP server which sent HTTP responses 
>without
>the Content-Length field seems to be gone. Does anybody happen to have a URL
>for a HTTP server which responds without setting Content-Length?

Any server that uses an index.php which does not set the Content-Length.
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: [RELEASE] curl 7.66.0

2019-09-11 Thread Jan Ehrhardt via curl-library
Hi Christoph and Daniel,

Christoph M. Becker (Wed, 11 Sep 2019 14:20:36 +0200):
>On 11.09.2019 at 13:36, Daniel Stenberg via curl-library wrote:
>
>> On Wed, 11 Sep 2019, Daniel Stenberg via curl-library wrote:
>>
 Usng the winbuid system I am running into the error that nmake cannot
 find vquic\ngtcp2.obj. I tried a lot of command-line argumeents.
 Something has changed, but what?
>>
>> Does https://github.com/curl/curl/pull/4323 fix the build for you?
>
>FWIW, it fixes the build for me.

And for me as well. Thanks to Bernhard Walle!
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: [RELEASE] curl 7.66.0

2019-09-11 Thread Jan Ehrhardt via curl-library
Daniel Stenberg (Wed, 11 Sep 2019 08:00:54 +0200 (CEST)):
>  o curl_version_info: offer quic (and h3) library info [38]
>  o see docs/KNOWN_BUGS (https://curl.haxx.se/docs/knownbugs.html)

Usng the winbuid system I am running into the error that nmake cannot
find vquic\ngtcp2.obj. I tried a lot of command-line argumeents.
Something has changed, but what?
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: winbuild: Add MultiSSL support

2019-04-12 Thread Jan Ehrhardt via curl-library
Jan Ehrhardt via curl-library in gmane.comp.web.curl.library (Fri, 12
Apr 2019 23:07:42 +0200):
>PR will follow soon. I just wanted to check here first.

PR: https://github.com/curl/curl/pull/3772

>Daniel Stenberg via curl-library in gmane.comp.web.curl.library (Fri, 12
>Apr 2019 22:39:37 +0200 (CEST)):
>
>>The "/DWINSSL_ENABLED=1" piece looks wrong as we've worked hard recently to 
>>chase away all references to "winssl" and now prefer and use "Schannel".
>
>It is still there in the repo:
>https://github.com/curl/curl/blob/master/configure.ac#L1521
>This is why I added the flag to the makefile command.

I checked: "/DWINSSL_ENABLED=1" is not needed. "/DCURL_WITH_MULTI_SSL"
is enough.

Happy weekend.
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: winbuild: Add MultiSSL support

2019-04-12 Thread Jan Ehrhardt via curl-library
Daniel Stenberg via curl-library in gmane.comp.web.curl.library (Fri, 12
Apr 2019 22:39:37 +0200 (CEST)):

>On Fri, 12 Apr 2019, Jan Ehrhardt via curl-library wrote:
>
>> makefile.m32 and ./configure (when cross-compiling on *nix for Windows) 
>> already support MultiSSL. However the makefiles in /winbuild still prohibit 
>> it. It requires a small adjustment to enable it there too: 
>> https://github.com/Jan-E/cURL-winlibs/commit/3997fc006b3a3650f4b9bdb5b1f508ced04d00fb
>
>Thanks, but why not submit this as a pull request?

PR will follow soon. I just wanted to check here first.

>The "/DWINSSL_ENABLED=1" piece looks wrong as we've worked hard recently to 
>chase away all references to "winssl" and now prefer and use "Schannel".

It is still there in the repo:
https://github.com/curl/curl/blob/master/configure.ac#L1521
This is why I added the flag to the makefile command.

>For the rest of the changes, they seem okay to me but I don't build on 
>Windows.
>
>> See the discussion on https://github.com/winlibs/cURL/issues/13 as well. 
>> Maybe PHP will not implement MultiSSL, but that should be no obstacle to 
>> enable it in Curl itself.
>
>OpenSSL itself does not read/use the Windows certificate store. (Comment based 
>on the discussion in said github issue).

Yes, that is what I thought as well.
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

winbuild: Add MultiSSL support

2019-04-12 Thread Jan Ehrhardt via curl-library
makefile.m32 and ./configure (when cross-compiling on *nix for Windows)
already support MultiSSL. However the makefiles in /winbuild still
prohibit it. It requires a small adjustment to enable it there too:
https://github.com/Jan-E/cURL-winlibs/commit/3997fc006b3a3650f4b9bdb5b1f508ced04d00fb

See the discussion on https://github.com/winlibs/cURL/issues/13 as well.
Maybe PHP will not implement MultiSSL, but that should be no obstacle to
enable it in Curl itself.
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Using Windows certificate store when compiling with openssl

2018-09-07 Thread Jan Ehrhardt via curl-library
Thomas Glanzmann via curl-library (Fri, 7 Sep 2018 12:57:24 +0200):
>Hello Jan,
>
>> x64 builds with OpenSSL just use the Windows certificate store.  That
>> applies even to cross-compiled x64 builds.  Try it yourself
>> https://phpdev.toolsforresearch.com/curl-mingw32-7.61.1.zip
>
>I tried, but it failed for me on w2k8r2. I tried both the 32bit and x64:

Ouch. A lot of programs come with their own curl-ca-bundle.crt: Atlassian
Sourcetree, PortableGit by Github, R (statistics). Apparently one of them found
it necessary to put a curl-ca-bundle.crt in C:\Windows\System32. That one is
automatically used by curl x64.

Sorry, it was not the Windows certificate store.
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Using Windows certificate store when compiling with openssl

2018-09-07 Thread Jan Ehrhardt via curl-library
Daniel Stenberg via curl-library (Fri, 7 Sep 2018 09:30:11 +0200 (CEST)):
>I think it would be great to offer ability that to OpenSSL users on Windows.

It is already there in x64 builds of curl with OpenSSL!
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Using Windows certificate store when compiling with openssl

2018-09-07 Thread Jan Ehrhardt via curl-library
Juan Isoza via curl-library (Fri, 7 Sep 2018 08:57:48 +0200):
>But curl build for windows with openssl need a --insecure parameters or a
>custom certificate file.

x64 builds with OpenSSL just use the Windows certificate store.
That applies even to cross-compiled x64 builds.
Try it yourself https://phpdev.toolsforresearch.com/curl-mingw32-7.61.1.zip
Built with Daniel Jelinski's libssh2 patch
https://github.com/Jan-E/MyMpeg/blob/master/patches/ssh2_sftp_writeback.diff
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: libssh2 optimization [was: Re: Windows users! Help us test upload performance tuning?]

2018-09-02 Thread Jan Ehrhardt via curl-library
Jan Ehrhardt via curl-library (Sun, 26 Aug 2018 16:03:16 +0200):
>Daniel Jelinski via curl-library (Sun, 26 Aug 2018 09:09:58 +0200):
>>added 100ms: original 310kB/sec, patched 9900kB/sec
>
>Impressive results!

Do you have a compiled version somewhere?

I tried to build my own with the 3 patches:

1. winsock
2. oploadbuffer 512 KB
3. sftp writeback in libssh2

Dissappointing results for a 274MB sftp upload against a remote CoreFTP server:
- bash / ssh / lftp: 68 seconds
- openssh portable sftp: 50 seconds
- curl triple patched: 734 seconds
ping of the remote machine: 3-4 ms. Used cipher in openssh portable sftp:
AES128-CBC. In production we have an old version of the CoreFTP server. On our
dev machine I am going to install the most recent CoreFTP server version.
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: libssh2 optimization [was: Re: Windows users! Help us test upload performance tuning?]

2018-08-30 Thread Jan Ehrhardt via curl-library
Jan Ehrhardt via curl-library (Sun, 26 Aug 2018 16:28:47 +0200):
>Daniel Jelinski via curl-library (Sun, 26 Aug 2018 09:09:58 +0200):
>>The patched version is CPU-bound on lower latencies; when the latency
>>goes higher, SSH window becomes the limiting factor. I read that HPN
>>SSH should do better on high latency links, didn't try it out.
>
>A lot of PR's for HPN-SSH came from @allanjude. Interesting stuff:
>http://www.allanjude.com/bsd/AsiaBSDCon2017_-_SSH_Performance.pdf

In May 2017 Allan Jude posted a new HPN patch here:
https://lists.freebsd.org/pipermail/freebsd-current/2017-May/066015.html

Quote:
> In my benchmarks with 100ms of latency (from dummynet) is increases SSH
> send throughput from 1 megabyte/sec to 225 megabytes/sec provided a
> large enough socket buffer.

I cannot reproduce that. I applied a modified version of this patch to
OpenSSH-portable for Windows:
https://github.com/Jan-E/openssh-portable/commit/e5c711f66aa3a14980dc7e0ca8504d0bda614fa6

For anyone that wants to try it:
https://phpdev.toolsforresearch.com/expect.7z

The scripting is done with Expect for Windows:
https://github.com/zetamatta/expect/issues/8#issuecomment-416445736
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: libssh2 optimization [was: Re: Windows users! Help us test upload performance tuning?]

2018-08-26 Thread Jan Ehrhardt via curl-library
Daniel Jelinski via curl-library (Sun, 26 Aug 2018 09:09:58 +0200):
>The patched version is CPU-bound on lower latencies; when the latency
>goes higher, SSH window becomes the limiting factor. I read that HPN
>SSH should do better on high latency links, didn't try it out.

A lot of PR's for HPN-SSH came from @allanjude. Interesting stuff:
http://www.allanjude.com/bsd/AsiaBSDCon2017_-_SSH_Performance.pdf
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: libssh2 optimization [was: Re: Windows users! Help us test upload performance tuning?]

2018-08-26 Thread Jan Ehrhardt via curl-library
Daniel Jelinski via curl-library (Sun, 26 Aug 2018 09:09:58 +0200):
>added 100ms: original 310kB/sec, patched 9900kB/sec

Impressive results!

>The patched version is CPU-bound on lower latencies; when the latency
>goes higher, SSH window becomes the limiting factor. I read that HPN
>SSH should do better on high latency links, didn't try it out.

I had also been looking at HPN SSH. If you try that you should increase the
buffersize as well: https://github.com/rapier1/openssh-portable/pull/11

>https://github.com/djelinski/libssh2/commit/c321b5d3a0ed964b291c710179dde7385e514ef7
>It's not ready for inclusion; it requires cleanup, and breaks SSL
>backends other than openSSL with AES-CTR support.

There is an open issue with AES-CTR in HPN SSH:
https://github.com/rapier1/openssh-portable/issues/13#issuecomment-279778429

I did not run any tests yet. I will see if I can build it for Windows under
Cygwin. https://github.com/rapier1/hpn-ssh/tree/master/contrib/cygwin
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: libssh2 optimization [was: Re: Windows users! Help us test upload performance tuning?]

2018-08-25 Thread Jan Ehrhardt via curl-library
Daniel Jelinski via curl-library (Sun, 26 Aug 2018 01:07:14 +0200):
>sob., 11 sie 2018 o 01:05 Daniel Stenberg  napisa?(a):
>> It would require that libssh2 provides such an API, which it currently 
>> doesn't
>> (and I don't know anyone working on it).
>
>Sent a PR to libssh2 for that: https://github.com/libssh2/libssh2/pull/264

Do you have any stats about the performanceimprovement?
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-18 Thread Jan Ehrhardt via curl-library
Jan Ehrhardt via curl-library (Wed, 15 Aug 2018 22:51:34 +0200):
>Network connection: about 200 Mbits/s up, 200ms latency (speedtest.net)
>Test file: 178 MB mp4
>Protocol: sftp
>
>iPad app  32 KB libssh2 buffer: 2147 seconds
>iPad app 320 KB libssh2 buffer:  737 seconds
>Filezilla (out-of-the-box):  967 seconds
>curl x64 512 KB upload  buffer: 1154 seconds

We had a real oops when we tested the same 178 MB over plain FTP:

curl x64 512KB upload buffer FTP:  16 seconds
https upload php uploadprogress : 489 seconds

  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  176M0 0  100  176M  0  11.0M  0:00:16  0:00:16 --:--:-- 13.6M
start:2.062000 total:16.01500a0

Unencrypted uploads are legally (the HIPAA act) prohibited, but the
price for encryption is really high.
-- 
Jan 

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-15 Thread Jan Ehrhardt via curl-library
Daniel Stenberg via curl-library (Tue, 14 Aug 2018 09:39:21 +0200 (CEST)):
>I think its time we run some tests in an orderly fashion with different upload 
>buffer sizes and collect some numbers...

Feedback on some informal upload tests from Phoenix, Arizona to Amsterdam, NL.
High speed connection. Upload around 200 Mbits/s according to speedtest.net, but
a latency of 200ms. My tester uploaded a 178MB mp4 file first with the unpatched
iPad app (libssh2, not curl), then with a patched iPad app, then used Filezilla
and last, but not least a patched curl.exe.

Network connection: about 200 Mbits/s up, 200ms latency (speedtest.net)
Test file: 178 MB mp4
Protocol: sftp

iPad app  32 KB libssh2 buffer: 2147 seconds
iPad app 320 KB libssh2 buffer:  737 seconds
Filezilla (out-of-the-box):  967 seconds
curl x64 512 KB upload  buffer: 1154 seconds

% Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  176M0 0  100  176M  0   156k  0:19:14  0:19:14 --:--:--  195k
100  176M0 0  100  176M  0   156k  0:19:14  0:19:14 --:--:--  156k
start:2.437000 total:1154.047000

Speed sometimes as low as 125K, said my tester.
At the same time another user from the same network was uploading a 289 MB mp4
file in 1106 seconds, using bash/lftp. At the same speed that would have been
681 seconds for the tester's 178 MB file. bash/lftp may be some 8% faster than
the patched iPad app.
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-14 Thread Jan Ehrhardt via curl-library
Daniel Stenberg via curl-library (Tue, 14 Aug 2018 12:02:46 +0200
(CEST)):
>  Size Seconds  Improvement
>
>  16 KB2.522-
>  64 KB1.281x 1.97
>  128 KB   1.095x 2.30
>  256 KB   0.938x 2.69
>  512 KB   0.860x 2.93

Thanks for the stats. It indicates that my choice for 320 KB in the iOS
app (using sftp) is quite good.

>(Amazingly enough, HTTP/1.1 being 2.33 times faster than HTTP/2 ...)

I remembered reading something about this, but it doesn't seem related
(and was resolved anyway). But maybe it gives a clue:

https://github.com/icing/mod_h2/issues/130
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-14 Thread Jan Ehrhardt via curl-library
Daniel Stenberg via curl-library (Tue, 14 Aug 2018 09:39:21 +0200
(CEST)):
>I think its time we run some tests in an orderly fashion with different upload 
>buffer sizes and collect some numbers...

I did not test if there is a difference on *nix. Did you? Anyway, I
agree with the fact that some testing has to be done. By more than 2 or
3 people...
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-13 Thread Jan Ehrhardt via curl-library
Daniel Stenberg via curl-library (Mon, 13 Aug 2018 23:37:56 +0200
(CEST)):
>On Mon, 13 Aug 2018, Jan Ehrhardt via curl-library wrote:
>
>> Daniel Stenberg (Thu, 9 Aug 2018 16:55:38 +0200 (CEST)):
>> -#define UPLOAD_BUFSIZE CURL_MAX_WRITE_SIZE
>> +#define UPLOAD_BUFSIZE (512*1024)
>>
>> @Daniel Stenberg: is there a reason that is stopping you from changing this 
>> in curl?
>
>Yes. (Pretty much explained already in the TODO: 
>https://curl.haxx.se/docs/todo.html#Modified_buffer_size_approach)

Clear. But what strikes me: only SFTP is mentioned, but my tests
indicated that increasing this value also influenced the FTP upload
speeds. From 10 to 5 seconds on XP in Daniel Jelinski's testcurl
uploads. And down to less than a second on Win 7 and Win 10.

>1. This buffer is allocated as part of the regular easy handle and increasing 
>that allocation this much in one go I fear will cause problems to some 
>existing applications out there. Especially those doing a huge amount of 
>parallel transfers.

I can imagine this. In my iOS app (using libssh2, not curl), there are
no parallel transfers, but only single transfers of typically 200MB+
files.

>2. There's basically only SFTP that needs this huge buffer so it seems 
>wasteful to always use such a large buffer if it isn't necessary. I would like 
>to see it conditionally enlarged if SFTP is indeed used.

Sure? What about FTP uploads? See
https://curl.haxx.se/mail/lib-2018-08/0150.html

>3. I think it might be a good idea to let the application control the SFTP 
>size, so that the 1,000 parallel transfer applications can use a smaller 
>buffer and the single connection apps can use a larger.

The iOS NMSSH library did just that. The buffersize is configurable from
the calling app.

>Besides all that, it would also be interesting to work out what an "ideal" 
>size might be. Is 512KB large enough? Is 256KB enough for 99% of the cases? 
>Would 1MB help in the extremely high speed high latency cases?

In my iOS tests I settled for 320KB, but that was was for a 4-5 ms
latency connection. I have no idea whet the effect would be for high
latency connections. And the app crashed with 512KB, most likely due to
memory allocation issues. Debugging on iOS is no easy job, so I did nit
investigate further.

>Would it be sensible to attempt to detect the situation and dynamicly grow the 
>size if deemed fine?

Ouch. Seems a hell of a job to auto-detect an optimal size. Better make
it configurable from outside (API, command line option).
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows and CA certificates

2018-08-13 Thread Jan Ehrhardt via curl-library
Daniel Jelinski via curl-library (Tue, 7 Aug 2018 23:11:25 +0200):
>I recently started using HTTPS functionality with libcurl + openSSL; I
>noticed that by default this combo does not use Windows certificates,
>but instead wants to load them from CA bundle.

I happened to notice that recent X64 builds with OpenSSL 1.0.2 (and
probably higher as well) actually do use the Windows certificates.
I first noticed this with a cross-compiled X64 build on Ubuntu 16.04,
but later confirmed it for native X64 builds (VC15, VC14, VC11 and even
VC9 x64). No problems with Elliptic-curve ciphers and/or TLS v1.2.

Example with a VC9 x64 build:

C:\>curl --version
curl 7.61.0 (x86_64-pc-win32) libcurl/7.61.0 OpenSSL/1.0.2o zlib/1.2.8
WinIDN libssh2/1.8.0 nghttp2/1.33.0
Release-Date: 2018-07-11
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3
pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
libz HTTP2 HTTPS-proxy

C:\>curl --head https://player.toolsforresearch.com/
HTTP/2 200
date: Mon, 13 Aug 2018 20:26:10 GMT
server: Apache
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
strict-transport-security: max-age=31536000
expect-ct: enforce,max-age=30
vary: Accept-Encoding
x-xss-protection: 1; mode=block
referrer-policy: no-referrer, strict-origin-when-cross-origin
content-type: text/html

Example with a cross-compiled X64 build, zipped in
https://phpdev.toolsforresearch.com/curl-mingw32-7.61.0.zip

C:\>curl-x86_64-w64-mingw32-static.exe --head https://nghttp2.org
HTTP/2 200
date: Mon, 13 Aug 2018 20:18:24 GMT
content-type: text/html
last-modified: Tue, 08 May 2018 13:53:22 GMT
etag: "5af1abd2-19d8"
accept-ranges: bytes
content-length: 6616
x-backend-header-rtt: 0.002717
strict-transport-security: max-age=31536000
server: nghttpx
via: 2 nghttpx
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-13 Thread Jan Ehrhardt via curl-library
Daniel Stenberg (Thu, 9 Aug 2018 16:55:38 +0200 (CEST)):
-#define UPLOAD_BUFSIZE CURL_MAX_WRITE_SIZE
+#define UPLOAD_BUFSIZE (512*1024)

@Daniel Stenberg: is there a reason that is stopping you from changing
this in curl?
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-12 Thread Jan Ehrhardt via curl-library
Daniel Stenberg via curl-library (Thu, 9 Aug 2018 16:55:38 +0200
(CEST)):
>-#define UPLOAD_BUFSIZE CURL_MAX_WRITE_SIZE
>+#define UPLOAD_BUFSIZE (512*1024)

This extra patch also had major speed improvements for Daniel Jelinski's
testcurl.bat. I have now included a fully static
curl-vc9-x86-double-patched.exe in
https://phpdev.toolsforresearch.com/curl-mingw32-7.61.0.zip
The two cross-compiled curl's in the zip have both patches as well.

Microsoft Windows XP [Version 5.1.2600]
generating test file...
running vanilla...
start:0,531000 total:11,469000
running patched...
start:0,546000 total:11,328000
running double patched...
start:0,516000 total:5,266000

Microsoft Windows [Version 6.1.7601]
generating test file...
running vanilla...
start:0,546000 total:9,578000
running patched...
start:0,546000 total:2,698000
running double patched...
start:0,546000 total:0,812000

Microsoft Windows [Version 10.0.17134.165]
generating test file...
running vanilla...
start:0.547000 total:5.125000
running patched...
start:0.515000 total:1.828000
running double patched...
start:0.532000 total:0.813000

Measured on the same machine (a quadruple boot Lenovo X220).

Thanks to this discussion I have also doubled the upload speed in my iOS
app. The 274MB mp4 file uploaded now in 70 seconds in stead of 2:25
minutes:
https://github.com/NMSSH/NMSSH/pull/136#issuecomment-412398204
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-11 Thread Jan Ehrhardt via curl-library
Daniel Jelinski via curl-library (Fri, 10 Aug 2018 22:59:22 +0200):
>Ok, so let's put Linux to a test.

Reality check from a CentOS 6 machine

  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0   667k  0:07:00  0:07:00 --:--:--  667k
start:0.191403 total:420.697969

>0. Patch CURL:

-#define UPLOAD_BUFSIZE CURL_MAX_WRITE_SIZE
+#define UPLOAD_BUFSIZE (512*1024)

  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0  1297k  0:03:36  0:03:36 --:--:-- 1297k
start:0.230242 total:216.560168

If I use lftp on the target Windows 2008 R2 machine to get the file from the
CentOS 6 machine:

c:\>ptime bash /utils/pcx6get.sh um001348.opt.mp4
===  bash /utils/pcx6get.sh um001348.opt.mp4 ===
Execution time: 13.201 s

rsync running on the target Windows 2008 R2 server, syncing from the CentOS, is
even a tiny bit faster:

   287754814 100%   23.35MB/s0:00:11 (xfer#1, to-check=0/1)

sent 30 bytes  received 287790026 bytes  23023204.48 bytes/sec
total size is 287754814  speedup is 1.00

Execution time: 12.183 s
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-10 Thread Jan Ehrhardt via curl-library
Jan Ehrhardt via curl-library (Fri, 10 Aug 2018 17:25:51 +0200):
>running curl-mingw64 sftp
>  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
> Dload  Upload   Total   SpentLeft  Speed
>100  274M0 0  100  274M  0   298k  0:15:42  0:15:42 --:--:--  313k
>100  274M0 0  100  274M  0   298k  0:15:42  0:15:42 --:--:--  298k
>start:0,64 total:942,153000

Gisle sent me a link to his monolitic compiled version. About the same speed
with my 274MB mp4 file:

running curl-monolitic sftp
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0   292k  0:16:00  0:16:00 --:--:--  299k
100  274M0 0  100  274M  0   292k  0:16:00  0:16:00 --:--:--  292k
start:0,468000 total:960,763000

Too bad.
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-10 Thread Jan Ehrhardt via curl-library
Jan Ehrhardt via curl-library (Fri, 10 Aug 2018 03:29:21 +0200):
>Gisle Vanem via curl-library (Thu, 9 Aug 2018 18:31:12 +0200):
>>Jan Ehrhardt wrote:
>>
>>>> Wow dude! 2 times faster than FileZilla now.
>>>>
>>>> Time decreased from 33.153s to 6.4 sec (same random 10 MByte file).
>>>> Versus approx. 5.3 sec for curl/FTP.
>>> 
>>> Using SFTP?
>>
>>Yes:
>>curl.exe -k -# --write-out "speed: %%{speed_upload} bytes/sec, total-time: 
>>%%{time_total}" ^
>>  sftp://xyz -T c:\TEMP\curl-test.file
>>speed: 1649348,000 bytes/sec, total-time: 6,063000
>
>Can you make your compiled version available somewhere? I tried different
>combinations of VC9, VC11, VC14 and x86 / x64 and cannot get it higher than 
>300k
>at the moment.

I even cross-compiled curl.exe with GCC 7.3.1 on a Ubuntu 16.04 machine, linking
libssh2 1.8.0 (also compiled with GCC 7.3.1):
https://phpdev.toolsforresearch.com/curl-mingw32-7.61.0.zip

It has both patches: the winsock patch and the sftp uploadbuffer one. Uploading
over sftp went up from 145k to about 300KB/s, but nowhere near the 4+ MB/s of
the other methods.

Interesting about the cross-compiled versions: they include a static OpenSSL
1.0.2o module (also cross-compiled by GCC), that somehow reads the system
certificate store of the Windows machines.
-- 
Jan

Microsoft Windows [Version 6.1.7601]
running lftp
ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes 

===  E:\utils\bash.exe /utils/bash.sh ===
Execution time: 69.934 s

running vanilla...
ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes 

===  curl -w"start:%{time_starttransfer} total:%{time_total}\n"  (removed)
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0  5062k  0:00:55  0:00:55 --:--:-- 5200k
start:0,39 total:55,506000
Execution time: 55.667 s

running patched...
ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes 

===  curl -w"start:%{time_starttransfer} total:%{time_total}\n"  (removed)
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0  6825k  0:00:41  0:00:41 --:--:-- 6231k
start:0,375000 total:41,169000
Execution time: 41.320 s

running curl-mingw64 patched...
ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes 

===  curl -w"start:%{time_starttransfer} total:%{time_total}\n"  (removed)
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0  6550k  0:00:42  0:00:42 --:--:-- 6043k
start:0,374000 total:42,90
Execution time: 43.048 s

running curl-mingw64 sftp
ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes 

===  curl -w"start:%{time_starttransfer} total:%{time_total}\n"  (removed)
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0   298k  0:15:42  0:15:42 --:--:--  313k
100  274M0 0  100  274M  0   298k  0:15:42  0:15:42 --:--:--  298k
start:0,64 total:942,153000
Execution time: 942.211 s

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-09 Thread Jan Ehrhardt via curl-library
Gisle Vanem via curl-library (Thu, 9 Aug 2018 18:31:12 +0200):
>Jan Ehrhardt wrote:
>
>>> Wow dude! 2 times faster than FileZilla now.
>>>
>>> Time decreased from 33.153s to 6.4 sec (same random 10 MByte file).
>>> Versus approx. 5.3 sec for curl/FTP.
>> 
>> Using SFTP?
>
>Yes:
>curl.exe -k -# --write-out "speed: %%{speed_upload} bytes/sec, total-time: 
>%%{time_total}" ^
>  sftp://xyz -T c:\TEMP\curl-test.file
>speed: 1649348,000 bytes/sec, total-time: 6,063000

Can you make your compiled version available somewhere? I tried different
combinations of VC9, VC11, VC14 and x86 / x64 and cannot get it higher than 300k
at the moment.
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-09 Thread Jan Ehrhardt via curl-library
Gisle Vanem via curl-library (Thu, 9 Aug 2018 17:48:49 +0200):
>Daniel Stenberg wrote:
>
>>   /* The upload buffer size, should not be smaller than CURL_MAX_WRITE_SIZE, 
>> as
>>      it needs to hold a full buffer as could be sent in a write callback */
>> -#define UPLOAD_BUFSIZE CURL_MAX_WRITE_SIZE
>> +#define UPLOAD_BUFSIZE (512*1024)
>
>Wow dude! 2 times faster than FileZilla now.
>
>Time decreased from 33.153s to 6.4 sec (same random 10 MByte file).
>Versus approx. 5.3 sec for curl/FTP.

Using SFTP?
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-09 Thread Jan Ehrhardt via curl-library
Daniel Stenberg via curl-library (Thu, 9 Aug 2018 16:55:38 +0200 (CEST)):
>On Thu, 9 Aug 2018, Jan Ehrhardt via curl-library wrote:
>
>> curl plain ftp patched   41 seconds
>> curl patched sftp  1925 seconds
>
>Oh what a sad number there... =(
>
>A quick little experiment could be to try upping the upload buffer size 
>significantly:
snip patch

Patch applied. On another connection (slower than back at home) it now reports

  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0   871k  0:05:22  0:05:22 --:--:--  900k
100  274M0 0  100  274M  0   871k  0:05:22  0:05:22 --:--:--  871k

322 seconds. Lot faster.
-- 
Jant

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-09 Thread Jan Ehrhardt via curl-library
Gisle Vanem via curl-library (Thu, 9 Aug 2018 13:51:50 +0200):
>Jan Ehrhardt wrote:
>
>>> 33.153s vs 5.4s for a 10 MByte file.
>> 
>> Did you time how long Filezilla takes for the same action? Filezilla
>> squeezes quite a lot over sftp-connections...
>
>11.4 sec!!
snip
>I must be using the wrong compiler and SSL-lib :-)
>But, it's certainly possible to make SFTP faster.

Same results here. Yesterday I had a discussion with a customer, uploading
a 274MB file from an iPad over sftp. That took 2:27 minutes. I repeated the
upload now with Filezilla, lftp and curl

TL;DR

iPad sftp (NMSSH2)  147 seconds
Filezilla sftp   67 seconds
lftp sftp70 seconds
curl plain ftp vanilla   56 seconds
curl plain ftp patched   41 seconds (the 2nd is my own compiled version: 42s)
curl patched sftp  1925 seconds
-- 
Jan

Microsoft Windows [Version 6.1.7601]
running lftp

ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes 

===  E:\utils\bash.exe /utils/bash.sh ===

Execution time: 70.587 s
running vanilla...

ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes 

===  curl -w"start:%{time_starttransfer} total:%{time_total}\n" removed
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0  4982k  0:00:56  0:00:56 --:--:-- 4960k
start:0,374000 total:56,394000

Execution time: 56.547 s
running patched...

ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes 

===  curl -w"start:%{time_starttransfer} total:%{time_total}\n" removed
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0  6812k  0:00:41  0:00:41 --:--:-- 6420k
start:0,375000 total:41,247000

Execution time: 41.408 s
running curl patched...

ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes 

===  curl -w"start:%{time_starttransfer} total:%{time_total}\n" removed
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0  6617k  0:00:42  0:00:42 --:--:-- 6923k
start:0,374000 total:42,463000

Execution time: 42.699 s
running patched sftp

ptime 1.0 for Win32, Freeware - http://www.pc-tools.net/
Copyright(C) 2002, Jem Berkes 

===  curl -w"start:%{time_starttransfer} total:%{time_total}\n" removed
  % Total% Received % Xferd  Average Speed   TimeTime Time  Current
 Dload  Upload   Total   SpentLeft  Speed
100  274M0 0  100  274M  0   145k  0:32:05  0:32:05 --:--:--  150k
100  274M0 0  100  274M  0   145k  0:32:05  0:32:05 --:--:--  145k
start:0,421000 total:1925,349000

Execution time: 1925.451 s

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html

Re: Windows users! Help us test upload performance tuning?

2018-08-09 Thread Jan Ehrhardt via curl-library
Gisle Vanem via curl-library (Thu, 9 Aug 2018 01:42:18 +0200):
>Jan Ehrhardt wrote:
>
>> I ended up with a Windows port of lftp, launched from a bash script. Curl 
>> sftp
>> did resume, but was terribly slow. 
>
>I also just tested with 'curl sftp//:' with the latest libssh2
>and the new 'SIO_IDEAL_SEND_BACKLOG_QUERY' option. 'sftp://' is
>still 6 times slower than ftp against the same server in Denmark.
>
>33.153s vs 5.4s for a 10 MByte file.

Did you time how long Filezilla takes for the same action? Filezilla
squeezes quite a lot over sftp-connections...
-- 
Jan

---
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.haxx.se/mail/etiquette.html