]> code.delx.au - pulseaudio/commitdiff
export FQDN instead of hostname
authorLennart Poettering <lennart@poettering.net>
Tue, 9 Nov 2004 00:14:07 +0000 (00:14 +0000)
committerLennart Poettering <lennart@poettering.net>
Tue, 9 Nov 2004 00:14:07 +0000 (00:14 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@277 fefdeb5f-60dc-0310-8127-8f9354f1896f

polyp/pax11publish.c
polyp/util.c
polyp/util.h

index d1391dcf21073d520df5323e6d10b4c89adc7ead..fc1d6ab7bdc6700ca407cc090ec1eea99c8cab25 100644 (file)
@@ -87,7 +87,12 @@ int main(int argc, char *argv[]) {
                 dname = optarg;
                 break;
             case 'h':
-                printf("%s [-D display] [-S server] [-O sink] [-I source] [-c file]  [-d|-e|-i|-r]\n", pa_path_get_filename(argv[0]));
+                printf("%s [-D display] [-S server] [-O sink] [-I source] [-c file]  [-d|-e|-i|-r]\n\n"
+                       " -d    Show current Polypaudio data attached to X11 display (default)\n"
+                       " -e    Export local Polypaudio data to X11 display\n"
+                       " -i    Import Polypaudio data from X11 display to local environment variables and cookie file.\n"
+                       " -r    Remove Polypaudio data from X11 display\n",
+                       pa_path_get_filename(argv[0]));
                 ret = 0;
                 goto finish;
             case 'd':
@@ -195,7 +200,11 @@ int main(int argc, char *argv[]) {
                 set_x11_prop(d, "POLYP_SERVER", c->default_server);
             else {
                 char hn[256];
-                pa_get_host_name(hn, sizeof(hn));
+                if (!pa_get_fqdn(hn, sizeof(hn))) {
+                    fprintf(stderr, "Failed to get FQDN.\n");
+                    goto finish;
+                }
+                    
                 set_x11_prop(d, "POLYP_SERVER", hn);
             }
 
index b4c16dbb41cdcdbb6a2bf18f35c02f26cfe16c0f..ad91a30781e4786d67bcdd8dc9a592b9a22b3532 100644 (file)
@@ -43,6 +43,7 @@
 #include <limits.h>
 #include <unistd.h>
 #include <grp.h>
+#include <netdb.h>
 
 #include <samplerate.h>
 
@@ -773,3 +774,22 @@ size_t pa_parsehex(const char *p, uint8_t *d, size_t dlength) {
 
     return j;
 }
+
+char *pa_get_fqdn(char *s, size_t l) {
+    char hn[256];
+    struct addrinfo *a, hints;
+
+    if (!pa_get_host_name(hn, sizeof(hn)))
+        return NULL;
+
+    memset(&hints, 0, sizeof(hints));
+    hints.ai_family = AF_UNSPEC;
+    hints.ai_flags = AI_CANONNAME;
+    
+    if (getaddrinfo(hn, NULL, &hints, &a) < 0 || !a || !a->ai_canonname || !*a->ai_canonname)
+        return pa_strlcpy(s, hn, l);
+
+    pa_strlcpy(s, a->ai_canonname, l);
+    freeaddrinfo(a);
+    return s;
+}
index 2448b0fa70bdbe7b25edb40bfdde0c23e67c2649..3f09a9a70c9ff1e26ace3ba07ac6aa14ec47a450 100644 (file)
@@ -46,6 +46,7 @@ char *pa_strlcpy(char *b, const char *s, size_t l);
 
 char *pa_get_user_name(char *s, size_t l);
 char *pa_get_host_name(char *s, size_t l);
+char *pa_get_fqdn(char *s, size_t l);
 char *pa_get_binary_name(char *s, size_t l);
 char *pa_get_home_dir(char *s, size_t l);