improved dns handling and added some code for url rewriting
This commit is contained in:
@ -34,6 +34,7 @@ typedef struct qse_httpd_mate_t qse_httpd_mate_t;
|
||||
typedef struct qse_httpd_server_t qse_httpd_server_t;
|
||||
typedef struct qse_httpd_client_t qse_httpd_client_t;
|
||||
typedef struct qse_httpd_dns_t qse_httpd_dns_t;
|
||||
typedef struct qse_httpd_urs_t qse_httpd_urs_t;
|
||||
|
||||
enum qse_httpd_errnum_t
|
||||
{
|
||||
@ -132,6 +133,13 @@ typedef void (*qse_httpd_resol_t) (
|
||||
void* ctx
|
||||
);
|
||||
|
||||
typedef void (*qse_httpd_rewrite_t) (
|
||||
qse_httpd_t* httpd,
|
||||
const qse_mchar_t* url,
|
||||
const qse_mchar_t* new_url,
|
||||
void* ctx
|
||||
);
|
||||
|
||||
typedef struct qse_httpd_scb_t qse_httpd_scb_t;
|
||||
struct qse_httpd_scb_t
|
||||
{
|
||||
@ -255,6 +263,14 @@ struct qse_httpd_scb_t
|
||||
int (*recv) (qse_httpd_t* httpd, qse_httpd_dns_t* dns);
|
||||
int (*send) (qse_httpd_t* httpd, qse_httpd_dns_t* dns, const qse_mchar_t* name, qse_httpd_resol_t resol, void* ctx);
|
||||
} dns;
|
||||
|
||||
struct
|
||||
{
|
||||
int (*open) (qse_httpd_t* httpd, qse_httpd_urs_t* urs);
|
||||
void (*close) (qse_httpd_t* httpd, qse_httpd_urs_t* urs);
|
||||
int (*recv) (qse_httpd_t* httpd, qse_httpd_urs_t* urs);
|
||||
int (*send) (qse_httpd_t* httpd, qse_httpd_urs_t* urs, const qse_mchar_t* url, qse_httpd_rewrite_t rewrite, void* ctx);
|
||||
} urs;
|
||||
};
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
@ -387,7 +403,8 @@ enum qse_httpd_mate_type_t
|
||||
{
|
||||
QSE_HTTPD_SERVER,
|
||||
QSE_HTTPD_CLIENT,
|
||||
QSE_HTTPD_DNS
|
||||
QSE_HTTPD_DNS,
|
||||
QSE_HTTPD_URS
|
||||
};
|
||||
typedef enum qse_httpd_mate_type_t qse_httpd_mate_type_t;
|
||||
|
||||
@ -486,6 +503,17 @@ struct qse_httpd_dns_t
|
||||
qse_ubi_t handle;
|
||||
void* ctx;
|
||||
};
|
||||
|
||||
struct qse_httpd_urs_t
|
||||
{
|
||||
/* PRIVATE == */
|
||||
QSE_HTTPD_MATE_HDR;
|
||||
|
||||
/* == PUBLIC == */
|
||||
qse_ubi_t handle;
|
||||
void* ctx;
|
||||
};
|
||||
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
/**
|
||||
|
@ -142,6 +142,7 @@ enum qse_httpd_serverstd_opt_t
|
||||
};
|
||||
typedef enum qse_httpd_serverstd_opt_t qse_httpd_serverstd_opt_t;
|
||||
|
||||
#define QSE_HTTPD_DNSSTD_DEFAULT_PORT 53
|
||||
#define QSE_HTTPD_DNSSTD_DEFAULT_TMOUT 3
|
||||
#define QSE_HTTPD_DNSSTD_DEFAULT_RESENDS 2
|
||||
#define QSE_HTTPD_DNSSTD_DEFAULT_CACHE_TTL 120
|
||||
@ -160,6 +161,18 @@ struct qse_httpd_dnsstd_t
|
||||
|
||||
typedef struct qse_httpd_dnsstd_t qse_httpd_dnsstd_t;
|
||||
|
||||
#define QSE_HTTPD_URSSTD_DEFAULT_PORT 94
|
||||
#define QSE_HTTPD_URSSTD_DEFAULT_TMOUT 10
|
||||
#define QSE_HTTPD_URSSTD_DEFAULT_RESENDS 0
|
||||
|
||||
struct qse_httpd_ursstd_t
|
||||
{
|
||||
qse_nwad_t nwad;
|
||||
qse_ntime_t tmout;
|
||||
qse_uint32_t resends;
|
||||
};
|
||||
typedef struct qse_httpd_ursstd_t qse_httpd_ursstd_t;
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user