> Thank you very much. I think the cgi module is lower effecient. I found
> fcgi(http://www.dsource.org/projects/fastcgi4d) and
> mango(http://www.dsource.org/projects/mango) which support servlet. But they 
> don't
> support D2, anyone else can merge them to D2?
> 
> zsxxsz

I've some D2 code working with fastcgi. It accepts some web request,
makes live a screenshot of my environment, converts it to png, and sends
it back.

basically it's an own implementation of the fastcgi protocol. but I
think I haven't yet covered all of it. But it's sufficant for me....

/*
 * main
 */
int main(char[][] args)
{
        // init
        FcgiApplication fastcgi = new FcgiApplication();

        // listen
        fastcgi.listen(8080);

        // redirection
        fastcgi.accept("/redirect.html", (FcgiRequest request)
        {
                request.redirect("http://www.google.de";);
        });

        // dir
        fastcgi.accept("/users.html", (FcgiRequest request)
        {
                request.send("<a href=\"/\">back</a>");
                request.send("directory!");
                
                string dir = std.process.shell("ls /etc");
                request.send("<pre>" ~ dir ~ "</pre>");
        });

        // counter
        int counter = 0;
        fastcgi.accept("/lukas.html", (FcgiRequest request)
        {
                counter++;
                request.send("hello world!" ~ to!string(counter));
                
        });

        // show all variables
        fastcgi.accept((FcgiRequest request)
        {
                request.send("<table>");
                foreach(key, value; request.params) {
                        string html = std.string.format("<tr><td>%s</td 
<td>%s</td></tr>",
key, value);
                        request.send(html);
                }
                request.send("</table>");
        });


        // wait until forever
        return fastcgi.exec();
}


Reply via email to