35
35
/* Prototypes for static functions */
36
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_Ping_method (NihDBusObject *object, NihDBusMessage *message);
37
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupScm_method (NihDBusObject *object, NihDBusMessage *message);
38
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroup_method (NihDBusObject *object, NihDBusMessage *message);
39
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_CreateScm_method (NihDBusObject *object, NihDBusMessage *message);
40
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_Create_method (NihDBusObject *object, NihDBusMessage *message);
41
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_ChownScm_method (NihDBusObject *object, NihDBusMessage *message);
42
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_Chown_method (NihDBusObject *object, NihDBusMessage *message);
43
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_ChmodScm_method (NihDBusObject *object, NihDBusMessage *message);
44
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_Chmod_method (NihDBusObject *object, NihDBusMessage *message);
45
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_MovePidScm_method (NihDBusObject *object, NihDBusMessage *message);
46
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_MovePid_method (NihDBusObject *object, NihDBusMessage *message);
47
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbsScm_method (NihDBusObject *object, NihDBusMessage *message);
48
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbs_method (NihDBusObject *object, NihDBusMessage *message);
49
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetValueScm_method (NihDBusObject *object, NihDBusMessage *message);
50
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetValue_method (NihDBusObject *object, NihDBusMessage *message);
51
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_SetValueScm_method (NihDBusObject *object, NihDBusMessage *message);
52
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_SetValue_method (NihDBusObject *object, NihDBusMessage *message);
53
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_RemoveScm_method (NihDBusObject *object, NihDBusMessage *message);
54
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_Remove_method (NihDBusObject *object, NihDBusMessage *message);
55
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksScm_method (NihDBusObject *object, NihDBusMessage *message);
56
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetTasks_method (NihDBusObject *object, NihDBusMessage *message);
57
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_ListChildrenScm_method (NihDBusObject *object, NihDBusMessage *message);
58
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_ListChildren_method (NihDBusObject *object, NihDBusMessage *message);
59
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmptyScm_method (NihDBusObject *object, NihDBusMessage *message);
60
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmpty_method (NihDBusObject *object, NihDBusMessage *message);
61
static int cgmanager_org_linuxcontainers_cgmanager0_0_api_version_get (NihDBusObject *object, NihDBusMessage *message, DBusMessageIter *iter);
36
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_Ping_method (NihDBusObject *object, NihDBusMessage *message);
37
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupScm_method (NihDBusObject *object, NihDBusMessage *message);
38
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroup_method (NihDBusObject *object, NihDBusMessage *message);
39
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupAbsScm_method (NihDBusObject *object, NihDBusMessage *message);
40
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupAbs_method (NihDBusObject *object, NihDBusMessage *message);
41
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_CreateScm_method (NihDBusObject *object, NihDBusMessage *message);
42
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_Create_method (NihDBusObject *object, NihDBusMessage *message);
43
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_ChownScm_method (NihDBusObject *object, NihDBusMessage *message);
44
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_Chown_method (NihDBusObject *object, NihDBusMessage *message);
45
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_ChmodScm_method (NihDBusObject *object, NihDBusMessage *message);
46
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_Chmod_method (NihDBusObject *object, NihDBusMessage *message);
47
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_MovePidScm_method (NihDBusObject *object, NihDBusMessage *message);
48
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_MovePid_method (NihDBusObject *object, NihDBusMessage *message);
49
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbsScm_method (NihDBusObject *object, NihDBusMessage *message);
50
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbs_method (NihDBusObject *object, NihDBusMessage *message);
51
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetValueScm_method (NihDBusObject *object, NihDBusMessage *message);
52
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetValue_method (NihDBusObject *object, NihDBusMessage *message);
53
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_SetValueScm_method (NihDBusObject *object, NihDBusMessage *message);
54
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_SetValue_method (NihDBusObject *object, NihDBusMessage *message);
55
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_RemoveScm_method (NihDBusObject *object, NihDBusMessage *message);
56
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_Remove_method (NihDBusObject *object, NihDBusMessage *message);
57
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksScm_method (NihDBusObject *object, NihDBusMessage *message);
58
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetTasks_method (NihDBusObject *object, NihDBusMessage *message);
59
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksRecursiveScm_method (NihDBusObject *object, NihDBusMessage *message);
60
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksRecursive_method (NihDBusObject *object, NihDBusMessage *message);
61
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_ListChildrenScm_method (NihDBusObject *object, NihDBusMessage *message);
62
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_ListChildren_method (NihDBusObject *object, NihDBusMessage *message);
63
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmptyScm_method (NihDBusObject *object, NihDBusMessage *message);
64
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmpty_method (NihDBusObject *object, NihDBusMessage *message);
65
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_PruneScm_method (NihDBusObject *object, NihDBusMessage *message);
66
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_Prune_method (NihDBusObject *object, NihDBusMessage *message);
67
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_ListControllers_method (NihDBusObject *object, NihDBusMessage *message);
68
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_ListKeysScm_method (NihDBusObject *object, NihDBusMessage *message);
69
static DBusHandlerResult cgmanager_org_linuxcontainers_cgmanager0_0_ListKeys_method (NihDBusObject *object, NihDBusMessage *message);
70
static int cgmanager_org_linuxcontainers_cgmanager0_0_api_version_get (NihDBusObject *object, NihDBusMessage *message, DBusMessageIter *iter);
64
73
/* Prototypes for externally implemented handler functions */
65
extern int cgmanager_ping (void *data, NihDBusMessage *message, int32_t junk)
66
__attribute__ ((warn_unused_result));
67
extern int cgmanager_get_pid_cgroup_scm (void *data, NihDBusMessage *message, const char *controller, int sockfd)
68
__attribute__ ((warn_unused_result));
69
extern int cgmanager_get_pid_cgroup (void *data, NihDBusMessage *message, const char *controller, int32_t pid, char **output)
70
__attribute__ ((warn_unused_result));
71
extern int cgmanager_create_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
72
__attribute__ ((warn_unused_result));
73
extern int cgmanager_create (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t *existed)
74
__attribute__ ((warn_unused_result));
75
extern int cgmanager_chown_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
76
__attribute__ ((warn_unused_result));
77
extern int cgmanager_chown (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t uid, int32_t gid)
78
__attribute__ ((warn_unused_result));
79
extern int cgmanager_chmod_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *file, int32_t mode, int sockfd)
80
__attribute__ ((warn_unused_result));
81
extern int cgmanager_chmod (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *file, int32_t mode)
82
__attribute__ ((warn_unused_result));
83
extern int cgmanager_move_pid_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
84
__attribute__ ((warn_unused_result));
85
extern int cgmanager_move_pid (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t pid)
86
__attribute__ ((warn_unused_result));
87
extern int cgmanager_move_pid_abs_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
88
__attribute__ ((warn_unused_result));
89
extern int cgmanager_move_pid_abs (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t pid)
90
__attribute__ ((warn_unused_result));
91
extern int cgmanager_get_value_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *key, int sockfd)
92
__attribute__ ((warn_unused_result));
93
extern int cgmanager_get_value (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *key, char **value)
94
__attribute__ ((warn_unused_result));
95
extern int cgmanager_set_value_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *key, const char *value, int sockfd)
96
__attribute__ ((warn_unused_result));
97
extern int cgmanager_set_value (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *key, const char *value)
98
__attribute__ ((warn_unused_result));
99
extern int cgmanager_remove_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t recursive, int sockfd)
100
__attribute__ ((warn_unused_result));
101
extern int cgmanager_remove (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t recursive, int32_t *existed)
102
__attribute__ ((warn_unused_result));
103
extern int cgmanager_get_tasks_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
104
__attribute__ ((warn_unused_result));
105
extern int cgmanager_get_tasks (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t **output, size_t *output_len)
106
__attribute__ ((warn_unused_result));
107
extern int cgmanager_list_children_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
108
__attribute__ ((warn_unused_result));
109
extern int cgmanager_list_children (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, char ***output)
110
__attribute__ ((warn_unused_result));
111
extern int cgmanager_remove_on_empty_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
112
__attribute__ ((warn_unused_result));
113
extern int cgmanager_remove_on_empty (void *data, NihDBusMessage *message, const char *controller, const char *cgroup)
114
__attribute__ ((warn_unused_result));
115
extern int cgmanager_get_api_version (void *data, NihDBusMessage *message, int32_t *value)
74
extern int cgmanager_ping (void *data, NihDBusMessage *message, int32_t junk)
75
__attribute__ ((warn_unused_result));
76
extern int cgmanager_get_pid_cgroup_scm (void *data, NihDBusMessage *message, const char *controller, int sockfd)
77
__attribute__ ((warn_unused_result));
78
extern int cgmanager_get_pid_cgroup (void *data, NihDBusMessage *message, const char *controller, int32_t pid, char **output)
79
__attribute__ ((warn_unused_result));
80
extern int cgmanager_get_pid_cgroup_abs_scm (void *data, NihDBusMessage *message, const char *controller, int sockfd)
81
__attribute__ ((warn_unused_result));
82
extern int cgmanager_get_pid_cgroup_abs (void *data, NihDBusMessage *message, const char *controller, int32_t pid, char **output)
83
__attribute__ ((warn_unused_result));
84
extern int cgmanager_create_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
85
__attribute__ ((warn_unused_result));
86
extern int cgmanager_create (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t *existed)
87
__attribute__ ((warn_unused_result));
88
extern int cgmanager_chown_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
89
__attribute__ ((warn_unused_result));
90
extern int cgmanager_chown (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t uid, int32_t gid)
91
__attribute__ ((warn_unused_result));
92
extern int cgmanager_chmod_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *file, int32_t mode, int sockfd)
93
__attribute__ ((warn_unused_result));
94
extern int cgmanager_chmod (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *file, int32_t mode)
95
__attribute__ ((warn_unused_result));
96
extern int cgmanager_move_pid_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
97
__attribute__ ((warn_unused_result));
98
extern int cgmanager_move_pid (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t pid)
99
__attribute__ ((warn_unused_result));
100
extern int cgmanager_move_pid_abs_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
101
__attribute__ ((warn_unused_result));
102
extern int cgmanager_move_pid_abs (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t pid)
103
__attribute__ ((warn_unused_result));
104
extern int cgmanager_get_value_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *key, int sockfd)
105
__attribute__ ((warn_unused_result));
106
extern int cgmanager_get_value (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *key, char **value)
107
__attribute__ ((warn_unused_result));
108
extern int cgmanager_set_value_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *key, const char *value, int sockfd)
109
__attribute__ ((warn_unused_result));
110
extern int cgmanager_set_value (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, const char *key, const char *value)
111
__attribute__ ((warn_unused_result));
112
extern int cgmanager_remove_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t recursive, int sockfd)
113
__attribute__ ((warn_unused_result));
114
extern int cgmanager_remove (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t recursive, int32_t *existed)
115
__attribute__ ((warn_unused_result));
116
extern int cgmanager_get_tasks_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
117
__attribute__ ((warn_unused_result));
118
extern int cgmanager_get_tasks (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t **output, size_t *output_len)
119
__attribute__ ((warn_unused_result));
120
extern int cgmanager_get_tasks_recursive_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
121
__attribute__ ((warn_unused_result));
122
extern int cgmanager_get_tasks_recursive (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int32_t **output, size_t *output_len)
123
__attribute__ ((warn_unused_result));
124
extern int cgmanager_list_children_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
125
__attribute__ ((warn_unused_result));
126
extern int cgmanager_list_children (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, char ***output)
127
__attribute__ ((warn_unused_result));
128
extern int cgmanager_remove_on_empty_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
129
__attribute__ ((warn_unused_result));
130
extern int cgmanager_remove_on_empty (void *data, NihDBusMessage *message, const char *controller, const char *cgroup)
131
__attribute__ ((warn_unused_result));
132
extern int cgmanager_prune_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
133
__attribute__ ((warn_unused_result));
134
extern int cgmanager_prune (void *data, NihDBusMessage *message, const char *controller, const char *cgroup)
135
__attribute__ ((warn_unused_result));
136
extern int cgmanager_list_controllers (void *data, NihDBusMessage *message, char ***output)
137
__attribute__ ((warn_unused_result));
138
extern int cgmanager_list_keys_scm (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, int sockfd)
139
__attribute__ ((warn_unused_result));
140
extern int cgmanager_list_keys (void *data, NihDBusMessage *message, const char *controller, const char *cgroup, CgmanagerListKeysOutputElement ***output)
141
__attribute__ ((warn_unused_result));
142
extern int cgmanager_get_api_version (void *data, NihDBusMessage *message, int32_t *value)
116
143
__attribute__ ((warn_unused_result));
355
static const NihDBusArg cgmanager_org_linuxcontainers_cgmanager0_0_PruneScm_method_args[] = {
356
{ "controller", "s", NIH_DBUS_ARG_IN },
357
{ "cgroup", "s", NIH_DBUS_ARG_IN },
358
{ "sockfd", "h", NIH_DBUS_ARG_IN },
362
static const NihDBusArg cgmanager_org_linuxcontainers_cgmanager0_0_Prune_method_args[] = {
363
{ "controller", "s", NIH_DBUS_ARG_IN },
364
{ "cgroup", "s", NIH_DBUS_ARG_IN },
368
static const NihDBusArg cgmanager_org_linuxcontainers_cgmanager0_0_ListControllers_method_args[] = {
369
{ "output", "as", NIH_DBUS_ARG_OUT },
373
static const NihDBusArg cgmanager_org_linuxcontainers_cgmanager0_0_ListKeysScm_method_args[] = {
374
{ "controller", "s", NIH_DBUS_ARG_IN },
375
{ "cgroup", "s", NIH_DBUS_ARG_IN },
376
{ "sockfd", "h", NIH_DBUS_ARG_IN },
380
static const NihDBusArg cgmanager_org_linuxcontainers_cgmanager0_0_ListKeys_method_args[] = {
381
{ "controller", "s", NIH_DBUS_ARG_IN },
382
{ "cgroup", "s", NIH_DBUS_ARG_IN },
383
{ "output", "a(suuu)", NIH_DBUS_ARG_OUT },
301
387
static const NihDBusMethod cgmanager_org_linuxcontainers_cgmanager0_0_methods[] = {
302
{ "Ping", cgmanager_org_linuxcontainers_cgmanager0_0_Ping_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_Ping_method },
303
{ "GetPidCgroupScm", cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupScm_method },
304
{ "GetPidCgroup", cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroup_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroup_method },
305
{ "CreateScm", cgmanager_org_linuxcontainers_cgmanager0_0_CreateScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_CreateScm_method },
306
{ "Create", cgmanager_org_linuxcontainers_cgmanager0_0_Create_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_Create_method },
307
{ "ChownScm", cgmanager_org_linuxcontainers_cgmanager0_0_ChownScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_ChownScm_method },
308
{ "Chown", cgmanager_org_linuxcontainers_cgmanager0_0_Chown_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_Chown_method },
309
{ "ChmodScm", cgmanager_org_linuxcontainers_cgmanager0_0_ChmodScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_ChmodScm_method },
310
{ "Chmod", cgmanager_org_linuxcontainers_cgmanager0_0_Chmod_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_Chmod_method },
311
{ "MovePidScm", cgmanager_org_linuxcontainers_cgmanager0_0_MovePidScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_MovePidScm_method },
312
{ "MovePid", cgmanager_org_linuxcontainers_cgmanager0_0_MovePid_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_MovePid_method },
313
{ "MovePidAbsScm", cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbsScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbsScm_method },
314
{ "MovePidAbs", cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbs_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbs_method },
315
{ "GetValueScm", cgmanager_org_linuxcontainers_cgmanager0_0_GetValueScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetValueScm_method },
316
{ "GetValue", cgmanager_org_linuxcontainers_cgmanager0_0_GetValue_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetValue_method },
317
{ "SetValueScm", cgmanager_org_linuxcontainers_cgmanager0_0_SetValueScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_SetValueScm_method },
318
{ "SetValue", cgmanager_org_linuxcontainers_cgmanager0_0_SetValue_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_SetValue_method },
319
{ "RemoveScm", cgmanager_org_linuxcontainers_cgmanager0_0_RemoveScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_RemoveScm_method },
320
{ "Remove", cgmanager_org_linuxcontainers_cgmanager0_0_Remove_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_Remove_method },
321
{ "GetTasksScm", cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksScm_method },
322
{ "GetTasks", cgmanager_org_linuxcontainers_cgmanager0_0_GetTasks_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetTasks_method },
323
{ "ListChildrenScm", cgmanager_org_linuxcontainers_cgmanager0_0_ListChildrenScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_ListChildrenScm_method },
324
{ "ListChildren", cgmanager_org_linuxcontainers_cgmanager0_0_ListChildren_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_ListChildren_method },
325
{ "RemoveOnEmptyScm", cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmptyScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmptyScm_method },
326
{ "RemoveOnEmpty", cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmpty_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmpty_method },
388
{ "Ping", cgmanager_org_linuxcontainers_cgmanager0_0_Ping_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_Ping_method },
389
{ "GetPidCgroupScm", cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupScm_method },
390
{ "GetPidCgroup", cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroup_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroup_method },
391
{ "GetPidCgroupAbsScm", cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupAbsScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupAbsScm_method },
392
{ "GetPidCgroupAbs", cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupAbs_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupAbs_method },
393
{ "CreateScm", cgmanager_org_linuxcontainers_cgmanager0_0_CreateScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_CreateScm_method },
394
{ "Create", cgmanager_org_linuxcontainers_cgmanager0_0_Create_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_Create_method },
395
{ "ChownScm", cgmanager_org_linuxcontainers_cgmanager0_0_ChownScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_ChownScm_method },
396
{ "Chown", cgmanager_org_linuxcontainers_cgmanager0_0_Chown_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_Chown_method },
397
{ "ChmodScm", cgmanager_org_linuxcontainers_cgmanager0_0_ChmodScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_ChmodScm_method },
398
{ "Chmod", cgmanager_org_linuxcontainers_cgmanager0_0_Chmod_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_Chmod_method },
399
{ "MovePidScm", cgmanager_org_linuxcontainers_cgmanager0_0_MovePidScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_MovePidScm_method },
400
{ "MovePid", cgmanager_org_linuxcontainers_cgmanager0_0_MovePid_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_MovePid_method },
401
{ "MovePidAbsScm", cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbsScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbsScm_method },
402
{ "MovePidAbs", cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbs_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_MovePidAbs_method },
403
{ "GetValueScm", cgmanager_org_linuxcontainers_cgmanager0_0_GetValueScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetValueScm_method },
404
{ "GetValue", cgmanager_org_linuxcontainers_cgmanager0_0_GetValue_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetValue_method },
405
{ "SetValueScm", cgmanager_org_linuxcontainers_cgmanager0_0_SetValueScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_SetValueScm_method },
406
{ "SetValue", cgmanager_org_linuxcontainers_cgmanager0_0_SetValue_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_SetValue_method },
407
{ "RemoveScm", cgmanager_org_linuxcontainers_cgmanager0_0_RemoveScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_RemoveScm_method },
408
{ "Remove", cgmanager_org_linuxcontainers_cgmanager0_0_Remove_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_Remove_method },
409
{ "GetTasksScm", cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksScm_method },
410
{ "GetTasks", cgmanager_org_linuxcontainers_cgmanager0_0_GetTasks_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetTasks_method },
411
{ "GetTasksRecursiveScm", cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksRecursiveScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksRecursiveScm_method },
412
{ "GetTasksRecursive", cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksRecursive_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksRecursive_method },
413
{ "ListChildrenScm", cgmanager_org_linuxcontainers_cgmanager0_0_ListChildrenScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_ListChildrenScm_method },
414
{ "ListChildren", cgmanager_org_linuxcontainers_cgmanager0_0_ListChildren_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_ListChildren_method },
415
{ "RemoveOnEmptyScm", cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmptyScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmptyScm_method },
416
{ "RemoveOnEmpty", cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmpty_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_RemoveOnEmpty_method },
417
{ "PruneScm", cgmanager_org_linuxcontainers_cgmanager0_0_PruneScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_PruneScm_method },
418
{ "Prune", cgmanager_org_linuxcontainers_cgmanager0_0_Prune_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_Prune_method },
419
{ "ListControllers", cgmanager_org_linuxcontainers_cgmanager0_0_ListControllers_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_ListControllers_method },
420
{ "ListKeysScm", cgmanager_org_linuxcontainers_cgmanager0_0_ListKeysScm_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_ListKeysScm_method },
421
{ "ListKeys", cgmanager_org_linuxcontainers_cgmanager0_0_ListKeys_method_args, cgmanager_org_linuxcontainers_cgmanager0_0_ListKeys_method },
753
848
static DBusHandlerResult
849
cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupAbsScm_method (NihDBusObject * object,
850
NihDBusMessage *message)
852
DBusMessageIter iter;
855
const char * controller_dbus;
858
nih_assert (object != NULL);
859
nih_assert (message != NULL);
861
/* Iterate the arguments to the message and demarshal into arguments
862
* for our own function call.
864
dbus_message_iter_init (message->message, &iter);
866
/* Demarshal a char * from the message */
867
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
868
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
869
"Invalid arguments to GetPidCgroupAbsScm method");
871
return DBUS_HANDLER_RESULT_NEED_MEMORY;
873
if (! dbus_connection_send (message->connection, reply, NULL)) {
874
dbus_message_unref (reply);
875
return DBUS_HANDLER_RESULT_NEED_MEMORY;
878
dbus_message_unref (reply);
879
return DBUS_HANDLER_RESULT_HANDLED;
882
dbus_message_iter_get_basic (&iter, &controller_dbus);
884
controller = nih_strdup (message, controller_dbus);
886
return DBUS_HANDLER_RESULT_NEED_MEMORY;
889
dbus_message_iter_next (&iter);
891
/* Demarshal a int from the message */
892
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_UNIX_FD) {
893
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
894
"Invalid arguments to GetPidCgroupAbsScm method");
896
return DBUS_HANDLER_RESULT_NEED_MEMORY;
898
if (! dbus_connection_send (message->connection, reply, NULL)) {
899
dbus_message_unref (reply);
900
return DBUS_HANDLER_RESULT_NEED_MEMORY;
903
dbus_message_unref (reply);
904
return DBUS_HANDLER_RESULT_HANDLED;
907
dbus_message_iter_get_basic (&iter, &sockfd);
909
dbus_message_iter_next (&iter);
911
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INVALID) {
912
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
913
"Invalid arguments to GetPidCgroupAbsScm method");
915
return DBUS_HANDLER_RESULT_NEED_MEMORY;
917
if (! dbus_connection_send (message->connection, reply, NULL)) {
918
dbus_message_unref (reply);
919
return DBUS_HANDLER_RESULT_NEED_MEMORY;
922
dbus_message_unref (reply);
923
return DBUS_HANDLER_RESULT_HANDLED;
926
/* Call the handler function */
927
nih_error_push_context ();
928
if (cgmanager_get_pid_cgroup_abs_scm (object->data, message, controller, sockfd) < 0) {
931
err = nih_error_get ();
932
if (err->number == ENOMEM) {
934
nih_error_pop_context ();
936
return DBUS_HANDLER_RESULT_NEED_MEMORY;
937
} else if (err->number == NIH_DBUS_ERROR) {
938
NihDBusError *dbus_err = (NihDBusError *)err;
940
reply = NIH_MUST (dbus_message_new_error (message->message, dbus_err->name, err->message));
942
nih_error_pop_context ();
944
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
946
dbus_message_unref (reply);
947
return DBUS_HANDLER_RESULT_HANDLED;
949
reply = NIH_MUST (dbus_message_new_error (message->message, DBUS_ERROR_FAILED, err->message));
951
nih_error_pop_context ();
953
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
955
dbus_message_unref (reply);
956
return DBUS_HANDLER_RESULT_HANDLED;
959
nih_error_pop_context ();
961
/* If the sender doesn't care about a reply, don't bother wasting
962
* effort constructing and sending one.
964
if (dbus_message_get_no_reply (message->message))
965
return DBUS_HANDLER_RESULT_HANDLED;
970
/* Construct the reply message. */
971
reply = dbus_message_new_method_return (message->message);
975
dbus_message_iter_init_append (reply, &iter);
976
enomem: __attribute__ ((unused));
979
/* Send the reply, appending it to the outgoing queue. */
980
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
982
dbus_message_unref (reply);
984
return DBUS_HANDLER_RESULT_HANDLED;
988
static DBusHandlerResult
989
cgmanager_org_linuxcontainers_cgmanager0_0_GetPidCgroupAbs_method (NihDBusObject * object,
990
NihDBusMessage *message)
992
DBusMessageIter iter;
995
const char * controller_dbus;
999
nih_assert (object != NULL);
1000
nih_assert (message != NULL);
1002
/* Iterate the arguments to the message and demarshal into arguments
1003
* for our own function call.
1005
dbus_message_iter_init (message->message, &iter);
1007
/* Demarshal a char * from the message */
1008
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
1009
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
1010
"Invalid arguments to GetPidCgroupAbs method");
1012
return DBUS_HANDLER_RESULT_NEED_MEMORY;
1014
if (! dbus_connection_send (message->connection, reply, NULL)) {
1015
dbus_message_unref (reply);
1016
return DBUS_HANDLER_RESULT_NEED_MEMORY;
1019
dbus_message_unref (reply);
1020
return DBUS_HANDLER_RESULT_HANDLED;
1023
dbus_message_iter_get_basic (&iter, &controller_dbus);
1025
controller = nih_strdup (message, controller_dbus);
1027
return DBUS_HANDLER_RESULT_NEED_MEMORY;
1030
dbus_message_iter_next (&iter);
1032
/* Demarshal a int32_t from the message */
1033
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INT32) {
1034
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
1035
"Invalid arguments to GetPidCgroupAbs method");
1037
return DBUS_HANDLER_RESULT_NEED_MEMORY;
1039
if (! dbus_connection_send (message->connection, reply, NULL)) {
1040
dbus_message_unref (reply);
1041
return DBUS_HANDLER_RESULT_NEED_MEMORY;
1044
dbus_message_unref (reply);
1045
return DBUS_HANDLER_RESULT_HANDLED;
1048
dbus_message_iter_get_basic (&iter, &pid);
1050
dbus_message_iter_next (&iter);
1052
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INVALID) {
1053
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
1054
"Invalid arguments to GetPidCgroupAbs method");
1056
return DBUS_HANDLER_RESULT_NEED_MEMORY;
1058
if (! dbus_connection_send (message->connection, reply, NULL)) {
1059
dbus_message_unref (reply);
1060
return DBUS_HANDLER_RESULT_NEED_MEMORY;
1063
dbus_message_unref (reply);
1064
return DBUS_HANDLER_RESULT_HANDLED;
1067
/* Call the handler function */
1068
nih_error_push_context ();
1069
if (cgmanager_get_pid_cgroup_abs (object->data, message, controller, pid, &output) < 0) {
1072
err = nih_error_get ();
1073
if (err->number == ENOMEM) {
1075
nih_error_pop_context ();
1077
return DBUS_HANDLER_RESULT_NEED_MEMORY;
1078
} else if (err->number == NIH_DBUS_ERROR) {
1079
NihDBusError *dbus_err = (NihDBusError *)err;
1081
reply = NIH_MUST (dbus_message_new_error (message->message, dbus_err->name, err->message));
1083
nih_error_pop_context ();
1085
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
1087
dbus_message_unref (reply);
1088
return DBUS_HANDLER_RESULT_HANDLED;
1090
reply = NIH_MUST (dbus_message_new_error (message->message, DBUS_ERROR_FAILED, err->message));
1092
nih_error_pop_context ();
1094
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
1096
dbus_message_unref (reply);
1097
return DBUS_HANDLER_RESULT_HANDLED;
1100
nih_error_pop_context ();
1102
/* If the sender doesn't care about a reply, don't bother wasting
1103
* effort constructing and sending one.
1105
if (dbus_message_get_no_reply (message->message))
1106
return DBUS_HANDLER_RESULT_HANDLED;
1111
/* Construct the reply message. */
1112
reply = dbus_message_new_method_return (message->message);
1116
dbus_message_iter_init_append (reply, &iter);
1118
/* Marshal a char * onto the message */
1119
if (! dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &output)) {
1120
dbus_message_unref (reply);
1124
enomem: __attribute__ ((unused));
1127
/* Send the reply, appending it to the outgoing queue. */
1128
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
1130
dbus_message_unref (reply);
1132
return DBUS_HANDLER_RESULT_HANDLED;
1136
static DBusHandlerResult
754
1137
cgmanager_org_linuxcontainers_cgmanager0_0_CreateScm_method (NihDBusObject * object,
755
1138
NihDBusMessage *message)
4008
4391
static DBusHandlerResult
4392
cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksRecursiveScm_method (NihDBusObject * object,
4393
NihDBusMessage *message)
4395
DBusMessageIter iter;
4396
DBusMessage * reply;
4398
const char * controller_dbus;
4400
const char * cgroup_dbus;
4403
nih_assert (object != NULL);
4404
nih_assert (message != NULL);
4406
/* Iterate the arguments to the message and demarshal into arguments
4407
* for our own function call.
4409
dbus_message_iter_init (message->message, &iter);
4411
/* Demarshal a char * from the message */
4412
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
4413
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
4414
"Invalid arguments to GetTasksRecursiveScm method");
4416
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4418
if (! dbus_connection_send (message->connection, reply, NULL)) {
4419
dbus_message_unref (reply);
4420
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4423
dbus_message_unref (reply);
4424
return DBUS_HANDLER_RESULT_HANDLED;
4427
dbus_message_iter_get_basic (&iter, &controller_dbus);
4429
controller = nih_strdup (message, controller_dbus);
4431
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4434
dbus_message_iter_next (&iter);
4436
/* Demarshal a char * from the message */
4437
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
4438
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
4439
"Invalid arguments to GetTasksRecursiveScm method");
4441
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4443
if (! dbus_connection_send (message->connection, reply, NULL)) {
4444
dbus_message_unref (reply);
4445
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4448
dbus_message_unref (reply);
4449
return DBUS_HANDLER_RESULT_HANDLED;
4452
dbus_message_iter_get_basic (&iter, &cgroup_dbus);
4454
cgroup = nih_strdup (message, cgroup_dbus);
4456
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4459
dbus_message_iter_next (&iter);
4461
/* Demarshal a int from the message */
4462
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_UNIX_FD) {
4463
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
4464
"Invalid arguments to GetTasksRecursiveScm method");
4466
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4468
if (! dbus_connection_send (message->connection, reply, NULL)) {
4469
dbus_message_unref (reply);
4470
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4473
dbus_message_unref (reply);
4474
return DBUS_HANDLER_RESULT_HANDLED;
4477
dbus_message_iter_get_basic (&iter, &sockfd);
4479
dbus_message_iter_next (&iter);
4481
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INVALID) {
4482
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
4483
"Invalid arguments to GetTasksRecursiveScm method");
4485
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4487
if (! dbus_connection_send (message->connection, reply, NULL)) {
4488
dbus_message_unref (reply);
4489
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4492
dbus_message_unref (reply);
4493
return DBUS_HANDLER_RESULT_HANDLED;
4496
/* Call the handler function */
4497
nih_error_push_context ();
4498
if (cgmanager_get_tasks_recursive_scm (object->data, message, controller, cgroup, sockfd) < 0) {
4501
err = nih_error_get ();
4502
if (err->number == ENOMEM) {
4504
nih_error_pop_context ();
4506
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4507
} else if (err->number == NIH_DBUS_ERROR) {
4508
NihDBusError *dbus_err = (NihDBusError *)err;
4510
reply = NIH_MUST (dbus_message_new_error (message->message, dbus_err->name, err->message));
4512
nih_error_pop_context ();
4514
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
4516
dbus_message_unref (reply);
4517
return DBUS_HANDLER_RESULT_HANDLED;
4519
reply = NIH_MUST (dbus_message_new_error (message->message, DBUS_ERROR_FAILED, err->message));
4521
nih_error_pop_context ();
4523
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
4525
dbus_message_unref (reply);
4526
return DBUS_HANDLER_RESULT_HANDLED;
4529
nih_error_pop_context ();
4531
/* If the sender doesn't care about a reply, don't bother wasting
4532
* effort constructing and sending one.
4534
if (dbus_message_get_no_reply (message->message))
4535
return DBUS_HANDLER_RESULT_HANDLED;
4540
/* Construct the reply message. */
4541
reply = dbus_message_new_method_return (message->message);
4545
dbus_message_iter_init_append (reply, &iter);
4546
enomem: __attribute__ ((unused));
4549
/* Send the reply, appending it to the outgoing queue. */
4550
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
4552
dbus_message_unref (reply);
4554
return DBUS_HANDLER_RESULT_HANDLED;
4558
static DBusHandlerResult
4559
cgmanager_org_linuxcontainers_cgmanager0_0_GetTasksRecursive_method (NihDBusObject * object,
4560
NihDBusMessage *message)
4562
DBusMessageIter iter;
4563
DBusMessage * reply;
4565
const char * controller_dbus;
4567
const char * cgroup_dbus;
4570
DBusMessageIter output_iter;
4572
nih_assert (object != NULL);
4573
nih_assert (message != NULL);
4575
/* Iterate the arguments to the message and demarshal into arguments
4576
* for our own function call.
4578
dbus_message_iter_init (message->message, &iter);
4580
/* Demarshal a char * from the message */
4581
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
4582
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
4583
"Invalid arguments to GetTasksRecursive method");
4585
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4587
if (! dbus_connection_send (message->connection, reply, NULL)) {
4588
dbus_message_unref (reply);
4589
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4592
dbus_message_unref (reply);
4593
return DBUS_HANDLER_RESULT_HANDLED;
4596
dbus_message_iter_get_basic (&iter, &controller_dbus);
4598
controller = nih_strdup (message, controller_dbus);
4600
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4603
dbus_message_iter_next (&iter);
4605
/* Demarshal a char * from the message */
4606
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
4607
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
4608
"Invalid arguments to GetTasksRecursive method");
4610
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4612
if (! dbus_connection_send (message->connection, reply, NULL)) {
4613
dbus_message_unref (reply);
4614
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4617
dbus_message_unref (reply);
4618
return DBUS_HANDLER_RESULT_HANDLED;
4621
dbus_message_iter_get_basic (&iter, &cgroup_dbus);
4623
cgroup = nih_strdup (message, cgroup_dbus);
4625
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4628
dbus_message_iter_next (&iter);
4630
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INVALID) {
4631
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
4632
"Invalid arguments to GetTasksRecursive method");
4634
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4636
if (! dbus_connection_send (message->connection, reply, NULL)) {
4637
dbus_message_unref (reply);
4638
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4641
dbus_message_unref (reply);
4642
return DBUS_HANDLER_RESULT_HANDLED;
4645
/* Call the handler function */
4646
nih_error_push_context ();
4647
if (cgmanager_get_tasks_recursive (object->data, message, controller, cgroup, &output, &output_len) < 0) {
4650
err = nih_error_get ();
4651
if (err->number == ENOMEM) {
4653
nih_error_pop_context ();
4655
return DBUS_HANDLER_RESULT_NEED_MEMORY;
4656
} else if (err->number == NIH_DBUS_ERROR) {
4657
NihDBusError *dbus_err = (NihDBusError *)err;
4659
reply = NIH_MUST (dbus_message_new_error (message->message, dbus_err->name, err->message));
4661
nih_error_pop_context ();
4663
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
4665
dbus_message_unref (reply);
4666
return DBUS_HANDLER_RESULT_HANDLED;
4668
reply = NIH_MUST (dbus_message_new_error (message->message, DBUS_ERROR_FAILED, err->message));
4670
nih_error_pop_context ();
4672
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
4674
dbus_message_unref (reply);
4675
return DBUS_HANDLER_RESULT_HANDLED;
4678
nih_error_pop_context ();
4680
/* If the sender doesn't care about a reply, don't bother wasting
4681
* effort constructing and sending one.
4683
if (dbus_message_get_no_reply (message->message))
4684
return DBUS_HANDLER_RESULT_HANDLED;
4689
/* Construct the reply message. */
4690
reply = dbus_message_new_method_return (message->message);
4694
dbus_message_iter_init_append (reply, &iter);
4696
/* Marshal an array onto the message */
4697
if (! dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, "i", &output_iter)) {
4698
dbus_message_unref (reply);
4703
for (size_t output_i = 0; output_i < output_len; output_i++) {
4704
int32_t output_element;
4706
output_element = output[output_i];
4708
/* Marshal a int32_t onto the message */
4709
if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_INT32, &output_element)) {
4710
dbus_message_iter_abandon_container (&iter, &output_iter);
4711
dbus_message_unref (reply);
4717
if (! dbus_message_iter_close_container (&iter, &output_iter)) {
4718
dbus_message_unref (reply);
4722
enomem: __attribute__ ((unused));
4725
/* Send the reply, appending it to the outgoing queue. */
4726
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
4728
dbus_message_unref (reply);
4730
return DBUS_HANDLER_RESULT_HANDLED;
4734
static DBusHandlerResult
4009
4735
cgmanager_org_linuxcontainers_cgmanager0_0_ListChildrenScm_method (NihDBusObject * object,
4010
4736
NihDBusMessage *message)
5391
static DBusHandlerResult
5392
cgmanager_org_linuxcontainers_cgmanager0_0_PruneScm_method (NihDBusObject * object,
5393
NihDBusMessage *message)
5395
DBusMessageIter iter;
5396
DBusMessage * reply;
5398
const char * controller_dbus;
5400
const char * cgroup_dbus;
5403
nih_assert (object != NULL);
5404
nih_assert (message != NULL);
5406
/* Iterate the arguments to the message and demarshal into arguments
5407
* for our own function call.
5409
dbus_message_iter_init (message->message, &iter);
5411
/* Demarshal a char * from the message */
5412
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
5413
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5414
"Invalid arguments to PruneScm method");
5416
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5418
if (! dbus_connection_send (message->connection, reply, NULL)) {
5419
dbus_message_unref (reply);
5420
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5423
dbus_message_unref (reply);
5424
return DBUS_HANDLER_RESULT_HANDLED;
5427
dbus_message_iter_get_basic (&iter, &controller_dbus);
5429
controller = nih_strdup (message, controller_dbus);
5431
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5434
dbus_message_iter_next (&iter);
5436
/* Demarshal a char * from the message */
5437
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
5438
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5439
"Invalid arguments to PruneScm method");
5441
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5443
if (! dbus_connection_send (message->connection, reply, NULL)) {
5444
dbus_message_unref (reply);
5445
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5448
dbus_message_unref (reply);
5449
return DBUS_HANDLER_RESULT_HANDLED;
5452
dbus_message_iter_get_basic (&iter, &cgroup_dbus);
5454
cgroup = nih_strdup (message, cgroup_dbus);
5456
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5459
dbus_message_iter_next (&iter);
5461
/* Demarshal a int from the message */
5462
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_UNIX_FD) {
5463
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5464
"Invalid arguments to PruneScm method");
5466
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5468
if (! dbus_connection_send (message->connection, reply, NULL)) {
5469
dbus_message_unref (reply);
5470
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5473
dbus_message_unref (reply);
5474
return DBUS_HANDLER_RESULT_HANDLED;
5477
dbus_message_iter_get_basic (&iter, &sockfd);
5479
dbus_message_iter_next (&iter);
5481
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INVALID) {
5482
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5483
"Invalid arguments to PruneScm method");
5485
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5487
if (! dbus_connection_send (message->connection, reply, NULL)) {
5488
dbus_message_unref (reply);
5489
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5492
dbus_message_unref (reply);
5493
return DBUS_HANDLER_RESULT_HANDLED;
5496
/* Call the handler function */
5497
nih_error_push_context ();
5498
if (cgmanager_prune_scm (object->data, message, controller, cgroup, sockfd) < 0) {
5501
err = nih_error_get ();
5502
if (err->number == ENOMEM) {
5504
nih_error_pop_context ();
5506
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5507
} else if (err->number == NIH_DBUS_ERROR) {
5508
NihDBusError *dbus_err = (NihDBusError *)err;
5510
reply = NIH_MUST (dbus_message_new_error (message->message, dbus_err->name, err->message));
5512
nih_error_pop_context ();
5514
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5516
dbus_message_unref (reply);
5517
return DBUS_HANDLER_RESULT_HANDLED;
5519
reply = NIH_MUST (dbus_message_new_error (message->message, DBUS_ERROR_FAILED, err->message));
5521
nih_error_pop_context ();
5523
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5525
dbus_message_unref (reply);
5526
return DBUS_HANDLER_RESULT_HANDLED;
5529
nih_error_pop_context ();
5531
/* If the sender doesn't care about a reply, don't bother wasting
5532
* effort constructing and sending one.
5534
if (dbus_message_get_no_reply (message->message))
5535
return DBUS_HANDLER_RESULT_HANDLED;
5540
/* Construct the reply message. */
5541
reply = dbus_message_new_method_return (message->message);
5545
dbus_message_iter_init_append (reply, &iter);
5546
enomem: __attribute__ ((unused));
5549
/* Send the reply, appending it to the outgoing queue. */
5550
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5552
dbus_message_unref (reply);
5554
return DBUS_HANDLER_RESULT_HANDLED;
5558
static DBusHandlerResult
5559
cgmanager_org_linuxcontainers_cgmanager0_0_Prune_method (NihDBusObject * object,
5560
NihDBusMessage *message)
5562
DBusMessageIter iter;
5563
DBusMessage * reply;
5565
const char * controller_dbus;
5567
const char * cgroup_dbus;
5569
nih_assert (object != NULL);
5570
nih_assert (message != NULL);
5572
/* Iterate the arguments to the message and demarshal into arguments
5573
* for our own function call.
5575
dbus_message_iter_init (message->message, &iter);
5577
/* Demarshal a char * from the message */
5578
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
5579
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5580
"Invalid arguments to Prune method");
5582
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5584
if (! dbus_connection_send (message->connection, reply, NULL)) {
5585
dbus_message_unref (reply);
5586
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5589
dbus_message_unref (reply);
5590
return DBUS_HANDLER_RESULT_HANDLED;
5593
dbus_message_iter_get_basic (&iter, &controller_dbus);
5595
controller = nih_strdup (message, controller_dbus);
5597
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5600
dbus_message_iter_next (&iter);
5602
/* Demarshal a char * from the message */
5603
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
5604
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5605
"Invalid arguments to Prune method");
5607
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5609
if (! dbus_connection_send (message->connection, reply, NULL)) {
5610
dbus_message_unref (reply);
5611
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5614
dbus_message_unref (reply);
5615
return DBUS_HANDLER_RESULT_HANDLED;
5618
dbus_message_iter_get_basic (&iter, &cgroup_dbus);
5620
cgroup = nih_strdup (message, cgroup_dbus);
5622
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5625
dbus_message_iter_next (&iter);
5627
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INVALID) {
5628
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5629
"Invalid arguments to Prune method");
5631
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5633
if (! dbus_connection_send (message->connection, reply, NULL)) {
5634
dbus_message_unref (reply);
5635
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5638
dbus_message_unref (reply);
5639
return DBUS_HANDLER_RESULT_HANDLED;
5642
/* Call the handler function */
5643
nih_error_push_context ();
5644
if (cgmanager_prune (object->data, message, controller, cgroup) < 0) {
5647
err = nih_error_get ();
5648
if (err->number == ENOMEM) {
5650
nih_error_pop_context ();
5652
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5653
} else if (err->number == NIH_DBUS_ERROR) {
5654
NihDBusError *dbus_err = (NihDBusError *)err;
5656
reply = NIH_MUST (dbus_message_new_error (message->message, dbus_err->name, err->message));
5658
nih_error_pop_context ();
5660
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5662
dbus_message_unref (reply);
5663
return DBUS_HANDLER_RESULT_HANDLED;
5665
reply = NIH_MUST (dbus_message_new_error (message->message, DBUS_ERROR_FAILED, err->message));
5667
nih_error_pop_context ();
5669
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5671
dbus_message_unref (reply);
5672
return DBUS_HANDLER_RESULT_HANDLED;
5675
nih_error_pop_context ();
5677
/* If the sender doesn't care about a reply, don't bother wasting
5678
* effort constructing and sending one.
5680
if (dbus_message_get_no_reply (message->message))
5681
return DBUS_HANDLER_RESULT_HANDLED;
5686
/* Construct the reply message. */
5687
reply = dbus_message_new_method_return (message->message);
5691
dbus_message_iter_init_append (reply, &iter);
5692
enomem: __attribute__ ((unused));
5695
/* Send the reply, appending it to the outgoing queue. */
5696
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5698
dbus_message_unref (reply);
5700
return DBUS_HANDLER_RESULT_HANDLED;
5704
static DBusHandlerResult
5705
cgmanager_org_linuxcontainers_cgmanager0_0_ListControllers_method (NihDBusObject * object,
5706
NihDBusMessage *message)
5708
DBusMessageIter iter;
5709
DBusMessage * reply;
5711
DBusMessageIter output_iter;
5713
nih_assert (object != NULL);
5714
nih_assert (message != NULL);
5716
/* Iterate the arguments to the message and demarshal into arguments
5717
* for our own function call.
5719
dbus_message_iter_init (message->message, &iter);
5721
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INVALID) {
5722
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5723
"Invalid arguments to ListControllers method");
5725
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5727
if (! dbus_connection_send (message->connection, reply, NULL)) {
5728
dbus_message_unref (reply);
5729
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5732
dbus_message_unref (reply);
5733
return DBUS_HANDLER_RESULT_HANDLED;
5736
/* Call the handler function */
5737
nih_error_push_context ();
5738
if (cgmanager_list_controllers (object->data, message, &output) < 0) {
5741
err = nih_error_get ();
5742
if (err->number == ENOMEM) {
5744
nih_error_pop_context ();
5746
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5747
} else if (err->number == NIH_DBUS_ERROR) {
5748
NihDBusError *dbus_err = (NihDBusError *)err;
5750
reply = NIH_MUST (dbus_message_new_error (message->message, dbus_err->name, err->message));
5752
nih_error_pop_context ();
5754
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5756
dbus_message_unref (reply);
5757
return DBUS_HANDLER_RESULT_HANDLED;
5759
reply = NIH_MUST (dbus_message_new_error (message->message, DBUS_ERROR_FAILED, err->message));
5761
nih_error_pop_context ();
5763
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5765
dbus_message_unref (reply);
5766
return DBUS_HANDLER_RESULT_HANDLED;
5769
nih_error_pop_context ();
5771
/* If the sender doesn't care about a reply, don't bother wasting
5772
* effort constructing and sending one.
5774
if (dbus_message_get_no_reply (message->message))
5775
return DBUS_HANDLER_RESULT_HANDLED;
5780
/* Construct the reply message. */
5781
reply = dbus_message_new_method_return (message->message);
5785
dbus_message_iter_init_append (reply, &iter);
5787
/* Marshal an array onto the message */
5788
if (! dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, "s", &output_iter)) {
5789
dbus_message_unref (reply);
5795
for (size_t output_i = 0; output[output_i]; output_i++) {
5796
const char *output_element;
5798
output_element = output[output_i];
5800
/* Marshal a char * onto the message */
5801
if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
5802
dbus_message_iter_abandon_container (&iter, &output_iter);
5803
dbus_message_unref (reply);
5810
if (! dbus_message_iter_close_container (&iter, &output_iter)) {
5811
dbus_message_unref (reply);
5815
enomem: __attribute__ ((unused));
5818
/* Send the reply, appending it to the outgoing queue. */
5819
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5821
dbus_message_unref (reply);
5823
return DBUS_HANDLER_RESULT_HANDLED;
5827
static DBusHandlerResult
5828
cgmanager_org_linuxcontainers_cgmanager0_0_ListKeysScm_method (NihDBusObject * object,
5829
NihDBusMessage *message)
5831
DBusMessageIter iter;
5832
DBusMessage * reply;
5834
const char * controller_dbus;
5836
const char * cgroup_dbus;
5839
nih_assert (object != NULL);
5840
nih_assert (message != NULL);
5842
/* Iterate the arguments to the message and demarshal into arguments
5843
* for our own function call.
5845
dbus_message_iter_init (message->message, &iter);
5847
/* Demarshal a char * from the message */
5848
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
5849
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5850
"Invalid arguments to ListKeysScm method");
5852
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5854
if (! dbus_connection_send (message->connection, reply, NULL)) {
5855
dbus_message_unref (reply);
5856
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5859
dbus_message_unref (reply);
5860
return DBUS_HANDLER_RESULT_HANDLED;
5863
dbus_message_iter_get_basic (&iter, &controller_dbus);
5865
controller = nih_strdup (message, controller_dbus);
5867
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5870
dbus_message_iter_next (&iter);
5872
/* Demarshal a char * from the message */
5873
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
5874
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5875
"Invalid arguments to ListKeysScm method");
5877
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5879
if (! dbus_connection_send (message->connection, reply, NULL)) {
5880
dbus_message_unref (reply);
5881
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5884
dbus_message_unref (reply);
5885
return DBUS_HANDLER_RESULT_HANDLED;
5888
dbus_message_iter_get_basic (&iter, &cgroup_dbus);
5890
cgroup = nih_strdup (message, cgroup_dbus);
5892
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5895
dbus_message_iter_next (&iter);
5897
/* Demarshal a int from the message */
5898
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_UNIX_FD) {
5899
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5900
"Invalid arguments to ListKeysScm method");
5902
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5904
if (! dbus_connection_send (message->connection, reply, NULL)) {
5905
dbus_message_unref (reply);
5906
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5909
dbus_message_unref (reply);
5910
return DBUS_HANDLER_RESULT_HANDLED;
5913
dbus_message_iter_get_basic (&iter, &sockfd);
5915
dbus_message_iter_next (&iter);
5917
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INVALID) {
5918
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
5919
"Invalid arguments to ListKeysScm method");
5921
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5923
if (! dbus_connection_send (message->connection, reply, NULL)) {
5924
dbus_message_unref (reply);
5925
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5928
dbus_message_unref (reply);
5929
return DBUS_HANDLER_RESULT_HANDLED;
5932
/* Call the handler function */
5933
nih_error_push_context ();
5934
if (cgmanager_list_keys_scm (object->data, message, controller, cgroup, sockfd) < 0) {
5937
err = nih_error_get ();
5938
if (err->number == ENOMEM) {
5940
nih_error_pop_context ();
5942
return DBUS_HANDLER_RESULT_NEED_MEMORY;
5943
} else if (err->number == NIH_DBUS_ERROR) {
5944
NihDBusError *dbus_err = (NihDBusError *)err;
5946
reply = NIH_MUST (dbus_message_new_error (message->message, dbus_err->name, err->message));
5948
nih_error_pop_context ();
5950
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5952
dbus_message_unref (reply);
5953
return DBUS_HANDLER_RESULT_HANDLED;
5955
reply = NIH_MUST (dbus_message_new_error (message->message, DBUS_ERROR_FAILED, err->message));
5957
nih_error_pop_context ();
5959
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5961
dbus_message_unref (reply);
5962
return DBUS_HANDLER_RESULT_HANDLED;
5965
nih_error_pop_context ();
5967
/* If the sender doesn't care about a reply, don't bother wasting
5968
* effort constructing and sending one.
5970
if (dbus_message_get_no_reply (message->message))
5971
return DBUS_HANDLER_RESULT_HANDLED;
5976
/* Construct the reply message. */
5977
reply = dbus_message_new_method_return (message->message);
5981
dbus_message_iter_init_append (reply, &iter);
5982
enomem: __attribute__ ((unused));
5985
/* Send the reply, appending it to the outgoing queue. */
5986
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
5988
dbus_message_unref (reply);
5990
return DBUS_HANDLER_RESULT_HANDLED;
5994
static DBusHandlerResult
5995
cgmanager_org_linuxcontainers_cgmanager0_0_ListKeys_method (NihDBusObject * object,
5996
NihDBusMessage *message)
5998
DBusMessageIter iter;
5999
DBusMessage * reply;
6001
const char * controller_dbus;
6003
const char * cgroup_dbus;
6004
CgmanagerListKeysOutputElement **output;
6005
DBusMessageIter output_iter;
6007
nih_assert (object != NULL);
6008
nih_assert (message != NULL);
6010
/* Iterate the arguments to the message and demarshal into arguments
6011
* for our own function call.
6013
dbus_message_iter_init (message->message, &iter);
6015
/* Demarshal a char * from the message */
6016
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
6017
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
6018
"Invalid arguments to ListKeys method");
6020
return DBUS_HANDLER_RESULT_NEED_MEMORY;
6022
if (! dbus_connection_send (message->connection, reply, NULL)) {
6023
dbus_message_unref (reply);
6024
return DBUS_HANDLER_RESULT_NEED_MEMORY;
6027
dbus_message_unref (reply);
6028
return DBUS_HANDLER_RESULT_HANDLED;
6031
dbus_message_iter_get_basic (&iter, &controller_dbus);
6033
controller = nih_strdup (message, controller_dbus);
6035
return DBUS_HANDLER_RESULT_NEED_MEMORY;
6038
dbus_message_iter_next (&iter);
6040
/* Demarshal a char * from the message */
6041
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_STRING) {
6042
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
6043
"Invalid arguments to ListKeys method");
6045
return DBUS_HANDLER_RESULT_NEED_MEMORY;
6047
if (! dbus_connection_send (message->connection, reply, NULL)) {
6048
dbus_message_unref (reply);
6049
return DBUS_HANDLER_RESULT_NEED_MEMORY;
6052
dbus_message_unref (reply);
6053
return DBUS_HANDLER_RESULT_HANDLED;
6056
dbus_message_iter_get_basic (&iter, &cgroup_dbus);
6058
cgroup = nih_strdup (message, cgroup_dbus);
6060
return DBUS_HANDLER_RESULT_NEED_MEMORY;
6063
dbus_message_iter_next (&iter);
6065
if (dbus_message_iter_get_arg_type (&iter) != DBUS_TYPE_INVALID) {
6066
reply = dbus_message_new_error (message->message, DBUS_ERROR_INVALID_ARGS,
6067
"Invalid arguments to ListKeys method");
6069
return DBUS_HANDLER_RESULT_NEED_MEMORY;
6071
if (! dbus_connection_send (message->connection, reply, NULL)) {
6072
dbus_message_unref (reply);
6073
return DBUS_HANDLER_RESULT_NEED_MEMORY;
6076
dbus_message_unref (reply);
6077
return DBUS_HANDLER_RESULT_HANDLED;
6080
/* Call the handler function */
6081
nih_error_push_context ();
6082
if (cgmanager_list_keys (object->data, message, controller, cgroup, &output) < 0) {
6085
err = nih_error_get ();
6086
if (err->number == ENOMEM) {
6088
nih_error_pop_context ();
6090
return DBUS_HANDLER_RESULT_NEED_MEMORY;
6091
} else if (err->number == NIH_DBUS_ERROR) {
6092
NihDBusError *dbus_err = (NihDBusError *)err;
6094
reply = NIH_MUST (dbus_message_new_error (message->message, dbus_err->name, err->message));
6096
nih_error_pop_context ();
6098
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
6100
dbus_message_unref (reply);
6101
return DBUS_HANDLER_RESULT_HANDLED;
6103
reply = NIH_MUST (dbus_message_new_error (message->message, DBUS_ERROR_FAILED, err->message));
6105
nih_error_pop_context ();
6107
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
6109
dbus_message_unref (reply);
6110
return DBUS_HANDLER_RESULT_HANDLED;
6113
nih_error_pop_context ();
6115
/* If the sender doesn't care about a reply, don't bother wasting
6116
* effort constructing and sending one.
6118
if (dbus_message_get_no_reply (message->message))
6119
return DBUS_HANDLER_RESULT_HANDLED;
6124
/* Construct the reply message. */
6125
reply = dbus_message_new_method_return (message->message);
6129
dbus_message_iter_init_append (reply, &iter);
6131
/* Marshal an array onto the message */
6132
if (! dbus_message_iter_open_container (&iter, DBUS_TYPE_ARRAY, "(suuu)", &output_iter)) {
6133
dbus_message_unref (reply);
6139
for (size_t output_i = 0; output[output_i]; output_i++) {
6140
DBusMessageIter output_element_iter;
6141
const char * output_element_item0;
6142
uint32_t output_element_item1;
6143
uint32_t output_element_item2;
6144
uint32_t output_element_item3;
6145
const CgmanagerListKeysOutputElement *output_element;
6147
output_element = output[output_i];
6149
/* Marshal a structure onto the message */
6150
if (! dbus_message_iter_open_container (&output_iter, DBUS_TYPE_STRUCT, NULL, &output_element_iter)) {
6151
dbus_message_iter_abandon_container (&iter, &output_iter);
6152
dbus_message_unref (reply);
6157
output_element_item0 = output_element->item0;
6159
/* Marshal a char * onto the message */
6160
if (! dbus_message_iter_append_basic (&output_element_iter, DBUS_TYPE_STRING, &output_element_item0)) {
6161
dbus_message_iter_abandon_container (&output_iter, &output_element_iter);
6162
dbus_message_iter_abandon_container (&iter, &output_iter);
6163
dbus_message_unref (reply);
6168
output_element_item1 = output_element->item1;
6170
/* Marshal a uint32_t onto the message */
6171
if (! dbus_message_iter_append_basic (&output_element_iter, DBUS_TYPE_UINT32, &output_element_item1)) {
6172
dbus_message_iter_abandon_container (&output_iter, &output_element_iter);
6173
dbus_message_iter_abandon_container (&iter, &output_iter);
6174
dbus_message_unref (reply);
6179
output_element_item2 = output_element->item2;
6181
/* Marshal a uint32_t onto the message */
6182
if (! dbus_message_iter_append_basic (&output_element_iter, DBUS_TYPE_UINT32, &output_element_item2)) {
6183
dbus_message_iter_abandon_container (&output_iter, &output_element_iter);
6184
dbus_message_iter_abandon_container (&iter, &output_iter);
6185
dbus_message_unref (reply);
6190
output_element_item3 = output_element->item3;
6192
/* Marshal a uint32_t onto the message */
6193
if (! dbus_message_iter_append_basic (&output_element_iter, DBUS_TYPE_UINT32, &output_element_item3)) {
6194
dbus_message_iter_abandon_container (&output_iter, &output_element_iter);
6195
dbus_message_iter_abandon_container (&iter, &output_iter);
6196
dbus_message_unref (reply);
6201
if (! dbus_message_iter_close_container (&output_iter, &output_element_iter)) {
6202
dbus_message_iter_abandon_container (&iter, &output_iter);
6203
dbus_message_unref (reply);
6210
if (! dbus_message_iter_close_container (&iter, &output_iter)) {
6211
dbus_message_unref (reply);
6215
enomem: __attribute__ ((unused));
6218
/* Send the reply, appending it to the outgoing queue. */
6219
NIH_MUST (dbus_connection_send (message->connection, reply, NULL));
6221
dbus_message_unref (reply);
6223
return DBUS_HANDLER_RESULT_HANDLED;
4666
6228
cgmanager_org_linuxcontainers_cgmanager0_0_api_version_get (NihDBusObject * object,
4667
6229
NihDBusMessage * message,