]> git.meshlink.io Git - catta/commitdiff
add new D-Bus API function SetHostName to change the host name of the running avahi...
authorLennart Poettering <lennart@poettering.net>
Tue, 22 Aug 2006 01:49:25 +0000 (01:49 +0000)
committerLennart Poettering <lennart@poettering.net>
Tue, 22 Aug 2006 01:49:25 +0000 (01:49 +0000)
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1260 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe

avahi-daemon/Server.introspect
avahi-daemon/dbus-protocol.c

index 663561848f7133d7bd241ee218d601c136a101bf..9d743ba33bfbb92c438b298692c343d9c509378c 100644 (file)
@@ -44,6 +44,9 @@
     <method name="GetHostName">
       <arg name="name" type="s" direction="out"/>
     </method>
+    <method name="SetHostName">
+      <arg name="name" type="s" direction="in"/>
+    </method>
     <method name="GetHostNameFqdn">
       <arg name="name" type="s" direction="out"/>
     </method>
index 55fe3e438ab6b1387b3110ce389493bb9a99d2f7..4fb58d25e64d08b42ba2a749e19db99cbd2a615b 100644 (file)
@@ -43,7 +43,6 @@
 #include <avahi-common/dbus.h>
 #include <avahi-common/llist.h>
 #include <avahi-common/malloc.h>
-#include <avahi-common/dbus.h>
 #include <avahi-common/dbus-watch-glue.h>
 #include <avahi-common/alternative.h>
 #include <avahi-common/error.h>
@@ -265,6 +264,22 @@ static DBusHandlerResult msg_server_impl(DBusConnection *c, DBusMessage *m, AVAH
 
         return avahi_dbus_respond_string(c, m, avahi_server_get_host_name(avahi_server));
         
+    } else if (dbus_message_is_method_call(m, AVAHI_DBUS_INTERFACE_SERVER, "SetHostName")) {
+
+        char *name;
+        
+        if (!dbus_message_get_args(m, &error, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID)) {
+            avahi_log_warn("Error parsing Server::SetHostName message");
+            goto fail;
+        }
+        
+        if (avahi_server_set_host_name(avahi_server, name) < 0) 
+            return avahi_dbus_respond_error(c, m, avahi_server_errno(avahi_server), NULL);
+
+        avahi_log_info("Changing host name to '%s'.", name);
+        
+        return avahi_dbus_respond_ok(c, m);
+        
     } else if (dbus_message_is_method_call(m, AVAHI_DBUS_INTERFACE_SERVER, "GetDomainName")) {
 
         if (!dbus_message_get_args(m, &error, DBUS_TYPE_INVALID)) {