#include "user-util.h"
static int specifier_prefix_and_instance(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const Unit *u = userdata;
-
- assert(u);
+ const Unit *u = ASSERT_PTR(userdata);
return unit_name_to_prefix_and_instance(u->id, ret);
}
static int specifier_prefix(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const Unit *u = userdata;
-
- assert(u);
+ const Unit *u = ASSERT_PTR(userdata);
return unit_name_to_prefix(u->id, ret);
}
static int specifier_prefix_unescaped(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
_cleanup_free_ char *p = NULL;
- const Unit *u = userdata;
+ const Unit *u = ASSERT_PTR(userdata);
int r;
- assert(u);
-
r = unit_name_to_prefix(u->id, &p);
if (r < 0)
return r;
}
static int specifier_instance_unescaped(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const Unit *u = userdata;
-
- assert(u);
+ const Unit *u = ASSERT_PTR(userdata);
return unit_name_unescape(strempty(u->instance), ret);
}
static int specifier_last_component(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const Unit *u = userdata;
+ const Unit *u = ASSERT_PTR(userdata);
_cleanup_free_ char *prefix = NULL;
char *dash;
int r;
- assert(u);
-
r = unit_name_to_prefix(u->id, &prefix);
if (r < 0)
return r;
}
static int specifier_filename(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const Unit *u = userdata;
-
- assert(u);
+ const Unit *u = ASSERT_PTR(userdata);
if (u->instance)
return unit_name_path_unescape(u->instance, ret);
}
static int specifier_cgroup(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const Unit *u = userdata;
+ const Unit *u = ASSERT_PTR(userdata);
char *n;
- assert(u);
-
bad_specifier(u, specifier);
if (u->cgroup_path)
}
static int specifier_cgroup_root(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const Unit *u = userdata;
+ const Unit *u = ASSERT_PTR(userdata);
char *n;
- assert(u);
-
bad_specifier(u, specifier);
n = strdup(u->manager->cgroup_root);
}
static int specifier_cgroup_slice(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const Unit *u = userdata, *slice;
+ const Unit *u = ASSERT_PTR(userdata), *slice;
char *n;
- assert(u);
-
bad_specifier(u, specifier);
slice = UNIT_GET_SLICE(u);
}
static int specifier_special_directory(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const Unit *u = userdata;
+ const Unit *u = ASSERT_PTR(userdata);
char *n = NULL;
- assert(u);
-
n = strdup(u->manager->prefix[PTR_TO_UINT(data)]);
if (!n)
return -ENOMEM;
}
int unit_name_printf(const Unit *u, const char* format, char **ret) {
-
/*
* This will use the passed string as format string and replace the following specifiers (which should all be
* safe for inclusion in unit names):
#include "user-util.h"
static int specifier_prefix_and_instance(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const UnitFileInstallInfo *i = userdata;
+ const UnitFileInstallInfo *i = ASSERT_PTR(userdata);
_cleanup_free_ char *prefix = NULL;
int r;
- assert(i);
-
r = unit_name_to_prefix_and_instance(i->name, &prefix);
if (r < 0)
return r;
}
static int specifier_name(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const UnitFileInstallInfo *i = userdata;
+ const UnitFileInstallInfo *i = ASSERT_PTR(userdata);
char *ans;
- assert(i);
-
if (unit_name_is_valid(i->name, UNIT_NAME_TEMPLATE) && i->default_instance)
return unit_name_replace_instance(i->name, i->default_instance, ret);
}
static int specifier_prefix(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const UnitFileInstallInfo *i = userdata;
-
- assert(i);
+ const UnitFileInstallInfo *i = ASSERT_PTR(userdata);
return unit_name_to_prefix(i->name, ret);
}
static int specifier_instance(char specifier, const void *data, const char *root, const void *userdata, char **ret) {
- const UnitFileInstallInfo *i = userdata;
+ const UnitFileInstallInfo *i = ASSERT_PTR(userdata);
char *instance;
int r;
- assert(i);
-
r = unit_name_to_instance(i->name, &instance);
if (r < 0)
return r;
char *dash;
int r;
+ assert(ret);
+
r = specifier_prefix(specifier, data, root, userdata, &prefix);
if (r < 0)
return r;