annotate src/master/service-process.h @ 23017:c1d36f2575c7 default tip

lib-imap: Fix "Don't accept strings with NULs" cherry-pick
author Timo Sirainen <timo.sirainen@open-xchange.com>
date Thu, 29 Aug 2019 09:55:25 +0300
parents d0d7b810646b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
1 #ifndef SERVICE_PROCESS_H
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2 #define SERVICE_PROCESS_H
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
4 struct service_process {
10099
fea8122e1deb master: Keep service's processes in an easily accessible linked list.
Timo Sirainen <tss@iki.fi>
parents: 9923
diff changeset
5 struct service_process *prev, *next;
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6 struct service *service;
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7 int refcount;
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9 pid_t pid;
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10 /* uid is used to check for old/invalid status messages */
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11 unsigned int uid;
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
13 /* number of new connections process is currently accepting */
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 unsigned int available_count;
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
15 /* number of connections process has ever accepted */
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
16 unsigned int total_count;
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
17
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
18 /* time when process started idling, or 0 if we're not idling */
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19 time_t idle_start;
9906
29ebf1c9ff26 master: Kill extra idling processes.
Timo Sirainen <tss@iki.fi>
parents: 9235
diff changeset
20 /* kill process if it hits idle timeout */
29ebf1c9ff26 master: Kill extra idling processes.
Timo Sirainen <tss@iki.fi>
parents: 9235
diff changeset
21 struct timeout *to_idle;
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
22
11517
3fa10300c70c master: If an idling process seems stuck, log an error and disable it.
Timo Sirainen <tss@iki.fi>
parents: 10101
diff changeset
23 /* time when we last received a status update */
3fa10300c70c master: If an idling process seems stuck, log an error and disable it.
Timo Sirainen <tss@iki.fi>
parents: 10101
diff changeset
24 time_t last_status_update;
3fa10300c70c master: If an idling process seems stuck, log an error and disable it.
Timo Sirainen <tss@iki.fi>
parents: 10101
diff changeset
25 /* time when we last sent SIGINT to process */
3fa10300c70c master: If an idling process seems stuck, log an error and disable it.
Timo Sirainen <tss@iki.fi>
parents: 10101
diff changeset
26 time_t last_kill_sent;
3fa10300c70c master: If an idling process seems stuck, log an error and disable it.
Timo Sirainen <tss@iki.fi>
parents: 10101
diff changeset
27
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
28 /* kill the process if it doesn't send initial status notification */
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
29 struct timeout *to_status;
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
30
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
31 unsigned int destroyed:1;
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
32 };
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
33
10101
4fe8c4382712 Redesigned how login process passes connections to mail processes and changed related APIs.
Timo Sirainen <tss@iki.fi>
parents: 10099
diff changeset
34 #define SERVICE_PROCESS_IS_INITIALIZED(process) \
4fe8c4382712 Redesigned how login process passes connections to mail processes and changed related APIs.
Timo Sirainen <tss@iki.fi>
parents: 10099
diff changeset
35 ((process)->to_status == NULL)
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
36
10101
4fe8c4382712 Redesigned how login process passes connections to mail processes and changed related APIs.
Timo Sirainen <tss@iki.fi>
parents: 10099
diff changeset
37 struct service_process *service_process_create(struct service *service);
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
38 void service_process_destroy(struct service_process *process);
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
39
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
40 void service_process_ref(struct service_process *process);
14682
d0d7b810646b Make sure we check all the functions' return values. Minor API changes to simplify this.
Timo Sirainen <tss@iki.fi>
parents: 11517
diff changeset
41 void service_process_unref(struct service_process *process);
9159
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
42
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
43 void service_process_log_status_error(struct service_process *process,
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
44 int status);
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
45
6324a79d3ee1 Initial commit for v2.0 master rewrite. Several features are still missing.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
46 #endif