[vlc-commits] httpd: simplify MsgAdd

Rafaël Carré git at videolan.org
Thu Feb 20 18:57:06 CET 2014


vlc | branch: master | Rafaël Carré <funman at videolan.org> | Thu Feb 20 18:34:56 2014 +0100| [85724e8f7c66a00154fadf99c737f3722110bae6] | committer: Rafaël Carré

httpd: simplify MsgAdd

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=85724e8f7c66a00154fadf99c737f3722110bae6
---

 src/network/httpd.c |   42 ++++++++++++++++++------------------------
 1 file changed, 18 insertions(+), 24 deletions(-)

diff --git a/src/network/httpd.c b/src/network/httpd.c
index 969b558..0ff81c0 100644
--- a/src/network/httpd.c
+++ b/src/network/httpd.c
@@ -1297,36 +1297,30 @@ const char *httpd_MsgGet( const httpd_message_t *msg, const char *name )
 
 void httpd_MsgAdd( httpd_message_t *msg, const char *name, const char *psz_value, ... )
 {
-    va_list args;
-    char *value = NULL;
+    httpd_header *p_tmp = realloc( msg->p_headers, sizeof(httpd_header) * (msg->i_headers + 1));
+    if (!p_tmp)
+        return;
 
-    va_start( args, psz_value );
-    if( us_vasprintf( &value, psz_value, args ) == -1 )
-        value = NULL;
-    va_end( args );
+    msg->p_headers = p_tmp;
 
-    if( value == NULL )
+    httpd_header *h = &msg->p_headers[msg->i_headers];
+    h->name = strdup(name);
+    if (!h->name)
         return;
 
-    name = strdup( name );
-    if( name == NULL )
-    {
-        free( value );
+    h->value = NULL;
+
+    va_list args;
+    va_start( args, psz_value );
+    int ret = us_vasprintf(&h->value, psz_value, args);
+    va_end( args );
+
+    if (ret == -1 ) {
+        free(h->name);
         return;
     }
-    httpd_header * p_tmp = realloc( msg->p_headers, sizeof(httpd_header) * (msg->i_headers + 1));
-    if(p_tmp)
-    {
-        msg->p_headers = p_tmp;
-        msg->p_headers[msg->i_headers].name = name;
-        msg->p_headers[msg->i_headers].value = value;
-        msg->i_headers++;
-    }
-    else
-    {
-        free(name);
-        free(value);
-    }
+
+    msg->i_headers++;
 }
 
 static void httpd_ClientInit( httpd_client_t *cl, mtime_t now )



More information about the vlc-commits mailing list