aboutsummaryrefslogtreecommitdiff
path: root/src/pies.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/pies.h')
-rw-r--r--src/pies.h57
1 files changed, 46 insertions, 11 deletions
diff --git a/src/pies.h b/src/pies.h
index e0d24d2..ad8e8ee 100644
--- a/src/pies.h
+++ b/src/pies.h
@@ -100,3 +100,2 @@ struct action
{
- struct action *next;
size_t nstat;
@@ -204,4 +203,12 @@ enum pies_comp_mode
+struct prog;
+
struct component
{
+ struct component *prev, *next; /* Components form doubly-linked list. */
+ int listidx; /* Index of the list. */
+ size_t arridx; /* Index of this component. */
+ size_t ref_count; /* Reference count. */
+ struct prog *prog; /* Prog associated with this component. */
+
enum pies_comp_mode mode;
@@ -219,3 +226,3 @@ struct component
char *rmfile; /* Try to remove this file before starting */
- struct pies_privs privs; /* UID/GIDS+groups to run under */
+ struct pies_privs privs; /* UID/GIDS+groups to run as */
mode_t umask; /* Umask to install before starting */
@@ -251,4 +258,3 @@ struct component
/* Actions to execute on various exit codes: */
- struct action *act_head, *act_tail;
- struct action act_temp; /* Auxiliary object used during configuration */
+ struct grecs_list *act_list;
/* ACLs for control interface */
@@ -264,2 +270,3 @@ enum pies_action {
ACTION_RESTART,
+ ACTION_RELOAD,
ACTION_CTRLALTDEL,
@@ -291,3 +298,3 @@ extern char *default_control_url[2];
-enum config_syntax
+enum config_syntax_type
{
@@ -299,4 +306,7 @@ enum config_syntax
-int str_to_config_syntax (const char *str, enum config_syntax *psynt);
-void add_config (enum config_syntax syntax, const char *name);
+struct config_syntax;
+
+struct config_syntax *str_to_config_syntax (const char *str);
+void config_file_add (struct config_syntax *syntax, const char *name);
+void config_file_add_type (enum config_syntax_type syntax, const char *name);
@@ -305,2 +315,3 @@ void free_redirector (struct redirector *rp);
void pies_schedule_action (int act);
+void free_action (struct action *act);
@@ -315,7 +326,6 @@ void progman_filter (int (*filter) (struct component *, void *data),
void *data);
+int progman_wait_until (int (*cond) (void *), void *data);
void progman_stop_tag (const char *name);
-void progman_dump_prereq (void);
-void progman_dump_depmap (void);
int progman_accept (int socket, void *data);
-int progman_build_depmap (void);
+
void progman_create_sockets (void);
@@ -353,2 +363,7 @@ void depmap_set (pies_depmap_t dmap, size_t row, size_t col);
int depmap_isset (pies_depmap_t dmap, size_t row, size_t col);
+void depmap_clear (pies_depmap_t dmap, size_t row, size_t col);
+
+void depmap_clear_all (pies_depmap_t dmap, enum pies_depmap_direction dir,
+ size_t coord);
+
void depmap_tc (pies_depmap_t dmap);
@@ -367,2 +382,10 @@ struct component *component_create (const char *name);
void component_free (struct component *comp);
+void component_ref_incr (struct component *comp);
+void component_ref_decr (struct component *comp);
+
+void component_config_begin (void);
+void component_config_rollback (void);
+void component_config_commit (void);
+
+int component_is_active (struct component *comp);
@@ -371,2 +394,9 @@ struct grecs_keyword *find_component_keyword (const char *ident);
+void components_dump_depmap (void);
+void components_trace (char **argv, enum pies_depmap_direction dir);
+
+struct component *component_depmap_first (enum pies_depmap_direction dir,
+ size_t idx, pies_depmap_pos_t *ppos);
+struct component *component_depmap_next (pies_depmap_pos_t pos);
+
@@ -403,2 +433,3 @@ int set_limits (const char *name, limits_record_t lrec);
void free_limits (limits_record_t rec);
+int limits_cmp (limits_record_t a, limits_record_t b);
@@ -453,5 +484,9 @@ void pies_priv_setup (struct pies_privs *);
void pies_epriv_setup (struct pies_privs *);
+
+int pies_privs_cmp (struct pies_privs const *a, struct pies_privs const *b);
+void pies_privs_free (struct pies_privs *p);
+
/* inetd.c */
-int inetd_parse_conf (const char *file);
+int inetd_config_parse (const char *file);

Return to:

Send suggestions and report system problems to the System administrator.