+_public_ int sd_bus_set_name(sd_bus *bus, const char *name) {
+ char *n;
+
+ assert_return(bus, -EINVAL);
+ assert_return(name, -EINVAL);
+ assert_return(bus->state == BUS_UNSET, -EPERM);
+ assert_return(!bus_pid_changed(bus), -ECHILD);
+
+ n = strdup(name);
+ if (!n)
+ return -ENOMEM;
+
+ free(bus->connection_name);
+ bus->connection_name = n;
+
+ return 0;
+}
+