Commit Graph

1426 Commits

Author SHA1 Message Date
Hamish Coleman
5942726685 Address some windows compile warnings 2023-06-26 00:14:09 +08:00
Hamish Coleman
a0c2af5f78 Remove define that no longer does anything 2023-06-25 22:40:46 +08:00
Hamish Coleman
afbc5344e0 Move some generic appending out of the config.mak 2023-06-25 22:40:46 +08:00
Hamish Coleman
6d464f24a6 Ensure that WINDRES always has a value 2023-06-25 22:40:46 +08:00
Hamish Coleman
3c9a170b12 Some header simplification 2023-06-25 22:40:46 +08:00
Hamish Coleman
d21a4fe0a2 Remove some unneeded includes 2023-06-25 22:40:46 +08:00
Hamish Coleman
548e1204f3 Address warning - another windows pedantic header order issue 2023-06-25 22:40:46 +08:00
Hamish Coleman
d39f5c7892 Disable running full tests on BSD builds - they are flappy 2023-06-25 22:19:36 +08:00
Hamish Coleman
ce3ed1fb90 Expand the freebsd hacky fix to encompas edge tests as well 2023-06-25 22:19:36 +08:00
Hamish Coleman
ccd33dc8cc Hacky fix for tests running on freebsd 2023-06-25 21:08:36 +08:00
Hamish Coleman
0d005d189d Fix silent failure of sizeof for STRBUF_INIT() 2023-06-25 21:08:36 +08:00
Hamish Coleman
42a716ae7b Actually test freebsd 2023-06-25 21:08:36 +08:00
Hamish Coleman
a2c78e140a Minor fixes for FreeBSD 2023-06-25 19:25:00 +08:00
Hamish Coleman
2413ce498f The autogen script is not using any bash features 2023-06-25 19:25:00 +08:00
Hamish Coleman
89125ec423 Use the defined access method for structure.
Not all struct sockaddr are going to have the sa_family as their first field.
Since there is a named structure member, we can simply use that and let
the compiler sort it out.

This fixes a bug with at least FreeBSD and allows us to remove the
special case for Apple.
2023-06-25 19:25:00 +08:00
Hamish Coleman
169d3a8cc7 Fix use with older autoconf
Some versions of autoconf (eg, the one included with Ubuntu 20.04 -
which is GNU Autoconf 2.69) will produce a configure script that
requires finding the install-sh script in either a short list of parent
directories or the defined AUX_DIR (This new requirement was probably
triggered by the use of the cross-compile features in configure.ac)

Newer versions flexibly identify which of the support scripts are
actually needed (from the list of config.guess, config.sub, install-sh)
and only check for those ones that are needed.

When the `./autogen.sh` runs `autoreconf -i`, it should have copied the
required aux scripts, but for some reason this is not happening.

Once we are not supporting the older autoconf, we should revisit this
config option as these auxiliary scripts should normally not be checked
into a version control system, for the same reasons that configure
shouldn’t be.  For now, we ensure that all three scripts are available
and we have set the AC_CONFIG_AUX_DIR() to point to them

If the older autoconf is used, it will report the error:

    configure: error: cannot find install-sh, install.sh, or shtool in "." "./.." "./../.."

Which is included here for search engines.
2023-06-25 17:56:09 +08:00
Hamish Coleman
cfc9c8c10d Simplify and make more consistant the pthread library 2023-06-25 17:56:09 +08:00
Hamish Coleman
4c0c173221 Check if we have been configured before running most of Make 2023-06-25 17:56:09 +08:00
Hamish Coleman
a1bef636de Partially Revert "Add rules to run autogen/configure and use them in some of the simpler CI builds"
This reverts commit 87c20d750e.
2023-06-25 17:56:09 +08:00
Hamish Coleman
21ac30c121 Use the correct modern windows sockets header
As suggested in a PR from @Legend-Master (this change is basically
unrelated to the main point of his PR, so extracted here)

Windows is a confusing and disappointing development environment.  They
completely replaced all the definitions in winsock.h with exact
equivalents in winsock2.h (except for a small number of deprecated
functions).

However they didnt make them mutually exclusive - so if you include
both, you get errors.  They also automatically include winsock.h from
windows.h, so you must remember to include winsock2.h first.  They also
didnt just remove winsock.h and replace it with the new contents.

(Probably in the name of "compatibility", whilst swearing that the new
winsock is the same as the old one - because if you cannot believe two
inconsistent things simultaneously, you shouldnt be a windows
programmer)

All these things are totally nuts.  Thanks, windows dev environment,
for not noticing that this is nuts
2023-06-25 02:46:03 +08:00
Hamish Coleman
87c20d750e Add rules to run autogen/configure and use them in some of the simpler CI builds 2023-06-25 02:07:49 +08:00
Hamish Coleman
9417866394 Use the more usual name for autoconf libs variable 2023-06-25 02:07:49 +08:00
Hamish Coleman
4a724c10a2 Dont need to tell configure to subst some vars as they are exported by default 2023-06-25 02:07:49 +08:00
Hamish Coleman
1581b74027 Update everything to reference the simpler tool autodetection 2023-06-25 02:07:49 +08:00
Hamish Coleman
4bbee2c3b5 Use the standard autoconf macros to help with cross-compile 2023-06-25 02:07:49 +08:00
Hamish Coleman
1b83e0e0e9 Remove some config items that are just wrong with cross compilation 2023-06-25 02:07:49 +08:00
Hamish Coleman
3b5855707f Need to specify a windres tool name for non cross compiled windows 2023-06-25 02:07:49 +08:00
Hamish Coleman
0545a54b13 Allow windres to run when cross compiling 2023-06-25 02:07:49 +08:00
Hamish Coleman
0dd94a1123 Fix distclean with newer config.mak style 2023-06-24 23:31:20 +08:00
Hamish Coleman
4f9a7d31d3 Fix bug in returned interface address 2023-06-24 23:31:20 +08:00
Hamish Coleman
7b77950352 Address lint concerns 2023-06-24 23:31:20 +08:00
Hamish Coleman
e8c7457b80 Fix null pointer de-ref 2023-06-24 23:31:20 +08:00
Hamish Coleman
b5a8210efd
Merge pull request #1119 from hamishcoleman/iwyu
Refactor to "include-what-you-use"

This patchset aims to make future refactoring and cleanups simpler by ensuring that each file includes what it uses - see https://include-what-you-use.org/ for some more details about this concept and the tool used to help perform the refactoring.

No functional change is intended or expected and all tests are passing.

The include-what-you-use tool is awkward to use with the current state of the build system - and will always be difficult to use in a multi-platform safe way. However, I hope to provide a non manual process for running with the tool in the future.
2023-06-20 19:49:16 +01:00
Hamish Coleman
a7fc1c2bbc Merge branch 'dev' into iwyu 2023-06-18 12:31:58 +01:00
Hamish Coleman
585b3cec59 iwyu: n2n.h
There is still cleanup work to be done in the headers, but this
concludes the major include-what-you-use refactoring.  No functional
change is intended or expected and all tests are passing.

It is now a lot easier to see what is used from each header and work on
possible refactoring in the future.

The include-what-you-use tool is awkward to use with the current state
of the build system - and will always be difficult to use in a
multi-platform safe way.  However, I hope to provide a non manual
process for running with the tool in the future.
2023-06-18 12:14:23 +01:00
Hamish Coleman
771fdec013 iwyu: tools/test*.c 2023-06-18 11:34:28 +01:00
Hamish Coleman
0a20265228 iwyu: n2n-route.c 2023-06-18 11:14:47 +01:00
Hamish Coleman
290ac83788 iwyu: n2n-portfwd.c 2023-06-18 10:58:00 +01:00
Hamish Coleman
7439d88a00 iwyu: n2n-keygen.c 2023-06-18 10:56:05 +01:00
Hamish Coleman
11fbea4223 iwyu: n2n-benchmark.c 2023-06-18 10:55:07 +01:00
Hamish Coleman
b9dcb3fd35 iwyu: wire.c 2023-06-18 09:32:08 +01:00
Hamish Coleman
de56ebb127 iwyu: tuntap_linux.c 2023-06-18 09:12:36 +01:00
Tony
e397a5af75
Add close window support for Windows (#1111)
* Add close window support for Windows

* Support logoff and shudown events as well

Without this change, when you close the terminal/shell window, it won't have the time to clean up which can cause authentication errors if you try to reconnect.

Blocking here infinitely is fine since when our main thread returns, it will shut down anyway

I found Go is doing this when I was searching, and there's a comment explained how it works: https://github.com/golang/go/issues/41884#issuecomment-706695923
2023-06-18 09:02:05 +01:00
Tony
76cbff370e
Fix purgeable is always false on supernode peer list (#1117)
* Fix purgeable is always false on sn peer list
- And change sn_purge to bool

* Change all keep_on_running to bool

* Fix wrong `keep_running` type
2023-06-18 08:58:49 +01:00
Hamish Coleman
852fc6ea8f Minimal update to transform_zstd suggested by iwyu.
This file was not active during the iwyu run, so it will need to be
expanded upon later.
2023-06-16 11:05:35 +01:00
Hamish Coleman
3e47641630 Actually test the zstd support before editing the transform_zstd 2023-06-16 09:56:53 +01:00
Hamish Coleman
0e175d35f6 iwyu: transform_tf.c 2023-06-16 09:44:53 +01:00
Hamish Coleman
76629dcf6a iwyu: transform_speck.c 2023-06-16 09:44:04 +01:00
Hamish Coleman
6deebe6f1a iwyu: transform_null.c 2023-06-16 09:43:02 +01:00
Hamish Coleman
89cb9419c7 iwyu: transform_lzo.c 2023-06-16 09:42:18 +01:00