]> git.meshlink.io Git - meshlink/log
meshlink
10 years agoFix a few memory leaks.
Guus Sliepen [Tue, 29 Jul 2014 13:49:00 +0000 (15:49 +0200)]
Fix a few memory leaks.

10 years agoFix meshlink_add_address().
Guus Sliepen [Tue, 29 Jul 2014 10:24:25 +0000 (12:24 +0200)]
Fix meshlink_add_address().

This was broken due to commit 656a7bca4fd4acac5c3411087a6ed62fa4b7fa81.

10 years agoFix link to host.cgi for resolving our own external address.
Guus Sliepen [Tue, 29 Jul 2014 10:23:22 +0000 (12:23 +0200)]
Fix link to host.cgi for resolving our own external address.

10 years agoFix meshlink::channel_open().
Guus Sliepen [Mon, 28 Jul 2014 14:21:17 +0000 (16:21 +0200)]
Fix meshlink::channel_open().

10 years agoRemove some more traces of tinc.
Guus Sliepen [Sat, 26 Jul 2014 15:37:23 +0000 (17:37 +0200)]
Remove some more traces of tinc.

10 years agoFix warnings from Doxygen.
Guus Sliepen [Sat, 26 Jul 2014 15:21:42 +0000 (17:21 +0200)]
Fix warnings from Doxygen.

10 years agoUpdate TODO list.
Guus Sliepen [Sat, 26 Jul 2014 13:18:03 +0000 (15:18 +0200)]
Update TODO list.

10 years agoAdd a test for the channel API.
Guus Sliepen [Sat, 26 Jul 2014 12:45:04 +0000 (14:45 +0200)]
Add a test for the channel API.

It doesn't compile yet, so it's not included in the Makefile.

10 years agoAll data sent and received on channels is const.
Guus Sliepen [Sat, 26 Jul 2014 12:42:35 +0000 (14:42 +0200)]
All data sent and received on channels is const.

10 years agoFix declaration of meshlink_set_channel_receive_cb().
Guus Sliepen [Sat, 26 Jul 2014 12:41:27 +0000 (14:41 +0200)]
Fix declaration of meshlink_set_channel_receive_cb().

10 years agoAdd a C++ version of the basic test.
Guus Sliepen [Sat, 26 Jul 2014 12:18:03 +0000 (14:18 +0200)]
Add a C++ version of the basic test.

10 years agoDeclare the channel API.
Guus Sliepen [Sat, 26 Jul 2014 12:17:11 +0000 (14:17 +0200)]
Declare the channel API.

Channels are very much like TCP connections. Willingness to accept channels is declared by
setting a channel_accept callback. New channels can be created by calling channel_open(),
data can be sent using channel_send() and data received is passed via a channel_receive
callback.

10 years agoUpdate the TODO list.
Guus Sliepen [Fri, 25 Jul 2014 22:40:37 +0000 (00:40 +0200)]
Update the TODO list.

10 years agoThe tests now all print proper error messages.
Guus Sliepen [Fri, 25 Jul 2014 22:40:24 +0000 (00:40 +0200)]
The tests now all print proper error messages.

10 years agoStruct outgoing needs to remember to which mesh it belongs.
Guus Sliepen [Fri, 25 Jul 2014 22:24:02 +0000 (00:24 +0200)]
Struct outgoing needs to remember to which mesh it belongs.

The reason is that since free_outgoing() is called by the list algorithms, it can take only one
parameter (a pointer to a struct outgoing).

10 years agoRemove global variables past_request_tree and past_request_timeout.
Guus Sliepen [Fri, 25 Jul 2014 22:00:12 +0000 (00:00 +0200)]
Remove global variables past_request_tree and past_request_timeout.

10 years agoRemove global variable node_udp_cache.
Guus Sliepen [Fri, 25 Jul 2014 21:05:12 +0000 (23:05 +0200)]
Remove global variable node_udp_cache.

It was still accidentally used, causing tests that started two meshlink instances in the same
program to crash.

10 years agoImplement meshlink_sign() and _verify().
Guus Sliepen [Fri, 25 Jul 2014 16:33:40 +0000 (18:33 +0200)]
Implement meshlink_sign() and _verify().

10 years agoMove definition of outpacketqueue_t from meshlink.h to meshlink_internal.h.
Guus Sliepen [Sat, 21 Jun 2014 10:14:59 +0000 (12:14 +0200)]
Move definition of outpacketqueue_t from meshlink.h to meshlink_internal.h.

10 years agoFix errors in Doxygen markup.
Guus Sliepen [Sat, 21 Jun 2014 10:12:49 +0000 (12:12 +0200)]
Fix errors in Doxygen markup.

10 years agoAdd a Doxyfile so Doxygen creates a reference manual.
Guus Sliepen [Sat, 21 Jun 2014 10:03:57 +0000 (12:03 +0200)]
Add a Doxyfile so Doxygen creates a reference manual.

10 years agoUpdate TODO list.
Guus Sliepen [Tue, 17 Jun 2014 17:57:58 +0000 (19:57 +0200)]
Update TODO list.

10 years agoFree the meshlink_handle_t in meshlink_close().
Guus Sliepen [Tue, 10 Jun 2014 12:07:17 +0000 (14:07 +0200)]
Free the meshlink_handle_t in meshlink_close().

10 years agoFix crash when calling meshlink_close().
Guus Sliepen [Tue, 10 Jun 2014 12:06:08 +0000 (14:06 +0200)]
Fix crash when calling meshlink_close().

In event_loop_exit(), we should only unlink nodes, not try to free them,
since we don't do allocation in event.h anymore.

10 years agoAdd an example chat program for the C++ API.
Guus Sliepen [Tue, 10 Jun 2014 11:34:04 +0000 (13:34 +0200)]
Add an example chat program for the C++ API.

10 years agoAdd a header-only C++ wrapper.
Guus Sliepen [Tue, 10 Jun 2014 11:32:29 +0000 (13:32 +0200)]
Add a header-only C++ wrapper.

10 years agoMove declaration of meshlink_send_from_queue() to meshlink_internal.h.
Guus Sliepen [Tue, 10 Jun 2014 11:31:47 +0000 (13:31 +0200)]
Move declaration of meshlink_send_from_queue() to meshlink_internal.h.

10 years agoAllow meshlink_open() to be called with a NULL name, in anticipation of meshlink_join...
Saverio Proto [Sat, 7 Jun 2014 10:23:56 +0000 (12:23 +0200)]
Allow meshlink_open() to be called with a NULL name, in anticipation of meshlink_join(). Do not allow meshlink_start() if no Name is set.

10 years agoDont use pthread_kill
Saverio Proto [Wed, 4 Jun 2014 14:55:55 +0000 (16:55 +0200)]
Dont use pthread_kill

10 years agoonly allow meshlink_join() when the library thread is not running
Saverio Proto [Tue, 3 Jun 2014 14:42:58 +0000 (16:42 +0200)]
only allow meshlink_join() when the library thread is not running

10 years agomeshlink_join: fix Segmentation Fault when invitation URL is missing the port number
Saverio Proto [Tue, 3 Jun 2014 14:41:08 +0000 (16:41 +0200)]
meshlink_join: fix Segmentation Fault when invitation URL is missing the port number

10 years agoProvide thread-safety to functions that return pointers to meshlink_node_t.
Saverio Proto [Mon, 2 Jun 2014 11:54:47 +0000 (13:54 +0200)]
Provide thread-safety to functions that return pointers to meshlink_node_t.
  - The mesh->nodes tree can be updated by the library thread at any time,
    so it must be protected by a mutex or rwlock.

10 years agoMake meshlink_send return immediately. Implemented a queue for communication between...
Saverio Proto [Wed, 28 May 2014 19:48:46 +0000 (21:48 +0200)]
Make meshlink_send return immediately. Implemented a queue for communication between the application and library threads.

10 years agoRevert "Remove support for UNIX signals in the event library."
Saverio Proto [Wed, 28 May 2014 19:49:23 +0000 (21:49 +0200)]
Revert "Remove support for UNIX signals in the event library."

This reverts commit 12fd793a46d1695bedb96a5d9531dfd9f3efd7be.

10 years agoFix compiler warning of implicit declaration of function ‘str[n]casecmp’ [-Werror...
Saverio Proto [Sun, 1 Jun 2014 16:54:35 +0000 (18:54 +0200)]
Fix compiler warning of implicit declaration of function ‘str[n]casecmp’ [-Werror=implicit-function-declaration]

10 years agoAdd test cases for importing/exporting data and inviting/joining nodes.
Guus Sliepen [Sun, 1 Jun 2014 12:28:34 +0000 (14:28 +0200)]
Add test cases for importing/exporting data and inviting/joining nodes.

10 years agoAdd a basic implementation of meshlink_import() and _export().
Guus Sliepen [Sun, 1 Jun 2014 12:24:31 +0000 (14:24 +0200)]
Add a basic implementation of meshlink_import() and _export().

10 years agoDon't interactively ask for an Address when generating an invitation URL.
Guus Sliepen [Mon, 26 May 2014 12:57:38 +0000 (14:57 +0200)]
Don't interactively ask for an Address when generating an invitation URL.

This also adds a function to allow the application to set an Address.

10 years agoAdd missing basic.c test.
Guus Sliepen [Sun, 25 May 2014 20:05:50 +0000 (22:05 +0200)]
Add missing basic.c test.

10 years agoRemove old tests for tinc 1.1 and add a basic test for MeshLink.
Guus Sliepen [Sun, 25 May 2014 19:44:41 +0000 (21:44 +0200)]
Remove old tests for tinc 1.1 and add a basic test for MeshLink.

10 years agoReplace __TINC with __MESHLINK in the include guards.
Guus Sliepen [Sun, 25 May 2014 19:21:10 +0000 (21:21 +0200)]
Replace __TINC with __MESHLINK in the include guards.

10 years agoAdd #include "crypto.h" because we are using randomize().
Guus Sliepen [Sun, 25 May 2014 19:15:30 +0000 (21:15 +0200)]
Add #include "crypto.h" because we are using randomize().

10 years agoRe-add accidentily removed randomize() from crypto.c.
Guus Sliepen [Sun, 25 May 2014 19:14:34 +0000 (21:14 +0200)]
Re-add accidentily removed randomize() from crypto.c.

10 years agoMerge branch 'meshlink_blacklist2'
Guus Sliepen [Sun, 25 May 2014 18:51:02 +0000 (20:51 +0200)]
Merge branch 'meshlink_blacklist2'

10 years agoAutomatically add extern "C" when including meshlink.h in a C++ project.
Guus Sliepen [Sun, 25 May 2014 14:38:05 +0000 (16:38 +0200)]
Automatically add extern "C" when including meshlink.h in a C++ project.

10 years agoUse CryptGenRandom() instead of /dev/[u]random on Windows.
Guus Sliepen [Sun, 25 May 2014 14:26:37 +0000 (16:26 +0200)]
Use CryptGenRandom() instead of /dev/[u]random on Windows.

10 years agoCall WSAStartup() so that sockets work on Windows.
Guus Sliepen [Sun, 25 May 2014 14:26:04 +0000 (16:26 +0200)]
Call WSAStartup() so that sockets work on Windows.

10 years agoAllow MeshLink to be cross-compiled for Windows.
Guus Sliepen [Sun, 25 May 2014 14:25:31 +0000 (16:25 +0200)]
Allow MeshLink to be cross-compiled for Windows.

10 years agoRemove support for UNIX signals in the event library.
Guus Sliepen [Sun, 25 May 2014 14:23:51 +0000 (16:23 +0200)]
Remove support for UNIX signals in the event library.

10 years agoImplemented meshlink_blacklist feature
Saverio Proto [Tue, 20 May 2014 21:15:45 +0000 (23:15 +0200)]
Implemented meshlink_blacklist feature

using the meshlink_blacklist function the application is able to blacklist a node

data from with node will be discarded. No more data will be sent to this node.

the blacklisting is persistent in the host configuration file

10 years agoAdding comment meshlink_blacklist2
Saverio Proto [Fri, 23 May 2014 08:53:51 +0000 (10:53 +0200)]
Adding comment

10 years agoDont setup outgoing connection to blacklisted nodes
Saverio Proto [Fri, 23 May 2014 08:48:18 +0000 (10:48 +0200)]
Dont setup outgoing connection to blacklisted nodes

10 years agoRevert "Dont setup outgoing connection to blacklisted nodes"
Saverio Proto [Fri, 23 May 2014 08:44:48 +0000 (10:44 +0200)]
Revert "Dont setup outgoing connection to blacklisted nodes"

This reverts commit 8ac2f217eff96f2bc9da8a41031d453bf0f16a29.

10 years agoDont setup outgoing connection to blacklisted nodes
Saverio Proto [Fri, 23 May 2014 08:27:23 +0000 (10:27 +0200)]
Dont setup outgoing connection to blacklisted nodes

10 years agomake blacklisted yes/no
Saverio Proto [Fri, 23 May 2014 07:56:00 +0000 (09:56 +0200)]
make blacklisted yes/no

10 years agoMake blacklisting persistent in the config file
Saverio Proto [Fri, 23 May 2014 07:19:02 +0000 (09:19 +0200)]
Make blacklisting persistent in the config file

10 years agoDrop messages from blacklisted nodes that I receive over a n-hops path
Saverio Proto [Tue, 20 May 2014 21:53:08 +0000 (23:53 +0200)]
Drop messages from blacklisted nodes that I receive over a n-hops path

10 years agoTrivial test for meshlink_blacklist
Saverio Proto [Tue, 20 May 2014 21:15:45 +0000 (23:15 +0200)]
Trivial test for meshlink_blacklist

10 years agomeshlinkapp: fix compiler warnings
Saverio Proto [Wed, 21 May 2014 17:29:04 +0000 (19:29 +0200)]
meshlinkapp: fix compiler warnings

10 years agoDrop old invitation.[ch]
Saverio Proto [Wed, 21 May 2014 16:55:54 +0000 (18:55 +0200)]
Drop old invitation.[ch]

10 years agoMake sure meshlink_stop() works as advertised.
Guus Sliepen [Thu, 15 May 2014 15:53:54 +0000 (17:53 +0200)]
Make sure meshlink_stop() works as advertised.

At least on Linux, one way to signal a sleeping select() call in
the thread is to call shutdown() on the listening sockets. A subsequent
accept() returns EINVAL, we use that as a cue to shut down the main
loop.

10 years agoEnsure everything compiles with -Wall without giving warnings.
Guus Sliepen [Wed, 14 May 2014 21:36:24 +0000 (23:36 +0200)]
Ensure everything compiles with -Wall without giving warnings.

Mostly by using void pointers for opaque objects and removing unused variables.

10 years agoFix a filedescriptor leak.
Guus Sliepen [Wed, 14 May 2014 21:06:23 +0000 (23:06 +0200)]
Fix a filedescriptor leak.

Found by cppcheck.

10 years agoDon't forget about the channel library.
Guus Sliepen [Wed, 14 May 2014 21:00:05 +0000 (23:00 +0200)]
Don't forget about the channel library.

10 years agoUpdate the TODO list.
Guus Sliepen [Wed, 14 May 2014 20:57:44 +0000 (22:57 +0200)]
Update the TODO list.

10 years agoCall receive_cb() when there is data for the application.
Guus Sliepen [Mon, 12 May 2014 18:00:23 +0000 (20:00 +0200)]
Call receive_cb() when there is data for the application.

10 years agoCall node_status_cb() whenever a node goes up or down.
Guus Sliepen [Mon, 12 May 2014 17:53:54 +0000 (19:53 +0200)]
Call node_status_cb() whenever a node goes up or down.

10 years agoImplement meshlink_get_all_nodes().
Guus Sliepen [Mon, 12 May 2014 17:49:25 +0000 (19:49 +0200)]
Implement meshlink_get_all_nodes().

10 years agoAdd /who command to chat example to test meshlink_get_node() and meshlink_get_all_nod...
Guus Sliepen [Mon, 12 May 2014 17:44:51 +0000 (19:44 +0200)]
Add /who command to chat example to test meshlink_get_node() and meshlink_get_all_nodes().

10 years agoImmediately try connecting to the mesh after a succesful join. invite-protocol
Guus Sliepen [Sun, 11 May 2014 22:24:15 +0000 (00:24 +0200)]
Immediately try connecting to the mesh after a succesful join.

10 years agoDon't generate a new ECDSA key in finalize_join().
Guus Sliepen [Sun, 11 May 2014 22:15:06 +0000 (00:15 +0200)]
Don't generate a new ECDSA key in finalize_join().

10 years agoDon't change the port in finalize_join().
Guus Sliepen [Sun, 11 May 2014 22:05:47 +0000 (00:05 +0200)]
Don't change the port in finalize_join().

We already have a working port thanks to meshlink_open().

10 years agoFix filename generation, remove need for meshlink_conf and meshlink_hosts in meshlink...
Guus Sliepen [Sun, 11 May 2014 21:46:16 +0000 (23:46 +0200)]
Fix filename generation, remove need for meshlink_conf and meshlink_hosts in meshlink_handle_t.

10 years agoMake sure the SPTSP connection get set up properly during a join.
Guus Sliepen [Sun, 11 May 2014 21:33:11 +0000 (23:33 +0200)]
Make sure the SPTSP connection get set up properly during a join.

10 years agoNo need to create confbase in meshlink_join().
Guus Sliepen [Sun, 11 May 2014 20:31:29 +0000 (22:31 +0200)]
No need to create confbase in meshlink_join().

10 years agoFix a format string error.
Guus Sliepen [Sun, 11 May 2014 20:16:34 +0000 (22:16 +0200)]
Fix a format string error.

10 years agoSplit purging old invitations and refreshing the invitation key to its own function.
Guus Sliepen [Sun, 11 May 2014 20:01:47 +0000 (22:01 +0200)]
Split purging old invitations and refreshing the invitation key to its own function.

10 years agoSmall fixes to let meshlink_join() make a connection.
Guus Sliepen [Wed, 7 May 2014 21:49:36 +0000 (23:49 +0200)]
Small fixes to let meshlink_join() make a connection.

10 years agoFix compiler warnings, which also pointed out some errors.
Guus Sliepen [Wed, 7 May 2014 21:27:05 +0000 (23:27 +0200)]
Fix compiler warnings, which also pointed out some errors.

Most of them were fixed by adding missing #includes and rearranging functions.

10 years agoUse void pointers to opaque buffers, fix indentation.
Guus Sliepen [Wed, 7 May 2014 21:23:22 +0000 (23:23 +0200)]
Use void pointers to opaque buffers, fix indentation.

10 years agoFix return value of meshlink_join().
Guus Sliepen [Wed, 7 May 2014 21:05:56 +0000 (23:05 +0200)]
Fix return value of meshlink_join().

10 years agoget_my_name() is not necessary, mesh->self->name is always avaiable.
Guus Sliepen [Wed, 7 May 2014 20:56:12 +0000 (22:56 +0200)]
get_my_name() is not necessary, mesh->self->name is always avaiable.

10 years agoFix return value of meshlink_invite().
Guus Sliepen [Wed, 7 May 2014 20:50:19 +0000 (22:50 +0200)]
Fix return value of meshlink_invite().

10 years agoDon't dereference a NULL pointer.
Guus Sliepen [Wed, 7 May 2014 20:43:25 +0000 (22:43 +0200)]
Don't dereference a NULL pointer.

10 years agoMoved necessary code to implement meshlink_invite
Saverio Proto [Tue, 6 May 2014 15:42:14 +0000 (17:42 +0200)]
Moved necessary code to implement meshlink_invite

10 years agoMoved 12 static variables to the meshlink_handle_t handle. Correctly passing the...
Saverio Proto [Sat, 3 May 2014 08:56:44 +0000 (10:56 +0200)]
Moved 12 static variables to the meshlink_handle_t handle. Correctly passing the handle to the finalize_join function (invitation protocol)

10 years agoAdd comments with notes
Saverio Proto [Thu, 1 May 2014 08:15:56 +0000 (10:15 +0200)]
Add comments with notes

10 years agoImplemented meshlink_join - Preliminary changes to port the invite protocol to meshlink.
Saverio Proto [Wed, 30 Apr 2014 14:25:29 +0000 (16:25 +0200)]
Implemented meshlink_join - Preliminary changes to port the invite protocol to meshlink.

10 years agoPut brackets around IPv6 addresses in invitation URL, even if there is no port number.
Guus Sliepen [Mon, 28 Apr 2014 14:26:05 +0000 (16:26 +0200)]
Put brackets around IPv6 addresses in invitation URL, even if there is no port number.

10 years agoStop using the global variable mesh in most of the rest of the code.
Guus Sliepen [Sat, 26 Apr 2014 15:06:42 +0000 (17:06 +0200)]
Stop using the global variable mesh in most of the rest of the code.

10 years agoStop using global variable mesh in net_packet.c.
Guus Sliepen [Sat, 26 Apr 2014 09:39:56 +0000 (11:39 +0200)]
Stop using global variable mesh in net_packet.c.

10 years agoStop using global variable mesh in net.c.
Guus Sliepen [Sat, 26 Apr 2014 08:50:27 +0000 (10:50 +0200)]
Stop using global variable mesh in net.c.

10 years agoRemove reload_configuration().
Guus Sliepen [Sat, 26 Apr 2014 08:33:35 +0000 (10:33 +0200)]
Remove reload_configuration().

This was only useful for tinc, where the admin could change the configuration
files while tincd was running. With MeshLink, everything should be done via the
API.

10 years agoStop using global variable mesh in net_socket.[ch].
Guus Sliepen [Sat, 26 Apr 2014 08:30:19 +0000 (10:30 +0200)]
Stop using global variable mesh in net_socket.[ch].

10 years agoStop using global variable mesh in net_setup.[ch].
Guus Sliepen [Sat, 26 Apr 2014 08:12:33 +0000 (10:12 +0200)]
Stop using global variable mesh in net_setup.[ch].

10 years agoStop using global variable mesh in conf.[ch].
Guus Sliepen [Sat, 26 Apr 2014 08:00:37 +0000 (10:00 +0200)]
Stop using global variable mesh in conf.[ch].

10 years agoRemove temporary global variable "loop".
Guus Sliepen [Sat, 26 Apr 2014 07:39:56 +0000 (09:39 +0200)]
Remove temporary global variable "loop".

10 years agoRemove global variable "now".
Guus Sliepen [Sat, 26 Apr 2014 07:38:55 +0000 (09:38 +0200)]
Remove global variable "now".

10 years agoRemove global variables from the event loop code.
Guus Sliepen [Sat, 26 Apr 2014 07:28:56 +0000 (09:28 +0200)]
Remove global variables from the event loop code.

Everything is now in a struct event_loop_t, which is now also in
meshlink_handle_t.  To make the transition easier, there is a temporary global
event_loop_t *loop.

10 years agoDejavu: Use snprintf() instead of xasprintf() when generating filenames
Saverio Proto [Thu, 24 Apr 2014 14:21:36 +0000 (16:21 +0200)]
Dejavu: Use snprintf() instead of xasprintf() when generating filenames