Jeremy Lakeman
30d5ed2b6d
Simple refactoring
2012-08-31 15:03:07 +09:30
gardners
9d2aa61792
Refactoring of Rhizome http server code so that we can supply a
...
different request parser, but otherwise share code between
rhizome transfers and rhizome direct. #9
2012-08-31 13:01:28 +09:30
gardners
bde9d1c56a
Rhizome http server now allows specification of client socket callback
...
when starting, so that same server code can be shared for rhizome transfers
and rhizome direct. #9
2012-08-31 13:01:28 +09:30
gardners
2b29893a02
Initial work towards rhizome direct syncrhonisation functions #9
2012-08-31 12:58:37 +09:30
Daniel O'Connor
e7201963d0
Staticise a bunch of functions so I get some understanding of what is needed where.
2012-08-31 12:13:20 +09:30
Andrew Bettison
27a0a6eeb5
Introduce struct __sourceloc
...
Replaces (const char *file, unsigned int line, const char *function) arguments
to all logging functions, simplifies malloc/free tracking code in
overlay_buffer.c and Rhizome manifest alloc/free tracking in rhizome_bundle.c.
Use __HERE__ macro instead of (__FILE__, __LINE__, __FUNCTION__) everywhere.
Special __NOWHERE__ macro is equivalent to (NULL, 0, NULL).
Declare net.c functions in new "net.h" header, so log.c doesn't have to pull
in the entire "serval.h" just to use write_str().
Facilitates progress on issue #2 .
2012-08-23 12:31:07 +09:30
Andrew Bettison
d8fd9fa411
Refactor nanosleep(2) calls into sleep_ms() function
2012-08-21 13:35:33 +09:30
Jeremy Lakeman
1a468f23b6
Fix off by one bug in payload length storage
2012-08-16 16:25:20 +09:30
Andrew Bettison
eec8fb6e95
Improve SAS resolution debug messages
2012-08-14 14:06:59 +09:30
Jeremy Lakeman
dcb2da45fa
Allow for audio to arrive in variable sized blocks
2012-08-13 16:35:30 +09:30
Jeremy Lakeman
3ab79d8e5b
Pass phone numbers in vomp call initiation
2012-08-13 14:01:57 +09:30
Jeremy Lakeman
fd111a4d1f
Listen to INADDR_ANY on OSX, otherwise we can't hear broadcasts
2012-08-09 13:32:08 +09:30
Jeremy Lakeman
f059546eb0
Improve monitor client interface and vomp for asterisk channel driver
2012-08-09 13:32:08 +09:30
Jeremy Lakeman
736a8f43c0
Refactor towards changing the vomp monitor interface
2012-08-09 13:32:08 +09:30
Jeremy Lakeman
fc9a9b337e
Wait for vomp client to indicate that ringing has started
2012-08-09 13:30:52 +09:30
Andrew Bettison
12d8bc0c12
Use new typedef time_ms_t everywhere
2012-08-09 12:14:32 +09:30
Andrew Bettison
fd1da2df93
Fix bug that failed dnaprotocol multi-lookup test
2012-08-06 16:44:36 +09:30
Andrew Bettison
03da89225d
Add xprintf() extensible stream formatter
...
Use it to replace open_memstream(3) in logServalPacket() -- not available on
Mac OS X
2012-08-03 16:44:05 +09:30
Andrew Bettison
ee6d9d8ea3
Fix logging in vomp.c
...
Replace DEBUG_SIMULATION with DEBUG_VOMP
Replace all printf(...) and fprintf(stderr,...) with WHYF(...) and DEBUGF(...)
Make all debug logging conditional on DEBUG_VOMP
2012-08-02 11:29:37 +09:30
Andrew Bettison
f37ec5af09
Reduce use of stderr in many places
...
serval_packetvisualise() is now replaced by DEBUG_packet_visualise() which uses
logging system not stderr (so now it will appear in Android log).
Replaced several fprintf(stderr,...) with DEBUGF(...).
Command line only prints a full help message on "help" command -- a command
parse failure simply informs the user about the "help" command.
2012-08-01 17:54:02 +09:30
Andrew Bettison
76cfb7beae
Fix bug failed dnaprotocol tests non-deterministically
...
Appending to the dummy interface file was altering the read offset position, so
very many receive packets were being lost.
2012-07-31 17:49:24 +09:30
Andrew Bettison
b9396505f8
Remove some unused declarations
2012-07-30 16:15:42 +09:30
Andrew Bettison
f002f5b9fd
Refactor log.h constants.h serval.h
...
Move DEBUG_ and LOG_LEVEL_ macro constants from constants.h into log.h.
Move dumpResponses() out of log.c, so that log.h is almost ready for re-use
(still depends on conf.h).
Remove unused and now obsolete catv() function -- replaced with toprint()
and alloca_toprint().
Add copyright/licence comments, fix up some copyright attributions.
Add #ifndef..#define..#endif __SERVALD_FOO_H to header files: log.h serval.h
constants.h
2012-07-30 16:15:42 +09:30
Daniel O'Connor
09d0fecf28
Remove carnal knowledge of conf.c from serval.h and commandline.c by providing a function to set the instance path override.
2012-07-29 18:58:41 +09:30
gardners
72f8b1916d
minor fixes to get things building with monitor client library.
2012-07-29 12:44:04 +09:30
gardners
274a77fa46
Refactor serval.h to split out log, config and other bits so that
...
we can have a standalone ServalD monitor client library and simple
header file. Create that too.
2012-07-29 12:42:27 +09:30
gardners
93449d380e
various fixes for libmonitorclient and commits made by others
...
inbetween. Hopefully I have captured all the changes.
2012-07-29 12:35:53 +09:30
Andrew Bettison
3b1adc3a31
Add DEBUG_argv() and WHY_argv() macros
...
Implemented usng new logArgv() function.
Refactored logMessage()
2012-07-27 18:04:46 +09:30
Andrew Bettison
0dee99dec2
Remove old command-line support
2012-07-27 11:44:20 +09:30
Andrew Bettison
62d851f97c
Improve DEBUG_GATEWAY debugging
...
Rewrite all fprintf(stderr,...) to DEBUGF(...)
Improve error reporting from runCommand() and safeSystem(), make them local to
gateway.c
2012-07-27 11:28:14 +09:30
Andrew Bettison
a69f637b3a
Replace DEBUG_HLR with DEBUG_KEYRING
...
Convert several fprintf(stderr,...) into DEBUGF() statements
2012-07-27 11:26:19 +09:30
Andrew Bettison
a6a81a0f64
Improve server signal handling
...
Use sigaction(2) instead of deprecated signal(2), allowing SEGV et al to be
received in handler and therefore in re-spawned server.
Receive SIGSEGV et al in a separate handler function which kills the server
with the same signal if it does not re-spawn.
Log a GDB backtrace on SEGV et al before exiting or respawning.
Rename config option "serval.respawn_on_signal" to "server.respawn_on_crash".
2012-07-26 18:31:23 +09:30
Andrew Bettison
81cafe9d6f
Improve log_backtrace() function
...
Add BACKTRACE macro. Improve gdb output buffering: log each line individually,
read progressively, reduce buffer size. Log diagnostics if gdb cannot be run.
2012-07-26 16:51:59 +09:30
Andrew Bettison
04b95d2590
Merge branch 'andrew' into 'master'
2012-07-25 18:04:16 +09:30
Andrew Bettison
2b57773472
Add log_backtrace() function
2012-07-25 17:02:57 +09:30
Jeremy Lakeman
6e7c2196ba
Close interfaces on socket errors or when not detected
2012-07-25 16:53:44 +09:30
Jeremy Lakeman
74095e5356
Correctly display interface ip addresses on android
2012-07-25 14:53:53 +09:30
Jeremy Lakeman
5ec739c712
Add performance timing debug option
2012-07-25 13:33:30 +09:30
Andrew Bettison
6de247e576
Improve diagnosis of SEGV failures in tests
2012-07-24 15:39:36 +09:30
Andrew Bettison
f472ac9a8d
Lots of 'dnahelper' tests, all pass but one
...
Test fails because DNA helper logic does not yet impose a timeout on receiving
the "DONE" ACK after a request.
2012-07-23 18:29:57 +09:30
Andrew Bettison
3e0f8df18a
Fix bug in DID parsing, affects "set did" command
2012-07-23 15:17:21 +09:30
Andrew Bettison
30567c1d34
Start writing systematic 'dnahelper' tests
2012-07-23 12:23:17 +09:30
Andrew Bettison
0e5c5e0e98
More work on dnahelper, almost done
...
Servald starts DNA helper, receives startup ACK, sends requests, receives
responses, handles malformed helper responses, echoes dnahelper stderr lines to
log, sends MDP reply packet, waits for dead helper process, all asynchronously.
Shuts down helper process during servald shutdown.
Remaining issues:
- Does not impose a timeout on helper responses.
- Only the first URI is reported by the "dna lookup" command.
2012-07-20 18:17:43 +09:30
Andrew Bettison
3b44bb6e58
More progress on dnahelper
2012-07-19 17:59:45 +09:30
Andrew Bettison
5aac5a3854
Unfinished dnahelper implementation
2012-07-18 19:16:30 +09:30
Jeremy Lakeman
87515d5dda
Allow a frame buffer to wrap an existing buffer
2012-07-18 14:43:14 +09:30
Jeremy Lakeman
fdc70d7512
Log when a peer becomes reachable or unreachable, edit tests to wait for this message
2012-07-17 18:22:39 +09:30
Jeremy Lakeman
6f12edd7a8
Fix compiler warning
2012-07-17 15:59:06 +09:30
Jeremy Lakeman
1d53726b7b
Merge remote-tracking branch 'origin/master'
...
Conflicts:
rhizome_fetch.c
rhizome_http.c
testframework.sh
2012-07-17 15:39:55 +09:30
Jeremy Lakeman
ddba8033e4
Refactor packet envelope and sid abbreviation reading and writing
2012-07-17 15:30:50 +09:30
Andrew Bettison
dd225bbb7f
Refactor rhizome HTTP response headers
2012-07-13 12:31:10 +09:30
Jeremy Lakeman
5e915bcc09
Schedule packet sending
2012-07-13 12:18:50 +09:30
Jeremy Lakeman
d36ba78afe
Refactor packet construction and sending
2012-07-13 12:18:50 +09:30
Jeremy Lakeman
e9566de0af
Fix payload length fields
2012-07-13 12:18:49 +09:30
Jeremy Lakeman
27c24f377e
Add deadline time for alarm prioritisation
2012-07-13 12:18:45 +09:30
Jeremy Lakeman
35b4ba8594
Schedule interface ticks per interface
2012-07-13 12:13:46 +09:30
Andrew Bettison
41f3228300
Refactor rhizome HTTP request parsing
...
Replace DEBUG_RHIZOMESYNC with DEBUG_RHIZOME_TX
2012-07-13 11:06:10 +09:30
Andrew Bettison
dcf7209304
Add read_nonblock() function
...
Deal with platforms where EWOULDBLOCK != EAGAIN
2012-07-13 11:04:50 +09:30
Andrew Bettison
025ccad810
Replace DEBUG_DNAVARS with DEBUG_RHIZOME_RX
...
Delete some obsolete HLR code
Mark DEBUG_HLR as deprecated
2012-07-12 16:26:37 +09:30
Andrew Bettison
208a95a233
Replace validateSid() with str_is_subscriber_id()
2012-07-12 16:14:25 +09:30
Andrew Bettison
d111f763c7
Fix bugs revealed by 'rhizomeprotocol' test
...
Was not transmitting actual HTTP server port in rhizome announcements, was
always transmitting port 4110.
When trying for a free HTTP server port, sometimes bind() succeeds but listen()
fails with EADDRINUSE, so new logic to deal with that.
2012-07-12 12:10:59 +09:30
Andrew Bettison
a15a9146c3
Improve toprint() and alloca_toprint()
2012-07-11 14:17:53 +09:30
Andrew Bettison
e8eab5b27e
Improve diagnostics from write_all(), write_nonblock() etc.
...
Add toprint() function and alloca_toprint() macro.
2012-07-10 19:57:56 +09:30
Andrew Bettison
7c2090e61c
Improve error reports for write_str() etc.
...
Now write_str(), write_nonblock(), write_all(), set_nonblock() etc. report the
file/line/function of their caller, rather than the function in net.c. Done
using macros, similar in style to WHY() etc.
2012-07-10 18:51:41 +09:30
Andrew Bettison
86eb482ed9
Replace macros with functions
...
SET_NONBLOCKING(), SET_BLOCKING(), WRITE_STR() are now set_nonblock(),
set_block() and write_str() respectively, all of which log an error before
returning -1. There are other useful methods: write_all() treats anything less
than all bytes written as an error; write_nonblock() treats EAGAIN and EINTR as
zero bytes written, and a combination: write_all_nonblock().
2012-07-10 16:33:39 +09:30
Andrew Bettison
d2898ee22c
Add output fields to 'keyring add' command
2012-07-06 13:17:53 +09:30
Andrew Bettison
735d9a42cc
Clean up compile warnings and fix bugs
...
In monitor_process_command() for "call" command, was not handling SID "*" case
properly, nor checking validity of hex SID.
2012-07-06 10:14:39 +09:30
Jeremy Lakeman
7b8e82baea
Refactor vomp call processing to reduce latency
2012-07-05 16:09:33 +09:30
Andrew Bettison
a80da50636
Finish rewriting configuration and logging code
...
Fix endless recursion if error or debug logged while reading config file
Fix 'config del' logic
Log messages made before log file can be opened are buffered and written
once the file is open
Do not log to file in ANDROID version, just to Android's log system
2012-07-05 14:59:50 +09:30
Andrew Bettison
ab64b08ceb
Rewrite config file code
...
Gets rid of rotor in confValueGet() and duplicate config file parsing code
Currently fails three tests
2012-07-04 18:57:02 +09:30
Andrew Bettison
68ef34c119
Add 'id allpeers' command to facilitate testing
2012-07-04 12:06:15 +09:30
Andrew Bettison
a90c0156ed
New DEBUG_MDPREQUESTS debug flag
...
Use it to instrument the MDP_GETADDRS request, to investigate cause of
test 'dnaprotocol' fixture failure
2012-07-04 10:32:38 +09:30
Andrew Bettison
72769e162b
Replace overlay_render_sid_prefix() with alloca_tohex()
...
To eliminate timebomb bugs caused by rotor wraparound
2012-07-04 10:30:46 +09:30
Andrew Bettison
d72e4d20ea
Fix compiler warnings
2012-07-03 18:00:52 +09:30
Andrew Bettison
2c87039307
Replace overlay_render_sid() with alloca_tohex_sid()
...
To eliminate timebomb bugs caused by rotor wraparound
2012-07-03 17:59:30 +09:30
Andrew Bettison
30d51f0314
Tighten up tests and code relating to peer discovery
2012-07-03 17:38:54 +09:30
gardners
02ca21a601
CHANGED DNA REPLY PACKET FORMAT BREAKING BACKWARDS COMPATIBILITY
...
... as part of working on work on DNA helper callout facility.
(DNA replies now contain a token that can be used to match them
against DNA requests as a happy side-effect).
2012-07-03 16:45:03 +09:30
Jeremy Lakeman
3d39e92628
Setup scheduled alarm per vomp call and send keep alives
2012-07-03 15:50:05 +09:30
Andrew Bettison
78a8aaca16
Code improvements while debugging 'dnaprotocol' tests
...
Use ssize_t and size_t where required by system calls
More stringent checking of errors from system calls
Log the offset when writing to dummy interface file
Clean up many WHY/INFO/DEBUG statements
Convert many fprintf(stderr,...) to DEBUGF()
2012-07-03 15:36:51 +09:30
Andrew Bettison
8020ea3b74
Merge branch 'eventscheduler' into master
...
Conflicts:
commandline.c
monitor.c
overlay.c
overlay_interface.c
overlay_packetformats.c
rhizome_fetch.c
rhizome_http.c
rhizome_packetformats.c
serval.h
server.c
testdefs.sh
testframework.sh
tests/dnaprotocol
tests/server
2012-07-03 10:26:22 +09:30
Jeremy Lakeman
132d3a6f9b
rename profiling structure
2012-07-02 16:04:00 +09:30
Jeremy Lakeman
e705696896
separate statistics gathering from the scheduler structure
2012-07-02 15:20:30 +09:30
Jeremy Lakeman
89566e4d3d
Refactor how functions are scheduled or file handes are watched
2012-07-02 13:19:54 +09:30
Andrew Bettison
fc8df7d5d4
Config options for tick duration
2012-07-02 12:26:01 +09:30
Andrew Bettison
b368a3aab4
Add confValueGetInt64() function
2012-06-28 18:19:36 +09:30
Andrew Bettison
b9836af8a2
Fix debug logging in overlay_interface.c
...
Also fix bug that closed the logfile when forking the server process.
2012-06-28 17:34:21 +09:30
Andrew Bettison
9625190c6a
Improve debug code:
...
Debug bit mask is unsigned int everywhere.
Refactor DEBUG() macros a bit.
Add SERVALD_DEBUG_FILE env var to support test scripts.
Test defs put instance directories under $TFWVAR not $TFWTMP.
2012-06-28 15:24:43 +09:30
Jeremy Lakeman
29cba17891
Fix rhizome transfers
2012-06-27 16:54:42 +09:30
gardners
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
gardners
b40a468276
Merge branch 'eventscheduler'
...
Conflicts:
monitor.c
serval.h
2012-06-25 16:50:23 +09:30
Daniel O'Connor
271454aee3
Use WRITE_STR instead of writeLine.
...
staticise a bunch of variables & functions in monitor-cli.c
2012-06-25 16:24:33 +09:30
Andrew Bettison
c335310b45
Remove more obsolete and unused code
2012-06-25 15:40:35 +09:30
Andrew Bettison
67e2e98867
Expunge old DNA protocol code (cleans up warnings)
2012-06-25 15:37:11 +09:30
Andrew Bettison
a960ed4e8a
Clean up compiler warning in monitor.c
2012-06-25 15:00:07 +09:30
Andrew Bettison
208b9c15fd
Factor out rhizome_hex_to_bytes() and chartonybl()
2012-06-25 14:51:21 +09:30
gardners
d579693f3d
added stats generation and summarisation to take place of older
...
excessively chatty timing gathering.
2012-06-25 14:35:55 +09:30
Jeremy Lakeman
5dcf274bc1
Only allow 2 duplicate audio packets
2012-06-25 11:38:07 +09:30
Daniel O'Connor
8d7b0d259f
Add a compile time knob to disable timing checks (on by default now).
2012-06-22 20:40:29 +09:30
Andrew Bettison
a6ac6a4246
Improve servald logging
...
Use 'logfile' config entry, fall back to stderr if absent or can't be opened
Replace fprintf(stderr,...) with DEBUGF() in dump() and dumpResponses()
2012-06-22 17:19:14 +09:30
gardners
91bccec71d
various fixes related to event scheduler.
...
server main loop is now just fd_poll()
2012-06-22 16:05:50 +09:30