improved dns and proxy handling in httpd

This commit is contained in:
2014-07-23 16:07:43 +00:00
parent 5703aaa8a5
commit 1231b3b941
13 changed files with 200 additions and 50 deletions

View File

@ -25,6 +25,7 @@
#ifdef MINIMIZE_PLATFORM_DEPENDENCY
# define QSE_MEMCPY(dst,src,len) qse_memcpy(dst,src,len)
# define QSE_MEMMOVE(dst,src,len) qse_memmove(dst,src,len)
# define QSE_MEMCMP(p1,p2,len) qse_memcmp(p1,p2,len)
# define QSE_MEMSET(dst,val,len) qse_memset(dst,val,len)
# define QSE_MEMBYTE(s,val,len) qse_membyte(s,val,len)
@ -34,6 +35,7 @@
#else
# include <string.h>
# define QSE_MEMCPY(dst,src,len) memcpy(dst,src,len)
# define QSE_MEMMOVE(dst,src,len) memmove(dst,src,len)
# define QSE_MEMCMP(p1,p2,len) memcmp(p1,p2,len)
# define QSE_MEMSET(dst,val,len) memset(dst,val,len)
# define QSE_MEMBYTE(s,val,len) memchr(s,val,len)

View File

@ -48,7 +48,7 @@ int qse_nwadequal (const qse_nwad_t* x, const qse_nwad_t* y)
void qse_clearnwad (qse_nwad_t* nwad, qse_nwad_type_t type)
{
QSE_MEMSET (nwad, 0, QSE_SIZEOF(*nwad));
QSE_MEMSET (nwad, 0, QSE_SIZEOF(*nwad));
nwad->type = type;
}
@ -61,11 +61,26 @@ void qse_setnwadport (qse_nwad_t* nwad, qse_uint16_t port)
break;
case QSE_NWAD_IN6:
nwad->u.in4.port = port;
nwad->u.in6.port = port;
break;
}
}
qse_uint16_t qse_getnwadport (qse_nwad_t* nwad)
{
switch (nwad->type)
{
case QSE_NWAD_IN4:
return nwad->u.in4.port;
case QSE_NWAD_IN6:
return nwad->u.in6.port;
default:
return 0;
}
}
int qse_mbstonwad (const qse_mchar_t* str, qse_nwad_t* nwad)
{
return qse_mbsntonwad (str, qse_mbslen(str), nwad);

View File

@ -200,7 +200,7 @@ qse_size_t qse_mbstrm (qse_mchar_t* str)
{
e[1] = QSE_MT('\0');
if (str != s)
QSE_MEMCPY (str, s, (e - s + 2) * QSE_SIZEOF(*str));
QSE_MEMMOVE (str, s, (e - s + 2) * QSE_SIZEOF(*str));
return e - s + 1;
}
@ -228,7 +228,7 @@ qse_size_t qse_mbsxtrm (qse_mchar_t* str, qse_size_t len)
/* do not insert a terminating null */
/*e[1] = QSE_MT('\0');*/
if (str != s)
QSE_MEMCPY (str, s, (e - s + 2) * QSE_SIZEOF(*str));
QSE_MEMMOVE (str, s, (e - s + 2) * QSE_SIZEOF(*str));
return e - s + 1;
}
@ -256,7 +256,7 @@ qse_size_t qse_wcstrm (qse_wchar_t* str)
{
e[1] = QSE_MT('\0');
if (str != s)
QSE_MEMCPY (str, s, (e - s + 2) * QSE_SIZEOF(*str));
QSE_MEMMOVE (str, s, (e - s + 2) * QSE_SIZEOF(*str));
return e - s + 1;
}
@ -284,7 +284,7 @@ qse_size_t qse_wcsxtrm (qse_wchar_t* str, qse_size_t len)
/* do not insert a terminating null */
/*e[1] = QSE_MT('\0');*/
if (str != s)
QSE_MEMCPY (str, s, (e - s + 2) * QSE_SIZEOF(*str));
QSE_MEMMOVE (str, s, (e - s + 2) * QSE_SIZEOF(*str));
return e - s + 1;
}