static bool arg_pretty = false;
static bool arg_static = false;
+static void polkit_agent_open_if_enabled(void) {
+
+ /* Open the polkit agent as a child process if necessary */
+ if (!arg_ask_password)
+ return;
+
+ if (arg_transport != BUS_TRANSPORT_LOCAL)
+ return;
+
+ polkit_agent_open();
+}
+
typedef struct StatusInfo {
char *hostname;
char *static_hostname;
r = sd_bus_message_read(reply, "s", &s);
if (r < 0)
- return r;
+ return bus_log_parse_error(r);
printf("%s\n", s);
static int set_simple_string(sd_bus *bus, const char *method, const char *value) {
_cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
- static bool first=true;
int r = 0;
- if (first && arg_ask_password)
- polkit_agent_open();
- first = false;
+ polkit_agent_open_if_enabled();
r = sd_bus_call_method(
bus,
assert(args);
assert(n == 2);
- return set_simple_string(bus, "SetChasis", args[1]);
+ return set_simple_string(bus, "SetChassis", args[1]);
}
static int help(void) {
"Query or change system hostname.\n\n"
" -h --help Show this help\n"
" --version Show package version\n"
- " --transient Only set transient hostname\n"
- " --static Only set static hostname\n"
- " --pretty Only set pretty hostname\n"
" --no-ask-password Do not prompt for password\n"
" -H --host=[USER@]HOST Operate on remote host\n"
- " -M --machine=CONTAINER Operate on local container\n\n"
+ " -M --machine=CONTAINER Operate on local container\n"
+ " --transient Only set transient hostname\n"
+ " --static Only set static hostname\n"
+ " --pretty Only set pretty hostname\n\n"
"Commands:\n"
" status Show current hostname settings\n"
" set-hostname NAME Set system hostname\n"