On Wed, 26.03.14 14:17, Daniel Buch (boogiewasth...@gmail.com) wrote: Applied! Thanks!
> --- > src/libsystemd/sd-resolve/test-resolve.c | 48 > +++++++++++++++----------------- > 1 file changed, 22 insertions(+), 26 deletions(-) > > diff --git a/src/libsystemd/sd-resolve/test-resolve.c > b/src/libsystemd/sd-resolve/test-resolve.c > index d3b2d55..6334dad 100644 > --- a/src/libsystemd/sd-resolve/test-resolve.c > +++ b/src/libsystemd/sd-resolve/test-resolve.c > @@ -4,6 +4,7 @@ > This file is part of systemd. > > Copyright 2005-2008 Lennart Poettering > + Copyright 2014 Daniel Buch > > systemd is free software; you can redistribute it and/or modify it > under the terms of the GNU Lesser General Public License as published by > @@ -31,36 +32,39 @@ > #include <signal.h> > #include <errno.h> > > +#include "socket-util.h" > #include "sd-resolve.h" > #include "resolve-util.h" > #include "macro.h" > > int main(int argc, char *argv[]) { > - int r = 1; > + int r = 0; > _cleanup_resolve_unref_ sd_resolve *resolve = NULL; > _cleanup_resolve_addrinfo_free_ struct addrinfo *ai = NULL; > _cleanup_free_ unsigned char *srv = NULL; > - sd_resolve_query *q1 = NULL, *q2 = NULL, *q3 = NULL; > - struct addrinfo hints = {}; > - struct sockaddr_in sa = {}; > _cleanup_free_ char *host = NULL, *serv = NULL; > + sd_resolve_query *q1 = NULL, *q2 = NULL, *q3 = NULL; > + > + struct addrinfo hints = { > + .ai_family = PF_UNSPEC, > + .ai_socktype = SOCK_STREAM, > + .ai_flags = AI_CANONNAME > + }; > + > + struct sockaddr_in sa = { > + .sin_family = AF_INET, > + .sin_port = htons(80) > + }; > > assert_se(sd_resolve_new(&resolve) >= 0); > > /* Make a name -> address query */ > - hints.ai_family = PF_UNSPEC; > - hints.ai_socktype = SOCK_STREAM; > - hints.ai_flags = AI_CANONNAME; > - > r = sd_resolve_getaddrinfo(resolve, &q1, argc >= 2 ? argv[1] : > "www.heise.de", NULL, &hints); > if (r < 0) > log_error("sd_resolve_getaddrinfo(): %s\n", strerror(-r)); > > /* Make an address -> name query */ > - sa.sin_family = AF_INET; > - sa.sin_addr.s_addr = inet_addr(argc >= 3 ? argv[2] : > "193.99.144.71"); > - sa.sin_port = htons(80); > - > + sa.sin_addr.s_addr = inet_addr(argc >= 3 ? argv[2] : > "193.99.144.71"), > r = sd_resolve_getnameinfo(resolve, &q2, (struct sockaddr*) &sa, > sizeof(sa), 0, true, true); > if (r < 0) > log_error("sd_resolve_getnameinfo(): %s\n", strerror(-r)); > @@ -90,15 +94,11 @@ int main(int argc, char *argv[]) { > struct addrinfo *i; > > for (i = ai; i; i = i->ai_next) { > - char t[256]; > - const char *p = NULL; > + _cleanup_free_ char *addr = NULL; > > - if (i->ai_family == PF_INET) > - p = inet_ntop(AF_INET, &((struct > sockaddr_in*) i->ai_addr)->sin_addr, t, sizeof(t)); > - else if (i->ai_family == PF_INET6) > - p = inet_ntop(AF_INET6, &((struct > sockaddr_in6*) i->ai_addr)->sin6_addr, t, sizeof(t)); > + assert_se(sockaddr_pretty(i->ai_addr, i->ai_addrlen, > false, &addr) == 0); > > - printf("%s\n", p); > + puts(addr); > } > > printf("canonical name: %s\n", strna(ai->ai_canonname)); > @@ -109,7 +109,7 @@ int main(int argc, char *argv[]) { > if (r) > log_error("error: %s %i\n", gai_strerror(r), r); > else > - printf("%s -- %s\n", host, serv); > + printf("Host: %s -- Serv: %s\n", host, serv); > > /* Interpret the result of the SRV lookup */ > r = sd_resolve_res_done(q3, &srv); > @@ -118,9 +118,7 @@ int main(int argc, char *argv[]) { > else if (r == 0) > log_error("No reply for SRV lookup\n"); > else { > - int qdcount; > - int ancount; > - int len; > + int qdcount, ancount, len; > const unsigned char *pos = srv + sizeof(HEADER); > unsigned char *end = srv + r; > HEADER *head = (HEADER *)srv; > @@ -157,7 +155,5 @@ int main(int argc, char *argv[]) { > } > } > > - r = 0; > - > - return r; > + return 0; > } Lennart -- Lennart Poettering, Red Hat _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel