Commit Graph

56 Commits

Author SHA1 Message Date
be5277591f Fix compilation in ftp.c
When trying to compile the file ftp.c, I get errors related with
warnings that were marked to be reported as error.

This was the original message:

```
fetch/ftp.c:444:8: error: this statement may fall through [-Werror=implicit-fallthrough=]
   type = 'D';
   ~~~~~^~~~~
fetch/ftp.c:445:2: note: here
  case 'D':
  ^~~~
fetch/ftp.c: In function ‘ftp_request’:
fetch/ftp.c:342:3: error: missed loop optimization, the loop counter may overflow [-Werror=unsafe-loop-optimizations]
   for (i = 0; i <= len && i <= end - dst; ++i)
   ^~~
fetch/ftp.c:342:24: error: missed loop optimization, the loop counter may overflow [-Werror=unsafe-loop-optimizations]
   for (i = 0; i <= len && i <= end - dst; ++i)
               ~~~~~~~~~^~~~~~~~~~~~~~~~~
```
2017-08-22 18:03:32 -04:00
08b9ed878f lib/fetch: default port, error checks and authentication support 2016-09-02 17:50:05 +02:00
30ace44394 lib/fetch: add socks5 support 2016-09-01 00:38:55 +02:00
934a59ecd9 lib/fetch/http.c: send proxy auth on https as connect header.
fixes #185
2016-07-08 08:24:14 +02:00
46744c412d lib/fetch/common.c: fix build with -Werror=misleading-indentation
Fixes #179
2016-06-03 20:26:52 +02:00
7c8b1d7aaa lib/fetch/http.c: HTTP CONNECT needs two \r\ns 2016-04-27 11:04:14 +02:00
3a5c1f3a71 lib/fetch/http.c: fix EOL at HTTP CONNECT
fixes #172.
2016-04-26 13:59:49 +02:00
adcc6d16a4 lib/fetch/common.c: simplify ssl_init(). 2016-04-24 19:20:54 +02:00
eb3d227d61 lib/fetch: check that SSL_CTX_new() does not fail and print its errors (#170).
Thanks @ebfe.
2016-04-24 08:42:32 +02:00
b810c25601 lib/fetch/common.c: dup pthread.h inclusion. 2016-04-23 07:04:25 +02:00
e2e8eea490 lib/fetch: also call SSL_load_error_strings() once (#167).
Close #168
2016-04-22 11:38:01 +02:00
228a89d51e Use pthread_once(3) to initialize openssl/libressl just once.
Fixes openssl initialization concurrently by multiple threads.
Close #167
2016-04-22 11:32:34 +02:00
0f56b68eac add HAVE_STRNSTR 2016-02-08 15:09:33 +01:00
9e524d831c fetch/common.c: fix a memleak found by clang-analyzer. 2015-12-21 17:12:14 +01:00
f4cb178f6c libfetch: use default CA path rather than default CA file.
The default CA file set by FreeBSD is only available when using the
LibreSSL provided CA file, and we've decided to use the CA path
by default.

Discussed with @dominikh.
2015-10-28 07:31:26 +01:00
90eb1d9433 libfetch: merge some features from FreeBSD:
- Supports HTTP/1.1 308 redirect.
- SSLv[23] HTTPS connections are forbidden by default.
- TLS client certificate validation thru OpenSSL.
- Fixes for user/password encoding, misc.
2015-10-24 07:52:30 +02:00
a7378f70de fetch: fix regression introduced in 791e683e.
us->size and us->{a,m}time must be set after there's real data.
2015-06-30 21:48:21 +02:00
791e683e01 fetch: handle GET with offset == length.
While xbps_fetch_file() creates the .part file and for whatever reason
it did not finish properly to rename the file, it could request the server
to restart the download with offset set to file size, resulting in HTTP 416
return code.

Handle this case by checking if the server returns 416 and then checking
if the returned file size matches the requested offset and just rename
the file.

Thanks to @beefcurtains for the test case.
2015-06-28 04:28:55 +02:00
15893caf0b fetch: support keep-alive even if the HTTP server returns 304 (Not-Modified). 2015-04-13 12:05:40 +02:00
b513a5e15e libfetch: misc cleanups due to nbcompat removal. 2014-12-28 03:34:36 +01:00
4ee6f943dd libfetch: fix races in the cache connection code.
Tested by @Gottox.
2014-12-23 10:52:54 +01:00
967acd82b0 lib/fetch/http.c: CID 62725 (NULL pointer dereference) 2014-10-07 11:12:04 +02:00
a6cdd9a698 lib/fetch/common.c: CID 62709 (NULL pointer dereference) 2014-10-07 11:07:24 +02:00
6e7c160195 lib/fetch/file.c: CID 62701 (NULL pointer dereference) 2014-10-07 11:02:12 +02:00
d434b44cfc lib/fetch/http.c: CID 62698 (NULL pointer dereference) 2014-10-07 10:51:37 +02:00
680abe50e7 lib/fetch/ftp.c: CID 62745 (unusued value) 2014-10-07 08:25:57 +02:00
68ef66eb51 lib/fetch/fetch.c: CID 62784 (uninitialized pointer read) 2014-10-05 13:10:05 +02:00
44f5fb107e lib/fetch/fetch.c: CID 62738 (unused value) 2014-10-05 12:01:25 +02:00
c3dc804bc0 lib/fetch/http.c: try to fix CID 62683 (resource leak) 2014-10-05 10:32:09 +02:00
25e8fca7b4 lib/fetch/common.c: fix CID 62681 correctly (resource leak). 2014-10-05 10:21:18 +02:00
c1959b3915 lib/fetch/common.c: resource leak (CID 62681) 2014-10-05 09:08:05 +02:00
9d90c75fcc lib/fetch/http.c: buffer not NUL terminated (CID 62666) 2014-10-05 09:04:16 +02:00
25e8002737 fetch: hardcode HTTPS port and fallback to /etc/services for other unknown ports. 2014-08-25 16:07:47 +02:00
510c84d3bb libfetch: synchronized with NetBSD's pkgsrc/libfetch, preserving our changes. 2014-06-29 10:29:36 +02:00
be1ef74ba2 libfetch: merge NetBSD's common.c 1.29 too to reduce differences and fix a warning. 2014-06-29 10:04:07 +02:00
7bb36ddaa2 libfetch: fetch_close: make sure conn->ssl is valid before shutting down. 2014-06-28 12:12:03 +02:00
633c20a2e6 libfetch: merge TLS SNI support from NetBSD with some other random changes.
Close GH #41
2014-06-28 12:01:00 +02:00
d0a9bbb912 Fix #34 (make libfetch always add "Accept: */*" in the HTTP header). 2014-03-18 14:08:40 +01:00
5eea259c13 Remove the config.h kludge and override vasprintf detection via HAVE_VASPRINTF. 2014-01-20 18:50:33 +01:00
42ba861e21 lib/fetch: ignore -Wformat-nonliteral with clang. 2013-07-02 08:54:02 +02:00
d419f8ac2a Move fetch.h to lib/fetch. 2013-06-19 11:03:03 +02:00
2f3913f3aa lib/fetch/common.c: merge 2.34 and backport a patch for select(2) and SSL. 2013-01-13 21:09:15 +01:00
3339d0cd25 libfetch: fix warnings. 2012-07-19 18:00:31 +02:00
c49bd80e20 fetch/ftp.c: fix a cast that caught clang via -Wcast-qual. 2010-10-27 00:17:08 +02:00
bd37736d89 Import and merge libfetch-2.31 from NetBSD pkgsrc. 2010-06-02 23:44:25 +02:00
03e8fa53d9 Merge libfetch-2.30 from NetBSD's pkgsrc.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100124144753-ni487x8m7r05847b
2010-01-24 15:47:53 +01:00
61d2ea8896 Rework Makefile files, fully parallel builds are now possible.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20100118201826-q2zsyooicxi7lcfm
2010-01-18 21:18:26 +01:00
e404632f7e Sync fetch code with libfetch-2.27.
joerg@netbsd libfetch-2.27:
The connection sharing didn't handle the case of active transfers
correctly and tried to close the connection in that case (PR 42607).
Correctly check if there is a transfer going on and just leave the
connection alone in that case.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100111192421-5fddbsek3ayi9wm8
2010-01-11 20:24:21 +01:00
ec907d0646 Restructure the Makefiles, INET6 and SSL support in libfetch is now
mandatory, build executables as PIE objects.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20100106101556-tqzwk80xpp0iz20t
2010-01-06 11:15:56 +01:00
d55391e2e9 Cleaned up the Makefiles, improve README about what's required.
--HG--
extra : convert_revision : xtraeme%40gmail.com-20091228151958-ehx17nupq3uckhhg
2009-12-28 16:19:58 +01:00