From 02e35b776edd80204212ff6e5968b4fa0985ba76 Mon Sep 17 00:00:00 2001 From: Roman Arutyunyan Date: Wed, 11 Apr 2012 20:06:47 +0400 Subject: [PATCH] added memcache client --- ngx_rtmp_netcall_module.c | 43 ++++++++++++++++++++++++++++++++++----- ngx_rtmp_netcall_module.h | 7 +++++++ 2 files changed, 45 insertions(+), 5 deletions(-) diff --git a/ngx_rtmp_netcall_module.c b/ngx_rtmp_netcall_module.c index 3964d44..c5ae5b2 100644 --- a/ngx_rtmp_netcall_module.c +++ b/ngx_rtmp_netcall_module.c @@ -489,11 +489,11 @@ ngx_rtmp_netcall_http_format_session(ngx_rtmp_session_t *s, ngx_pool_t *pool) } b = ngx_create_temp_buf(pool, - sizeof("app=") + s->app.len * 3 + - sizeof("&flashver=") + s->flashver.len * 3 + - sizeof("&swfurl=") + s->swf_url.len * 3 + - sizeof("&tcurl=") + s->tc_url.len * 3 + - sizeof("&pageurl=") + s->page_url.len * 3 + sizeof("app=") - 1 + s->app.len * 3 + + sizeof("&flashver=") - 1 + s->flashver.len * 3 + + sizeof("&swfurl=") - 1 + s->swf_url.len * 3 + + sizeof("&tcurl=") - 1 + s->tc_url.len * 3 + + sizeof("&pageurl=") - 1 + s->page_url.len * 3 ); if (b == NULL) { @@ -576,6 +576,39 @@ ngx_rtmp_netcall_http_skip_header(ngx_chain_t *in) } +ngx_chain_t * +ngx_rtmp_netcall_memcache_set(ngx_rtmp_session_t *s, ngx_pool_t *pool, + ngx_str_t *key, ngx_str_t *value, ngx_uint_t flags, ngx_uint_t sec) +{ + ngx_chain_t *cl; + ngx_buf_t *b; + + cl = ngx_alloc_chain_link(pool); + if (cl == NULL) { + return NULL; + } + + b = ngx_create_temp_buf(pool, + sizeof("set ") - 1 + key->len + + (sizeof(" ") - 1 + NGX_OFF_T_LEN) * 3 + + (sizeof("\r\n") - 1) * 2 + + value->len + ); + + if (b == NULL) { + return NULL; + } + + cl->buf = b; + + b->last = ngx_snprintf(b->pos, b->end - b->start, + "set %V %ui %ui %ui\r\n%V\r\n", + key, flags, sec, (ngx_uint_t)value->len, value); + + return cl; +} + + static ngx_int_t ngx_rtmp_netcall_postconfiguration(ngx_conf_t *cf) { diff --git a/ngx_rtmp_netcall_module.h b/ngx_rtmp_netcall_module.h index c10f8e5..2856659 100644 --- a/ngx_rtmp_netcall_module.h +++ b/ngx_rtmp_netcall_module.h @@ -32,6 +32,7 @@ ngx_int_t ngx_rtmp_netcall_create(ngx_rtmp_session_t *s, extern ngx_str_t ngx_rtmp_netcall_content_type_urlencoded; + /* HTTP handling */ ngx_chain_t * ngx_rtmp_netcall_http_format_session(ngx_rtmp_session_t *s, ngx_pool_t *pool); @@ -40,4 +41,10 @@ ngx_chain_t * ngx_rtmp_netcall_http_format_header(ngx_url_t *url, ngx_chain_t * ngx_rtmp_netcall_http_skip_header(ngx_chain_t *in); +/* Memcache handling */ +ngx_chain_t * ngx_rtmp_netcall_memcache_set(ngx_rtmp_session_t *s, + ngx_pool_t *pool, ngx_str_t *key, ngx_str_t *value, + ngx_uint_t flags, ngx_uint_t sec); + + #endif /* _NGX_RTMP_NETCALL_H_INCLUDED_ */