Commit Graph

3098 Commits

Author SHA1 Message Date
Jim Hague 41741f6cc4 Rather than listing in a variable, list sources, libs etc directly on targets. 2019-10-21 13:32:05 +01:00
Jim Hague 87177cc103 Add a Windows implementation of getdns_context_set_resolvconf().
Have it return GETDNS_RETURN_NOT_IMPLEMENTED. This function is listed in the shared library exports, and it's part of the official API, so we need it.
2019-10-18 19:04:17 +01:00
Jim Hague 73e9c32655 First pass at adding shared libraries to the current static library build.
* I can't find out where the .so version number currently produced by the autoconf build comes from, so for the moment supply it explicitly.
* Include a version in the Windows DLL. But Windows can only grok major[.minor]. So also supply one of those.
* On Windows, we need a .lib for the .dll, and a static .lib. These, obviously, need different names. So add _static onto the name of the static lib.
* Only build the objects once, so explicitly build both with PIC.
* Only export the explicit list of symbols from the shared library. This has to be done a different way on GNU ld, Mac linker and Windows.
* Although I have left the tools being linked statically, I have tested with dynamic linking. getdns_query uses gettimeofday(), which isn't on Windows. With a static link, it just happens to find it in the getdns library, as the symbols aren't filtered. But this doesn't work for shared use, when they are. So explicitly add the compat implementation into the getdns_query sources.
2019-10-18 18:54:09 +01:00
Jim Hague 4304bb7017 Be a little more modern CMake. 2019-10-18 11:28:39 +01:00
Jim Hague 4df33630ea Let CMake know about the target language. 2019-10-18 11:27:19 +01:00
Jim Hague 878fd0583f Jump off the fence on policy CMP0075.
The new behaviour is benign for us, so go with it if available.
2019-10-17 17:22:51 +01:00
Jim Hague 11e621b758 Regularise use or not of space between else/endif and (). Always have a space. 2019-10-17 17:21:58 +01:00
Jim Hague 97227f9bd7 Temporarily (I hope) redirect ssl_dane submodule to my patched repo. 2019-10-16 11:25:07 +01:00
Jim Hague 4da88601d9 Add getdns_server_mon to the build. 2019-10-16 10:42:05 +01:00
Jim Hague ec62d87fca Correct target dependencies exported by the getdns library and used by getdns_query. 2019-10-16 10:35:18 +01:00
Jim Hague effd229ef6 Don't dump includes of OpenSSL headers into config.h.
Where they are required, they are included in the source files.
2019-10-16 10:34:36 +01:00
Jim Hague 55d6b47ed1 Correct target dependencies.
And improve a variable name.
2019-10-16 10:29:29 +01:00
Jim Hague cd62f2b716 Don't include OpenSSL headers in config.h.
Add an include of stdlib.h to various files that were relying on config.h to drag it in. I don't think config.h should be pulling in standard C headers.
2019-10-15 18:37:10 +01:00
Jim Hague 8362a183e8 Remove use of pkg-config to see if libbsd is present.
Instead check for the library directly.In the process, fix the detection of the declarations and functions in libbsd so they work.
2019-10-15 18:35:06 +01:00
Jim Hague a2d09d2be5 Fix type warning on Windows. 2019-10-15 16:56:34 +01:00
Jim Hague e45f569603 Add getdns_query to CMake build. 2019-10-15 16:56:12 +01:00
Jim Hague 73e8e4653d Update to latest fix of ssl_dane.c for Windows. 2019-10-15 16:55:16 +01:00
Jim Hague dd70108558 Windows does not have mkstemp(). Add compat version.
The compat version is Windows-specific.
2019-10-15 16:54:13 +01:00
Jim Hague 323d76d7ae Add the rest of the compat functions to the build, if required.
Remove any preprocess guards from the sources, and only include them in the build if required. Add some additional required Windows libraries.
2019-10-15 16:53:03 +01:00
Jim Hague 5db0d03b13 Enable building on Windows with Visual Studio.
The change mostly consists of removing or replacing non-standard (usually POSIX) header includes.

Guards for replacements for inet_ntop(), inet_pton() and gettimeofday() are updated; the first two are macros on Windows, so the guards are changed to HAVE_DECL. gettimeofday() is present on MinGW builds but not Visual Studio, so that has a function check.
2019-10-15 10:09:17 +01:00
Jim Hague b8df26194e Add symbols for target endianness. 2019-10-14 09:47:03 +01:00
Jim Hague d1dca186bc Add Posix/XOpen support flags for Unix builds that aren't FreeBSD. 2019-10-14 09:45:38 +01:00
Jim Hague 7a0a2f712d Add support for building on Windows.
This should support both native Visual Studio builds and MinGW builds.
2019-10-14 09:44:28 +01:00
Jim Hague ffe626f5f3 Enable warnings when building. 2019-10-10 12:31:12 +01:00
Jim Hague dc6cadebbc Add OpenSSL function checks as per autoconf.
Well, those function checks that are actually used in the code, anyway.
2019-10-10 12:30:50 +01:00
Jim Hague c367b39c13 Update build to get the current source building.
Hardwire OpenSSL and do the minimum necessary to get libgetdns building.
2019-10-09 17:19:18 +01:00
Jim Hague 1d712cfa45 Merge branch 'develop' into feature/cmake 2019-10-07 12:58:33 +00:00
Willem Toorop 9050f63d5b
Merge pull request #434 from bnoordhuis/readme-libuv-url
Update libuv URL in README
2019-09-18 11:01:57 +02:00
Ben Noordhuis ad8ca06c57 Update libuv URL in README
I can state with some authority that the old URL hasn't been canonical
for almost five years now.
2019-09-17 23:27:31 +02:00
wtoorop 994466b3de
Merge pull request #428 from themiron/old-uclibc-fix
Optimize local addresses enumeration with old uClibc
2019-04-25 09:52:28 +02:00
Vladislav Grishenko 416c55734b Optimize local addresses enumeration with old uClibc
uClibc 0.9.30rc1 - 0.9.32rc5 has bug - getaddrinfo() does not accept numeric
service without any hints. As the related side effect, hint struct with
ai_socktype == 0 (unspec) and ai_protocol == 0 (unpsec) gives the same
EAI_SERVICE error instead of same address with different proto enumebration.
For more details please refer https://bugs.busybox.net/show_bug.cgi?id=3841 and
https://git.uclibc.org/uClibc/commit/?id=bc3be18145e4d57e7268506f123c0f0f373a15e2

Since 0.9.3x uClibc versions are still not somewhat unique in embedded (issue
https://github.com/getdnsapi/stubby/issues/124 as example) and non-zero
ai_socktype allows to avoid address dups for each supported UDP/TCP/etc proto,
seems worth to have it specified, as a minor memory allocation optimization at
least.

SOCK_DGRAM vs SOCK_STREAM choice doesn't really matter here, both are actually
used for DNS and both are non-zero, no difference is expected on *nix. So
SOCK_DGRAM selected due original comment only.
2019-04-25 03:31:56 +05:00
wtoorop c89b9d0796
Merge pull request #426 from themiron/typedef-redef-fixes
Fix build error with gnu99 compilers
2019-04-12 15:25:44 +02:00
Vladislav Grishenko 4f4ed98112 Fix build error with gnu99 compilers
Typedefs sha256_pin_t & getdns_log_config multiple declaration in context.h,
tls.h and tls_internal.h causes build error with some gnu99 compilers, even
if the redefinition is identical.
One possible way is to protect each occurence with ifdefs, but it seems too
brute, other one is to keep typedef in context.h only and use struct types
in recently added tls* scope.

Error example:
../libtool --quiet --tag=CC --mode=compile arm-brcm-linux-uclibcgnueabi-gcc
-std=gnu99 -I. -I. -I./util/auxiliary -I./tls -I./openssl -I./../stubby/src
-Wall -Wextra -D_BSD_SOURCE -D_DEFAULT_SOURCE ... -c ./convert.c -o convert.lo
In file included from ./context.h:53:0,
                 from ./util-internal.h:42,
                 from ./convert.c:50:
./tls.h:45:27: error: redefinition of typedef 'sha256_pin_t'
./openssl/tls-internal.h:57:27: note: previous declaration of 'sha256_pin_t' was here
In file included from ./util-internal.h:42:0,
                 from ./convert.c:50:
./context.h:133:3: error: redefinition of typedef 'sha256_pin_t'
./tls.h:45:27: note: previous declaration of 'sha256_pin_t' was here
./context.h:267:3: error: redefinition of typedef 'getdns_log_config'
./openssl/tls-internal.h:58:34: note: previous declaration of 'getdns_log_config' was here
2019-04-12 01:40:51 +05:00
Willem Toorop 42ea03ef07 Release 1.5.2
-----BEGIN PGP SIGNATURE-----
 
 iQJIBAABCgAyFiEE3DTuXbJBe8wVHlEA5fj4IS93pJgFAlykwI0UHHdpbGxlbUBu
 bG5ldGxhYnMubmwACgkQ5fj4IS93pJhmUBAAhM1s6SjOHiG3vKpH+vyRfXHRTDSY
 b+VvNy1HHs+FBeCZOpg5Vw8tqlaLIWJh8uO/E1o+x4beo8j/6X39q0ebZLxhuTmZ
 jv0Ja1HBEKT/5c7qC+EFO2NjwdBYA3XJWJn+/iXqaTG9P5Wctcu9GIjAiRAXdEFB
 nGel0ZGBp0HP4ox9cIqs5WSzWmB03MX9vwxRb9Ef1E0myOmvjjGGTwoCK297kdYG
 gs063AVAKByR2cdNbJSM+nRWx4HqYe1oTY2FGxNfO2x9XdSCDpW0wyXSYsfKCZDc
 enJBNEtgeYLNljTtqNjSTqQwivejH/THplTG6ZgVyITJoe7xp/93trFzlSqL2kts
 1tr4SogY0vOCD7/x/S8THaZnSzZza70Je6dW+Low1coEDQl3K7h80sopyRweIoJd
 LyVLPrYUiTbepuYpvTfYtxuhnrIKMzafgkgAAaFZXBMuzQeh8VKtKqF+hMFpVYiv
 ojLz131gfja4qa9ecxwSrc7iEf7YHk7wJ84d5GhhCyWyoPq5EFvK15ngi6vofASd
 uqFAexM7iGPJ4iP0ZLYPiuXgr+TUJmI+Tz6DLQgZiq1HxSymKq5fdHAcz2pup0Mj
 26GrQ7zagZuirApckodDvdCE3Pc4MtPEyBvT7VwI1DwdZI/k8YdZ27YIlsvTTNhO
 Fu1WlmZ2ylSxUu4=
 =ECik
 -----END PGP SIGNATURE-----

Merge tag 'v1.5.2' into develop

Release 1.5.2
2019-04-03 16:18:59 +02:00
Willem Toorop ffe471543b Bumb versions for 1.5.2 release 2019-04-03 12:36:04 +02:00
Willem Toorop b22768709a Runtime fallback and FreeBSD compatible TFO 2019-04-03 12:24:09 +02:00
Willem Toorop b6e290f42a Fix compiling for debugging 2019-04-03 11:51:35 +02:00
Willem Toorop 8a2b4e0aa0 Merge branch 'develop' into release/1.5.2 2019-04-03 11:15:50 +02:00
wtoorop bc6adf01ca
Merge pull request #424 from maciejsszmigiero/anchor-fixes
Two small trust anchor fetcher fixes
2019-03-24 08:47:26 +01:00
Maciej S. Szmigiero 0a1883047d
Don't transmit an extra NULL byte in the anchor fetch HTTP request
When calculating HTTP request buffer size tas_connect() unnecessarily adds
an extra octet for the terminating NULL byte.
The terminating NULL was already accounted for by sizeof(fmt), however,
since sizeof("123") = 4.

The extra NULL byte at the end of the anchor fetch HTTP request resulted
in an extra "501 Not implemented" HTTP response from the trust anchor
server.
2019-03-24 00:51:20 +01:00
Maciej S. Szmigiero 99e32f1e46
Increase anchor fetch timeout in tas_doc_read()
tas_doc_read() uses a very short 50 msec network read timeout which makes
fetching trust anchors pretty much impossible on high-latency connections
like 3G.

Use a 2 second read timeout, just like the other tas_read_cb() callback
setter does.
2019-03-24 00:50:49 +01:00
Willem Toorop 1527979129 Release candidate need dashes before rc 2019-03-15 21:16:13 +01:00
Willem Toorop 5b20971464 Setup branch for the 1.5.2 release process 2019-03-15 20:45:04 +01:00
Willem Toorop 82b9f5781e Take along new dirs in distributions 2019-03-15 20:28:41 +01:00
Willem Toorop 342b1090f8 Declarations are always defined 2019-03-15 17:22:31 +01:00
Willem Toorop 754d65eb6d Correct dependencies 2019-03-15 16:58:10 +01:00
Willem Toorop 324370c537 GnuTLS with Zero configuration DNSSEC 2019-03-15 16:50:10 +01:00
Willem Toorop 7438de712a Issue #422: Update server & client TFO
Seems to work for TLS now too.
At least on Linux.
Thanks Craig Andrews
2019-03-15 12:13:38 +01:00
Willem Toorop 74e584cd61 Merge branch 'develop' of github.com:getdnsapi/getdns into develop 2019-03-13 14:21:51 +01:00
Willem Toorop 99d15b999c Issue #423: Fix insecure delegation detection while scheduling 2019-03-13 14:21:06 +01:00