ircd: support restarting ssld processes
Add REHASH SSLD (admins only) that starts new sslds and marks the existing ones as inactive until all their clients disconnect. Very useful whenever the SSL library has a vulnerability because new connections can use a new version of the library without disconnecting existing clients/servers. Add STATS S (admins only) to list ssld processes, status, and client count.
This commit is contained in:
parent
dea27a087c
commit
eb1b303d56
6 changed files with 88 additions and 5 deletions
|
@ -27,7 +27,14 @@
|
|||
struct _ssl_ctl;
|
||||
typedef struct _ssl_ctl ssl_ctl_t;
|
||||
|
||||
enum ssld_status {
|
||||
SSLD_ACTIVE,
|
||||
SSLD_SHUTDOWN,
|
||||
SSLD_DEAD,
|
||||
};
|
||||
|
||||
void init_ssld(void);
|
||||
void restart_ssld(void);
|
||||
int start_ssldaemon(int count, const char *ssl_cert, const char *ssl_private_key, const char *ssl_dh_params, const char *ssl_cipher_list);
|
||||
ssl_ctl_t *start_ssld_accept(rb_fde_t *sslF, rb_fde_t *plainF, uint32_t id);
|
||||
ssl_ctl_t *start_ssld_connect(rb_fde_t *sslF, rb_fde_t *plainF, uint32_t id);
|
||||
|
@ -35,6 +42,7 @@ void start_zlib_session(void *data);
|
|||
void send_new_ssl_certs(const char *ssl_cert, const char *ssl_private_key, const char *ssl_dh_params, const char *ssl_cipher_list);
|
||||
void ssld_decrement_clicount(ssl_ctl_t *ctl);
|
||||
int get_ssld_count(void);
|
||||
void ssld_foreach_info(void (*func)(void *data, pid_t pid, int cli_count, enum ssld_status status), void *data);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue