1
2
3
4
5
6
7
8
9
10
11 #ifndef SERVICES_PRIVATE__H
12 # define SERVICES_PRIVATE__H
13
14 # include <glib.h>
15 # include "crm/services.h"
16
17 #if SUPPORT_DBUS
18 # include <dbus/dbus.h>
19 #endif
20
21 #define MAX_ARGC 255
22 struct svc_action_private_s {
23 char *exec;
24 char *exit_reason;
25 char *args[MAX_ARGC];
26
27 uid_t uid;
28 gid_t gid;
29
30 guint repeat_timer;
31 void (*callback) (svc_action_t * op);
32 void (*fork_callback) (svc_action_t * op);
33
34 int stderr_fd;
35 mainloop_io_t *stderr_gsource;
36
37 int stdout_fd;
38 mainloop_io_t *stdout_gsource;
39
40 int stdin_fd;
41 #if SUPPORT_DBUS
42 DBusPendingCall* pending;
43 unsigned timerid;
44 #endif
45 };
46
47 G_GNUC_INTERNAL
48 GList *services_os_get_single_directory_list(const char *root, gboolean files,
49 gboolean executable);
50
51 G_GNUC_INTERNAL
52 GList *services_os_get_directory_list(const char *root, gboolean files, gboolean executable);
53
54 G_GNUC_INTERNAL
55 int services__execute_file(svc_action_t *op);
56
57 G_GNUC_INTERNAL
58 gboolean cancel_recurring_action(svc_action_t * op);
59
60 G_GNUC_INTERNAL
61 gboolean recurring_action_timer(gpointer data);
62
63 G_GNUC_INTERNAL
64 int services__finalize_async_op(svc_action_t *op);
65
66 G_GNUC_INTERNAL
67 int services__generic_error(svc_action_t *op);
68
69 G_GNUC_INTERNAL
70 int services__not_installed_error(svc_action_t *op);
71
72 G_GNUC_INTERNAL
73 int services__authorization_error(svc_action_t *op);
74
75 G_GNUC_INTERNAL
76 int services__configuration_error(svc_action_t *op, bool is_fatal);
77
78 G_GNUC_INTERNAL
79 void services__handle_exec_error(svc_action_t * op, int error);
80
81 G_GNUC_INTERNAL
82 void services__set_cancelled(svc_action_t *action);
83
84 G_GNUC_INTERNAL
85 void services_add_inflight_op(svc_action_t *op);
86
87 G_GNUC_INTERNAL
88 void services_untrack_op(svc_action_t *op);
89
90 G_GNUC_INTERNAL
91 gboolean is_op_blocked(const char *rsc);
92
93 #if SUPPORT_DBUS
94 G_GNUC_INTERNAL
95 void services_set_op_pending(svc_action_t *op, DBusPendingCall *pending);
96 #endif
97
98 #endif