boa阅读笔记2
fixup_server_root(); read_config_files(); open_logs(); server_s = create_server_socket(); init_signals(); drop_privs(); create_common_env(); build_needs_escape(); 上次我们讲到了处理命令行选项,接下来要分析一系列初始化函数,先介绍第一个函数。 static void fixup_server_root() { char *dirbuf; if (!server_root) {//如果命令行选项中没有指定server_root,则设置server_root #ifdef SERVER_ROOT //从头文件读取SERVER_ROOT的值 server_root = strdup(SERVER_ROOT); if (!server_root) { perror("strdup (SERVER_ROOT)"); exit(1); } #else //如果没有定义SERVER_ROOT,则报错退出 fputs("boa: don't know where server root is. Please #define " "SERVER_ROOT in boa.h\n" "and recompile, or use the -c