⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jk_util.c

📁 Tomcat 4.1与WebServer集成组件的源代码包.
💻 C
📖 第 1 页 / 共 2 页
字号:
    if(m && list && num_of_wokers) {        char **ar = map_get_string_list(m,                                         WORKER_LIST_PROPERTY_NAME,                                         num_of_wokers,                                         DEFAULT_WORKER);        if(ar)  {            *list = ar;                 return JK_TRUE;        }        *list = NULL;           *num_of_wokers = 0;    }    return JK_FALSE;}void jk_set_log_format(const char * logformat){    jk_log_fmt = (logformat) ? logformat : JK_TIME_FORMAT;}double jk_get_lb_factor(jk_map_t *m,                         const char *wname){    char buf[1024];        if(!m || !wname) {        return DEFAULT_LB_FACTOR;    }    sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, LOAD_FACTOR_OF_WORKER);    return map_get_double(m, buf, DEFAULT_LB_FACTOR);}int jk_get_is_sticky_session(jk_map_t *m,                            const char *wname) {    int rc = JK_TRUE;    char buf[1024];    if (m && wname) {        int value;        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, STICKY_SESSION);        value = map_get_int(m, buf, 0);        if (!value) rc = JK_FALSE;    }    return rc;}int jk_get_is_local_worker(jk_map_t *m,                            const char *wname) {    int rc = JK_FALSE;    char buf[1024];    if (m && wname) {        int value;        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, LOCAL_WORKER_FLAG);        value = map_get_int(m, buf, 0);        if (value) rc = JK_TRUE;    }    return rc;}int jk_get_local_worker_only_flag(jk_map_t *m,                                  const char *lb_wname) {    int rc = JK_FALSE;    char buf[1024];    if (m && lb_wname) {        int value;        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, lb_wname, LOCAL_WORKER_ONLY_FLAG);        value = map_get_int(m, buf, 0);        if (value) rc = JK_TRUE;    }    return rc;}int jk_get_lb_worker_list(jk_map_t *m,                           const char *lb_wname,                          char ***list,                           unsigned *num_of_wokers){    char buf[1024];    if(m && list && num_of_wokers && lb_wname) {        char **ar = NULL;        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, lb_wname, BALANCED_WORKERS);        ar = map_get_string_list(m, buf, num_of_wokers, NULL);        if(ar)  {            *list = ar;                 return JK_TRUE;        }        *list = NULL;           *num_of_wokers = 0;    }    return JK_FALSE;}int jk_get_worker_mx(jk_map_t *m,                      const char *wname,                     unsigned *mx){    char buf[1024];        if(m && mx && wname) {        int i;        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, MX_OF_WORKER);        i = map_get_int(m, buf, -1);        if(-1 != i) {            *mx = (unsigned)i;            return JK_TRUE;        }    }    return JK_FALSE;}int jk_get_worker_ms(jk_map_t *m,                      const char *wname,                     unsigned *ms){    char buf[1024];        if(m && ms && wname) {        int i;        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, MS_OF_WORKER);        i = map_get_int(m, buf, -1);        if(-1 != i) {            *ms = (unsigned)i;            return JK_TRUE;        }    }    return JK_FALSE;}int jk_get_worker_classpath(jk_map_t *m,                             const char *wname,                             char **cp){    char buf[1024];        if(m && cp && wname) {        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, CP_OF_WORKER);        *cp = map_get_string(m, buf, NULL);        if(*cp) {            return JK_TRUE;        }    }    return JK_FALSE;}int jk_get_worker_bridge_type(jk_map_t *m,                               const char *wname,                              unsigned *bt){    char buf[1024];	char *type;	        if(m && bt && wname) {        int i;        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, BRIDGE_OF_WORKER);        type = map_get_string(m, buf, NULL);                if(type) {        	if (! strcasecmp(type, TOMCAT32_BRIDGE_NAME))        		*bt = TC32_BRIDGE_TYPE;        	else if (! strcasecmp(type, TOMCAT33_BRIDGE_NAME))        		*bt = TC33_BRIDGE_TYPE;        	else if (! strcasecmp(type, TOMCAT40_BRIDGE_NAME))        		*bt = TC40_BRIDGE_TYPE;        	else if (! strcasecmp(type, TOMCAT41_BRIDGE_NAME))        		*bt = TC41_BRIDGE_TYPE;        	else if (! strcasecmp(type, TOMCAT50_BRIDGE_NAME))        		*bt = TC50_BRIDGE_TYPE;        		            return JK_TRUE;        }    }    return JK_FALSE;}int jk_get_worker_jvm_path(jk_map_t *m,                            const char *wname,                            char **vm_path){    char buf[1024];        if(m && vm_path && wname) {        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, JVM_OF_WORKER);        *vm_path = map_get_string(m, buf, NULL);        if(*vm_path) {            return JK_TRUE;        }    }    return JK_FALSE;}/* [V] This is unused. currently. */int jk_get_worker_callback_dll(jk_map_t *m,                                const char *wname,                                char **cb_path){    char buf[1024];    if(m && cb_path && wname) {        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, NATIVE_LIB_OF_WORKER);        *cb_path = map_get_string(m, buf, NULL);        if(*cb_path) {            return JK_TRUE;        }    }    return JK_FALSE;}int jk_get_worker_cmd_line(jk_map_t *m,                            const char *wname,                            char **cmd_line){    char buf[1024];    if(m && cmd_line && wname) {        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, CMD_LINE_OF_WORKER);        *cmd_line = map_get_string(m, buf, NULL);        if(*cmd_line) {            return JK_TRUE;        }    }    return JK_FALSE;}int jk_file_exists(const char *f){    if(f) {        struct stat st;#ifdef AS400        if((0 == stat(f, &st)) && (st.st_mode & _S_IFREG)) {#else        if((0 == stat(f, &st)) && (st.st_mode & S_IFREG)) {#endif            return JK_TRUE;        }    }    return JK_FALSE;}static int jk_is_some_property(const char *prp_name, const char *suffix){    if (prp_name && suffix) {        size_t prp_name_len = strlen(prp_name);        size_t suffix_len = strlen(suffix);        if (prp_name_len >= suffix_len) {            const char *prp_suffix = prp_name + prp_name_len - suffix_len;            if(0 == strcmp(suffix, prp_suffix)) {                return JK_TRUE;            }        }    }    return JK_FALSE;}int jk_is_path_poperty(const char *prp_name){    return jk_is_some_property(prp_name, "path");}int jk_is_cmd_line_poperty(const char *prp_name){    return jk_is_some_property(prp_name, CMD_LINE_OF_WORKER);}int jk_get_worker_stdout(jk_map_t *m,                          const char *wname,                          char **stdout_name){    char buf[1024];    if(m && stdout_name && wname) {        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, STDOUT_OF_WORKER);        *stdout_name = map_get_string(m, buf, NULL);        if(*stdout_name) {            return JK_TRUE;        }    }    return JK_FALSE;}int jk_get_worker_stderr(jk_map_t *m,                          const char *wname,                          char **stderr_name){    char buf[1024];    if(m && stderr_name && wname) {        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, STDERR_OF_WORKER);        *stderr_name = map_get_string(m, buf, NULL);        if(*stderr_name) {            return JK_TRUE;        }    }    return JK_FALSE;}int jk_get_worker_sysprops(jk_map_t *m,                            const char *wname,                            char **sysprops){    char buf[1024];    if(m && sysprops && wname) {        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, SYSPROPS_OF_WORKER);        *sysprops = map_get_string(m, buf, NULL);        if(*sysprops) {            return JK_TRUE;        }    }    return JK_FALSE;}int jk_get_worker_libpath(jk_map_t *m,                           const char *wname,                           char **libpath){    char buf[1024];    if(m && libpath && wname) {        sprintf(buf, "%s.%s.%s", PREFIX_OF_WORKER, wname, LIBPATH_OF_WORKER);        *libpath = map_get_string(m, buf, NULL);        if(*libpath) {            return JK_TRUE;        }    }    return JK_FALSE;}char **jk_parse_sysprops(jk_pool_t *p,                          const char *sysprops){    char **rc = NULL;#ifdef AS400    char *lasts;#endif    if(p && sysprops) {        char *prps = jk_pool_strdup(p, sysprops);        if(prps && strlen(prps)) {            unsigned num_of_prps;            for(num_of_prps = 1; *sysprops ; sysprops++) {                if('*' == *sysprops) {                    num_of_prps++;                }            }                        rc = jk_pool_alloc(p, (num_of_prps + 1) * sizeof(char *));            if(rc) {                unsigned i = 0;#ifdef AS400                char *tmp = strtok_r(prps, "*", &lasts);#else                char *tmp = strtok(prps, "*");#endif                while(tmp && i < num_of_prps) {                    rc[i] = tmp;#ifdef AS400                    tmp = strtok_r(NULL, "*", &lasts);#else                    tmp = strtok(NULL, "*");#endif                    i++;                }                rc[i] = NULL;            }        }    }    return rc;}void jk_append_libpath(jk_pool_t *p,                        const char *libpath){    char *env = NULL;    char *current = getenv(PATH_ENV_VARIABLE);    if(current) {        env = jk_pool_alloc(p, strlen(PATH_ENV_VARIABLE) +                                strlen(current) +                                strlen(libpath) + 5);        if(env) {            sprintf(env, "%s=%s%c%s",                     PATH_ENV_VARIABLE,                     libpath,                     PATH_SEPERATOR,                     current);        }    } else {        env = jk_pool_alloc(p, strlen(PATH_ENV_VARIABLE) +                                                              strlen(libpath) + 5);        if(env) {            sprintf(env, "%s=%s", PATH_ENV_VARIABLE, libpath);        }    }    if(env) {        putenv(env);    }}void jk_init_ws_service(jk_ws_service_t *s){    s->ws_private           = NULL;    s->pool                 = NULL;    s->method               = NULL;    s->protocol             = NULL;    s->req_uri              = NULL;    s->remote_addr          = NULL;    s->remote_host          = NULL;    s->remote_user          = NULL;    s->auth_type            = NULL;    s->query_string         = NULL;    s->server_name          = NULL;    s->server_port          = 80;    s->server_software      = NULL;    s->content_length       = 0;    s->is_chunked           = 0;    s->no_more_chunks       = 0;    s->content_read         = 0;    s->is_ssl               = JK_FALSE;    s->ssl_cert             = NULL;    s->ssl_cert_len         = 0;    s->ssl_cipher           = NULL;    s->ssl_session          = NULL;    s->headers_names        = NULL;    s->headers_values       = NULL;    s->num_headers          = 0;    s->attributes_names     = NULL;    s->attributes_values    = NULL;    s->num_attributes       = 0;    s->jvm_route            = NULL;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -