Browse Source

ffserver: factor out connection closing from handler

Signed-off-by: Reynaldo H. Verdejo Pinochet <r.verdejo@sisa.samsung.com>
tags/n2.2-rc1
Reynaldo H. Verdejo Pinochet 12 years ago
parent
commit
ba6186d6eb
1 changed files with 8 additions and 10 deletions
  1. +8
    -10
      ffserver.c

+ 8
- 10
ffserver.c View File

@@ -1003,9 +1003,7 @@ static int handle_connection(HTTPContext *c)
if (len < 0) {
if (ff_neterrno() != AVERROR(EAGAIN) &&
ff_neterrno() != AVERROR(EINTR)) {
/* error : close connection */
av_freep(&c->pb_buffer);
return -1;
goto close_connection;
}
} else {
c->buffer_ptr += len;
@@ -1063,10 +1061,8 @@ static int handle_connection(HTTPContext *c)
break;

case RTSPSTATE_SEND_REPLY:
if (c->poll_entry->revents & (POLLERR | POLLHUP)) {
av_freep(&c->pb_buffer);
return -1;
}
if (c->poll_entry->revents & (POLLERR | POLLHUP))
goto close_connection;
/* no need to write if no events */
if (!(c->poll_entry->revents & POLLOUT))
return 0;
@@ -1074,9 +1070,7 @@ static int handle_connection(HTTPContext *c)
if (len < 0) {
if (ff_neterrno() != AVERROR(EAGAIN) &&
ff_neterrno() != AVERROR(EINTR)) {
/* error : close connection */
av_freep(&c->pb_buffer);
return -1;
goto close_connection;
}
} else {
c->buffer_ptr += len;
@@ -1121,6 +1115,10 @@ static int handle_connection(HTTPContext *c)
return -1;
}
return 0;

close_connection:
av_freep(&c->pb_buffer);
return -1;
}

static int extract_rates(char *rates, int ratelen, const char *request)


Loading…
Cancel
Save