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 HAVE_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 HAVE_DBUS
42 DBusPendingCall* pending;
43 unsigned timerid;
44 #endif
45 };
46
47 G_GNUC_INTERNAL
48 const char *services__action_kind(svc_action_t *action);
49
50 G_GNUC_INTERNAL
51 GList *services_os_get_single_directory_list(const char *root, gboolean files,
52 gboolean executable);
53
54 G_GNUC_INTERNAL
55 GList *services_os_get_directory_list(const char *root, gboolean files, gboolean executable);
56
57 G_GNUC_INTERNAL
58 int services__execute_file(svc_action_t *op);
59
60 G_GNUC_INTERNAL
61 gboolean cancel_recurring_action(svc_action_t * op);
62
63 G_GNUC_INTERNAL
64 gboolean recurring_action_timer(gpointer data);
65
66 G_GNUC_INTERNAL
67 int services__finalize_async_op(svc_action_t *op);
68
69 G_GNUC_INTERNAL
70 int services__generic_error(svc_action_t *op);
71
72 G_GNUC_INTERNAL
73 int services__not_installed_error(svc_action_t *op);
74
75 G_GNUC_INTERNAL
76 int services__authorization_error(svc_action_t *op);
77
78 G_GNUC_INTERNAL
79 int services__configuration_error(svc_action_t *op, bool is_fatal);
80
81 G_GNUC_INTERNAL
82 void services__handle_exec_error(svc_action_t * op, int error);
83
84 G_GNUC_INTERNAL
85 void services__set_cancelled(svc_action_t *action);
86
87 G_GNUC_INTERNAL
88 void services_add_inflight_op(svc_action_t *op);
89
90 G_GNUC_INTERNAL
91 void services_untrack_op(svc_action_t *op);
92
93 G_GNUC_INTERNAL
94 gboolean is_op_blocked(const char *rsc);
95
96 #if HAVE_DBUS
97 G_GNUC_INTERNAL
98 void services_set_op_pending(svc_action_t *op, DBusPendingCall *pending);
99 #endif
100
101 #endif