[BACK]Return to printenv.lua CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / libexec / httpd

Annotation of src/libexec/httpd/printenv.lua, Revision 1.2.4.2

1.2.4.2 ! yamt        1: -- $NetBSD$
        !             2:
        !             3: -- this small Lua script demonstrates the use of Lua in (bozo)httpd
        !             4: -- it will simply output the "environment"
        !             5:
        !             6: -- Keep in mind that bozohttpd forks for each request when started in
        !             7: -- daemon mode, you can set global veriables here, but they will have
        !             8: -- the same value on each invocation.  You can not keep state between
        !             9: -- two calls.
        !            10:
        !            11: local httpd = require 'httpd'
        !            12:
        !            13: function printenv(env, headers, query)
        !            14:
        !            15:        -- we get the "environment" in the env table, the values are more
        !            16:        -- or less the same as the variable for a CGI program
        !            17:
        !            18:        if count == nil then
        !            19:                count = 1
        !            20:        end
        !            21:
        !            22:        -- output a header
        !            23:        print([[
        !            24:                <html>
        !            25:                        <head>
        !            26:                                <title>Bozotic Lua Environment</title>
        !            27:                        </head>
        !            28:                        <body>
        !            29:                                <h1>Bozotic Lua Environment</h1>
        !            30:        ]])
        !            31:
        !            32:        print('module version: ' .. httpd._VERSION .. '<br>')
        !            33:
        !            34:        print('<h2>Server Environment</h2>')
        !            35:        -- print the list of "environment" variables
        !            36:        for k, v in pairs(env) do
        !            37:                print(k .. '=' .. v .. '<br/>')
        !            38:        end
        !            39:
        !            40:        print('<h2>Request Headers</h2>')
        !            41:        for k, v in pairs(headers) do
        !            42:                print(k .. '=' .. v .. '<br/>')
        !            43:        end
        !            44:
        !            45:        if query ~= nil then
        !            46:                print('<h2>Query Variables</h2>')
        !            47:                for k, v in pairs(query) do
        !            48:                        print(k .. '=' .. v .. '<br/>')
        !            49:                end
        !            50:        end
        !            51:
        !            52:        print('<h2>Form Test</h2>')
        !            53:
        !            54:        print([[
        !            55:        <form method="POST" action="/rest/form?sender=me">
        !            56:        <input type="text" name="a_value">
        !            57:        <input type="submit">
        !            58:        </form>
        !            59:        ]])
        !            60:        -- output a footer
        !            61:        print([[
        !            62:                </body>
        !            63:        </html>
        !            64:        ]])
        !            65: end
        !            66:
        !            67: function form(env, header, query)
        !            68:        if query ~= nil then
        !            69:                print('<h2>Form Variables</h2>')
        !            70:
        !            71:                if env.CONTENT_TYPE ~= nil then
        !            72:                        print('Content-type: ' .. env.CONTENT_TYPE .. '<br>')
        !            73:                end
        !            74:
        !            75:                for k, v in pairs(query) do
        !            76:                        print(k .. '=' .. v .. '<br/>')
        !            77:                end
        !            78:        else
        !            79:                print('No values')
        !            80:        end
        !            81: end
        !            82:
        !            83: -- register this handler for http://<hostname>/<prefix>/printenv
        !            84: httpd.register_handler('printenv', printenv)
        !            85: httpd.register_handler('form', form)

CVSweb <webmaster@jp.NetBSD.org>