Various fixes and improvements.

This commit is contained in:
C. Guy Yarvin 2013-10-26 20:55:53 -07:00
parent fa2bccf255
commit 25b7ed9a9c
4 changed files with 26 additions and 2 deletions

View File

@ -965,6 +965,7 @@
# define c3__then c3_s4('t','h','e','n')
# define c3__tick c3_s4('t','i','c','k')
# define c3__thou c3_s4('t','h','o','u')
# define c3__thus c3_s4('t','h','u','s')
# define c3__tip c3_s3('t','i','p')
# define c3__tmbn c3_s4('t','m','b','n')
# define c3__tmdg c3_s4('t','m','d','g')

View File

@ -105,6 +105,7 @@
/* u2_creq: outgoing http request.
*/
typedef struct _u2_creq { // client request
c3_l num_l; // connection number
c3_c* url_c; // url
u2_hmet met_e; // method
u2_hhed* hed_u; // headers
@ -131,7 +132,7 @@
typedef struct _u2_ccon { // client connection
uv_tcp_t wax_u; // i/o handler state
uv_connect_t cot_u; // connection handler state
c3_w las_w; // last active
c3_w las_w; // last active (Unix time)
c3_w coq_l; // connection number
c3_c* hos_c; // hostname
u2_bean sec; // yes == https
@ -403,6 +404,7 @@
c3_d now_d; // event tick
uv_loop_t* lup_u; // libuv event loop
u2_http* htp_u; // http servers
u2_cttp* ctp_u; // http connections
u2_utty* uty_u; // all terminals
u2_utty* tem_u; // main terminal (1)
u2_ulog lug_u; // event log
@ -915,6 +917,12 @@
c3_l seq_l,
u2_noun rep);
/* u2_http_ef_thus(): send %thus effect to http.
*/
void
u2_http_ef_thus(c3_l num_l,
u2_noun req);
/* u2_http_ef_bake(): create new http server.
*/
void

View File

@ -882,6 +882,15 @@ u2_http_ef_bake(void)
u2_reck_plan(u2A, pax, u2nc(c3__born, u2_nul));
}
/* u2_http_ef_thus(): send %thus effect to http.
*/
void
u2_http_ef_thus(c3_l num_l,
u2_noun req)
{
}
/* u2_http_ef_thou(): send %thou effect to http.
*/
void

View File

@ -562,14 +562,20 @@ _reck_kick_http(u2_reck* rec_u,
c3_l seq_l,
u2_noun fav)
{
u2_noun p_fav;
u2_noun p_fav, q_fav;
if ( u2_no == u2du(fav) ) {
u2z(pox); u2z(fav); return u2_no;
}
else switch ( u2h(fav) ) {
default: u2z(pox); u2z(fav); return u2_no;
case c3__thus: p_fav = u2h(u2t(fav)); q_fav = u2t(u2t(fav));
{
u2_http_ef_thus(p_fav, q_fav);
return u2_yes;
}
case c3__thou: p_fav = u2t(fav);
{
u2_http_ef_thou(coq_l, seq_l, u2k(p_fav));