deleted more system dependent code from qse_httpd_t
This commit is contained in:
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
);
|
||||
|
Reference in New Issue
Block a user