Releases: karlkleinpaste/biblesync
BibleSync 2.1.0
No functional changes.
The underlying code that discovers default route interface address had to be re-implemented due to the old code having stopped working though having not changed in 6 years: rtnetlink changed, apparently.
New method is to read /proc/net/route to get default route directly, used to feed getifaddrs(3) comparison as before.
BibleSync 2.0.1
Protocol change, which is why the major revision is bumped to v2.
Chat message support. A new message type BSP_CHAT (0x04) is supported.
BibleSync_xmit_status BibleSync::Chat(string message);
The message is auto-trimmed to fit into the packet space available, roughly 1100 bytes.
It must not contain newlines, and will be inoculated against them regardless.
v2 will listen to v1, but the version byte will keep v1 from recognizing v2.
BibleSync 1.2.0
BibleSync 1.2.0 represents a small API change:
- Transmit() no longer takes a message type argument (e.g. BSP_SYNC). It is confined to sending nav sync only, because the app has no reason to send its own presence announcements or speaker beacons.
- setBeaconCount() provides for setting the number of Receive() calls between beacon transmissions. Default 10, expecting calling Receive() once/second. Per 2 seconds, setBeaconCount(5); per 3, setBeaconCount(3).
- setUser() lets the app set a new name for the user, since some apps provide for the user setting his name after the app has started.
BibleSync 1.1.2
BibleSync Protocol
BibleSync is not part of Xiphos proper. It was first developed inside Xiphos and then extricated into an independent library so that other applications may use it, integrate it, become BibleSync-capable with it.
(This is a belatedly-arrived release of the files for BibleSync 1.1.2, previously available from SourceForge.)
The updated specification, available here, reflects both the liberties taken with the original spec as well as with the beacon enhancement that was necessary to handle the inconvenience and danger of either inadvertent or malicious navigation by people who should not be driving others' applications. The programmer's reference (biblesync.7) and the updated specification (biblesync-specification.n) are in UNIX/Linux "man" (manual) format.
The original spec is at http://biblesyncprotocol.wikispaces.com (user "General_Public", password "password").
Karl Kleinpaste
06 Jun 2014
. o - o . o - o . o - o . o - o .
Release 1.1.2
24 Dec 2014
-
1.1.0, general: The library interface was upgraded so that the Speaker's UUID is provided as the 2nd parameter of nav_func(). See biblesync.hh.
-
1.1.1, security: An anti-spoof update was made so that the first beacon is transmitted before the presence announcement, to forestall malicious receivers from obtaining a UUID and beginning transmission of their own beacons and navigation before the legitimate Speaker can begin.
-
1.1.2, bug: A logic error was fixed which prevented the saving of a Speaker IP address in some circumstances.
Provided:
- Source tarball.
- Zip of Win32 essentials: static + dyn libs, *.h, manual pages.
- Fedora RPMs.
Building on Linux:
$ mkdir -p build/linux && cd build/linux
$ cmake -DBUILD_SHARED_LIBS=TRUE -DCMAKE_INSTALL_PREFIX=/usr -DLIBDIR=/usr/lib64 ../..
$ make && sudo make install
Note use of /usr/lib64, which is appropriate for Fedora x86_64; perhaps
use just /usr/lib instead if your system is different.
The build process produces a suitable .spec for RPM generation.
Cross-compiling for Win32 using MinGW on Linux:
$ . win32.opts
$ mkdir -p build/win32 && cd build/win32
$ cmake $WIN32_OPTS -DBUILD_SHARED_LIBS=TRUE ../..
$ make && sudo make install
Some versions of CMake result in files being mis-installed in the system's
/usr/lib instead of e.g. /usr/i686-w64-mingw32/sys-root/mingw/lib. Watch
the resulting paths chosen carefully.
If you add BibleSync support to your application, please inform me.