18.2.1 SHTTPD的主函数
为了更好地展示Web服务器的架构,SHTTPD的主函数设计为十分简单的模型。主函数仅仅调用必要的功能函数,具体细节由各功能函数实现。主函数完成4个部分的功能:初始化服务器配置参数、套接字初始化的一些操作、运行调度函数、挂接信号处理函数,如图18.6所示。
图18.6 SHTTPD的模型框架
q 挂接信号处理函数:在服务器的其他部分运行之前,为了保证能够及时地使服务器SHTTPD释放锁申请的资源,需要挂接信号处理函数,在函数中对程序退出之前申请的资源进行释放。
q 初始化配置参数:配置参数的初始化顺序是首先设置系统的默认配置;然后读取命令行配置,命令行配置中的选项覆盖默认配置项;最后读取配置文件的配置情况并覆盖之前二者的配置选项。
q 服务器开始前的初始化:进行服务器的其他初始化操作,主要进行accept之前的服务器设置。
q 调度函数:调用多客户端服务框架,处理客户端连接,直到接收到命令行的退出信号。