From 7f6138ffd4935043382ce5f867ee9e177e0a9787 Mon Sep 17 00:00:00 2001 From: Matthias Andree Date: Sun, 3 Feb 2013 15:12:07 +0100 Subject: [PATCH] Add new gai.c debug source. --- contrib/README | 5 +++++ contrib/gai.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 contrib/gai.c diff --git a/contrib/README b/contrib/README index 7c6e6e8f..5eaa51e9 100644 --- a/contrib/README +++ b/contrib/README @@ -202,3 +202,8 @@ It probably needs to be adjusted for use on other systems. A MySQL/Tcl/Expect-based client-side script to remove messages at a certain age. See delete-later.README for details. (By Carsten Ralle, Yoo GmbH, Germany.) + +### gai (added 2013-02-03, --ma) + +A trivial getaddrinfo() program to check the getaddrinfo() call from the +system, as a research tool for the fetchmail developers. diff --git a/contrib/gai.c b/contrib/gai.c new file mode 100644 index 00000000..28961382 --- /dev/null +++ b/contrib/gai.c @@ -0,0 +1,42 @@ +/* + * File: gai.c + * Author: Matthias Andree + * + * Created on 3. Februar 2013, 15:03 + * A short file to call getaddrinfo with the same arguments as checkalias. + */ + +#include +#include +#include + +#include + +/* + * + */ +int main(int argc, char** argv) { + struct addrinfo hints; + struct addrinfo *res; + + if (argc != 2 || 0 == strcmp("-h", argv[1])) { + fprintf(stderr, "Usage: %s hostname\n", argv[0]); + exit(EXIT_FAILURE); + } + + memset(&hints, 0, sizeof hints); + hints.ai_family=AF_UNSPEC; + hints.ai_protocol=PF_UNSPEC; + hints.ai_socktype=SOCK_STREAM; + hints.ai_flags=AI_CANONNAME; + + int result = getaddrinfo(argv[1], NULL, &hints, &res); + if (result) { + fprintf(stderr, "getaddrinfo(\"%s\", ...AI_CANONNAME...) failed: %d (%s)\n", argv[1], result, gai_strerror(result)); + exit(EXIT_FAILURE); + } + + freeaddrinfo(res); + return (EXIT_SUCCESS); +} + -- 2.43.2