deleted more system dependent code from qse_httpd_t

This commit is contained in:
2012-02-28 09:41:01 +00:00
parent 8b95a1d26c
commit 6c8755de00
11 changed files with 669 additions and 608 deletions

View File

@ -39,21 +39,6 @@ struct qse_ipad6_t
};
#include <qse/unpack.h>
struct qse_ipad_t
{
enum
{
QSE_IPAD_V4,
QSE_IPAD_V6
} type;
union
{
qse_ipad4_t v4;
qse_ipad6_t v6;
} u;
};
#ifdef __cplusplus
extern "C" {
#endif

View File

@ -52,6 +52,22 @@ struct qse_nwad_t
} u;
};
enum qse_nwadtostr_flag_t
{
QSE_NWADTOSTR_ADDR = (1 << 0),
#define QSE_NWADTOMBS_ADDR QSE_NWADTOSTR_ADDR
#define QSE_NWADTOWCS_ADDR QSE_NWADTOSTR_ADDR
QSE_NWADTOSTR_PORT = (1 << 1),
#define QSE_NWADTOMBS_PORT QSE_NWADTOSTR_PORT
#define QSE_NWADTOWCS_PORT QSE_NWADTOSTR_PORT
QSE_NWADTOSTR_ALL = (QSE_NWADTOSTR_ADDR | QSE_NWADTOSTR_PORT)
#define QSE_NWADTOMBS_ALL QSE_NWADTOSTR_ALL
#define QSE_NWADTOWCS_ALL QSE_NWADTOSTR_ALL
};
#ifdef __cplusplus
extern "C" {
#endif
@ -81,23 +97,25 @@ int qse_wcsntonwad (
qse_size_t qse_nwadtombs (
const qse_nwad_t* nwad,
qse_mchar_t* mbs,
qse_size_t len
qse_size_t len,
int flags
);
qse_size_t qse_nwadtowcs (
const qse_nwad_t* nwad,
qse_wchar_t* wcs,
qse_size_t len
qse_size_t len,
int flags
);
#if defined(QSE_CHAR_IS_MCHAR)
# define qse_strtonwad(ptr,nwad) qse_mbstonwad(ptr,nwad)
# define qse_strntonwad(ptr,len,nwad) qse_mbsntonwad(ptr,len,nwad)
# define qse_nwadtostr(nwad,ptr,len) qse_nwadtombs(nwad,ptr,len)
# define qse_strtonwad(ptr,nwad) qse_mbstonwad(ptr,nwad)
# define qse_strntonwad(ptr,len,nwad) qse_mbsntonwad(ptr,len,nwad)
# define qse_nwadtostr(nwad,ptr,len,flags) qse_nwadtombs(nwad,ptr,len,flags)
#else
# define qse_strtonwad(ptr,nwad) qse_wcstonwad(ptr,nwad)
# define qse_strntonwad(ptr,len,nwad) qse_wcsntonwad(ptr,len,nwad)
# define qse_nwadtostr(nwad,ptr,len) qse_nwadtowcs(nwad,ptr,len)
# define qse_strtonwad(ptr,nwad) qse_wcstonwad(ptr,nwad)
# define qse_strntonwad(ptr,len,nwad) qse_wcsntonwad(ptr,len,nwad)
# define qse_nwadtostr(nwad,ptr,len,flags) qse_nwadtowcs(nwad,ptr,len,flags)
#endif
#ifdef __cplusplus

View File

@ -24,6 +24,7 @@
#include <qse/types.h>
#include <qse/macros.h>
#include <qse/net/htre.h>
#include <qse/cmn/nwad.h>
#include <qse/cmn/time.h>
typedef struct qse_httpd_t qse_httpd_t;
@ -32,17 +33,25 @@ typedef struct qse_httpd_client_t qse_httpd_client_t;
enum qse_httpd_errnum_t
{
QSE_HTTPD_ENOERR,
QSE_HTTPD_ENOMEM,
QSE_HTTPD_EINVAL,
QSE_HTTPD_ENOENT,
QSE_HTTPD_EACCES,
QSE_HTTPD_EINTERN,
QSE_HTTPD_ENOENT,
QSE_HTTPD_EEXIST,
QSE_HTTPD_EINTR,
QSE_HTTPD_EAGAIN,
QSE_HTTPD_EIOMUX,
QSE_HTTPD_ESUBSYS,
QSE_HTTPD_ESOCKET,
QSE_HTTPD_EDISCON, /* client disconnnected */
QSE_HTTPD_EBADREQ, /* bad request */
QSE_HTTPD_ETASK
QSE_HTTPD_ETASK,
QSE_HTTPD_EINTERN,
QSE_HTTPD_ESYSERR,
QSE_HTTPD_ENOIMPL,
QSE_HTTPD_EOTHER
};
typedef enum qse_httpd_errnum_t qse_httpd_errnum_t;
@ -60,9 +69,28 @@ struct qse_httpd_stat_t
const qse_mchar_t* mime;
};
typedef struct qse_httpd_server_t qse_httpd_server_t;
struct qse_httpd_server_t
{
qse_httpd_server_t* next;
qse_nwad_t nwad;
int secure;
/* set by server.open callback */
qse_ubi_t handle;
};
typedef struct qse_httpd_cbs_t qse_httpd_cbs_t;
struct qse_httpd_cbs_t
{
struct
{
int (*open) (qse_httpd_t* httpd, qse_httpd_server_t* server);
void (*close) (qse_httpd_t* httpd, qse_httpd_server_t* server);
int (*accept) (qse_httpd_t* httpd, qse_httpd_server_t* server, qse_httpd_client_t* client);
} server;
struct
{
int (*readable) (
@ -98,16 +126,27 @@ struct qse_httpd_cbs_t
struct
{
void (*close) (
qse_httpd_t* httpd,
qse_httpd_client_t* client);
void (*shutdown) (
qse_httpd_t* httpd,
qse_httpd_client_t* client);
/* action */
qse_ssize_t (*recv) (qse_httpd_t* httpd,
qse_ssize_t (*recv) (
qse_httpd_t* httpd,
qse_httpd_client_t* client,
qse_mchar_t* buf, qse_size_t bufsize);
qse_ssize_t (*send) (qse_httpd_t* httpd,
qse_ssize_t (*send) (
qse_httpd_t* httpd,
qse_httpd_client_t* client,
const qse_mchar_t* buf, qse_size_t bufsize);
qse_ssize_t (*sendfile) (qse_httpd_t* httpd,
qse_ssize_t (*sendfile) (
qse_httpd_t* httpd,
qse_httpd_client_t* client,
qse_ubi_t handle, qse_foff_t* offset, qse_size_t count);
@ -229,7 +268,7 @@ void qse_httpd_stop (
);
int qse_httpd_addlistener (
int qse_httpd_addserver (
qse_httpd_t* httpd,
const qse_char_t* uri
);