hbc, hbc_mini.py and hbc_mini.c resolved the server once at startup, so an address change needed a client restart. They now re-resolve every TTL seconds (smallest A/AAAA TTL, floor 30s, 300s when unknown) and re-point, add or drop connections to follow the new addresses; a failed lookup keeps the current ones. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
30 lines
806 B
Makefile
30 lines
806 B
Makefile
CC ?= cc
|
|
CFLAGS = -O2 -Wall -Wextra -std=c11
|
|
LDFLAGS = -lz -lpthread -lm
|
|
# res_search() lives in libresolv on older glibc; in libc on newer glibc, musl and the BSDs
|
|
LDFLAGS += $(shell echo 'int main(void){return 0;}' | $(CC) -x c - -lresolv -o /dev/null 2>/dev/null && echo -lresolv)
|
|
TARGET = hbc_mini
|
|
SRC = hbc_mini.c
|
|
|
|
# FreeBSD/NetBSD keep zlib in base; no extra flags needed.
|
|
# On some NetBSD installs pthreads may need -lpthread from pkgsrc.
|
|
|
|
.PHONY: all clean debug test
|
|
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(SRC)
|
|
$(CC) $(CFLAGS) -o $@ $< $(LDFLAGS)
|
|
|
|
debug: $(SRC)
|
|
$(CC) -g -fsanitize=address,undefined -o $(TARGET)_dbg $< $(LDFLAGS)
|
|
|
|
test: test_probe
|
|
./test_probe
|
|
|
|
test_probe: test_probe.c $(SRC)
|
|
$(CC) $(CFLAGS) -o $@ test_probe.c $(LDFLAGS)
|
|
|
|
clean:
|
|
rm -f $(TARGET) $(TARGET)_dbg test_probe
|