ffserver: reflow handle_connection()
authorReynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Sat, 24 Jan 2015 04:35:39 +0000 (01:35 -0300)
committerReynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
Sat, 24 Jan 2015 05:19:08 +0000 (02:19 -0300)
Signed-off-by: Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
ffserver.c

index 578e560..06bcb2d 100644 (file)
@@ -870,6 +870,7 @@ static void close_connection(HTTPContext *c)
 static int handle_connection(HTTPContext *c)
 {
     int len, ret;
+    uint8_t *ptr;
 
     switch(c->state) {
     case HTTPSTATE_WAIT_REQUEST:
@@ -885,16 +886,16 @@ static int handle_connection(HTTPContext *c)
             return 0;
         /* read the data */
     read_loop:
-        len = recv(c->fd, c->buffer_ptr, 1, 0);
+        if (!(len = recv(c->fd, c->buffer_ptr, 1, 0)))
+            return -1;
+
         if (len < 0) {
             if (ff_neterrno() != AVERROR(EAGAIN) &&
                 ff_neterrno() != AVERROR(EINTR))
                 return -1;
-        } else if (len == 0) {
-            return -1;
-        } else {
+            break;
+        }
             /* search for end of request. */
-            uint8_t *ptr;
             c->buffer_ptr += len;
             ptr = c->buffer_ptr;
             if ((ptr >= c->buffer + 2 && !memcmp(ptr-2, "\n\n", 2)) ||
@@ -911,7 +912,7 @@ static int handle_connection(HTTPContext *c)
                 /* request too long: cannot do anything */
                 return -1;
             } else goto read_loop;
-        }
+
         break;
 
     case HTTPSTATE_SEND_HEADER:
@@ -927,7 +928,8 @@ static int handle_connection(HTTPContext *c)
                 ff_neterrno() != AVERROR(EINTR)) {
                 goto close_connection;
             }
-        } else {
+            break;
+        }
             c->buffer_ptr += len;
             if (c->stream)
                 c->stream->bytes_served += len;
@@ -942,7 +944,6 @@ static int handle_connection(HTTPContext *c)
                 c->state = HTTPSTATE_SEND_DATA_HEADER;
                 c->buffer_ptr = c->buffer_end = c->buffer;
             }
-        }
         break;
 
     case HTTPSTATE_SEND_DATA:
@@ -994,7 +995,8 @@ static int handle_connection(HTTPContext *c)
                 ff_neterrno() != AVERROR(EINTR)) {
                 goto close_connection;
             }
-        } else {
+            break;
+        }
             c->buffer_ptr += len;
             c->data_count += len;
             if (c->buffer_ptr >= c->buffer_end) {
@@ -1002,7 +1004,6 @@ static int handle_connection(HTTPContext *c)
                 av_freep(&c->pb_buffer);
                 start_wait_request(c, 1);
             }
-        }
         break;
     case RTSPSTATE_SEND_PACKET:
         if (c->poll_entry->revents & (POLLERR | POLLHUP)) {
@@ -1021,14 +1022,14 @@ static int handle_connection(HTTPContext *c)
                 av_freep(&c->packet_buffer);
                 return -1;
             }
-        } else {
+            break;
+        }
             c->packet_buffer_ptr += len;
             if (c->packet_buffer_ptr >= c->packet_buffer_end) {
                 /* all the buffer was sent : wait for a new request */
                 av_freep(&c->packet_buffer);
                 c->state = RTSPSTATE_WAIT_REQUEST;
             }
-        }
         break;
     case HTTPSTATE_READY:
         /* nothing to do */