cmake: install vclock.h

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
vclock: add tests

The tests don't yet cover vclock_to_str & vclock_from_str.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
vclock: rely on __get_ent helper to check for zero node id

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
vclock: avoid an unnecessary memset when duplicating vclocks

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
vclock: improve the comments describing the public functions

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
vclock: slightly reorder prototypes in header file

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
vclock: add API functions to mapfile

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
vclock: rename from 'nvclock' to 'vclock'

The 'n' in 'nvclock' stood for nomad.  Since this code aims to be generic,
let's drop the 'n' and call it vclock.

Additionally, this change renames some of the types to be less cryptic.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
vclock: make the code build

This is a matter of trivial include tweaks and dropping the convenience
functions that relied on nomad_local_node_id.  Consumers of vclock can
define their own.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
vclock: import vector clock code from nomad

This commit simply adds the two files.  The next commit will actually tweak
them and start building them.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
build: collapse debian build & test steps for cleaner output

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
build: replace gcc10 with gcc11, add gcc14/llvm15/llvm16/llvm19 on FreeBSD

Also, collapse the build and test steps for more compact output.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
socksvc & scgisvc: make them async

Instead of socksvc being a blocking function call, make it return a "handle"
that can be used later to stop the thread and close sockets.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
socksvc: rename callback struct

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
sock: add connect_addr that takes the destination address directly

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
sock: add xsockaddr_{get,set}_inet_port helpers

Getting and setting port numbers for AF_INET and AF_INET6 is anonying, so
this code hides the details.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
sock: return the correct errno on connection error

close(2) will clobber errno, so we need to stash it in a temporary variable.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
sock: avoid NULL pointer deref in xsockaddr_ntop

If we get a NULL address, return NULL.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
io: document the return value of x{read,write}_partial better

It wasn't clear what they return on success.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
sock: make xsockaddr_{cmp,copy} args const

This makes the functions useful more often without ugly casts.

Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Next