feat(sterni/blipqn): print some extra information when using :debug

Change-Id: I92ebde397e679c7e3f8ddcf6fcecd6af5c84f629
Reviewed-on: https://cl.tvl.fyi/c/depot/+/13012
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
This commit is contained in:
sterni 2025-01-15 20:47:49 +01:00
parent a9e121380b
commit 10dc365e34
2 changed files with 20 additions and 1 deletions

View file

@ -17,8 +17,9 @@ let
pkgs.cbqn pkgs.cbqn
]; ];
meta.ci.targets = [ "debug" ];
passthru.debug = drv.overrideAttrs (old: { passthru.debug = drv.overrideAttrs (old: {
CFLAGS = "-g -Werror"; CFLAGS = "-g -Werror -DFLIPDOT_DEBUG=1";
}); });
}; };
in in

View file

@ -7,6 +7,9 @@
#include <string.h> #include <string.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <unistd.h> #include <unistd.h>
#ifndef FLIPDOT_DEBUG
#define FLIPDOT_DEBUG 0
#endif
int resolve_addr(char *host, char *port, struct addrinfo **addrs) { int resolve_addr(char *host, char *port, struct addrinfo **addrs) {
struct addrinfo hints; struct addrinfo hints;
@ -27,6 +30,7 @@ struct flipdot {
// Assumes all pointers in struct flipdot are not NULL which should be the case // Assumes all pointers in struct flipdot are not NULL which should be the case
// for any struct returned by flipdot_open(). // for any struct returned by flipdot_open().
void flipdot_close(struct flipdot *flipdot) { void flipdot_close(struct flipdot *flipdot) {
if (FLIPDOT_DEBUG) fprintf(stderr, "flipdot_close() called\n");
freeaddrinfo(flipdot->addrs); freeaddrinfo(flipdot->addrs);
close(flipdot->sockfd); close(flipdot->sockfd);
free(flipdot); free(flipdot);
@ -48,6 +52,16 @@ struct flipdot *flipdot_open(char *host, in_port_t port_number) {
flipdot->sockfd = socket(flipdot->addrs->ai_family, SOCK_DGRAM, IPPROTO_UDP); flipdot->sockfd = socket(flipdot->addrs->ai_family, SOCK_DGRAM, IPPROTO_UDP);
if (flipdot->sockfd < 0) goto error; if (flipdot->sockfd < 0) goto error;
if (FLIPDOT_DEBUG) {
char resolved_ip[NI_MAXHOST], resolved_port[NI_MAXSERV];
if (getnameinfo(flipdot->addrs->ai_addr, flipdot->addrs->ai_addrlen,
resolved_ip, sizeof(resolved_ip), resolved_port,
sizeof(resolved_port),
NI_NUMERICHOST | NI_NUMERICSERV | NI_DGRAM) == 0)
fprintf(stderr, "flipdot_open(): using %s, port %s\n", resolved_ip,
resolved_port);
}
return flipdot; return flipdot;
error: error:
@ -67,5 +81,9 @@ int8_t flipdot_send(struct flipdot *flipdot, uint8_t *bitmap,
ssize_t sent = sendto(flipdot->sockfd, bitmap, bitmap_len, 0, ssize_t sent = sendto(flipdot->sockfd, bitmap, bitmap_len, 0,
flipdot->addrs->ai_addr, flipdot->addrs->ai_addrlen); flipdot->addrs->ai_addr, flipdot->addrs->ai_addrlen);
if (FLIPDOT_DEBUG) {
fprintf(stderr, "flipdot_send(): sent %ld bytes\n", sent);
}
return (sent == (ssize_t)bitmap_len); return (sent == (ssize_t)bitmap_len);
} }