enhanced httpd

This commit is contained in:
2012-02-08 12:59:59 +00:00
parent 17d05bb1e0
commit 517107ab79
15 changed files with 1473 additions and 706 deletions

View File

@ -34,6 +34,8 @@
QSE_IMPLEMENT_COMMON_FUNCTIONS(env)
static int load_curenv (qse_env_t* env);
static int insert_sys_wcs (qse_env_t* env, const qse_wchar_t* name);
static int insert_sys_mbs (qse_env_t* env, const qse_mchar_t* name);
qse_env_t* qse_env_open (qse_mmgr_t* mmgr, qse_size_t xtnsize, int fromcurenv)
{
@ -314,10 +316,9 @@ static int deletem (qse_env_t* env, const qse_mchar_t* name)
return -1;
}
#endif
int qse_env_insertw (
static QSE_INLINE int insert_wcs (
qse_env_t* env, const qse_wchar_t* name, const qse_wchar_t* value)
{
#if defined(QSE_ENV_CHAR_IS_WCHAR)
@ -328,9 +329,9 @@ int qse_env_insertw (
qse_mchar_t* namedup, * valuedup;
int n;
namedup = qse_wcstombsdup (name, env->mmgr);
namedup = qse_wcstombsdup (name, env->mmgr); /* TODO: ignore mbwcerr */
if (namedup == QSE_NULL) return -1;
valuedup = qse_wcstombsdup (value, env->mmgr);
valuedup = qse_wcstombsdup (value, env->mmgr); /* TODO: ignore mbwcerr */
if (valuedup == QSE_NULL)
{
QSE_MMGR_FREE (env->mmgr, namedup);
@ -344,7 +345,7 @@ int qse_env_insertw (
#endif
}
int qse_env_insertm (
static QSE_INLINE int insert_mbs (
qse_env_t* env, const qse_mchar_t* name, const qse_mchar_t* value)
{
#if defined(QSE_ENV_CHAR_IS_WCHAR)
@ -352,9 +353,9 @@ int qse_env_insertm (
qse_wchar_t* namedup, * valuedup;
int n;
namedup = qse_mbstowcsdup (name, env->mmgr); /* TODO: ignroe mbwcerr */
namedup = qse_mbstowcsalldup (name, env->mmgr);
if (namedup == QSE_NULL) return -1;
valuedup = qse_mbstowcsdup (value, env->mmgr); /* TODO: ignroe mbwcerr */
valuedup = qse_mbstowcsalldup (value, env->mmgr);
if (valuedup == QSE_NULL)
{
QSE_MMGR_FREE (env->mmgr, namedup);
@ -372,44 +373,6 @@ int qse_env_insertm (
}
int qse_env_deletew (qse_env_t* env, const qse_wchar_t* name)
{
#if defined(QSE_ENV_CHAR_IS_WCHAR)
return deletew (env, name);
#else
/* convert wchar to mchar */
qse_mchar_t* namedup;
int n;
namedup = qse_wcstombsdup (name, env->mmgr);
if (namedup == QSE_NULL) return -1;
n = deletem (env, namedup);
QSE_MMGR_FREE (env->mmgr, namedup);
return n;
#endif
}
int qse_env_deletem (qse_env_t* env, const qse_mchar_t* name)
{
#if defined(QSE_ENV_CHAR_IS_WCHAR)
/* convert mchar to wchar */
qse_wchar_t* namedup;
int n;
namedup = qse_mbstowcsdup (name, env->mmgr); /* TODO: ignroe mbwcerr */
if (namedup == QSE_NULL) return -1;
n = deletew (env, namedup);
QSE_MMGR_FREE (env->mmgr, namedup);
return n;
#else
return deletem (env, name);
#endif
}
#if defined(_WIN32)
static qse_char_t* get_env (qse_env_t* env, const qse_char_t* name, int* free)
{
@ -507,7 +470,7 @@ static qse_mchar_t* get_env (qse_env_t* env, const qse_mchar_t* name, int* free)
}
#endif
int qse_env_insertsysw (qse_env_t* env, const qse_wchar_t* name)
static int insert_sys_wcs (qse_env_t* env, const qse_wchar_t* name)
{
#if defined(QSE_ENV_CHAR_IS_WCHAR)
qse_wchar_t* v;
@ -526,10 +489,10 @@ int qse_env_insertsysw (qse_env_t* env, const qse_wchar_t* name)
qse_mchar_t* namedup;
int ret = -1;
namedup = qse_wcstombsdup (name, env->mmgr);
namedup = qse_wcstombsdup (name, env->mmgr); /* TODO: ignore mbwcerr */
if (namedup)
{
ret = qse_env_insertsysm (env, namedup);
ret = insert_sys_mbs (env, namedup);
QSE_MMGR_FREE (env->mmgr, namedup);
}
@ -537,7 +500,7 @@ int qse_env_insertsysw (qse_env_t* env, const qse_wchar_t* name)
#endif
}
int qse_env_insertsysm (qse_env_t* env, const qse_mchar_t* name)
static insert_sys_mbs (qse_env_t* env, const qse_mchar_t* name)
{
#if defined(QSE_ENV_CHAR_IS_WCHAR)
/* convert mchar to wchar */
@ -547,7 +510,7 @@ int qse_env_insertsysm (qse_env_t* env, const qse_mchar_t* name)
namedup = qse_mbstowcsdup (name, env->mmgr); /* TODO: ignroe mbwcerr */
if (namedup)
{
ret = qse_env_insertsysw (env, namedup);
ret = insert_sys_wcs (env, namedup);
QSE_MMGR_FREE (env->mmgr, namedup);
}
@ -653,3 +616,56 @@ done:
#endif
}
/* ------------------------------------------------------------------- */
int qse_env_insertwcs (
qse_env_t* env, const qse_wchar_t* name, const qse_wchar_t* value)
{
return value? insert_wcs (env, name, value): insert_sys_wcs (env, name);
}
int qse_env_insertmbs (
qse_env_t* env, const qse_mchar_t* name, const qse_mchar_t* value)
{
return value? insert_mbs (env, name, value): insert_sys_mbs (env, name);
}
int qse_env_deletewcs (qse_env_t* env, const qse_wchar_t* name)
{
#if defined(QSE_ENV_CHAR_IS_WCHAR)
return deletew (env, name);
#else
/* convert wchar to mchar */
qse_mchar_t* namedup;
int n;
namedup = qse_wcstombsdup (name, env->mmgr); /* TODO: ignore mbwcerr */
if (namedup == QSE_NULL) return -1;
n = deletem (env, namedup);
QSE_MMGR_FREE (env->mmgr, namedup);
return n;
#endif
}
int qse_env_deletembs (qse_env_t* env, const qse_mchar_t* name)
{
#if defined(QSE_ENV_CHAR_IS_WCHAR)
/* convert mchar to wchar */
qse_wchar_t* namedup;
int n;
namedup = qse_mbstowcsalldup (name, env->mmgr);
if (namedup == QSE_NULL) return -1;
n = deletew (env, namedup);
QSE_MMGR_FREE (env->mmgr, namedup);
return n;
#else
return deletem (env, name);
#endif
}