Commit Graph

243 Commits

Author SHA1 Message Date
gardners
e5394dd143 added stubs for DNA lookup helper app (not yet complete).
cleaned up some unused variables.
2012-06-21 16:35:28 +09:30
gardners
6023cd4da2 moved timing check definitions to serval.h 2012-06-21 11:33:42 +09:30
Andrew Bettison
56cb12f507 Refactor rhizome db creation and execution functions 2012-06-12 18:12:36 +09:30
Andrew Bettison
b2ffc6e72c Merge branch 'master' into andrew 2012-06-12 11:56:50 +09:30
Andrew Bettison
7be0d9d00d Pass author SID parameters in binary, not hex 2012-06-08 18:32:14 +09:30
Andrew Bettison
637ef02f30 Add _selfsigned column to "rhizome list" output
Add <pin,pin...> arg1 to "rhizome list" command, so it can open the keyring

Some tests in tests/rhizome fail
2012-06-08 18:25:43 +09:30
Daniel O'Connor
86c5e6945f Don't force signedness for name in overlay_interface_register().
I can't see any point to forcing the signedness, it causes warnings on platforms with a signed-char by default.
2012-06-08 17:01:50 +09:30
Daniel O'Connor
ea9993dc91 Fix detection on OSX and make detection smarter.
- Fix lsif() on OSX.
- Make lsif() smarter and avoid non-broadcast and no AF_INET addresses.
- Don't run multiple interface detectors, run one at a time until one works.
- Factor out HAVE_IFADDRS_H code into a separate function into lsif.c with the other interface detection routines.
- Prefer HAVE_IFADDRS_H (random bias..)
2012-06-08 16:36:33 +09:30
Andrew Bettison
7a71a521f8 Pass author SID parameters in binary, not hex 2012-06-08 15:27:15 +09:30
Daniel O'Connor
8882515d03 Fix compilation on OSX.
- /proc/net/route is Linux only.
- lsif() will work anywhere SIOCGIFCONF is defined.
- Abstract namespace UNIX domain sockets are Linux only.
- Rework code to reduce indent levels.
2012-05-28 15:00:54 +09:30
Andrew Bettison
bea9188cd5 Fix another manifest leak
Add manifest alloc/free debug logging to help, 'debug.manifests' option
2012-05-25 17:01:56 +09:30
Andrew Bettison
0ec3feaa29 Expunge setReason()
Replace with WHY() or WHYF() everywhere

Improve logMessage() to handle file/line/function printing internally

Mainly so that log messages from manifest alloc/free in rhizome_bundle.c
can make it into the Android log
2012-05-24 17:11:55 +09:30
Andrew Bettison
2f6f642a02 Improve log pathname trimming 2012-05-23 18:04:10 +09:30
Andrew Bettison
1af9125392 All rhizome database keys are uppercase hex
FILES.id, MANIFESTS.id, FILEMANIFESTS.fileid, FILEMANIFESTS.manifestid
Named constants for hex and binary ID sizes
2012-05-23 16:04:00 +09:30
gardners
29bb86d9e7 first cut at supressing rhizome activity during calls. 2012-05-22 13:05:29 +09:30
gardners
e3a61f7614 improved WHY() macros to not show build path in messages. 2012-05-22 09:54:10 +09:30
gardners
e44294ea66 implemented server_probe(int *pid) that used monitor interface
to probe server status.  Also returns PID if running (Linux only).
2012-05-21 20:45:07 +09:30
Jeremy Lakeman
9adaf0bd8f Only repeat an audio payload once 2012-05-21 14:14:24 +09:30
gardners
27daf02f81 added peer announcment to monitor interface. 2012-05-21 12:47:54 +09:30
gardners
3ea6d4f324 monitor interface announces new peers. 2012-05-21 12:47:53 +09:30
Daniel O'Connor
990a8f3057 Add support for srtuct ucred on BSD.
This requires building with _GNU_SOURCE to get access to struct ucred on Linux. Previously the test failed on every platform except glibc <2.8 or so.

Building with _GNU_SOURCE causes TRUE to be defined so we can't use this as a variable anymore, and MIN/MAX so don't define our own.
2012-05-21 12:22:50 +09:30
Daniel O'Connor
354258c395 Rename timeout to dnatimeout as it conflicts with ncurses (which is dumb but we can't change ncurses) 2012-05-21 12:20:05 +09:30
Andrew Bettison
b739bfd572 Add catv() function 2012-05-21 00:08:31 +09:30
Andrew Bettison
189ecee4b9 Clean up over-use of WHY() in overlay_mdp.c 2012-05-20 16:06:32 +09:30
gardners
e870c35422 Added very crude multi-hop route determination. 2012-05-17 17:08:59 +09:30
gardners
d2949f1b05 Made VoMP audio packet stuffing limit configurable and larger
so that we can test preemptive audio retransmission before we
implement any codecs.
2012-05-16 11:52:22 +09:30
gardners
0eafc34970 BK encoding and decoding complete, but untested. 2012-05-15 20:04:41 +09:30
Andrew Bettison
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
Andrew Bettison
7087afc404 Refactor main() into main.c
Now dna.c only contains code for the old command line
2012-05-15 11:09:21 +09:30
Andrew Bettison
d11258cefc Overhaul debug flags
Config debug flags are now represented as individual items, eg:
   servald config set debug.verbose yes
   servald config set debug.rhizome yes
instead of aggregated, eg:
   servald config set debug verbose,rhizome  <-- no longer works

Added a debug flag "debug.all" that can be set and cleared, over which
individual flag sets/clears take priority.

Slimmed down dna.c by moving some globals and functions to the files where they
are used.

Default command line (help message) is now the new style, not the deprecated
style.
2012-05-14 18:37:32 +09:30
Andrew Bettison
b02e9b9ac4 Overhaul rhizome datastore path code
Create datastore directory and all parent dirs if it does not exist
More robust error checking and buffer overflow protection
New mkdirs() and mkdirsn() functions
2012-05-14 18:37:32 +09:30
gardners
67e6c7ae2a fixed 10 pounds of potatoes in 5 pound sack (FUBAR) bug. 2012-05-14 16:24:58 +09:30
gardners
f0b72955d1 preparation for nacks for retransmission. 2012-05-14 15:44:36 +09:30
Andrew Bettison
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
gardners
7b82ccbd7b work on bypass-audio.
CALLSTATUS monitor message has gained a field, thus changing
API for java side.
2012-05-11 08:14:00 +09:30
Andrew Bettison
022e3289dd Quieten new compile warnings 2012-05-10 18:29:00 +09:30
Andrew Bettison
881576212c Fix all trivial compiler warnings 2012-05-10 18:08:59 +09:30
gardners
850d7b42d7 reworked shortcircuit audio code. 2012-05-10 16:58:57 +09:30
Andrew Bettison
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
gardners
8d2792ce74 substantial work towards playing audio on IDEOS/G1 type MSM chipset
android phones directly from C to dramatically reduce latency.
2012-05-10 03:47:18 +09:30
Andrew Bettison
d96d8ff8d6 Move signal handling to server.c
Improve diagnostic messages from signal handler

For some reason, signal handler was not being set in server process when called
from main()
2012-05-09 19:06:44 +09:30
Andrew Bettison
68cfa6218c Minor fix to WHY_perror() macro 2012-05-08 17:48:16 +09:30
Andrew Bettison
836f8332e8 Replace perror() with WHY_perror()
Puts more diagnostics to Android log
2012-05-08 14:53:34 +09:30
gardners
596b20b5e8 interactive servald monitor cli command implemented. 2012-05-08 14:41:21 +09:30
Andrew Bettison
391e8d7056 Fix broken stopfile logic
'start' command removes stopfile just before starting
'stop' command removes stopfile after stopping
2012-05-08 12:53:59 +09:30
Andrew Bettison
329189ec8c Fix bodgy server start/stop logic
Rename pidfile 'serval.pid' to 'servald.pid'
Rename stopfile 'doshutdown' to 'servald.stop'
Reinstate checking of stopfile on signals and in main loops
Correct delay loops in 'start' and 'stop' commands
Move some code from commandline.c to server.c
2012-05-08 12:19:52 +09:30
Andrew Bettison
acc5e48f4f Terminate server process if serval.pid clobbered 2012-05-08 11:23:43 +09:30
Andrew Bettison
09f8434a21 Improve "start" command
Add "start exec <exec path>" variants for background mode
Add background startup wait logic, so that pid can be reported to caller
2012-05-07 19:14:52 +09:30
Andrew Bettison
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
gardners
7b520e7a49 fixed various bugs with priorty dispatch of voice traffic.
some debug tweaking etc.
2012-05-07 08:31:53 +09:30
gardners
ad78627fb6 added PCM codec entry. 2012-05-06 21:12:31 +09:30
gardners
6bc8f5643f better handling of disconnections by monitor clients. 2012-05-04 03:58:34 +09:30
gardners
4f09ccebdc further work towards working monitor interface.
sending DTMF works now, and DTMF packets are received back.
2012-05-04 03:44:41 +09:30
gardners
98ea86bde0 added new /proc/net/route method to find interfaces on android
(would you believe that using ifconfig to READ about interfaces
requires ROOT on android).
should also help for interfaces with multiple addresses.
2012-05-03 22:46:00 +09:30
Andrew Bettison
eab6dafcc7 Make commandline.c error messages appear on Android log 2012-05-03 14:50:14 +09:30
gardners
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
gardners
eb8ffeb71f progress towards monitor interface for following calls. 2012-05-03 03:00:34 +09:30
gardners
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
gardners
14e4af6392 DNA replies now include name. "set did" now accepts name.
Keyring now stores name. "node info resolvedid" now returns name.
2012-05-01 14:38:09 +09:30
gardners
6e9d9783b8 various measures to prevent stale MDP bindings from hanging around
and causing pain.
2012-05-01 06:10:47 +09:30
gardners
c9863fe11e lots of fixes to get overlay mesh routing working on linux with
real network interfaces and no dummy interfaces.  neighbour discovery
now seems to work.
2012-04-29 11:56:47 +09:30
gardners
97c74654c1 fixed build error on centos/ubuntu linux. 2012-04-28 20:44:20 +09:30
gardners
92baae2a89 hopefully fixed acking of self-announcement frames when no route
to node exists.
2012-04-28 18:09:58 +09:30
gardners
2ab32197a7 Put new linux-specific interface listing routine in that is needed
for android, where the portable method isn't easily available.
2012-04-28 12:25:19 +09:30
gardners
88ba56b68b work towards "node info" command, and renamed stop/start etc to
drop node keyword, that in retrospect is not appropriate.
2012-04-26 07:14:01 +09:30
gardners
35f231dcb0 preparation for allowing MDP_GETADDRS to return either local IDs,
or SIDs of peers.
2012-04-26 05:58:16 +09:30
gardners
98c3b72cf4 mdp based dna lookup works now, but lacks duplicate suppression. 2012-04-25 20:33:25 +09:30
gardners
0133ea972a fixed infinite loop when responding to DNA lookups. 2012-04-25 20:24:08 +09:30
gardners
f8a1ffc4c9 dna lookup command line utility mostly done. Now to make server
respond.
2012-04-25 15:24:21 +09:30
gardners
ac6271c715 voice packets get priority queued. getting ready for dna lookups
via mdp.
2012-04-25 14:35:44 +09:30
gardners
6c044d5e8d sample times are now contiguous. DTMF tone length changed to 80ms
to be multiple of 20ms as used by most codecs.
2012-04-25 05:38:45 +09:30
gardners
30471f19ef added system for resending recent samples as a form of
preemptive retransmission to deal with wifi packet loss.
2012-04-24 20:49:59 +09:30
Andrew Bettison
f9d8536d7d JNI-ize the output of "dna rhizome list" 2012-04-24 17:50:27 +09:30
gardners
131a34617f work towards pushing audio sample blocks out over the network. 2012-04-24 15:27:59 +09:30
gardners
53504fe694 Fixed function prototypes for JNI compatability. 2012-04-24 12:14:53 +09:30
gardners
03004bcfdc added vomp dtmf command line interface to inject DTMF characters
into a call.  This will be the initial codec/audio xfer app.
2012-04-24 12:06:28 +09:30
gardners
a553eb0942 added code to vomp monitor to show when audio packets arrive. 2012-04-24 12:04:49 +09:30
Daniel O'Connor
2188c807b2 Hook up dummy phone app to commandline.c 2012-04-23 20:58:28 +09:30
Andrew Bettison
a73916e85a Implement JNI command-line interface (untested)
- argv is (const char *const *) everywhere, to avoid having to strdup() all the
  Java arg strings
- changed (char*) to (const char*) in lots of places to fix cascading compiler
  warnings as a result of argv constness
- fixed a bug in "config get" command when used without 'variable' arg
2012-04-23 17:18:15 +09:30
gardners
71c57794e6 local/remote codec hinting now in place. 2012-04-23 16:59:39 +09:30
gardners
953e836ba6 fixed bug introduced in adding codec hints. 2012-04-23 13:55:17 +09:30
gardners
0cff6b5abf making a vomp call now requires a registerest listener to call
state information.
when registering a listener you can also specify a list of codecs
that are supported.  These are included in the initial 3-way
call initiation process so that each party knows which codecs
the other supports.
2012-04-23 13:30:22 +09:30
gardners
e8eaa32227 modified neighbour structure to include record of when route metrics
were last updated, so that we can avoid excessive updating and thus
wasting of CPU/energy.
2012-04-22 20:16:48 +09:30
gardners
76a1bec84e Added initial work towards a call status monitoring commandline
option.
2012-04-22 18:47:24 +09:30
gardners
29b8454a94 vomp pickup and hangup commandline apps in place and working. 2012-04-22 12:51:58 +09:30
gardners
f45288ccc1 vomp status now shows details for each live call descriptor. 2012-04-22 08:48:23 +09:30
gardners
9b409c2891 Got VoMP ticks to update call state running. 2012-04-21 21:21:26 +09:30
gardners
db68286426 Various VoMP state machinery fixes. Call can now progress to
ringing at each end.
2012-04-21 20:36:26 +09:30
gardners
6713ff67cb progress towards VoMP. State control stuff is still up the creek. 2012-04-21 09:07:36 +09:30
gardners
c8968bacef disabled paranoid malloc debugging 2012-04-20 19:26:08 +09:30
gardners
d843e59bd5 vomp status and vomp dial command line apps added.
now debugging dial operation.
2012-04-20 17:12:44 +09:30
gardners
c52e91ef46 added code to send VoMP notifications to local listeners and to the
far end.  Ready to start making command line tools to enquire and
manipulate call state.
2012-04-20 08:02:03 +09:30
gardners
ddeb316421 Added VOMPEVENT_CALLINFO MDP message flag to get info on
specified call (if present), and summary of all valid calls
(session token + state)
2012-04-20 05:44:51 +09:30
gardners
cbb4df7c11 Added call info enquiry MDP message. 2012-04-20 05:38:45 +09:30
gardners
ea372aece2 Added VoMP call-pickup message handling. 2012-04-20 05:25:48 +09:30
gardners
57be9bef32 Further work on VoMP. MDP message to create a call should now
do something.
2012-04-20 05:19:42 +09:30
gardners
b1a7ccd32f Further work on getting VoMP together. Added MDP messages to add
and remove a client from being interested in the phone-call state.
2012-04-19 21:54:37 +09:30
gardners
a29a1283f7 More work towards integrating VoMP (creating unix domain socket
interface for call control/audio handling).
2012-04-19 21:54:36 +09:30
Andrew Bettison
2bfa0ee7d2 Tighten up command line parsing
- add optional offset and limit args to rhizome list
- validate argument values
2012-04-19 18:03:04 +09:30
gardners
e74e8056e0 Work towards VoMP audio handling (very preliminary) 2012-04-19 08:34:57 +09:30
gardners
729ede461d Added hardwired MDP listener port for VoMP.
Moved VoMP header material into serval.h for use.
2012-04-19 07:34:12 +09:30
gardners
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
gardners
caab3078e5 substantial work towards public key signing of MDP frames and
the associated SID:SAS mapping cache and request packets.
2012-04-15 03:17:36 +09:30
gardners
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
gardners
c37d83bddd forwarding of overlay frames substantially in place, but requires
testing.
2012-04-14 10:56:03 +09:30
gardners
5f0fa352e3 Updated function prototype following fix for MDP echo port. 2012-04-14 09:38:55 +09:30
gardners
283b29af6b Improved packet tx and rx debugging and made it more logical. 2012-04-14 06:38:11 +09:30
gardners
167c59d50d Added debug option to suppress rhizome traffic to make it easier
to see what is going on.
Similarly there is now a debug option to show outgoing packets.
2012-04-14 06:26:20 +09:30
gardners
f972c988b9 Adding support for marking payloads as broadcast so that they can
be directed to all interfaces if they are broadcast (previously
overlay mesh would "broadcast" to one semi-random interface only).
2012-04-14 04:06:08 +09:30
gardners
ca24513599 Work towards actually authcrypting MDP payloads.
Not complete.
2012-04-14 02:14:41 +09:30
gardners
099e7ab118 Fixed searching for DIDs with wildcard with keyring.
General improvements to handling identities from keyrings.
Fixed placing of DONE flag for each identity that a query
produces results as.
Various other fixes.
2012-04-13 10:23:59 +09:30
gardners
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
gardners
7b8d78533d Added commandline interface to set a did.
Re-enabled payload rotation in keyring PKRs.
Getting and setting dids now works.
keyring list displays SID:DID pairs.
2012-04-12 23:16:25 +09:30
gardners
e0a385f200 Added functions for setting/changing DIDs and also for finding
identities that have a given DID (no wildcard matching just yet).
2012-04-12 17:18:28 +09:30
gardners
4ceefb26de Added new keytypes for keyring for Rhizome Secret and for storing
DIDs (which are probably not normally secret, but keeping with
with an identity is a good thing, anyway).
2012-04-12 17:01:25 +09:30
gardners
e89673ee89 Added command line access for simple keyring functions for testing.
Creating keyring files works.
Writing PKR blocks seems more or less working, but we can't (yet)
read them back.
2012-04-12 14:00:51 +09:30
gardners
f24d06517a Writing of identities and keys now much closer to happening. 2012-04-12 12:32:01 +09:30
gardners
8efb6fd497 Work towards being able to create a new identity.
Still need to pack, crypt and store the resulting identity.
2012-04-12 07:52:50 +09:30
gardners
9b51192144 More work on keyring management. Decrypting (but not verification)
of PKRs is now more or less there.
2012-04-12 07:52:50 +09:30
gardners
2b260402b5 Added keyring.c and begun work on routines to manipulate keyrings. 2012-04-10 12:56:32 +09:30
gardners
6127b25602 Added overlay frame type for identity enquiry (proving ownership
of a signing key).
2012-04-03 09:22:58 +09:30
Andrew Bettison
e87e80aee7 Create instance directory in "set" and "node start" 2012-03-29 15:03:17 +10:30
Andrew Bettison
a338c2f0f9 Refactor instance path handling
- handle buffer limits when forming path names within instance dir
 - uniform use of serval_instancepath()
2012-03-29 14:07:07 +10:30
gardners
8fbbdc5087 More work on MDP.
Swapped functions of overlay_mdp_send() and overlay_mdp_dispatch()
to match normal socket operations and thus avoid programmer confusion.
2012-03-28 11:28:04 +10:30
gardners
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
gardners
3e0e1bf7e3 Disabled extra verbose malloc debug stuff. 2012-03-22 17:15:51 +10:30
gardners
2b42f77ccf Fixed some bounds checking, and added some fairly rigorous memory
handling debug aids. No known memory corruption bugs remain, I
think.
2012-03-22 17:10:27 +10:30
gardners
13d1d3084e Various fixes to track down memory handling bugs.
Fixed one free-before-time bug with queuing MDP frames.
Some heap corruption bug seems to remain.
2012-03-22 16:33:25 +10:30
gardners
30e2540470 Various fixes and work towards sending MDP frames.
Broadcast and unicast addresses are accepted.  Some frame headers
are set.  Payload is yet to be set, and ciphered &/or signed as required,
and queueing is not yet verified.
2012-03-21 12:57:24 +10:30
gardners
c71ddbbd18 MDP ping getting closer: ping loop showing server-returned error
messages now works.  Server currently reports error when trying to
send MDP_TX frames (since it is not yet implemented), which the
client successfully displays. Onto making the server handle the
MDP_TX frames.
2012-03-21 03:55:13 +10:30
gardners
6e3fe903d9 Improved shutdown behaviour to properly handle client mode (don't
delete server socket if you are a client).  Also added main MDP
ping loop of sending packets.  Reading returned packets not yet
implemented.  Server handling of MDP_TX packets also not yet
implemented.
2012-03-21 03:27:47 +10:30
gardners
7ee72b3cba Further work on MDP. Client now receives server replies. So we
can actually bind an MDP port.  Next step is to make use of it to
send a packet.
2012-03-21 03:00:39 +10:30
gardners
8e6f6ee925 Work towards getting MDP working. Still some fun and games with
getting unix domain sockets to play nicely.  Some superfluous debug
code is present while working this through.
2012-03-20 17:11:58 +10:30
gardners
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
gardners
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
gardners
b8d66bf19b Improved instance path handling so that there is a simple function
to get the current instance path, regardless of how it was determined.
2012-03-17 09:28:49 +10:30
gardners
9fb94fc877 More work on dna identity cache. 2012-03-15 10:57:38 +10:30
gardners
ec8a81c206 Rhizome now uses serval.conf to get rhizome database size limit. 2012-03-15 10:57:37 +10:30
gardners
2a2e520ef5 Various fixes and additions to enable "dna node start" and "dna node stop"
command line options to work.
2012-03-15 10:57:37 +10:30
Andrew Bettison
738b70b513 Test and fix ACTION_CREATEHLR idempotency code:
- refactor hlrSid() to not return pointer to static buffer, take 3rd arg instead
 - introduce SID_STRLEN macro constant, use it everywhere
 - reformat some code for readability
2012-03-14 12:00:54 +10:30
Andrew Bettison
f04a995c5c First cut at transaction caching to eliminate duplicate message deliveries 2012-03-13 16:35:14 +10:30
Jeremy Lakeman
172bdb61ed Add DNA name variable 2012-03-06 11:21:10 +10:30
gardners
1eb4c34015 Renamed mphlr.h to serval.h
(also some temporary debugging has been added in some places)
2012-02-23 12:45:42 +10:30