diff options
Diffstat (limited to 'contrib')
| -rw-r--r-- | contrib/README | 5 | ||||
| -rw-r--r-- | contrib/gai.c | 42 | 
2 files changed, 47 insertions, 0 deletions
| 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 <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include <netdb.h> + +/* + * + */ +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); +} + | 
