fixed compilation errors; first build

This commit is contained in:
Roman Arutyunyan 2012-03-08 21:45:10 +04:00
parent eb6a14fb6c
commit 93b4582afb
6 changed files with 124 additions and 115 deletions

View file

@ -17,6 +17,8 @@
#define NGX_RTMP_DEFAULT_CHUNK_SIZE 128
#define NGX_LOG_DEBUG_RTMP NGX_LOG_DEBUG_CORE
typedef struct {
void **main_conf;
@ -119,7 +121,7 @@ typedef struct {
#define NGX_RTMP_SUBSCRIBER 0x02
typedef struct {
struct ngx_rtmp_session_s {
uint32_t signature; /* "RTMP" */
ngx_connection_t *connection;
@ -128,6 +130,8 @@ typedef struct {
void **main_conf;
void **srv_conf;
ngx_str_t *addr_text;
ngx_uint_t chunk_size;
ngx_chain_t *free;
@ -148,10 +152,13 @@ typedef struct {
ngx_rtmp_packet_hdr_t out_hdr;
/* broadcast */
ngx_str_t *name;
ngx_rtmp_session_t *next;
ngx_str_t name;
struct ngx_rtmp_session_s
*next;
ngx_uint_t flags;
} ngx_rtmp_session_t;
};
typedef struct ngx_rtmp_session_s ngx_rtmp_session_t;
#define NGX_RTMP_SESSION_HASH_SIZE 16384
@ -235,13 +242,11 @@ typedef struct {
void ngx_rtmp_init_connection(ngx_connection_t *c);
void ngx_rtmp_close_session(ngx_rtmp_session_t *s);
u_char * ngx_rtmp_log_error(ngx_log_t *log, u_char *buf, size_t len);
void ngx_rtmp_send(ngx_event_t *wev);
void ngx_rtmp_recv(ngx_event_t *wev);
void ngx_rtmp_set_chunk_size(ngx_rtmp_session_t *s, uint32_t chunk_size);
void ngx_rtmp_set_bytes_read(ngx_rtmp_session_t *s, uint32_t bytes_read);
void ngx_rtmp_set_client_buffer_time(ngx_rtmp_session_t *s, int16_t msec);
void ngx_rtmp_clear_buffer(ngx_rtmp_sesion_t *s);
void ngx_rtmp_clear_buffer(ngx_rtmp_session_t *s);
void ngx_rtmp_set_ping_time(ngx_rtmp_session_t *s, int16_t msec);
void ngx_rtmp_set_server_bw(ngx_rtmp_session_t *s, uint32_t bw,
uint8_t limit_type);
@ -260,6 +265,7 @@ void ngx_rtmp_send_packet(ngx_rtmp_session_t *s,
/* NetConnection methods */
ngx_int_t ngx_rtmp_connect(ngx_rtmp_session_t *s, ngx_chain_t **l);
ngx_int_t ngx_rtmp_call(ngx_rtmp_session_t *s, ngx_chain_t **l);
ngx_int_t ngx_rtmp_close(ngx_rtmp_session_t *s, ngx_chain_t **l);
ngx_int_t ngx_rtmp_createstream(ngx_rtmp_session_t *s, ngx_chain_t **l);

View file

@ -8,12 +8,13 @@
static ngx_int_t
ngx_rtmp_amf0_get(ngx_chain_t **l, void *p, size_t n)
{
ngx_buf_t *b;
ngx_buf_t *b;
size_t size;
if (!n)
return;
return NGX_OK;
for(; *l; l = &l->next) {
for(; *l; l = &(*l)->next) {
b = (*l)->buf;
@ -24,8 +25,10 @@ ngx_rtmp_amf0_get(ngx_chain_t **l, void *p, size_t n)
return NGX_OK;
}
size = b->last - b->pos;
if (p)
p = ngx_cpymem(p, b->pos, b->last - b->pos);
p = ngx_cpymem(p, b->pos, size);
n -= size;
}
@ -37,7 +40,8 @@ ngx_rtmp_amf0_get(ngx_chain_t **l, void *p, size_t n)
static ngx_int_t
ngx_rtmp_amf0_put(ngx_chain_t **l, ngx_chain_t **free, void *p, size_t n)
{
ngx_buf_t *b;
ngx_buf_t *b;
size_t size;
while(n) {
b = (*l) ? (*l)->buf : NULL;
@ -59,20 +63,24 @@ ngx_rtmp_amf0_put(ngx_chain_t **l, ngx_chain_t **free, void *p, size_t n)
b->pos = b->last = b->start;
}
if (b->end - b->last <= n) {
size = b->end - b->last;
if (size <= n) {
b->last = ngx_cpymem(b->last, p, n);
return NGX_OK;
}
b->last = ngx_cpymem(b->last, p, b->end - b->last);
p += (b->end - b->last);
n -= (b->end - b->last);
b->last = ngx_cpymem(b->last, p, size);
p = (u_char*)p + size;
n -= size;
}
return NGX_OK;
}
static ngx_int_t
ngx_rtmp_amf0_read_object(ngx_chain_t **l, ngx_rtmp_amf0_objelt_t *elts,
ngx_rtmp_amf0_read_object(ngx_chain_t **l, ngx_rtmp_amf0_elt_t *elts,
size_t nelts)
{
uint8_t type;
@ -81,8 +89,8 @@ ngx_rtmp_amf0_read_object(ngx_chain_t **l, ngx_rtmp_amf0_objelt_t *elts,
ngx_int_t rc;
maxlen = 0;
for(i = 0; i < n; ++i) {
namelen = strlen(v[n].name);
for(n = 0; n < nelts; ++n) {
namelen = strlen(elts[n].name);
if (namelen > maxlen)
maxlen = namelen;
}
@ -117,11 +125,11 @@ ngx_rtmp_amf0_read_object(ngx_chain_t **l, ngx_rtmp_amf0_objelt_t *elts,
* then we could be able to use binary search */
for(n = 0; n < nelts && strcmp(name, elts[n].name); ++n);
if (ngx_rtmp_amf0_read(s, n < nelts ? &elts[n] : NULL, 1) != NGX_OK)
if (ngx_rtmp_amf0_read(l, n < nelts ? &elts[n] : NULL, 1) != NGX_OK)
return NGX_ERROR;
}
if (ngx_rtmp_amf0_get(l, type, 1) != NGX_OK
if (ngx_rtmp_amf0_get(l, &type, 1) != NGX_OK
|| type != NGX_RTMP_AMF0_END)
{
return NGX_ERROR;
@ -130,14 +138,14 @@ ngx_rtmp_amf0_read_object(ngx_chain_t **l, ngx_rtmp_amf0_objelt_t *elts,
return NGX_OK;
}
#define NGX_RTMP_AMF0_TILL_END_FLAG (size_t(1) << (sizeof(size_t) * 8 - 1))
#define NGX_RTMP_AMF0_TILL_END_FLAG ((size_t)1 << (sizeof(size_t) * 8 - 1))
ngx_int_t
ngx_rtmp_amf0_read(ngx_chain_t **l, ngx_rtmp_amf0_elt_t *elts, size_t nelts)
{
void *data;
uint8_t type;
size_t n, clen;
size_t n;
uint16_t len;
ngx_int_t rc;
int till_end;
@ -176,16 +184,16 @@ ngx_rtmp_amf0_read(ngx_chain_t **l, ngx_rtmp_amf0_elt_t *elts, size_t nelts)
if (data == NULL) {
rc = ngx_rtmp_amf0_get(l, data, len);
} else if (elts->len <= len)
} else if (elts->len <= len) {
rc = ngx_rtmp_amf0_get(l, data, elts->len - 1);
if (rc != NGX_OK)
return NGX_ERROR;
data[elts->len - 1] = 0;
((char*)data)[elts->len - 1] = 0;
rc = ngx_rtmp_amf0_get(l, NULL, len - elts->len + 1);
} else {
rc = ngx_rtmp_amf0_get(l, data, len);
data[len] = 0;
((char*)data)[len] = 0;
}
if (rc != NGX_OK)
@ -264,7 +272,6 @@ ngx_rtmp_amf0_write(ngx_chain_t **l, ngx_chain_t **free,
ngx_rtmp_amf0_elt_t *elts, size_t nelts)
{
size_t n;
ngx_int_t rc;
uint8_t type;
void *data;
uint16_t len;

View file

@ -15,6 +15,9 @@
#define NGX_RTMP_AMF0_ARRAY 0x08
#define NGX_RTMP_AMF0_END 0x09
#include <ngx_config.h>
#include <ngx_core.h>
typedef struct {
ngx_int_t type;
char *name;

View file

@ -18,8 +18,6 @@ static char *ngx_rtmp_core_server(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_rtmp_core_listen(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_rtmp_core_protocol(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
static char *ngx_rtmp_core_resolver(ngx_conf_t *cf, ngx_command_t *cmd,
void *conf);
@ -156,13 +154,10 @@ ngx_rtmp_core_create_srv_conf(ngx_conf_t *cf)
cscf->timeout = NGX_CONF_UNSET_MSEC;
cscf->resolver_timeout = NGX_CONF_UNSET_MSEC;
cscf->so_keepalive = NGX_CONF_UNSET;
cssf->buffers = NGX_CONF_UNSET;
cscf->buffers = NGX_CONF_UNSET;
cscf->resolver = NGX_CONF_UNSET_PTR;
cscf->file_name = cf->conf_file->file.name.data;
cscf->line = cf->conf_file->line;
return cscf;
}
@ -265,8 +260,6 @@ ngx_rtmp_core_server(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
static char *
ngx_rtmp_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{
ngx_rtmp_core_srv_conf_t *cscf = conf;
size_t len, off;
in_port_t port;
ngx_str_t *value;
@ -361,17 +354,6 @@ ngx_rtmp_core_listen(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
}
module = ngx_modules[m]->ctx;
if (module->protocol == NULL) {
continue;
}
for (i = 0; module->protocol->port[i]; i++) {
if (module->protocol->port[i] == u.port) {
cscf->protocol = module->protocol;
break;
}
}
}
for (i = 2; i < cf->args->nelts; i++) {

View file

@ -136,8 +136,8 @@ ngx_rtmp_init_connection(ngx_connection_t *c)
c->data = s;
s->connection = c;
ngx_log_error(NGX_LOG_INFO, c->log, 0, "*%ui client %V connected to %V",
c->number, &c->addr_text, s->addr_text);
ngx_log_error(NGX_LOG_INFO, c->log, 0, "*%ui client connected",
c->number, &c->addr_text);
ctx = ngx_palloc(c->pool, sizeof(ngx_rtmp_log_ctx_t));
if (ctx == NULL) {
@ -174,7 +174,7 @@ ngx_rtmp_init_session(ngx_connection_t *c)
s->ctx = ngx_pcalloc(c->pool, sizeof(void *) * ngx_rtmp_max_module);
if (s->ctx == NULL) {
ngx_rtmp_session_internal_server_error(s);
ngx_rtmp_close_session(s);
return;
}
@ -223,7 +223,7 @@ ngx_rtmp_handshake_recv(ngx_event_t *rev)
ngx_del_timer(rev);
}
b = s->buf;
b = &s->buf;
while(b->last != b->end) {
@ -231,7 +231,7 @@ ngx_rtmp_handshake_recv(ngx_event_t *rev)
if (n == NGX_ERROR || n == 0) {
ngx_rtmp_close_session(s);
return NGX_ERROR;
return;
}
ngx_log_debug2(NGX_LOG_DEBUG_RTMP, c->log, 0,
@ -244,7 +244,7 @@ ngx_rtmp_handshake_recv(ngx_event_t *rev)
{
ngx_log_error(NGX_LOG_INFO, c->log, NGX_ERROR,
"invalid handshake signature");
ngx_rtmp_session_internal_server_error(s);
ngx_rtmp_close_session(s);
return;
}
b->last += n;
@ -255,7 +255,7 @@ ngx_rtmp_handshake_recv(ngx_event_t *rev)
ngx_add_timer(rev, cscf->timeout);
if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
ngx_rtmp_session_internal_server_error(s);
ngx_rtmp_close_session(s);
}
return;
@ -265,14 +265,13 @@ ngx_rtmp_handshake_recv(ngx_event_t *rev)
ngx_del_event(c->read, NGX_READ_EVENT, 0);
if (s->hs_stage++ == 0) {
ngx_rtmp_handshake_send(c->wev);
ngx_rtmp_handshake_send(c->write);
return;
}
/* handshake done */
ngx_pfree(c->pool, s->buf->start);
s->buf = NULL;
ngx_pfree(c->pool, s->buf.start);
c->read->handler = ngx_rtmp_recv;
c->write->handler = ngx_rtmp_send;
@ -305,7 +304,7 @@ ngx_rtmp_handshake_send(ngx_event_t *wev)
ngx_del_timer(wev);
}
b = s->buf;
b = &s->buf;
restart:
while(b->pos != b->last) {
@ -359,6 +358,7 @@ ngx_rtmp_recv(ngx_event_t *rev)
u_char h, *p;
ngx_chain_t *lin;
c = rev->data;
s = c->data;
cscf = ngx_rtmp_get_module_srv_conf(s, ngx_rtmp_core_module);
@ -373,24 +373,27 @@ ngx_rtmp_recv(ngx_event_t *rev)
s->free = s->free->next;
s->in->next = NULL;
b = s->in->buf;
b->pos = b->last = b->begin;
b->pos = b->last = b->start;
}
for(;;) {
/* find the last buf buf */
for(lin = s->in; lin->next; lin = lin->next);
b = lin->buf;
if (b->last >= b->end)
break;
if (b->last == b->end) {
ngx_rtmp_close_session(s);
return;
}
/* receive data from client */
n = c->recv(c, b->last, b->end - b->last);
if (n == NGX_ERROR || n == 0) {
ngx_rtmp_close_session(s);
return NGX_ERROR;
return;
}
ngx_log_debug2(NGX_LOG_DEBUG_RTMP, c->log, 0,
@ -399,7 +402,7 @@ ngx_rtmp_recv(ngx_event_t *rev)
if (n == NGX_AGAIN) {
if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
ngx_rtmp_session_internal_server_error(s);
ngx_rtmp_close_session(s);
}
return;
}
@ -418,17 +421,17 @@ ngx_rtmp_recv(ngx_event_t *rev)
/* basic header */
do {
p = b->start + 1;
if (s->in_hdr.hsize < 4)
break;
/* TODO: check endians here */
p = b->start + 1;
/*
if (s->in_hdr.channel == 1) {
p += 2;
*/
}
}*/
s->in_hdr.timer = 0;
ngx_memcpy(&s->in_hdr.timer, p, 3);
@ -453,10 +456,10 @@ ngx_rtmp_recv(ngx_event_t *rev)
} while(0);
if (b->last - p < ngx_min(s->in_hdr.size, s->chunk_size))
if (b->last - p < (ngx_int_t)ngx_min(s->in_hdr.size, s->chunk_size))
continue;
b->pos = b;
b->pos = p;
if (s->in_hdr.size > s->chunk_size) {
@ -473,6 +476,8 @@ ngx_rtmp_recv(ngx_event_t *rev)
lin = lin->next;
lin->next = NULL;
s->in_hdr.size -= s->chunk_size;
bb = lin->buf;
bb->pos = bb->last = bb->start;
continue;
}
@ -484,11 +489,11 @@ ngx_rtmp_recv(ngx_event_t *rev)
}
bb = s->in->buf;
bb->pos = bb->last = bb->begin;
bb->pos = bb->last = bb->start;
/* copy remained data to first buffer */
if (s->in_hdr.size < b->last - b->pos) {
bb->last = ngx_movemem(bb->begin,
bb->last = ngx_movemem(bb->start,
b->pos + s->in_hdr.size,
b->last - b->pos - s->in_hdr.size);
}
@ -510,8 +515,7 @@ ngx_rtmp_send(ngx_event_t *wev)
ngx_connection_t *c;
ngx_rtmp_session_t *s;
ngx_rtmp_core_srv_conf_t *cscf;
ngx_buf_t *b;
ngc_chain_t *l, *ll;
ngx_chain_t *l, *ll;
c = wev->data;
s = c->data;
@ -532,15 +536,15 @@ ngx_rtmp_send(ngx_event_t *wev)
l = c->send_chain(c, s->out, 0);
if (n == NGX_CHAIN_ERROR) {
if (l == NGX_CHAIN_ERROR) {
ngx_rtmp_close_session(s);
return;
}
n = 0;
if (l != c->out) {
for(ll = c->out; ll->next && ll->next != l; ll = ll->next);
if (l != s->out) {
for(ll = s->out; ll->next && ll->next != l; ll = ll->next);
ll->next = s->free;
s->out = l;
}
@ -567,7 +571,7 @@ ngx_rtmp_send(ngx_event_t *wev)
}
void ngx_rtmp_session_t**
ngx_rtmp_session_t**
ngx_rtmp_get_session_head(ngx_rtmp_session_t *s)
{
ngx_rtmp_core_srv_conf_t *cscf;
@ -575,7 +579,7 @@ ngx_rtmp_get_session_head(ngx_rtmp_session_t *s)
cscf = ngx_rtmp_get_module_srv_conf(s, ngx_rtmp_core_module);
return &cscf->sessions[
ngx_hash_key(s->name->data, s->name->len)
ngx_hash_key(s->name.data, s->name.len)
% NGX_RTMP_SESSION_HASH_SIZE];
}
@ -583,7 +587,10 @@ ngx_rtmp_get_session_head(ngx_rtmp_session_t *s)
void
ngx_rtmp_join(ngx_rtmp_session_t *s, ngx_str_t *name, ngx_uint_t flags)
{
ngx_rtmp_session_t **ps;
ngx_rtmp_session_t **ps;
ngx_connection_t *c;
c = s->connection;
if (s->name.len) {
ngx_log_debug0(NGX_LOG_DEBUG_RTMP, c->log, 0,
@ -591,12 +598,12 @@ ngx_rtmp_join(ngx_rtmp_session_t *s, ngx_str_t *name, ngx_uint_t flags)
return;
}
ngx_log_debug1(NGX_LOG_DEBUG_RTMP, c->log, 0,
ngx_log_debug2(NGX_LOG_DEBUG_RTMP, c->log, 0,
"join name='%V' fd=%d",
&name, c->fd);
s->name = name;
ps = ngx_rtmp_get_session_head(s):
s->name = *name;
ps = ngx_rtmp_get_session_head(s);
s->next = *ps;
s->flags = flags;
*ps = s;
@ -606,18 +613,21 @@ ngx_rtmp_join(ngx_rtmp_session_t *s, ngx_str_t *name, ngx_uint_t flags)
void
ngx_rtmp_leave(ngx_rtmp_session_t *s)
{
ngx_rtmp_session_t **ps;
ngx_rtmp_session_t **ps;
ngx_connection_t *c;
c = s->connection;
if (!s->name.len)
return;
ngx_log_debug1(NGX_LOG_DEBUG_RTMP, c->log, 0,
ngx_log_debug2(NGX_LOG_DEBUG_RTMP, c->log, 0,
"leave name='%V' fd=%d",
&s->name, c->fd);
ps = ngx_rtmp_get_session_head(s);
ngx_str_null(&s->name):
ngx_str_null(&s->name);
for(; *ps; ps = &(*ps)->next) {
if (*ps == s) {
@ -632,11 +642,11 @@ void
ngx_rtmp_send_packet(ngx_rtmp_session_t *s, ngx_rtmp_packet_hdr_t *h,
ngx_chain_t *l)
{
ngx_rtmp_packet_hdr_t *lh;
size_t hsel, size;
ngx_chain_t *ll, **pl;
ngx_buf_t *b, *bb;
u_char *p, *pp;
ngx_rtmp_packet_hdr_t *lh;
size_t hsel, hsize, size;
ngx_chain_t *ll, **pl;
ngx_buf_t *b, *bb;
u_char *p, *pp;
if (l == NULL)
return;
@ -704,7 +714,7 @@ ngx_rtmp_send_packet(ngx_rtmp_session_t *s, ngx_rtmp_packet_hdr_t *h,
pp = bb->pos;
*pp++ = (((u8)hsel & 0x03) << 6) | (h->channel & 0x3f);
*pp++ = (((uint8_t)hsel & 0x03) << 6) | (h->channel & 0x3f);
if (hsize == 1)
continue;
@ -727,7 +737,7 @@ ngx_rtmp_send_packet(ngx_rtmp_session_t *s, ngx_rtmp_packet_hdr_t *h,
}
ngx_int_t ngx_rtmp_receive_packet(ngx_rtmp_session *s,
ngx_int_t ngx_rtmp_receive_packet(ngx_rtmp_session_t *s,
ngx_rtmp_packet_hdr_t *h, ngx_chain_t *l)
{
ngx_rtmp_core_srv_conf_t *cscf;
@ -738,11 +748,11 @@ ngx_int_t ngx_rtmp_receive_packet(ngx_rtmp_session *s,
uint16_t *v2;
uint16_t *v3;
} ping;
ngx_session_t *ss;
ngx_rtmp_session_t *ss;
static char invoke_name[64];
static ngx_rtmp_amf0_elt *invoke_name_elt = {
static ngx_rtmp_amf0_elt_t invoke_name_elt = {
NGX_RTMP_AMF0_STRING,
0,
NULL,
invoke_name,
sizeof(invoke_name)
};
@ -756,17 +766,17 @@ ngx_int_t ngx_rtmp_receive_packet(ngx_rtmp_session *s,
#ifdef NGX_DEBUG
{
int nch;
ngx_chain_t ch;
ngx_chain_t *ch;
for(nch = 1, ch = l; ch->next; ch = ch->next, ++nch);
ngx_log_debug1(NGX_LOG_DEBUG_RTMP, c->log, 0,
ngx_log_debug8(NGX_LOG_DEBUG_RTMP, c->log, 0,
"RTMP packet received type=%d channel=%d hsize=%d "
"size=%d timer=%D stream=%D nbufs=%d fd=%d",
int(h->type),
int(h->channel),
int(h->hsize),
int(h->size),
(int)h->type,
(int)h->channel,
(int)h->hsize,
(int)h->size,
h->timer,
h->stream,
nch,
@ -783,13 +793,13 @@ ngx_int_t ngx_rtmp_receive_packet(ngx_rtmp_session *s,
case NGX_RTMP_PACKET_CHUNK_SIZE:
if (b->last - b->pos < 4)
return NGX_ERROR;
ngx_rtmp_set_chunk_size(s, *(uint32_t*)(b->pos));
/*ngx_rtmp_set_chunk_size(s, *(uint32_t*)(b->pos));*/
break;
case NGX_RTMP_PACKET_BYTES_READ:
if (b->last - b->pos < 4)
return NGX_ERROR;
ngx_rtmp_set_bytes_read(s, *(uint32_t*)(b->pos));
/*ngx_rtmp_set_bytes_read(s, *(uint32_t*)(b->pos));*/
break;
case NGX_RTMP_PACKET_PING:
@ -834,20 +844,20 @@ ngx_int_t ngx_rtmp_receive_packet(ngx_rtmp_session *s,
if (b->last - b->pos < 4)
return NGX_ERROR;
ngx_rtmp_set_server_bw(s, *(uint32_t*)b->pos,
/*ngx_rtmp_set_server_bw(s, *(uint32_t*)b->pos,
b->last - b->pos >= 5
? *(uint8_t*)(b->pos + 4)
: 0);
: 0);*/
break;
case NGX_RTMP_PACKET_CLIENT_BW:
if (b->last - b->pos < 4)
return NGX_ERROR;
ngx_rtmp_set_client_bw(s, *(uint32_t*)b->pos,
/*ngx_rtmp_set_client_bw(s, *(uint32_t*)b->pos,
b->last - b->pos >= 5
? *(uint8_t*)(b->pos + 4)
: 0);
: 0);*/
break;
case NGX_RTMP_PACKET_AUDIO:
@ -896,7 +906,6 @@ ngx_int_t ngx_rtmp_receive_packet(ngx_rtmp_session *s,
memset(invoke_name, 0, sizeof(invoke_name));
if (ngx_rtmp_amf0_read(&l, &invoke_name_elt, 1) != NGX_OK) {
{
return NGX_ERROR;
}
@ -906,7 +915,7 @@ ngx_int_t ngx_rtmp_receive_packet(ngx_rtmp_session *s,
#define INVOKE_CALL(name) \
if (!strncasecmp(invoke_name, #name)) { \
if (!strcasecmp(invoke_name, #name)) { \
return ngx_rtmp_##name(s, &l); \
}
@ -937,13 +946,13 @@ ngx_int_t ngx_rtmp_receive_packet(ngx_rtmp_session *s,
/* no support for flex */
ngx_log_debug2(NGX_LOG_DEBUG_RTMP, c->log, 0,
"flex packets are not supported type=%d fd=%d",
int(h->type), c->fd);
(int)h->type, c->fd);
break;
default:
ngx_log_debug2(NGX_LOG_DEBUG_RTMP, c->log, 0,
"unsupported packet type type=%d fd=%d",
int(h->type), c->fd);
(int)h->type, c->fd);
}
return NGX_OK;
@ -953,11 +962,6 @@ ngx_int_t ngx_rtmp_receive_packet(ngx_rtmp_session *s,
void
ngx_rtmp_close_session(ngx_rtmp_session_t *s)
{
ngx_pool_t *pool;
ngx_connection_t *c;
ngx_rtmp_session_t *ps;
ngx_rtmp_broadcast_t *bc;
ngx_rtmp_leave(s);
ngx_rtmp_close_connection(s->connection);
@ -967,6 +971,7 @@ ngx_rtmp_close_session(ngx_rtmp_session_t *s)
void
ngx_rtmp_close_connection(ngx_connection_t *c)
{
ngx_pool_t *pool;
ngx_log_debug1(NGX_LOG_DEBUG_RTMP, c->log, 0,
"close connection: %d", c->fd);

View file

@ -10,6 +10,12 @@ ngx_rtmp_connect(ngx_rtmp_session_t *s, ngx_chain_t **l)
return NGX_OK;
}
ngx_int_t
ngx_rtmp_call(ngx_rtmp_session_t *s, ngx_chain_t **l)
{
return NGX_OK;
}
ngx_int_t
ngx_rtmp_close(ngx_rtmp_session_t *s, ngx_chain_t **l)
{