2019-07-27 22:44:32 +08:00
|
|
|
|
#pragma once
|
2014-11-19 00:25:21 +08:00
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
2019-07-27 22:44:32 +08:00
|
|
|
|
// 配置内容项
|
2014-11-19 00:25:21 +08:00
|
|
|
|
|
|
|
|
|
extern char *var_cfg_str;
|
|
|
|
|
extern acl::master_str_tbl var_conf_str_tab[];
|
|
|
|
|
|
|
|
|
|
extern int var_cfg_bool;
|
|
|
|
|
extern acl::master_bool_tbl var_conf_bool_tab[];
|
|
|
|
|
|
|
|
|
|
extern acl::master_int_tbl var_conf_int_tab[];
|
|
|
|
|
|
|
|
|
|
extern long long int var_cfg_int64;
|
|
|
|
|
extern acl::master_int64_tbl var_conf_int64_tab[];
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
//class acl::socket_stream;
|
|
|
|
|
|
|
|
|
|
class master_service : public acl::master_proc
|
|
|
|
|
{
|
|
|
|
|
public:
|
2019-07-20 16:14:09 +08:00
|
|
|
|
master_service(void);
|
|
|
|
|
~master_service(void);
|
2014-11-19 00:25:21 +08:00
|
|
|
|
|
2019-07-20 16:14:09 +08:00
|
|
|
|
static void do_cgi(void);
|
2014-11-19 00:25:21 +08:00
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
/**
|
2016-12-03 20:09:21 +08:00
|
|
|
|
* @override
|
2019-07-27 22:44:32 +08:00
|
|
|
|
* 虚函数:当接收到一个客户端连接时调用此函数
|
|
|
|
|
* @param stream {aio_socket_stream*} 新接收到的客户端异步流对象
|
|
|
|
|
* 注:该函数返回后,流连接将会被关闭,用户不应主动关闭该流
|
2014-11-19 00:25:21 +08:00
|
|
|
|
*/
|
2016-12-03 20:09:21 +08:00
|
|
|
|
void on_accept(acl::socket_stream* stream);
|
2014-11-19 00:25:21 +08:00
|
|
|
|
|
|
|
|
|
/**
|
2016-12-03 20:09:21 +08:00
|
|
|
|
* @override
|
2019-07-27 22:44:32 +08:00
|
|
|
|
* 在进程启动时,服务进程每成功监听一个本地地址,便调用本函数
|
|
|
|
|
* @param ss {acl::server_socket&} 监听对象
|
2016-12-03 20:09:21 +08:00
|
|
|
|
*/
|
|
|
|
|
void proc_on_listen(acl::server_socket& ss);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @override
|
2019-07-27 22:44:32 +08:00
|
|
|
|
* 当进程切换用户身份后调用的回调函数,此函数被调用时,进程
|
|
|
|
|
* 的权限为普通受限级别
|
2014-11-19 00:25:21 +08:00
|
|
|
|
*/
|
2019-07-20 16:14:09 +08:00
|
|
|
|
void proc_on_init(void);
|
2014-11-19 00:25:21 +08:00
|
|
|
|
|
|
|
|
|
/**
|
2016-12-03 20:09:21 +08:00
|
|
|
|
* @override
|
2019-07-27 22:44:32 +08:00
|
|
|
|
* 当进程退出前调用的回调函数
|
2014-11-19 00:25:21 +08:00
|
|
|
|
*/
|
2019-07-20 16:14:09 +08:00
|
|
|
|
void proc_on_exit(void);
|
2017-07-05 10:27:33 +08:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @override
|
2019-07-27 22:44:32 +08:00
|
|
|
|
* 当进程收到 SIGHUP 信号后的回调函数
|
2017-07-05 10:27:33 +08:00
|
|
|
|
*/
|
2017-09-09 00:30:39 +08:00
|
|
|
|
bool proc_on_sighup(acl::string&);
|
2014-11-19 00:25:21 +08:00
|
|
|
|
};
|