Recent addition of the GCC __attribute__(alloc_size) to some functions
in mem.h broke the build when using Clang 3.5. This commit introduces
configure-time checks for all GCC attributes used in the Serval source
code, and adapts accordingly.
If no instance directory specified, then use paths like
/etc/serval/serval.conf
/var/cache/serval
/var/log/serval
/var/run/serval
etc. for files, instead of all in a single directory.
Log all directory creation as INFO messages.
Interpretation of log.file.directory_path has changed slightly.
Updated servald configuration tech doc.
Finish the work started by Daniel in 2012, by using abstract local
AF_UNIX sockets on platforms that support them (Linux, Android).
Fix all sorts of bugs and issues that prevented the existing MDP and
Monitor client and server code from working with abstract socket names.
Handle selection between normal & abstract sockets in a single place.
overlay_mdp.c tried to have both but this seems like a bug so I've removed the second socket (needs tests).
Note this code has issues with signed/unsigned chars. They should become uint8_t's if they hold binary data, otherwise just char. If they ARE binary then it is broken because it calls strlen() on them.
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.
- if --disable-voiptest is given, does not test for VoIP headers and libraries,
and sets HAVE_VOIPTEST=0 (as before)
- if --enable-voiptest is given, tests for VoIP headers and libraries,
and fails with an error if any are missing
- if neither option is given, behaviour is opportunistic: tests for VoIP
headers and libraries and sets HAVE_VOIPTEST accordingly
- now './autoconf && ./configure && make' will produce ./dna executable
- added various missing libraries to configure.in
- fixed nacl CFLAGS and LDFLAGS settings in configure.in
- make git ignore autoconf and configure detritus
for building on other platforms (i.e., configure framework, including
the .in files that are needed to build configure and Makefile, and the
sqlite code that is required for stand-alone building without external
dependencies, e.g., on non-android platforms, and looking ahead to
symbian where we will need a single self-contained binary as we cannot
assume the presence of an sqlite3 library as we can on android).
Any further changes to the build environment should not be committed
until it has been verified that building from a clean checkout on osx,
followed by configure and make actually works.