From e32468e232909cf49c52917651af579d384419b0 Mon Sep 17 00:00:00 2001 From: Andreas Fankhauser hiddenalpha.ch Date: Fri, 5 Apr 2024 21:21:39 +0200 Subject: Make ready for windoof. --- Makefile | 11 ++++++----- src/main/c/getaddrinfocli.c | 20 ++++++++++++++++++-- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 0a85b90..0695efa 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,7 @@ COPYTO=cp -t DIRNAME=dirname MD5SUM=md5sum -b TAR=tar +BINEXT= INSTALL_ROOT=/usr/local CFLAGS=-Wall -Werror -pedantic -std=c89 -fPIC -Os -fmax-errors=1 -DPROJECT_VERSION=$(PROJECT_VERSION) -D_POSIX_C_SOURCE=200112L @@ -29,8 +30,8 @@ clean: echo " RM build dist" $(RIMRAF) build dist -build/bin/getaddrinfo: -build/bin/getaddrinfo: build/obj/main/c/getaddrinfocli.o +build/bin/getaddrinfo$(BINEXT): +build/bin/getaddrinfo$(BINEXT): build/obj/main/c/getaddrinfocli.o echo " LN $@" $(MKDIR_P) "$(shell dirname "$@")" $(LD) -o "$@" $(LDFLAGS) $^ $(LIBS) @@ -42,14 +43,14 @@ build/obj/main/c/getaddrinfocli.o: src/main/c/getaddrinfocli.c $(CC) -c -o "$@" $(CFLAGS) $^ dist/getaddrinfo-$(PROJECT_VERSION)+$(ARCH).tgz: -dist/getaddrinfo-$(PROJECT_VERSION)+$(ARCH).tgz: build/bin/getaddrinfo +dist/getaddrinfo-$(PROJECT_VERSION)+$(ARCH).tgz: build/bin/getaddrinfo$(BINEXT) echo " PKG $@" $(MKDIR_P) "$(shell dirname "$@")" build/tar build/tar/bin - $(COPYTO) build/tar/bin/. build/bin/getaddrinfo + $(COPYTO) build/tar/bin/. build/bin/getaddrinfo$(BINEXT) echo "version=$(PROJECT_VERSION)" > build/tar/METADATA.INI echo "arch=$(ARCH)" >> build/tar/METADATA.INI echo "builtAt=$(shell date -u +%Y-%m-%dT%H:%M:%SZ)" >> build/tar/METADATA.INI - $(TAR) --owner=0 --group=0 -czf "$@" -C build/tar METADATA.INI bin/getaddrinfo + $(TAR) --owner=0 --group=0 -czf "$@" -C build/tar METADATA.INI bin/getaddrinfo$(BINEXT) .PHONY: install install: diff --git a/src/main/c/getaddrinfocli.c b/src/main/c/getaddrinfocli.c index 209a4a6..9acffbe 100644 --- a/src/main/c/getaddrinfocli.c +++ b/src/main/c/getaddrinfocli.c @@ -2,13 +2,19 @@ USERCONFIG #endif -#include #include #include -#include #include #include #include +#if __WIN32 +# include +# include +static WSADATA wsadat; +#else +# include +# include +#endif #define STR_QUOT_(S) #S #define STR_QUOT(S) STR_QUOT_(S) @@ -35,6 +41,10 @@ int main( int argc, char**argv ){ if( argc != 2 ){ fprintf(stderr, "EINVAL: Try --help\n"); err = -1; goto endFn; } if( !strcmp(argv[1], "--help") ){ printHelp(); err = 0; goto endFn; } nodename = argv[1]; assert(nodename != NULL); +#ifdef __WIN32 + err = WSAStartup(MAKEWORD(1, 0), &wsadat); + if( err ) goto endFn; +#endif err = getaddrinfo(nodename, NULL, NULL, &res); if( err != 0 ){ const char *ex; @@ -47,7 +57,9 @@ int main( int argc, char**argv ){ case EAI_NONAME: ex = "EAI_NONAME"; break; case EAI_SERVICE: ex = "EAI_SERVICE"; break; case EAI_SOCKTYPE: ex = "EAI_SOCKTYPE"; break; +#ifdef EAI_SYSTEM case EAI_SYSTEM: ex = "EAI_SYSTEM"; break; +#endif #ifdef EAI_ADDRFAMILY case EAI_ADDRFAMILY: ex = "EAI_ADDRFAMILY"; break; #endif @@ -72,6 +84,7 @@ int main( int argc, char**argv ){ default: assert(!fprintf(stderr,"TODO: ai_family %d\n", it->ai_family)); afStr = NULL; } switch( it->ai_socktype ){ + case 0 : typStr = "0" ; break; case SOCK_STREAM: typStr = "STREAM"; break; case SOCK_DGRAM : typStr = "DGRAM" ; break; case SOCK_RAW : typStr = "RAW" ; break; @@ -117,6 +130,9 @@ int main( int argc, char**argv ){ err = 0; endFn: if( res != NULL ) freeaddrinfo(res); +#ifdef __WIN32 + WSACleanup(); +#endif return !!err; } -- cgit v1.1