]> git.meshlink.io Git - meshlink/log
meshlink
5 years agoVarious fixes: feature/encrypted-storage
Guus Sliepen [Wed, 13 Mar 2019 22:13:06 +0000 (23:13 +0100)]
Various fixes:

- create_initial_config_files() and node_write_config() are now the only
  functions that generate the content of new config files from scratch.
- All public API functions that change config files now immediately
  write them out.
- Config files of nodes that join using an invitation file are immediately
  written out.
- Ensure nodes marked dirty have their config files written out in
  periodic_handler(), and on meshlink_stop().
- Fix some memory leaks.
- Write out updated config files, and recreate mesh->self in meshlink_set_port().

5 years agoAdd support for opening a MeshLink instance without permanent storage.
Guus Sliepen [Mon, 11 Mar 2019 21:02:30 +0000 (22:02 +0100)]
Add support for opening a MeshLink instance without permanent storage.

5 years agoAdd missing declaration of chacha_ivsetup_96().
Guus Sliepen [Wed, 19 Dec 2018 20:24:25 +0000 (21:24 +0100)]
Add missing declaration of chacha_ivsetup_96().

5 years agoAdd support for encrypted storage.
Guus Sliepen [Fri, 14 Dec 2018 21:21:17 +0000 (22:21 +0100)]
Add support for encrypted storage.

This is a large overhaul of how configuration files are handled. All files
are now in PackMessage format, and are read from disk in to memory in one
go, and also saved to disk from memory in one go, using functions in conf.c.

5 years agoAdd the PackMessage library.
Guus Sliepen [Mon, 17 Dec 2018 02:12:55 +0000 (03:12 +0100)]
Add the PackMessage library.

5 years agoAdd functions to get the amount of bytes in chanenl send and receive buffers.
Guus Sliepen [Sun, 17 Mar 2019 21:01:43 +0000 (22:01 +0100)]
Add functions to get the amount of bytes in chanenl send and receive buffers.

meshlink_channel_get_sendq() and meshlink_channel_get_recvq() call the
underlying UTCP connection's utcp_get_sendq() and utcp_get_recvq().
These return the amount of bytes waiting in the send and receive buffers.
In particular, a non-zero value for sendq means that sent data has not been
ACKed by the peer yet.

5 years agoRemove extra locks causing deadlocks for wait_sync_flag function
SS Roop [Mon, 18 Mar 2019 07:01:01 +0000 (12:31 +0530)]
Remove extra locks causing deadlocks for wait_sync_flag function

5 years agoFix spelling errors.
Guus Sliepen [Sun, 17 Mar 2019 20:46:45 +0000 (21:46 +0100)]
Fix spelling errors.

Found by codespell.

5 years agoMake Doxygen more strict, and fix errors in the documentation.
Guus Sliepen [Sun, 17 Mar 2019 20:41:42 +0000 (21:41 +0100)]
Make Doxygen more strict, and fix errors in the documentation.

5 years agoRemove make check warnings
SS Roop [Tue, 26 Feb 2019 21:58:30 +0000 (03:28 +0530)]
Remove make check warnings

5 years agoAdd blackbox test cases for submesh
Lakshminarayana Gurram [Tue, 5 Mar 2019 12:19:48 +0000 (17:49 +0530)]
Add blackbox test cases for submesh

5 years agoFix NULL checking of addrinfo structure in try_bind function
Lakshminarayana Gurram [Fri, 8 Mar 2019 05:10:59 +0000 (10:40 +0530)]
Fix NULL checking of addrinfo structure in try_bind function

5 years agoCheck for astyle version 3 before formatting the code.
Guus Sliepen [Tue, 12 Mar 2019 19:56:20 +0000 (20:56 +0100)]
Check for astyle version 3 before formatting the code.

Unfortunately, code formatters change their behaviour between versions.
The code currently requires astyle version 3.x, so check this before
running astyle. If the wrong version is installed, print an error.

5 years agoReduce locking in Catta callback functions to a minimum.
Guus Sliepen [Mon, 17 Dec 2018 02:14:45 +0000 (03:14 +0100)]
Reduce locking in Catta callback functions to a minimum.

5 years agoAdd a groupchat example program that uses the submesh feature.
lakshminarayanagurram [Mon, 25 Feb 2019 10:02:24 +0000 (11:02 +0100)]
Add a groupchat example program that uses the submesh feature.

5 years agoAdd devtool_get_all_submeshes().
lakshminarayanagurram [Mon, 25 Feb 2019 10:01:38 +0000 (11:01 +0100)]
Add devtool_get_all_submeshes().

5 years agoImprove support for submeshes.
lakshminarayanagurram [Mon, 25 Feb 2019 10:00:35 +0000 (11:00 +0100)]
Improve support for submeshes.

5 years agoAdd channel disconnection fix when node blacklisted
SS Roop [Tue, 12 Feb 2019 17:32:59 +0000 (23:02 +0530)]
Add channel disconnection fix when node blacklisted

5 years agoFix building the channels test.
Guus Sliepen [Tue, 19 Feb 2019 21:11:58 +0000 (22:11 +0100)]
Fix building the channels test.

5 years agoDo not define struct meshlink_open_params at all in meshlink.h.
Guus Sliepen [Tue, 19 Feb 2019 21:11:33 +0000 (22:11 +0100)]
Do not define struct meshlink_open_params at all in meshlink.h.

5 years agoDon't try to build node_* binaries for the optimal PMTU test cases anymore.
Guus Sliepen [Tue, 19 Feb 2019 21:10:36 +0000 (22:10 +0100)]
Don't try to build node_* binaries for the optimal PMTU test cases anymore.

5 years agoAdd test case for channel blacklist
sairoop-elear [Tue, 19 Feb 2019 20:38:53 +0000 (21:38 +0100)]
Add test case for channel blacklist

5 years agoCode formatting.
Guus Sliepen [Tue, 19 Feb 2019 20:41:58 +0000 (21:41 +0100)]
Code formatting.

5 years agoAdd optimal pmtu test cases
Guus Sliepen [Mon, 11 Feb 2019 18:18:54 +0000 (19:18 +0100)]
Add optimal pmtu test cases

5 years agoUpdate invite API in blackbox test cases
sairoop-elear [Fri, 8 Feb 2019 08:05:33 +0000 (13:35 +0530)]
Update invite API in blackbox test cases

5 years agoAdd network namespace test framework
sairoop-elear [Wed, 6 Feb 2019 05:06:34 +0000 (10:36 +0530)]
Add network namespace test framework

5 years agoModified meshlink_invite to generate invites for submesh
Lakshminarayana Gurram [Wed, 6 Feb 2019 02:47:30 +0000 (08:17 +0530)]
Modified meshlink_invite to generate invites for submesh

5 years agoAdded meshlink_submesh_open
Lakshminarayana Gurram [Wed, 6 Feb 2019 02:33:35 +0000 (08:03 +0530)]
Added meshlink_submesh_open

5 years agoAdd a test case for meshlink_get_all_nodes_by_dev_class().
Guus Sliepen [Thu, 31 Jan 2019 21:47:56 +0000 (22:47 +0100)]
Add a test case for meshlink_get_all_nodes_by_dev_class().

5 years agoAdd API functions to query nodes by device class.
Guus Sliepen [Thu, 31 Jan 2019 21:38:48 +0000 (22:38 +0100)]
Add API functions to query nodes by device class.

5 years agoAdd test cases for the PMTU discovery mechanism.
Guus Sliepen [Thu, 31 Jan 2019 21:21:52 +0000 (22:21 +0100)]
Add test cases for the PMTU discovery mechanism.

5 years agoUpdate the blackbox test infrastructure.
Guus Sliepen [Thu, 31 Jan 2019 21:20:40 +0000 (22:20 +0100)]
Update the blackbox test infrastructure.

5 years agoProvide a way to open MeshLink in its own network namespace.
Guus Sliepen [Sat, 26 Jan 2019 20:38:53 +0000 (21:38 +0100)]
Provide a way to open MeshLink in its own network namespace.

This causes all sockets from MeshLink to be opened in the given network
namespace, without affecting the application's namespace. Note that since
callback functions run inside MeshLink's own thread, the callback functions
inherit MeshLink's network namespace.

5 years agoOnly compile the monitor example application if ncurses is available.
Guus Sliepen [Wed, 16 Jan 2019 18:10:20 +0000 (19:10 +0100)]
Only compile the monitor example application if ncurses is available.

5 years agoCode formatting.
Guus Sliepen [Tue, 20 Nov 2018 15:21:58 +0000 (16:21 +0100)]
Code formatting.

5 years agoFix indentation.
Guus Sliepen [Tue, 20 Nov 2018 15:12:45 +0000 (16:12 +0100)]
Fix indentation.

5 years agoFix discovering node addresses from edges.
Guus Sliepen [Tue, 20 Nov 2018 15:10:17 +0000 (16:10 +0100)]
Fix discovering node addresses from edges.

The logic always skipped the first unique address found via edges, and since
in most cases there is only one such address, this would skip them altogether.

5 years agoSimplify rate limiting of incoming connections.
Guus Sliepen [Tue, 20 Nov 2018 15:07:44 +0000 (16:07 +0100)]
Simplify rate limiting of incoming connections.

We now really allow max_connection_burst connections per second, rather
than only allowing one second per connection on average, but allowing
a burst of max_connection_burst connections to go through.

5 years agoFix a potential segfault.
Guus Sliepen [Tue, 20 Nov 2018 15:01:12 +0000 (16:01 +0100)]
Fix a potential segfault.

This was found by Lakshminarayana Gurram.

5 years agoRemove debug messages printed to stderr.
Guus Sliepen [Tue, 20 Nov 2018 14:59:34 +0000 (15:59 +0100)]
Remove debug messages printed to stderr.

5 years agoFix socket leak every time meshlink_invite() is called.
Guus Sliepen [Tue, 20 Nov 2018 14:58:41 +0000 (15:58 +0100)]
Fix socket leak every time meshlink_invite() is called.

getlocaladdrname() would leak a socket every time it was called, which is
twice for every call to meshlink_invite() using the default flags.

5 years agoTry all CanonicalAddress and Address statements.
Guus Sliepen [Sun, 18 Nov 2018 23:03:27 +0000 (00:03 +0100)]
Try all CanonicalAddress and Address statements.

5 years agoAdd autoconf checks for LXC and cmocka.
Guus Sliepen [Sun, 18 Nov 2018 14:15:13 +0000 (15:15 +0100)]
Add autoconf checks for LXC and cmocka.

If LXC or cmocka are not installed, don't build the blackbox test suite.

5 years agoAdd the blackbox channel connection tests.
Guus Sliepen [Sun, 18 Nov 2018 13:50:08 +0000 (14:50 +0100)]
Add the blackbox channel connection tests.

5 years agoAdd the blackbox container based test suite.
Elear Solutions Dev [Thu, 8 Nov 2018 20:01:10 +0000 (21:01 +0100)]
Add the blackbox container based test suite.

This test suite uses LXC containers to simulate various nodes connected
to each other in different network topologies, and allows for realistic
testing of the MeshLink library.

5 years agoReally add both local and external address to the invitation URL.
Guus Sliepen [Tue, 9 Oct 2018 21:27:05 +0000 (23:27 +0200)]
Really add both local and external address to the invitation URL.

Also make sure we add both IPv4 and IPv6 if possible, use numeric addresses
unless hostnames resolve back to the same numeric address.

Add meshlink_invite_ex() that takes a flag that makes URL generation more
configurable.

5 years agoReformat the code.
Guus Sliepen [Tue, 9 Oct 2018 14:08:20 +0000 (16:08 +0200)]
Reformat the code.

5 years agoAdd an example using curses to monitor the state of MeshLink.
Guus Sliepen [Tue, 9 Oct 2018 14:06:50 +0000 (16:06 +0200)]
Add an example using curses to monitor the state of MeshLink.

5 years agoLock meshlink.conf to ensure only one instance can run at a time.
Guus Sliepen [Tue, 9 Oct 2018 12:06:04 +0000 (14:06 +0200)]
Lock meshlink.conf to ensure only one instance can run at a time.

5 years agoFix "Connection from (null)" log message.
Guus Sliepen [Thu, 30 Aug 2018 17:52:18 +0000 (19:52 +0200)]
Fix "Connection from (null)" log message.

5 years agoAlways add both CanonicalAddress and any local address to the invitation URL.
Guus Sliepen [Thu, 30 Aug 2018 17:45:13 +0000 (19:45 +0200)]
Always add both CanonicalAddress and any local address to the invitation URL.

We don't know in advance if the invitee will be on the LAN or outside
the LAN, and because hairpin routing is not working on many home
routers, it is safer to add all possible addresses.

Also, add the port number to each individual address in the URL, instead
of allowing only one port number.

5 years agoAdd missing code for the duplicate node testcase.
Guus Sliepen [Thu, 30 Aug 2018 17:44:08 +0000 (19:44 +0200)]
Add missing code for the duplicate node testcase.

5 years agoAdd duplicate node detection callback.
Guus Sliepen [Sun, 12 Aug 2018 15:09:20 +0000 (17:09 +0200)]
Add duplicate node detection callback.

MeshLink can detect if two nodes are online simultaneously using the same
Name. Normally, one or both of the duplicate nodes will terminate its
connection. Now there is a duplicate node callback that will be called when
the local node detects a duplicate node. One use for this is to blacklist
the duplicate node and/or notify the user of the problem.

5 years agoRemove the -fPIE and -pie compiler flags.
Guus Sliepen [Tue, 7 Aug 2018 18:43:19 +0000 (20:43 +0200)]
Remove the -fPIE and -pie compiler flags.

Since we are building a library, these flags shouldn't be used. They
appear to cause problems when linking libmeshlink into another shared
library.

5 years agoUpdate UTCP to allow meshlink_channel_send() immediately.
Guus Sliepen [Sun, 22 Jul 2018 11:32:01 +0000 (13:32 +0200)]
Update UTCP to allow meshlink_channel_send() immediately.

5 years agoAllow compiling without support for Catta.
Guus Sliepen [Sat, 21 Jul 2018 15:52:07 +0000 (17:52 +0200)]
Allow compiling without support for Catta.

Configuring with --disable-catta will cause MeshLink to not be linked to
the Catta library, and local discovery will not be available.

5 years agoAdd COPYING.README, detailing license obligations for users of MeshLink.
Guus Sliepen [Sat, 21 Jul 2018 15:10:35 +0000 (17:10 +0200)]
Add COPYING.README, detailing license obligations for users of MeshLink.

MeshLink itself depends on other libraries, and this document mainly
summarizes what obligations users of the MeshLink library have when they
distribute their software in binary form.

5 years agoPass appname in the ID string during invitations as well.
Guus Sliepen [Sun, 15 Jul 2018 09:19:19 +0000 (11:19 +0200)]
Pass appname in the ID string during invitations as well.

5 years agoPass appname in the ID string.
Guus Sliepen [Tue, 3 Jul 2018 18:21:40 +0000 (20:21 +0200)]
Pass appname in the ID string.

This is completely ignored by MeshLink itself at the moment, but is just
a hint to any proxy/relay.

5 years agoRemove old host config files when joining using an invitation.
Guus Sliepen [Tue, 26 Jun 2018 15:10:53 +0000 (17:10 +0200)]
Remove old host config files when joining using an invitation.

5 years agoAdd meshlink_set_invitation_timeout().
Guus Sliepen [Tue, 26 Jun 2018 14:42:57 +0000 (16:42 +0200)]
Add meshlink_set_invitation_timeout().

This sets a global timeout for invitation files. If a node tries to join
with an invitation whose file is older than the timeout, the invitation is
rejected.

5 years agoFix a compiler warning.
Guus Sliepen [Tue, 26 Jun 2018 14:33:29 +0000 (16:33 +0200)]
Fix a compiler warning.

5 years agoAdd meshlink_set_canonical_address().
Guus Sliepen [Tue, 26 Jun 2018 14:12:28 +0000 (16:12 +0200)]
Add meshlink_set_canonical_address().

This introduces the concept of a canonical address for a node, which is
its "official" address/port. It is only set manually, and never updated
or removed when other addresses have been discovered for this node.

Also, this changed meshlink_add_address(mesh, address) to be equivalent to
meshlink_set_canonical_address(mesh, meshlink_get_self(mesh), address, NULL).
While not strictly equivalent to the old behaviour, it matches the
documented intent of this function.

5 years agoFix valgrind warnings about reading uninitialized bytes.
Guus Sliepen [Tue, 26 Jun 2018 14:09:54 +0000 (16:09 +0200)]
Fix valgrind warnings about reading uninitialized bytes.

This is caused by memcpy()ing sockaddr_t structs that have only been
partially written to.

5 years agoUpdate .gitignore files.
Guus Sliepen [Tue, 26 Jun 2018 14:07:35 +0000 (16:07 +0200)]
Update .gitignore files.

5 years agoFix a potential segfault when closing a stopped meshlink handle.
Guus Sliepen [Tue, 26 Jun 2018 12:23:04 +0000 (14:23 +0200)]
Fix a potential segfault when closing a stopped meshlink handle.

If meshlink_stop() was called before meshlink_close(), the latter would
cause pthread_join() being called on a thread that was already joined.

5 years agoFix a potential segfault when closing a meshlink handle.
Guus Sliepen [Tue, 26 Jun 2018 12:20:17 +0000 (14:20 +0200)]
Fix a potential segfault when closing a meshlink handle.

Freeing the UTCP instance of a node would result in meshlink_send() being
called on a node that was already partially freed.

5 years agoDon't allow any unused variables in invitation files.
Guus Sliepen [Thu, 21 Jun 2018 13:26:10 +0000 (15:26 +0200)]
Don't allow any unused variables in invitation files.

5 years agoCode reformatting.
Guus Sliepen [Tue, 5 Jun 2018 18:33:08 +0000 (20:33 +0200)]
Code reformatting.

5 years agoFix a potential NULL-pointer dereference when generating invitations.
Guus Sliepen [Tue, 5 Jun 2018 18:31:04 +0000 (20:31 +0200)]
Fix a potential NULL-pointer dereference when generating invitations.

Closes #47 on GitHub.

5 years agoUse getsockname() to get a listening sockets actual address in meshlink_stop().
Guus Sliepen [Mon, 21 May 2018 20:03:47 +0000 (22:03 +0200)]
Use getsockname() to get a listening sockets actual address in meshlink_stop().

This should be better than sending a packet to the listening address,
which might be a link-local address for which a valid scope-id is
necessary, and which might not be in listen_socket.sa.

5 years agoEnsure -export-symbols-regex is not lost.
Guus Sliepen [Tue, 8 May 2018 15:05:00 +0000 (17:05 +0200)]
Ensure -export-symbols-regex is not lost.

An earlier commit accidentily caused libmeshlink_la_LDFLAGS to be
overwritten later in src/Makefile.am, and this caused
-export-symbols-regex to be dropped, thereby exposing internal symbols
of the library.

5 years agoEnable Catta by default, as documented.
Guus Sliepen [Sun, 6 May 2018 21:08:24 +0000 (23:08 +0200)]
Enable Catta by default, as documented.

5 years agoTry to be smarter generating invitation URLs.
Guus Sliepen [Sun, 6 May 2018 20:46:36 +0000 (22:46 +0200)]
Try to be smarter generating invitation URLs.

If we have a symbol hostname associated with us, use that. Otherwise, try
to find out which external addresses we have for both IPv4 and IPv6. If we
cannot connect to www.meshlink.io, then use the local address used for
outgoing connections as a fallback. Also, don't forget to add a port number
in all cases.

The generated invitation URL can now contain two addresses in the hostname
part, separated by a comma.

5 years agoAllow multiple addresses in an invitation URL.
Guus Sliepen [Thu, 3 May 2018 20:33:58 +0000 (22:33 +0200)]
Allow multiple addresses in an invitation URL.

This allows the address field in an invitation URL to be a
comma-separated list. The goal is to allow both IPv4 and IPv6 addresses
to be encoded in a single URL.

This commit also ensures that if a hostname is given, that all address
records associated with that hostname are tried.

5 years agoFix all compiler warnings found using -Wall -W -pedantic.
Guus Sliepen [Tue, 1 May 2018 13:24:35 +0000 (15:24 +0200)]
Fix all compiler warnings found using -Wall -W -pedantic.

Using both GCC 8 and Clang 7.

5 years agoCheck the return value of check_port().
Guus Sliepen [Tue, 1 May 2018 12:10:45 +0000 (14:10 +0200)]
Check the return value of check_port().

When initializing a new MeshLink instance, fail if there is no port
available for listening. When starting an already configured instance,
if no Port statement is found in the local node's host config file,
select and add a new one.

5 years agoOnly set -fno-strict-overflow if -fwrapv is not available.
Guus Sliepen [Mon, 30 Apr 2018 19:06:51 +0000 (21:06 +0200)]
Only set -fno-strict-overflow if -fwrapv is not available.

When -fwrapv is set, -fno-strict-overflow has no effect. Clang then
decides to give an obnoxious warning.

5 years agoUse AX_PTHREAD to set the proper pthread flags.
Guus Sliepen [Mon, 30 Apr 2018 19:01:44 +0000 (21:01 +0200)]
Use AX_PTHREAD to set the proper pthread flags.

6 years agoDon't use SOL_IP and SOL_IPV6.
Guus Sliepen [Sat, 16 Dec 2017 21:38:48 +0000 (22:38 +0100)]
Don't use SOL_IP and SOL_IPV6.

These macros do not exist on all platforms, instead one should use
IPPROTO_IP and IPPROTO_IPV6. This fixes a bug on macOS where the
IPV6_V6ONLY flag would not be applied and could result in IPv4 sockets
not working.

6 years agodevtools.h must not rely on internal types.
Guus Sliepen [Thu, 9 Nov 2017 19:13:07 +0000 (20:13 +0100)]
devtools.h must not rely on internal types.

6 years agoProperly initialize mesh->outpacketqueue.
Guus Sliepen [Thu, 9 Nov 2017 19:12:29 +0000 (20:12 +0100)]
Properly initialize mesh->outpacketqueue.

6 years agoAdd a devtool function to query the status of a given node.
Guus Sliepen [Mon, 9 Oct 2017 19:47:52 +0000 (21:47 +0200)]
Add a devtool function to query the status of a given node.

6 years agoRemove PROXY_EXEC support.
Guus Sliepen [Sun, 8 Oct 2017 18:27:30 +0000 (20:27 +0200)]
Remove PROXY_EXEC support.

This calls fork(), which is not desirable from a library.

6 years agoEnsure make distcheck runs without errors.
Guus Sliepen [Sun, 8 Oct 2017 18:22:56 +0000 (20:22 +0200)]
Ensure make distcheck runs without errors.

6 years agoRemove unused/obsolete checks from configure.ac and unused functions from dropin.c.
Guus Sliepen [Sun, 8 Oct 2017 15:11:19 +0000 (17:11 +0200)]
Remove unused/obsolete checks from configure.ac and unused functions from dropin.c.

6 years agoFormat the examples and test suite.
Guus Sliepen [Mon, 2 Oct 2017 21:07:34 +0000 (23:07 +0200)]
Format the examples and test suite.

6 years agoUpdate astylerc and reformat the code.
Guus Sliepen [Mon, 2 Oct 2017 20:58:49 +0000 (22:58 +0200)]
Update astylerc and reformat the code.

Changes:

- Add braces to one-line if/else statements.
- Add empty lines around control blocks.
- Indent multi-line #defines with tabs.

6 years agoFix compiling with -Wall -W.
Guus Sliepen [Mon, 2 Oct 2017 20:25:19 +0000 (22:25 +0200)]
Fix compiling with -Wall -W.

6 years agoAdd an --enable-install-tests option to configure.
Guus Sliepen [Thu, 7 Sep 2017 18:46:52 +0000 (20:46 +0200)]
Add an --enable-install-tests option to configure.

This will enable the installation of the test binaries when running
make install. This feature is intended to make continuous integration
easier.

6 years agoAutomatically configure and compile catta.
Guus Sliepen [Thu, 7 Sep 2017 18:32:04 +0000 (20:32 +0200)]
Automatically configure and compile catta.

6 years agoReally bind to a free port if the configured port is not available.
Guus Sliepen [Wed, 16 Aug 2017 20:10:47 +0000 (22:10 +0200)]
Really bind to a free port if the configured port is not available.

6 years agoMake member variables in public structs more const.
Guus Sliepen [Wed, 16 Aug 2017 17:48:43 +0000 (19:48 +0200)]
Make member variables in public structs more const.

6 years agoCheck that autoconnect works as expected.
Guus Sliepen [Tue, 15 Aug 2017 19:00:44 +0000 (21:00 +0200)]
Check that autoconnect works as expected.

6 years agoMove meshlink_get_all_edges_state() to devtools_get_all_edges().
Guus Sliepen [Tue, 15 Aug 2017 18:59:38 +0000 (20:59 +0200)]
Move meshlink_get_all_edges_state() to devtools_get_all_edges().

There should be no reason for the application to query the list of edges,
so move this functionality to devtools.[ch].

Also, flatten the array to reduce the amount of memory allocations and
bookkeeping necessary.

6 years agoFix errors found by Clang's static analyzer.
Guus Sliepen [Mon, 14 Aug 2017 20:42:14 +0000 (22:42 +0200)]
Fix errors found by Clang's static analyzer.

6 years agoFix compiler warnings.
Guus Sliepen [Mon, 14 Aug 2017 20:31:31 +0000 (22:31 +0200)]
Fix compiler warnings.

6 years agoForce -Wall.
Guus Sliepen [Mon, 14 Aug 2017 20:31:04 +0000 (22:31 +0200)]
Force -Wall.

AM_INIT_AUTOMAKE should ensure -Wall is set, but for some reason it doesn't.
Force it by adding it to AM_CPPFLAGS.

6 years agoRemove unused/duplicate autoconf/automake definitions.
Guus Sliepen [Mon, 14 Aug 2017 20:30:14 +0000 (22:30 +0200)]
Remove unused/duplicate autoconf/automake definitions.

6 years agoGet rid of ->hostname.
Guus Sliepen [Mon, 14 Aug 2017 20:29:06 +0000 (22:29 +0200)]
Get rid of ->hostname.

This takes up memory and is only used for logging.