]> git.meshlink.io Git - meshlink/log
meshlink
9 years agoWe dont check the name in the config file but the name in the handler. This is becaus... testing/invitations
Saverio Proto [Tue, 17 Jun 2014 17:42:52 +0000 (19:42 +0200)]
We dont check the name in the config file but the name in the handler. This is because the config files can change after finalize_join

9 years agoCheck for key later because maybe we have to generate it
Saverio Proto [Tue, 17 Jun 2014 17:19:21 +0000 (19:19 +0200)]
Check for key later because maybe we have to generate it

9 years agoPut a value also in mesh->name in finalize join
Saverio Proto [Tue, 17 Jun 2014 17:07:42 +0000 (19:07 +0200)]
Put a value also in mesh->name in finalize join

9 years agoFinally no more segmentation faults using invitations :)
Saverio Proto [Tue, 17 Jun 2014 16:49:59 +0000 (18:49 +0200)]
Finally no more segmentation faults using invitations :)

9 years agoFixing segmentation faults because of missing initializations
Saverio Proto [Tue, 17 Jun 2014 16:11:12 +0000 (18:11 +0200)]
Fixing segmentation faults because of missing initializations

9 years agoInitialize mesh->self before network setup
Saverio Proto [Wed, 11 Jun 2014 19:12:40 +0000 (21:12 +0200)]
Initialize mesh->self before network setup

9 years agoMerge branch 'master' into testing/invitations
Saverio Proto [Wed, 11 Jun 2014 17:58:53 +0000 (19:58 +0200)]
Merge branch 'master' into testing/invitations

9 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().

9 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.

9 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.

9 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.

9 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.

9 years agoopen listening sockets at meshlink_start() and not at meshlink_open()
Saverio Proto [Sat, 7 Jun 2014 11:49:58 +0000 (13:49 +0200)]
open listening sockets at meshlink_start() and not at meshlink_open()

9 years agoStart the mesh after joining with invitation
Saverio Proto [Sat, 7 Jun 2014 11:20:53 +0000 (13:20 +0200)]
Start the mesh after joining with invitation

9 years agodo not exit the program, so we can still use /join to accept an invitation
Saverio Proto [Sat, 7 Jun 2014 11:02:52 +0000 (13:02 +0200)]
do not exit the program, so we can still use /join to accept an invitation

9 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.

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

9 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

9 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

9 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.

9 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.

9 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.

9 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]

9 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.

9 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().

9 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.

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

9 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.

9 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.

9 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().

9 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.

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

9 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.

9 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.

9 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.

9 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.

9 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.

9 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

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

9 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

9 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.

9 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

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

9 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

9 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

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

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

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

9 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.

9 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.

9 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.

9 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.

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

9 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.

9 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.

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

9 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().

9 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.

9 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().

9 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().

9 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.

9 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.

9 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().

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

9 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.

9 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.

9 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.

9 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.

9 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().

9 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.

9 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().

9 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.

9 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

9 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)

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

9 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.

9 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.

9 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.

9 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.

9 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.

9 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.

9 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].

9 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].

9 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].

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

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

9 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

10 years agoremove libmeshlink files
Saverio Proto [Thu, 24 Apr 2014 14:06:30 +0000 (16:06 +0200)]
remove libmeshlink files

10 years agoUse snprintf() instead of xasprintf() when generating filenames
Saverio Proto [Thu, 24 Apr 2014 14:02:50 +0000 (16:02 +0200)]
Use snprintf() instead of xasprintf() when generating filenames

10 years agoOnly export symbols that start with meshlink_.
Guus Sliepen [Thu, 24 Apr 2014 14:04:34 +0000 (16:04 +0200)]
Only export symbols that start with meshlink_.

We don't want to pollute the global namespace with all our internal functions.

10 years agoMove pinginterval pingtimeout and maxtimeout to mesh
Saverio Proto [Thu, 24 Apr 2014 13:06:30 +0000 (15:06 +0200)]
Move pinginterval pingtimeout and maxtimeout to mesh

10 years agoMove initial configuration setup from meshlinkapp.c to meshlink.c.
Guus Sliepen [Thu, 24 Apr 2014 07:41:55 +0000 (09:41 +0200)]
Move initial configuration setup from meshlinkapp.c to meshlink.c.

10 years agoUpdate meshlinkapp.c.
Guus Sliepen [Thu, 24 Apr 2014 07:19:08 +0000 (09:19 +0200)]
Update meshlinkapp.c.

10 years agoMove code from libmeshlink.c into the new functions in meshlink.c.
Guus Sliepen [Thu, 24 Apr 2014 07:18:25 +0000 (09:18 +0200)]
Move code from libmeshlink.c into the new functions in meshlink.c.

10 years agoRemove bypass_security.
Guus Sliepen [Thu, 24 Apr 2014 06:50:35 +0000 (08:50 +0200)]
Remove bypass_security.

10 years agoUntested changes to meshlinkapp to make the tree compile
Saverio Proto [Wed, 23 Apr 2014 22:11:36 +0000 (00:11 +0200)]
Untested changes to meshlinkapp to make the tree compile

10 years agoFix undefined reference to mesh in libmeshlink.so
Saverio Proto [Wed, 23 Apr 2014 22:09:37 +0000 (00:09 +0200)]
Fix undefined reference to mesh in libmeshlink.so

10 years agoAdjust the callback to meshlink_receive_cb_t
Saverio Proto [Wed, 23 Apr 2014 22:01:01 +0000 (00:01 +0200)]
Adjust the callback to meshlink_receive_cb_t

10 years agoMove bypass_security to mesh
Saverio Proto [Wed, 23 Apr 2014 21:54:14 +0000 (23:54 +0200)]
Move bypass_security to mesh