Commit Graph

145 Commits

Author SHA1 Message Date
97cd8f5255 added code to time various servald functions and report periodic
statistics.  Handles nested calls to correctly aportion call time
among children.
2012-06-26 09:22:51 +09:30
5c819fce7e Get rid of fprintf(stderr,...) in overlay.c
Replace with calls to DEBUGF() etc.
2012-06-25 16:32:52 +09:30
d579693f3d added stats generation and summarisation to take place of older
excessively chatty timing gathering.
2012-06-25 14:35:55 +09:30
3b6a004cc9 new event scheduler almost working, but after a while can stop
calling overlay_check_ticks alarm for some reason, which causes
queues to congest and bad things to generally happen.
2012-06-22 17:30:21 +09:30
895b5873f0 fixed bug cpu time wasting bug for dummynets. 2012-06-22 16:06:46 +09:30
6472ff29c1 fixed monitor interface problem with new event scheduler. 2012-06-22 16:06:46 +09:30
91bccec71d various fixes related to event scheduler.
server main loop is now just fd_poll()
2012-06-22 16:05:50 +09:30
f0ed4b2e52 debugging and related improvements for new event scheduler. 2012-06-22 16:05:50 +09:30
ae9e80fdce added missing file from previous commit.
formatting in overlay.c
2012-06-22 16:05:49 +09:30
5dc6d122a5 significant progress towards clean callback scheduler for poll()
events and timed callbacks.
2012-06-22 16:05:49 +09:30
2d718a297f reversed changes that broke DNA tests. Improved dnaprotocol
test script slightly.
2012-06-21 17:02:36 +09:30
50eaeca51a added sanity checking of poll timeout to prevent infinite wait
if any ticks are overdue (this whole thing will be revamped soon
to be simpler and more efficient, so this is a temporary solution).
2012-06-21 16:36:37 +09:30
926d4296c4 Added overall timer for main loop, minor tweaks to order and freq. of processes 2012-06-21 11:33:43 +09:30
6023cd4da2 moved timing check definitions to serval.h 2012-06-21 11:33:42 +09:30
0dd5845cdd added instrumentation to detect when servald spends more than 5ms doing
anything.  Reports which bit of the overlay mesh main loop the time was
spent in, to help track it down.
2012-06-15 15:13:45 +09:30
d0e0864b0c Fix comment to be correct. 2012-06-15 15:09:21 +09:30
e319b146a6 cleaned up some debugging. 2012-05-22 15:57:19 +09:30
d2c811b4b4 further rhizome voice traffic detection hooks. 2012-05-22 14:15:19 +09:30
f90b21ec78 Implement rhizome config options
rhizome.datastore_path - if not set, reverts to serval instance path
rhizome.enable - if not set, defaults to true
2012-05-15 12:56:10 +09:30
e746557a08 Fix bug in overlay_gettime_ms()
The sequence start time was only getting set in overlay_interface_init(), which
was not always called, or was called after overlay_gettime_ms() had already
been used.

Added FATALF(), FATAL() and FATAL_perror() macros.

Removed a bunch of debug statements no longer needed in monitor.c and server.c.
2012-05-11 10:38:46 +09:30
881576212c Fix all trivial compiler warnings 2012-05-10 18:08:59 +09:30
b15e5cfee7 Improve debugging/logging macros
Replace 'WHYRETNULL();' statements with 'return WHYNULL();'
Introduce DEBUG(), DEBUGF(), DEBUG_perror() and D macros
Add logMessage() and vlogMessage() functions
Implement setReason() using vlogMessage()
2012-05-10 12:53:57 +09:30
836f8332e8 Replace perror() with WHY_perror()
Puts more diagnostics to Android log
2012-05-08 14:53:34 +09:30
acc5e48f4f Terminate server process if serval.pid clobbered 2012-05-08 11:23:43 +09:30
cbc367b1f5 Rewrite server start/status/stop commands
Now correctly probes for server process existence using kill(pid, 0)
Status command does not dump config (use "config get" instead)
Output uses JNI cli output fields
Stop command uses 5 Hz wakeup, not busy wait while server exits
2012-05-07 13:49:38 +09:30
25f81aeaaf fixed bug with cancelling calls due to lack of listeners.
worked around poll() with accept() unix domain socket linux bug.
generally hooked in the unix domain stream socket interface for
monitoring calls (and later rhizome).
2012-05-03 03:37:03 +09:30
d637f31ab7 work towards stream unix domain socket to allow Android/Java
monitoring of call status and rhizome bundle arrivals.
2012-05-03 02:31:12 +09:30
c3fe7ee8e3 "id peers" now returns something! 2012-04-30 06:16:03 +09:30
03aa6cbf49 debugging output tweaks. 2012-04-30 06:01:34 +09:30
92baae2a89 hopefully fixed acking of self-announcement frames when no route
to node exists.
2012-04-28 18:09:58 +09:30
cd00204893 sending voice packets should now result in their being marked
as high priority (priority dispatch still outstanding).
2012-04-25 14:35:44 +09:30
dde520c465 forwarding frames preserves priority of voice packets.
voice packets now just need to be marked with the right priority...
2012-04-25 14:35:44 +09:30
9b409c2891 Got VoMP ticks to update call state running. 2012-04-21 21:21:26 +09:30
32ed614494 fixed remaining known issues with signed/crypted MDP such that
MDP ping now works, and provides appropriate responses from local
and remote hosts, and the SIGNED or SIGNED and CRYPTED status can
be observed.
2012-04-16 07:04:23 +09:30
e7e8b2d630 fixed bug in RFS size patching.
A lot of debug output tweaks to track the problem down.
2012-04-16 06:06:43 +09:30
2581e9fe4c Revamped dequeuing of TXd frames.
Now almost works (queues don't stay full of junk), although
mdp ping still gets a duplicate reply for 2-hop pings.
2012-04-14 23:12:45 +09:30
79dc33b156 Work towards transparent decryption of MDP frames.
Runs, just gets an error during decryption, like as though
keys or nonce were wrong.
2012-04-14 12:17:46 +09:30
4a1e4eca55 fixed more bugs in duplicate broadcast quenching.
looks like it might be working right now.
2012-04-14 11:16:59 +09:30
3e2213db61 removed debugging output. 2012-04-14 10:58:31 +09:30
4e0c9bfd02 fixed logic errors in handling of nexthop and destination addresses
when receiving a frame and determining if it is broadcast etc.
(one major use case that has been fixed is broadcast nexthop, and
unicast destination, e.g., for link-local broadcast).
2012-04-14 10:54:48 +09:30
a71929bcd2 Removed some debugging output. 2012-04-14 07:42:43 +09:30
e636dcd0fc Fixed handling of broadcast frames so that not-forwarding a broadcast
frame does not equate to not examining its contents ourselves.
2012-04-14 07:39:02 +09:30
2802a5c042 Fixed bug in dequeuing broadcast frames after they have been
sent via interfaces.
Also some debugging output added.
2012-04-14 06:31:30 +09:30
752a29c112 Fixed handling of duplicate broadcasts (they get dropped sooner).
There does seem to be something odd about the broadcast processing
still, as the BPIs change after resolving addresses.
Maybe when we send a broadcast out via multiple interfaces it
gets marked duplicate after sending to the first interface?
2012-04-14 04:33:01 +09:30
5ac83f9ca1 Replaced use of HLR with keyring for phone number lookups and
other functions.  Not yet tested.
2012-04-13 09:25:03 +09:30
aa543e1766 Various fixes and work towards MDP ping working.
MDP clients can now request the set of local addresses.
Framework is improved to avoid info leaks by sending more bytes
in an MDP frame than are necessary, but without having to bzero
almost 2KB each time.
2012-03-27 19:25:38 +10:30
d8f7f27bad Removed a debug statement. 2012-03-21 13:00:24 +10:30
70497df7b5 More work on MDP. Removed some debug fluff.
Added framework for MDP ping, and some work towards MDP port binding
and sending packets with option to wait for reply.  MDP server
doesn't yet support port binding, and client doesn't yet support
reading replies.
2012-03-19 16:06:34 +10:30
f384e6ea79 Further preparatory work for MDP. Next stop is actually checking
for inbound MDP connection requests on the unix domain sockets.
2012-03-17 13:02:09 +10:30
872c14df3f Added initial hook to handle MDP frames. 2012-03-17 09:28:49 +10:30