jk_util.c

来自「以便Apache与其他服务进行整合 Mod_JK安装」· C语言 代码 · 共 1,959 行 · 第 1/4 页

C
1,959
字号
    if (rv < 1)        rv = 1;    return rv;}int jk_get_worker_recovery_opts(jk_map_t *m, const char *wname, int def){    char buf[1024];    if (!m || !wname) {        return -1;    }    MAKE_WORKER_PARAM(RECOVERY_OPTS_OF_WORKER);    return jk_map_get_int(m, buf, def);}const char *jk_get_worker_secret_key(jk_map_t *m, const char *wname){    char buf[1024];    if (!m || !wname) {        return NULL;    }    MAKE_WORKER_PARAM(SECRET_KEY_OF_WORKER);    return jk_map_get_string(m, buf, NULL);}int jk_get_worker_list(jk_map_t *m, char ***list, unsigned *num_of_workers){    if (m && list && num_of_workers) {        char **ar = jk_map_get_string_list(m,                                        WORKER_LIST_PROPERTY_NAME,                                        num_of_workers,                                        DEFAULT_WORKER);        if (ar) {            *list = ar;            return JK_TRUE;        }        *list = NULL;        *num_of_workers = 0;    }    return JK_FALSE;}int jk_get_is_worker_disabled(jk_map_t *m, const char *wname){    int rc = JK_TRUE;    char buf[1024];    if (m && wname) {        int value;        MAKE_WORKER_PARAM(IS_WORKER_DISABLED_DEPRECATED);        value = jk_map_get_bool(m, buf, 0);        if (!value)            rc = JK_FALSE;    }    return rc;}int jk_get_is_worker_stopped(jk_map_t *m, const char *wname){    int rc = JK_TRUE;    char buf[1024];    if (m && wname) {        int value;        MAKE_WORKER_PARAM(IS_WORKER_STOPPED_DEPRECATED);        value = jk_map_get_bool(m, buf, 0);        if (!value)            rc = JK_FALSE;    }    return rc;}int jk_get_worker_activation(jk_map_t *m, const char *wname){    char buf[1024];    const char *v;    if (!m || !wname) {        return JK_LB_ACTIVATION_ACTIVE;    }    MAKE_WORKER_PARAM(ACTIVATION_OF_WORKER);    v = jk_map_get_string(m, buf, NULL);    if (v) {        return jk_lb_get_activation_code(v);    }    else if (jk_get_is_worker_stopped(m, wname))        return JK_LB_ACTIVATION_STOPPED;    else if (jk_get_is_worker_disabled(m, wname))        return JK_LB_ACTIVATION_DISABLED;    else        return JK_LB_ACTIVATION_DEF;}int jk_get_lb_factor(jk_map_t *m, const char *wname){    char buf[1024];    if (!m || !wname) {        return DEFAULT_LB_FACTOR;    }    MAKE_WORKER_PARAM(LOAD_FACTOR_OF_WORKER);    return jk_map_get_int(m, buf, DEFAULT_LB_FACTOR);}int jk_get_distance(jk_map_t *m, const char *wname){    char buf[1024];    if (!m || !wname) {        return DEFAULT_DISTANCE;    }    MAKE_WORKER_PARAM(DISTANCE_OF_WORKER);    return jk_map_get_int(m, buf, DEFAULT_DISTANCE);}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;        MAKE_WORKER_PARAM(STICKY_SESSION);        value = jk_map_get_bool(m, buf, 1);        if (!value)            rc = JK_FALSE;    }    return rc;}int jk_get_is_sticky_session_force(jk_map_t *m, const char *wname){    int rc = JK_FALSE;    char buf[1024];    if (m && wname) {        int value;        MAKE_WORKER_PARAM(STICKY_SESSION_FORCE);        value = jk_map_get_bool(m, buf, 0);        if (value)            rc = JK_TRUE;    }    return rc;}int jk_get_lb_method(jk_map_t *m, const char *wname){    char buf[1024];    const char *v;    if (!m || !wname) {        return JK_LB_METHOD_DEF;    }    MAKE_WORKER_PARAM(METHOD_OF_WORKER);    v = jk_map_get_string(m, buf, NULL);    return jk_lb_get_method_code(v);}int jk_get_lb_lock(jk_map_t *m, const char *wname){    char buf[1024];    const char *v;    if (!m || !wname) {        return JK_LB_LOCK_DEF;    }    MAKE_WORKER_PARAM(LOCK_OF_WORKER);    v = jk_map_get_string(m, buf, NULL);    return jk_lb_get_lock_code(v);}int jk_get_max_packet_size(jk_map_t *m, const char *wname){    char buf[1024];    int sz;    if (!m || !wname) {        return DEF_BUFFER_SZ;    }    MAKE_WORKER_PARAM(WORKER_MAX_PACKET_SIZE);    sz = jk_map_get_int(m, buf, DEF_BUFFER_SZ);    sz = JK_ALIGN(sz, 1024);    if (sz < DEF_BUFFER_SZ)        sz = DEF_BUFFER_SZ;    else if (sz > 64*1024)        sz = 64*1024;    return sz;}int jk_get_worker_fail_on_status(jk_map_t *m, const char *wname,                                 int *list, unsigned int list_size){    char buf[1024];    if (!m || !wname || !list) {        return 0;    }    MAKE_WORKER_PARAM(STATUS_FAIL_OF_WORKER);    if (list_size) {        return jk_map_get_int_list(m, buf,                                   list, list_size,                                   NULL);    }    return 0;}int jk_get_worker_user_case_insensitive(jk_map_t *m, const char *wname){    int rc = JK_FALSE;    char buf[1024];    if (m && wname) {        int value;        MAKE_WORKER_PARAM(USER_CASE_OF_WORKER);        value = jk_map_get_bool(m, buf, 0);        if (value)            rc = JK_TRUE;    }    return rc;}const char *jk_get_worker_style_sheet(jk_map_t *m, const char *wname, const char *def){    char buf[1024];    if (!m || !wname) {        return NULL;    }    MAKE_WORKER_PARAM(STYLE_SHEET_OF_WORKER);    return jk_map_get_string(m, buf, def);}const char *jk_get_worker_name_space(jk_map_t *m, const char *wname, const char *def){    const char *rc;    char buf[1024];    if (!m || !wname) {        return NULL;    }    MAKE_WORKER_PARAM(NAMESPACE_OF_WORKER);    rc = jk_map_get_string(m, buf, def);    if (*rc == '-')        return "";    else        return rc;}const char *jk_get_worker_xmlns(jk_map_t *m, const char *wname, const char *def){    const char *rc;    char buf[1024];    if (!m || !wname) {        return NULL;    }    MAKE_WORKER_PARAM(XML_NAMESPACE_OF_WORKER);    rc = jk_map_get_string(m, buf, def);    if (*rc == '-')        return "";    else        return rc;}const char *jk_get_worker_xml_doctype(jk_map_t *m, const char *wname, const char *def){    char buf[1024];    if (!m || !wname) {        return NULL;    }    MAKE_WORKER_PARAM(XML_DOCTYPE_OF_WORKER);    return jk_map_get_string(m, buf, def);}const char *jk_get_worker_prop_prefix(jk_map_t *m, const char *wname, const char *def){    char buf[1024];    if (!m || !wname) {        return NULL;    }    MAKE_WORKER_PARAM(PROP_PREFIX_OF_WORKER);    return jk_map_get_string(m, buf, def);}int jk_get_is_read_only(jk_map_t *m, const char *wname){    int rc = JK_FALSE;    char buf[1024];    if (m && wname) {        int value;        MAKE_WORKER_PARAM(READ_ONLY_OF_WORKER);        value = jk_map_get_bool(m, buf, 0);        if (value)            rc = JK_TRUE;    }    return rc;}int jk_get_worker_user_list(jk_map_t *m,                            const char *wname,                            char ***list, unsigned int *num){    char buf[1024];    if (m && list && num && wname) {        char **ar = NULL;        MAKE_WORKER_PARAM(USER_OF_WORKER);        ar = jk_map_get_string_list(m, buf, num, NULL);        if (ar) {            *list = ar;            return JK_TRUE;        }        *list = NULL;        *num = 0;    }    return JK_FALSE;}int jk_get_worker_good_rating(jk_map_t *m,                              const char *wname,                              char ***list, unsigned int *num){    char buf[1024];    if (m && list && num && wname) {        char **ar = NULL;        MAKE_WORKER_PARAM(GOOD_RATING_OF_WORKER);        ar = jk_map_get_string_list(m, buf, num, NULL);        if (ar) {            *list = ar;            return JK_TRUE;        }        *list = NULL;        *num = 0;    }    return JK_FALSE;}int jk_get_worker_bad_rating(jk_map_t *m,                             const char *wname,                             char ***list, unsigned int *num){    char buf[1024];    if (m && list && num && wname) {        char **ar = NULL;        MAKE_WORKER_PARAM(BAD_RATING_OF_WORKER);        ar = jk_map_get_string_list(m, buf, num, NULL);        if (ar) {            *list = ar;            return JK_TRUE;        }        *list = NULL;        *num = 0;    }    return JK_FALSE;}int jk_get_lb_worker_list(jk_map_t *m,                          const char *wname,                          char ***list, unsigned int *num_of_workers){    char buf[1024];    if (m && list && num_of_workers && wname) {        char **ar = NULL;        MAKE_WORKER_PARAM(BALANCE_WORKERS);        ar = jk_map_get_string_list(m, buf, num_of_workers, NULL);        if (ar) {            *list = ar;            return JK_TRUE;        }        /* Try old balanced_workers directive */        MAKE_WORKER_PARAM(BALANCED_WORKERS_DEPRECATED);        ar = jk_map_get_string_list(m, buf, num_of_workers, NULL);        if (ar) {            *list = ar;            return JK_TRUE;        }        *list = NULL;        *num_of_workers = 0;    }    return JK_FALSE;}int jk_get_worker_mount_list(jk_map_t *m,                             const char *wname,                             char ***list, unsigned int *num_of_maps){    char buf[1024];    if (m && list && num_of_maps && wname) {        char **ar = NULL;        MAKE_WORKER_PARAM(MOUNT_OF_WORKER);        ar = jk_map_get_string_list(m, buf, num_of_maps, NULL);        if (ar) {            *list = ar;            return JK_TRUE;        }        *list = NULL;        *num_of_maps = 0;    }    return JK_FALSE;}int jk_get_worker_maintain_time(jk_map_t *m){    return jk_map_get_int(m, WORKER_MAINTAIN_PROPERTY_NAME,                          DEFAULT_MAINTAIN_TIME);}int jk_get_worker_mx(jk_map_t *m, const char *wname, unsigned *mx){    char buf[1024];    if (m && mx && wname) {        int i;        MAKE_WORKER_PARAM(MX_OF_WORKER);        i = jk_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;        MAKE_WORKER_PARAM(MS_OF_WORKER);        i = jk_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, const char **cp){    char buf[1024];    if (m && cp && wname) {        MAKE_WORKER_PARAM(CP_OF_WORKER);        *cp = jk_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];    const char *type;    if (m && bt && wname) {        MAKE_WORKER_PARAM(BRIDGE_OF_WORKER);

⌨️ 快捷键说明

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