[package] uhttpd: display errors in init script, code formatting changes, bump packag...
[openwrt.git] / package / uhttpd / src / uhttpd-lua.c
index 83b0b0a26b9cfbced8afb9c5289948362f59fd9d..ea6f26cc9bbf50ed3c0cce4d22cff0041f11e670 100644 (file)
@@ -31,7 +31,7 @@ static int uh_lua_recv(lua_State *L)
 
        length = luaL_checknumber(L, 1);
 
-       if( (length > 0) && (length <= sizeof(buffer)) )
+       if ((length > 0) && (length <= sizeof(buffer)))
        {
                FD_ZERO(&reader);
                FD_SET(fileno(stdin), &reader);
@@ -41,13 +41,13 @@ static int uh_lua_recv(lua_State *L)
                timeout.tv_usec = 100000;
 
                /* check whether fd is readable */
-               if( select(fileno(stdin) + 1, &reader, NULL, NULL, &timeout) > 0 )
+               if (select(fileno(stdin) + 1, &reader, NULL, NULL, &timeout) > 0)
                {
                        /* receive data */
                        rlen = read(fileno(stdin), buffer, length);
                        lua_pushnumber(L, rlen);
 
-                       if( rlen > 0 )
+                       if (rlen > 0)
                        {
                                lua_pushlstring(L, buffer, rlen);
                                return 2;
@@ -75,9 +75,9 @@ static int uh_lua_send_common(lua_State *L, int chunked)
 
        buffer = luaL_checklstring(L, 1, &length);
 
-       if( chunked )
+       if (chunked)
        {
-               if( length > 0 )
+               if (length > 0)
                {
                        snprintf(chunk, sizeof(chunk), "%X\r\n", length);
                        slen =  write(fileno(stdout), chunk, strlen(chunk));
@@ -117,7 +117,7 @@ static int uh_lua_str2str(lua_State *L, int (*xlate_func) (char *, int, const ch
 
        inbuf = luaL_checklstring(L, 1, &inlen);
        outlen = (* xlate_func)(outbuf, sizeof(outbuf), inbuf, inlen);
-       if( outlen < 0 )
+       if (outlen < 0)
                luaL_error( L, "%s on URL-encode codec",
                        (outlen==-1) ? "buffer overflow" : "malformed string" );
 
@@ -177,7 +177,7 @@ lua_State * uh_lua_init(const struct config *conf)
 
 
        /* load Lua handler */
-       switch( luaL_loadfile(L, conf->lua_handler) )
+       switch (luaL_loadfile(L, conf->lua_handler))
        {
                case LUA_ERRSYNTAX:
                        fprintf(stderr,
@@ -196,7 +196,7 @@ lua_State * uh_lua_init(const struct config *conf)
 
                default:
                        /* compile Lua handler */
-                       switch( lua_pcall(L, 0, 0, 0) )
+                       switch (lua_pcall(L, 0, 0, 0))
                        {
                                case LUA_ERRRUN:
                                        err_str = luaL_checkstring(L, -1);
@@ -218,7 +218,7 @@ lua_State * uh_lua_init(const struct config *conf)
                                        /* test handler function */
                                        lua_getglobal(L, UH_LUA_CALLBACK);
 
-                                       if( ! lua_isfunction(L, -1) )
+                                       if (! lua_isfunction(L, -1))
                                        {
                                                fprintf(stderr,
                                                        "Lua handler provides no " UH_LUA_CALLBACK "(), unable to continue\n");
@@ -260,21 +260,21 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
 
 
        /* spawn pipes for me->child, child->me */
-       if( (pipe(rfd) < 0) || (pipe(wfd) < 0) )
+       if ((pipe(rfd) < 0) || (pipe(wfd) < 0))
        {
                uh_http_sendhf(cl, 500, "Internal Server Error",
                        "Failed to create pipe: %s", strerror(errno));
 
-               if( rfd[0] > 0 ) close(rfd[0]);
-               if( rfd[1] > 0 ) close(rfd[1]);
-               if( wfd[0] > 0 ) close(wfd[0]);
-               if( wfd[1] > 0 ) close(wfd[1]);
+               if (rfd[0] > 0) close(rfd[0]);
+               if (rfd[1] > 0) close(rfd[1]);
+               if (wfd[0] > 0) close(wfd[0]);
+               if (wfd[1] > 0) close(wfd[1]);
 
                return;
        }
 
 
-       switch( (child = fork()) )
+       switch ((child = fork()))
        {
                case -1:
                        uh_http_sendhf(cl, 500, "Internal Server Error",
@@ -329,12 +329,12 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                        lua_setfield(L, -2, "SCRIPT_NAME");
 
                        /* query string, path info */
-                       if( (query_string = strchr(req->url, '?')) != NULL )
+                       if ((query_string = strchr(req->url, '?')) != NULL)
                        {
                                lua_pushstring(L, query_string + 1);
                                lua_setfield(L, -2, "QUERY_STRING");
 
-                               if( (int)(query_string - req->url) > strlen(prefix) )
+                               if ((int)(query_string - req->url) > strlen(prefix))
                                {
                                        lua_pushlstring(L,
                                                &req->url[strlen(prefix)],
@@ -344,7 +344,7 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                                        lua_setfield(L, -2, "PATH_INFO");
                                }
                        }
-                       else if( strlen(req->url) > strlen(prefix) )
+                       else if (strlen(req->url) > strlen(prefix))
                        {
                                lua_pushstring(L, &req->url[strlen(prefix)]);
                                lua_setfield(L, -2, "PATH_INFO");
@@ -354,7 +354,7 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                        lua_pushnumber(L, floor(req->version * 10) / 10);
                        lua_setfield(L, -2, "HTTP_VERSION");
 
-                       if( req->version > 1.0 )
+                       if (req->version > 1.0)
                                lua_pushstring(L, "HTTP/1.1");
                        else
                                lua_pushstring(L, "HTTP/1.0");
@@ -378,12 +378,12 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                        /* essential env vars */
                        foreach_header(i, req->headers)
                        {
-                               if( !strcasecmp(req->headers[i], "Content-Length") )
+                               if (!strcasecmp(req->headers[i], "Content-Length"))
                                {
                                        lua_pushnumber(L, atoi(req->headers[i+1]));
                                        lua_setfield(L, -2, "CONTENT_LENGTH");
                                }
-                               else if( !strcasecmp(req->headers[i], "Content-Type") )
+                               else if (!strcasecmp(req->headers[i], "Content-Type"))
                                {
                                        lua_pushstring(L, req->headers[i+1]);
                                        lua_setfield(L, -2, "CONTENT_TYPE");
@@ -407,13 +407,13 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
 
 
                        /* call */
-                       switch( lua_pcall(L, 1, 0, 0) )
+                       switch (lua_pcall(L, 1, 0, 0))
                        {
                                case LUA_ERRMEM:
                                case LUA_ERRRUN:
                                        err_str = luaL_checkstring(L, -1);
 
-                                       if( ! err_str )
+                                       if (! err_str)
                                                err_str = "Unknown error";
 
                                        printf(
@@ -447,11 +447,11 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                        fd_max = max(rfd[0], wfd[1]) + 1;
 
                        /* find content length */
-                       if( req->method == UH_HTTP_MSG_POST )
+                       if (req->method == UH_HTTP_MSG_POST)
                        {
                                foreach_header(i, req->headers)
                                {
-                                       if( ! strcasecmp(req->headers[i], "Content-Length") )
+                                       if (! strcasecmp(req->headers[i], "Content-Length"))
                                        {
                                                content_length = atoi(req->headers[i+1]);
                                                break;
@@ -461,7 +461,7 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
 
 
 #define ensure(x) \
-       do { if( x < 0 ) goto out; } while(0)
+       do { if (x < 0) goto out; } while(0)
 
                        data_sent = 0;
 
@@ -469,7 +469,7 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                        timeout.tv_usec = 0;
 
                        /* I/O loop, watch our pipe ends and dispatch child reads/writes from/to socket */
-                       while( 1 )
+                       while (1)
                        {
                                FD_ZERO(&reader);
                                FD_ZERO(&writer);
@@ -478,21 +478,22 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                                FD_SET(wfd[1], &writer);
 
                                /* wait until we can read or write or both */
-                               if( select_intr(fd_max, &reader,
-                                   (content_length > -1) ? &writer : NULL, NULL,
-                                       (data_sent < 1) ? &timeout : NULL) > 0
-                               ) {
+                               if (select_intr(fd_max, &reader,
+                                                               (content_length > -1) ? &writer : NULL,
+                                                               NULL,
+                                                               (data_sent < 1) ? &timeout : NULL) > 0)
+                               {
                                        /* ready to write to Lua child */
-                                       if( FD_ISSET(wfd[1], &writer) )
+                                       if (FD_ISSET(wfd[1], &writer))
                                        {
                                                /* there is unread post data waiting */
-                                               if( content_length > 0 )
+                                               if (content_length > 0)
                                                {
                                                        /* read it from socket ... */
-                                                       if( (buflen = uh_tcp_recv(cl, buf, min(content_length, sizeof(buf)))) > 0 )
+                                                       if ((buflen = uh_tcp_recv(cl, buf, min(content_length, sizeof(buf)))) > 0)
                                                        {
                                                                /* ... and write it to child's stdin */
-                                                               if( write(wfd[1], buf, buflen) < 0 )
+                                                               if (write(wfd[1], buf, buflen) < 0)
                                                                        perror("write()");
 
                                                                content_length -= buflen;
@@ -501,7 +502,7 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                                                        /* unexpected eof! */
                                                        else
                                                        {
-                                                               if( write(wfd[1], "", 0) < 0 )
+                                                               if (write(wfd[1], "", 0) < 0)
                                                                        perror("write()");
 
                                                                content_length = 0;
@@ -509,7 +510,7 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                                                }
 
                                                /* there is no more post data, close pipe to child's stdin */
-                                               else if( content_length > -1 )
+                                               else if (content_length > -1)
                                                {
                                                        close(wfd[1]);
                                                        content_length = -1;
@@ -517,10 +518,10 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                                        }
 
                                        /* ready to read from Lua child */
-                                       if( FD_ISSET(rfd[0], &reader) )
+                                       if (FD_ISSET(rfd[0], &reader))
                                        {
                                                /* read data from child ... */
-                                               if( (buflen = read(rfd[0], buf, sizeof(buf))) > 0 )
+                                               if ((buflen = read(rfd[0], buf, sizeof(buf))) > 0)
                                                {
                                                        /* pass through buffer to socket */
                                                        ensure(uh_tcp_send(cl, buf, buflen));
@@ -531,7 +532,7 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                                                else
                                                {
                                                        /* error? */
-                                                       if( ! data_sent )
+                                                       if (!data_sent)
                                                                uh_http_sendhf(cl, 500, "Internal Server Error",
                                                                        "The Lua child did not produce any response");
 
@@ -543,7 +544,7 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                                /* timeout exceeded or interrupted by SIGCHLD */
                                else
                                {
-                                       if( (errno != EINTR) && ! data_sent )
+                                       if ((errno != EINTR) && ! data_sent)
                                        {
                                                ensure(uh_http_sendhf(cl, 504, "Gateway Timeout",
                                                        "The Lua script took too long to produce "
@@ -558,7 +559,7 @@ void uh_lua_request(struct client *cl, struct http_request *req, lua_State *L)
                        close(rfd[0]);
                        close(wfd[1]);
 
-                       if( !kill(child, 0) )
+                       if (!kill(child, 0))
                        {
                                kill(child, SIGTERM);
                                waitpid(child, NULL, 0);