nl-util-addr.c revision 44d362409d5469aed47d19e7908d19bd194493a
144d362409d5469aed47d19e7908d19bd194493aThomas Graf/*
244d362409d5469aed47d19e7908d19bd194493aThomas Graf * src/nl-util-addr.c     Address Helper
344d362409d5469aed47d19e7908d19bd194493aThomas Graf *
444d362409d5469aed47d19e7908d19bd194493aThomas Graf *	This library is free software; you can redistribute it and/or
544d362409d5469aed47d19e7908d19bd194493aThomas Graf *	modify it under the terms of the GNU Lesser General Public
644d362409d5469aed47d19e7908d19bd194493aThomas Graf *	License as published by the Free Software Foundation version 2.1
744d362409d5469aed47d19e7908d19bd194493aThomas Graf *	of the License.
844d362409d5469aed47d19e7908d19bd194493aThomas Graf *
944d362409d5469aed47d19e7908d19bd194493aThomas Graf * Copyright (c) 2003-2006 Thomas Graf <tgraf@suug.ch>
1044d362409d5469aed47d19e7908d19bd194493aThomas Graf */
1144d362409d5469aed47d19e7908d19bd194493aThomas Graf
1244d362409d5469aed47d19e7908d19bd194493aThomas Graf#include "utils.h"
1344d362409d5469aed47d19e7908d19bd194493aThomas Graf
1444d362409d5469aed47d19e7908d19bd194493aThomas Grafint main(int argc, char *argv[])
1544d362409d5469aed47d19e7908d19bd194493aThomas Graf{
1644d362409d5469aed47d19e7908d19bd194493aThomas Graf	int err;
1744d362409d5469aed47d19e7908d19bd194493aThomas Graf	char host[256];
1844d362409d5469aed47d19e7908d19bd194493aThomas Graf	struct nl_addr *a;
1944d362409d5469aed47d19e7908d19bd194493aThomas Graf
2044d362409d5469aed47d19e7908d19bd194493aThomas Graf	if (argc < 2) {
2144d362409d5469aed47d19e7908d19bd194493aThomas Graf		fprintf(stderr, "Usage: nl-util-addr <address>\n");
2244d362409d5469aed47d19e7908d19bd194493aThomas Graf		return -1;
2344d362409d5469aed47d19e7908d19bd194493aThomas Graf	}
2444d362409d5469aed47d19e7908d19bd194493aThomas Graf
2544d362409d5469aed47d19e7908d19bd194493aThomas Graf	a = nl_addr_parse(argv[1], AF_UNSPEC);
2644d362409d5469aed47d19e7908d19bd194493aThomas Graf	if (a == NULL) {
2744d362409d5469aed47d19e7908d19bd194493aThomas Graf		fprintf(stderr, "Cannot parse address \"%s\"\n", argv[1]);
2844d362409d5469aed47d19e7908d19bd194493aThomas Graf		return -1;
2944d362409d5469aed47d19e7908d19bd194493aThomas Graf	}
3044d362409d5469aed47d19e7908d19bd194493aThomas Graf
3144d362409d5469aed47d19e7908d19bd194493aThomas Graf	err = nl_addr_resolve(a, host, sizeof(host));
3244d362409d5469aed47d19e7908d19bd194493aThomas Graf	if (err != 0) {
3344d362409d5469aed47d19e7908d19bd194493aThomas Graf		fprintf(stderr, "Cannot resolve address \"%s\": %d\n",
3444d362409d5469aed47d19e7908d19bd194493aThomas Graf			argv[1], err);
3544d362409d5469aed47d19e7908d19bd194493aThomas Graf		return -1;
3644d362409d5469aed47d19e7908d19bd194493aThomas Graf	}
3744d362409d5469aed47d19e7908d19bd194493aThomas Graf
3844d362409d5469aed47d19e7908d19bd194493aThomas Graf	printf("%s\n", host);
3944d362409d5469aed47d19e7908d19bd194493aThomas Graf
4044d362409d5469aed47d19e7908d19bd194493aThomas Graf	return 0;
4144d362409d5469aed47d19e7908d19bd194493aThomas Graf}
42