]> git.meshlink.io Git - meshlink/log
meshlink
9 years agoUpdated echo-fork test program.
Aaron Krebs [Thu, 4 Dec 2014 13:14:04 +0000 (14:14 +0100)]
Updated echo-fork test program.

9 years agoCleaned up test example.
Aaron Krebs [Wed, 3 Dec 2014 21:32:10 +0000 (22:32 +0100)]
Cleaned up test example.

9 years agoTest case for sending large messages.
Aaron Krebs [Wed, 3 Dec 2014 21:10:21 +0000 (22:10 +0100)]
Test case for sending large messages.

9 years agofix private key file read and write on windows (binary read/write)
Niklas Hofmann [Thu, 4 Dec 2014 20:59:52 +0000 (21:59 +0100)]
fix private key file read and write on windows (binary read/write)

9 years agoMake sure header src and dst are always null-terminated.
Aaron Krebs [Mon, 1 Dec 2014 15:52:54 +0000 (16:52 +0100)]
Make sure header src and dst are always null-terminated.

9 years agohack to wait for SPTPS to complete before opening a channel
Sven M. Hallberg [Thu, 6 Nov 2014 17:39:33 +0000 (18:39 +0100)]
hack to wait for SPTPS to complete before opening a channel

9 years agoadd more and timestamped debug output to channels test
Sven M. Hallberg [Thu, 6 Nov 2014 17:38:27 +0000 (18:38 +0100)]
add more and timestamped debug output to channels test

9 years agolog incoming packet payload as hex (not verbatim)
Sven M. Hallberg [Thu, 6 Nov 2014 17:35:12 +0000 (18:35 +0100)]
log incoming packet payload as hex (not verbatim)

9 years agomingw compatibility
Niklas Hofmann [Thu, 20 Nov 2014 23:20:50 +0000 (00:20 +0100)]
mingw compatibility

9 years agoIn case two nodes start a SPTPS session simultaneously, deterministically choose...
Guus Sliepen [Tue, 18 Nov 2014 21:03:12 +0000 (22:03 +0100)]
In case two nodes start a SPTPS session simultaneously, deterministically choose one to succeed.

This fixes the problem where two nodes send a REQ_KEY to each other
simultaneously, which causes both of them to drop their current state
and respond to the other's REQ_KEY with an ANS_KEY, which won't succeed
any more because both of them forgot that state.

9 years agotest/channel: don't let both sides connect to each other simultaneously.
Guus Sliepen [Fri, 7 Nov 2014 23:53:58 +0000 (23:53 +0000)]
test/channel: don't let both sides connect to each other simultaneously.

The channel test fails to work reliably when the two threads are started
exactly simultaneously and both sides try to connect to each other. Both
sides simultaneously initiate a end-to-end SPTPS connection by sending
the appropriate req_key request, but upon reception of each others
request they reset their own state, causing SPTPS packets from the old
and the new state to cross each other. A timeout will occur eventually,
causing one side to try to restart the SPTPS connection. Since the
timeouts are slightly randomized, this sometimes causes the channel test
to work, sometimes not.

9 years agoUse strncpy instead of memcpy to not read off the end of source buffer.
Aaron Krebs [Mon, 3 Nov 2014 14:32:08 +0000 (15:32 +0100)]
Use strncpy instead of memcpy to not read off the end of source buffer.

9 years agoAdd a version of the channels test that forks.
Guus Sliepen [Sat, 1 Nov 2014 21:06:56 +0000 (22:06 +0100)]
Add a version of the channels test that forks.

This creates two separate programs that each run one MeshLink instance,
instead of one program that runs two instances simultaneously.

9 years agoSet receive callback when accepting channels.
Aaron Krebs [Fri, 31 Oct 2014 12:33:11 +0000 (13:33 +0100)]
Set receive callback when accepting channels.

9 years agoSet channel_poll_trampoline as default poll callback.
Aaron Krebs [Fri, 31 Oct 2014 12:02:02 +0000 (13:02 +0100)]
Set channel_poll_trampoline as default poll callback.

9 years agoFix compilation error in the basic C++ test.
Guus Sliepen [Sat, 1 Nov 2014 21:06:40 +0000 (22:06 +0100)]
Fix compilation error in the basic C++ test.

9 years agoAdded configure option to set UTCP_DEBUG.
Aaron Krebs [Thu, 30 Oct 2014 13:00:22 +0000 (14:00 +0100)]
Added configure option to set UTCP_DEBUG.

9 years agoChanged C++ channel API to use member functions.
Aaron Krebs [Wed, 29 Oct 2014 12:55:53 +0000 (13:55 +0100)]
Changed C++ channel API to use member functions.

9 years agoapple compatibility
Niklas Hofmann [Mon, 27 Oct 2014 05:47:56 +0000 (06:47 +0100)]
apple compatibility

9 years agowindows compatibility
Niklas Hofmann [Sat, 25 Oct 2014 20:17:51 +0000 (22:17 +0200)]
windows compatibility

9 years agoupdate to new catta, removal of libuuid dependency
Niklas Hofmann [Sat, 25 Oct 2014 15:47:59 +0000 (17:47 +0200)]
update to new catta, removal of libuuid dependency

9 years agoConfigure autotools to install public header files.
Aaron Krebs [Wed, 1 Oct 2014 12:26:24 +0000 (14:26 +0200)]
Configure autotools to install public header files.

9 years agoFix README stuff to compile correctly catta
Saverio Proto [Tue, 26 Aug 2014 12:31:48 +0000 (14:31 +0200)]
Fix README stuff to compile correctly catta

9 years agorename of avahi to catta
Niklas Hofmann [Fri, 22 Aug 2014 08:34:20 +0000 (10:34 +0200)]
rename of avahi to catta

9 years ago2nd approach again: class meshlink::mesh has the handle as member, not as base class.
Lars [Mon, 18 Aug 2014 13:40:43 +0000 (15:40 +0200)]
2nd approach again: class meshlink::mesh has the handle as member, not as base class.

Conflicts:
src/meshlink++.h

9 years agoindent with TAB, align with SPACEs
Lars [Mon, 18 Aug 2014 12:37:48 +0000 (14:37 +0200)]
indent with TAB, align with SPACEs

9 years agoFix path in README.catta
Saverio Proto [Sun, 17 Aug 2014 11:03:52 +0000 (13:03 +0200)]
Fix path in README.catta

9 years agolink to catta instead of avahi
Niklas Hofmann [Fri, 15 Aug 2014 10:54:00 +0000 (12:54 +0200)]
link to catta instead of avahi

9 years agosubmodule catta added
Niklas Hofmann [Fri, 15 Aug 2014 10:10:30 +0000 (12:10 +0200)]
submodule catta added

Conflicts:
.gitmodules

9 years agoremove avahi
Niklas Hofmann [Fri, 15 Aug 2014 10:00:57 +0000 (12:00 +0200)]
remove avahi

9 years agoAdd a function to set the default white/blacklisting behaviour.
Guus Sliepen [Tue, 16 Dec 2014 13:51:36 +0000 (14:51 +0100)]
Add a function to set the default white/blacklisting behaviour.

This function should be called right after meshlink_open(), and will
apply the default white/blacklist setting to newly learned nodes.
The status can later be changed using the meshlink_whitelist() and
meshlink_blacklist() functions.

9 years agoAdd a function to change a configuration file on disk.
Guus Sliepen [Tue, 16 Dec 2014 13:50:42 +0000 (14:50 +0100)]
Add a function to change a configuration file on disk.

10 years agoClean up UTCP connections when stopping the mesh.
Guus Sliepen [Sat, 1 Nov 2014 14:57:42 +0000 (15:57 +0100)]
Clean up UTCP connections when stopping the mesh.

10 years agoTake the global lock in meshlink_channel_send().
Guus Sliepen [Sat, 1 Nov 2014 13:24:41 +0000 (14:24 +0100)]
Take the global lock in meshlink_channel_send().

10 years agoAdd argument validation to the channels API.
Guus Sliepen [Sat, 1 Nov 2014 13:24:00 +0000 (14:24 +0100)]
Add argument validation to the channels API.

10 years agoRegister channel poll callback to notify when a channel has succesfully opened.
Guus Sliepen [Fri, 31 Oct 2014 08:11:49 +0000 (09:11 +0100)]
Register channel poll callback to notify when a channel has succesfully opened.

10 years agoCall utcp_timeout() once every iteration of the event loop.
Guus Sliepen [Fri, 31 Oct 2014 08:10:23 +0000 (09:10 +0100)]
Call utcp_timeout() once every iteration of the event loop.

10 years agoFix definition of mesh::set_channel_accept_cb() and _poll_cb().
Guus Sliepen [Fri, 31 Oct 2014 07:27:34 +0000 (08:27 +0100)]
Fix definition of mesh::set_channel_accept_cb() and _poll_cb().

10 years agoUpdate TODO list.
Guus Sliepen [Sat, 25 Oct 2014 18:18:54 +0000 (20:18 +0200)]
Update TODO list.

10 years agoAdd a poll callback to channels.
Guus Sliepen [Wed, 1 Oct 2014 17:36:58 +0000 (19:36 +0200)]
Add a poll callback to channels.

The callback is called whenever the a call to meshlink_channel_send()
will accept a non-zero number of bytes.

10 years agoEnsure receive_cb and utcp structures have been properly initialized after setting...
Guus Sliepen [Sun, 14 Sep 2014 15:49:09 +0000 (17:49 +0200)]
Ensure receive_cb and utcp structures have been properly initialized after setting channel_accept_cb.

This allows the channels example to initiate a chat from one side only.

10 years agoChannels can now actually be opened.
Guus Sliepen [Sun, 14 Sep 2014 15:27:24 +0000 (17:27 +0200)]
Channels can now actually be opened.

It still requires both sides to call channel_open(), because otherwise utcp_init() is not called
on the receiving side.

10 years agoBuild the channels example.
Guus Sliepen [Sun, 14 Sep 2014 15:24:44 +0000 (17:24 +0200)]
Build the channels example.

10 years agoAdd devclass argument to calls to meshlink_open() in all tests.
Guus Sliepen [Sat, 13 Sep 2014 14:56:50 +0000 (16:56 +0200)]
Add devclass argument to calls to meshlink_open() in all tests.

10 years agoUpdate .gitignore files.
Guus Sliepen [Sat, 13 Sep 2014 14:22:10 +0000 (16:22 +0200)]
Update .gitignore files.

10 years agoFix queue handling in meshlink_send().
Guus Sliepen [Sat, 13 Sep 2014 14:09:11 +0000 (16:09 +0200)]
Fix queue handling in meshlink_send().

We need to copy the data from the application *here*. To avoid multiple copies, prepare the
whole vpn_packet_t in meshlink_send(), so meshlink_send_from_queue() only has to dequeue
and call route(). We also don't need to take the mesh_mutex, since the only information we
use is the name of ourself and the destination node, which is guaranteed to be stable.

10 years agoAdd an example chat program that uses the channels API.
Guus Sliepen [Fri, 5 Sep 2014 21:14:40 +0000 (23:14 +0200)]
Add an example chat program that uses the channels API.

10 years agomanynodes: put a prefix di graph json files because with LXC many machines write...
Saverio Proto [Fri, 5 Sep 2014 16:58:29 +0000 (18:58 +0200)]
manynodes: put a prefix di graph json files because with LXC many machines write into the same folder

10 years agomanynodes: export the graph always from node 0
Saverio Proto [Mon, 1 Sep 2014 06:31:09 +0000 (08:31 +0200)]
manynodes: export the graph always from node 0

10 years agomanynodes: add few backbone nodes and many portable nodes to make tests
Saverio Proto [Thu, 28 Aug 2014 13:18:00 +0000 (15:18 +0200)]
manynodes: add few backbone nodes and many portable nodes to make tests

10 years agomanynodes: implement stop command
Saverio Proto [Thu, 28 Aug 2014 13:17:15 +0000 (15:17 +0200)]
manynodes: implement stop command

10 years agoKeep private members out of the "public" meshlink structs.
Guus Sliepen [Fri, 22 Aug 2014 09:11:46 +0000 (11:11 +0200)]
Keep private members out of the "public" meshlink structs.

10 years agoUpdate to latest commit of UTCP.
Guus Sliepen [Fri, 22 Aug 2014 09:03:54 +0000 (11:03 +0200)]
Update to latest commit of UTCP.

10 years agoMerge branch 'channels'
Guus Sliepen [Fri, 22 Aug 2014 08:58:47 +0000 (10:58 +0200)]
Merge branch 'channels'

Conflicts:
.gitmodules
src/node.h

10 years agomeshlink_export: correctly export the mutex
Saverio Proto [Thu, 21 Aug 2014 16:51:37 +0000 (18:51 +0200)]
meshlink_export: correctly export the mutex

10 years agoDeleting variable defined but not used
Saverio Proto [Thu, 21 Aug 2014 16:33:31 +0000 (18:33 +0200)]
Deleting variable defined but not used

10 years agomanynodes: implemented /select to be able to select the node that will execute the...
Saverio Proto [Tue, 19 Aug 2014 14:17:20 +0000 (16:17 +0200)]
manynodes: implemented /select to be able to select the node that will execute the console commands
by default node0 will be executing the commands
doing /select 1 for example, the node 1 will execute the console commands

10 years agomanynodes: do not add localhost as node's address
Saverio Proto [Mon, 18 Aug 2014 15:35:56 +0000 (17:35 +0200)]
manynodes: do not add localhost as node's address

10 years agoDont learn localhost and IPv6 link local with AVAHI
Saverio Proto [Sun, 17 Aug 2014 13:15:57 +0000 (15:15 +0200)]
Dont learn localhost and IPv6 link local with AVAHI

10 years agoInvitation protocol: correctly initialize and reset mesh->thedatalen after join is...
Saverio Proto [Sun, 17 Aug 2014 11:01:37 +0000 (13:01 +0200)]
Invitation protocol: correctly initialize and reset mesh->thedatalen after join is finished

10 years agoRevert "Fixed a bug in the invitation code that prevented correct working of the...
Saverio Proto [Sun, 17 Aug 2014 10:17:45 +0000 (12:17 +0200)]
Revert "Fixed a bug in the invitation code that prevented correct working of the feature after the second call of /join"

This reverts commit 1b233d4c868011ec98b668d2d7fca576d921b8b6.

10 years agoFixed a bug in the invitation code that prevented correct working of the feature...
Saverio Proto [Thu, 14 Aug 2014 13:48:32 +0000 (15:48 +0200)]
Fixed a bug in the invitation code that prevented correct working of the feature after the second call of /join

The second time /join was called the correct name in meshlink.conf was not updated.

It appeared a wrong ConnectTo statement in the hosts/name file

10 years agofinalize_join: close file descriptor before return
Saverio Proto [Thu, 14 Aug 2014 08:16:08 +0000 (10:16 +0200)]
finalize_join: close file descriptor before return

10 years agobugfix handle case where count(edges) = 0
Niklas Hofmann [Thu, 14 Aug 2014 08:18:52 +0000 (10:18 +0200)]
bugfix handle case where count(edges) = 0

10 years agostart graph export timer via command line paramter in manynodes example
Niklas Hofmann [Wed, 13 Aug 2014 19:30:53 +0000 (21:30 +0200)]
start graph export timer via command line paramter in manynodes example

10 years agograph export timer for manynodes example
Niklas Hofmann [Wed, 13 Aug 2014 19:17:37 +0000 (21:17 +0200)]
graph export timer for manynodes example

10 years agodevtools added
Niklas Hofmann [Wed, 13 Aug 2014 18:15:12 +0000 (20:15 +0200)]
devtools added

10 years agojson export of node and edge structure
Niklas Hofmann [Wed, 13 Aug 2014 17:50:29 +0000 (19:50 +0200)]
json export of node and edge structure

10 years agowarning added to code comment
Niklas Hofmann [Wed, 13 Aug 2014 15:37:27 +0000 (17:37 +0200)]
warning added to code comment

10 years ago"last successfull connect" introduced
Niklas Hofmann [Wed, 13 Aug 2014 15:02:28 +0000 (17:02 +0200)]
"last successfull connect" introduced

10 years agovarious connect order bugfixes; storing / reading devclass bugfix
Niklas Hofmann [Wed, 13 Aug 2014 14:52:47 +0000 (16:52 +0200)]
various connect order bugfixes; storing / reading devclass bugfix

10 years agolocks in discovery code
Niklas Hofmann [Wed, 13 Aug 2014 11:49:30 +0000 (13:49 +0200)]
locks in discovery code

10 years agoMerge branch 'mesh_topology_output' into roles
Niklas Hofmann [Wed, 13 Aug 2014 11:30:16 +0000 (13:30 +0200)]
Merge branch 'mesh_topology_output' into roles

10 years agofixing comparison expression
Niklas Hofmann [Wed, 13 Aug 2014 07:27:05 +0000 (09:27 +0200)]
fixing comparison expression

10 years agoFix segfault when two nodes that just joined a mesh want to autoconnect to each other.
Guus Sliepen [Tue, 12 Aug 2014 20:03:32 +0000 (22:03 +0200)]
Fix segfault when two nodes that just joined a mesh want to autoconnect to each other.

In this case, we have not exchanged public keys yet. That should not be
a problem, but we blindly pass a NULL pointer to sptps_start() in this
case which blindly dereferences it. Fix sptps_start() by making sure no
arguments are NULL, and teach MeshLink to exchange keys between
reachable nodes when it tries to make a meta-connection.

10 years agocreate a new connection only in case there is none
Niklas Hofmann [Tue, 12 Aug 2014 15:34:50 +0000 (17:34 +0200)]
create a new connection only in case there is none

10 years agofixed some potentially nasty memory issues
Niklas Hofmann [Tue, 12 Aug 2014 14:40:41 +0000 (16:40 +0200)]
fixed some potentially nasty memory issues

10 years agoasserts added to make sure devclass is valid
Niklas Hofmann [Tue, 12 Aug 2014 09:52:02 +0000 (11:52 +0200)]
asserts added to make sure devclass is valid

10 years agoRemoved references to HAVE_STRUCT_SOCKADDR_STORAGE.
Aaron Krebs [Tue, 12 Aug 2014 09:43:35 +0000 (11:43 +0200)]
Removed references to HAVE_STRUCT_SOCKADDR_STORAGE.

Enforced sockaddr_storage support in configure.ac

10 years agoconverging auto connect algorithm
Niklas Hofmann [Tue, 12 Aug 2014 03:32:22 +0000 (05:32 +0200)]
converging auto connect algorithm

10 years agoChanged meshlink_get_all_edges_state to re-use memory.
Aaron Krebs [Mon, 11 Aug 2014 10:13:25 +0000 (12:13 +0200)]
Changed meshlink_get_all_edges_state to re-use memory.

10 years agoFinished sockaddr_t to sockaddr_storage copy on meshlink_edge_t.
Aaron Krebs [Mon, 11 Aug 2014 08:56:58 +0000 (10:56 +0200)]
Finished sockaddr_t to sockaddr_storage copy on meshlink_edge_t.

10 years agoImplemented API function to capture mesh edges.
Aaron Krebs [Sat, 9 Aug 2014 20:05:34 +0000 (22:05 +0200)]
Implemented API function to capture mesh edges.

10 years agoRemoved extern keyword.
Aaron Krebs [Sat, 9 Aug 2014 17:38:03 +0000 (19:38 +0200)]
Removed extern keyword.

10 years agoadded log info
Niklas Hofmann [Sat, 9 Aug 2014 18:14:01 +0000 (20:14 +0200)]
added log info

10 years agofixed missing unlock
Niklas Hofmann [Sat, 9 Aug 2014 17:34:12 +0000 (19:34 +0200)]
fixed missing unlock

10 years agoReplaced node_mutex with mesh_mutex.
Aaron Krebs [Sat, 9 Aug 2014 15:54:56 +0000 (17:54 +0200)]
Replaced node_mutex with mesh_mutex.

This reverses the mutex use; instead of locking when modifying nodes,
we unlock when not modifying the mesh. Any API functions that wish
to use the mesh must aquire the lock first.

TODO: Currently there is a deadlock problem, and the discovery thread is not
cleanly handled yet.

10 years agofix in log message
Niklas Hofmann [Sat, 9 Aug 2014 16:45:29 +0000 (18:45 +0200)]
fix in log message

10 years agofix arith exception, log messages for autoconnect code
Niklas Hofmann [Sat, 9 Aug 2014 16:42:02 +0000 (18:42 +0200)]
fix arith exception, log messages for autoconnect code

10 years agoclass based connect behaviour
Niklas Hofmann [Sat, 9 Aug 2014 16:26:35 +0000 (18:26 +0200)]
class based connect behaviour

10 years agoexplicit declaration of node_write_dclass
Niklas Hofmann [Sat, 9 Aug 2014 14:38:52 +0000 (16:38 +0200)]
explicit declaration of node_write_dclass

10 years agoMerge branch 'everbase' into roles
Niklas Hofmann [Sat, 9 Aug 2014 14:35:26 +0000 (16:35 +0200)]
Merge branch 'everbase' into roles

10 years agopersistence of DeviceClass
Niklas Hofmann [Sat, 9 Aug 2014 14:34:43 +0000 (16:34 +0200)]
persistence of DeviceClass

10 years agonet_packet: trivial, adjust to logger to DEBUG
Saverio Proto [Sat, 9 Aug 2014 14:27:10 +0000 (16:27 +0200)]
net_packet: trivial, adjust to logger to DEBUG

10 years agomanynodes example: trivial, change debug levels
Saverio Proto [Sat, 9 Aug 2014 14:26:16 +0000 (16:26 +0200)]
manynodes example: trivial, change debug levels

10 years agoDon't crash when the log callback gets a NULL mesh.
Guus Sliepen [Sat, 9 Aug 2014 13:36:00 +0000 (15:36 +0200)]
Don't crash when the log callback gets a NULL mesh.

10 years agoMerge branch 'everbase' of chicago.everbase.net:meshlink/meshlink into everbase
Guus Sliepen [Sat, 9 Aug 2014 13:31:43 +0000 (15:31 +0200)]
Merge branch 'everbase' of chicago.everbase.net:meshlink/meshlink into everbase

10 years agoRestart UDP key exchange after PingTimeout if it didn't work.
Guus Sliepen [Sat, 9 Aug 2014 13:31:00 +0000 (15:31 +0200)]
Restart UDP key exchange after PingTimeout if it didn't work.

10 years agoroute avahi log to meshlink log
Niklas Hofmann [Sat, 9 Aug 2014 12:49:53 +0000 (14:49 +0200)]
route avahi log to meshlink log

10 years agolog level adjustments
Niklas Hofmann [Sat, 9 Aug 2014 12:05:25 +0000 (14:05 +0200)]
log level adjustments