#include "bu/fastcgi.h" class Cgi : public Bu::FastCgi { public: Cgi() : Bu::FastCgi::FastCgi() { } Cgi( int iPort ) : Bu::FastCgi::FastCgi( iPort ) { } virtual ~Cgi() { } virtual int onRequest( const StrHash &hParams, const Bu::FString &sStdIn, Bu::Stream &sStdOut, Bu::Stream &/*sStdErr*/ ) { Bu::FString sOut("Content-Type: text/html\r\n\r\n"); sOut += "
", sStdIn.getSize() );
Bu::FString sL, sR;
for( Bu::FString::const_iterator i = sStdIn.begin();
i; i++ )
{
sL.formatAppend("%02X ",
(unsigned int)((unsigned char)*i) );
if( *i < 27 )
sR += ". ";
else
sR.formatAppend("%d; ",
(unsigned int)((unsigned char)*i) );
if( sL.getSize()/3 == 8 )
{
sOut += sL + " | " + sR + "\n";
sL = sR = "";
}
}
if( sL != "" )
{
while( sL.getSize()/3 < 8 )
sL += " ";
sOut += sL + " | " + sR + "\n";
}
sOut += ""; sOut += sStdIn; sOut += ""; sOut += ""; sOut += ""; sStdOut.write( sOut ); return 0; } }; int main() { Cgi c( 8789 ); c.run(); return 0; }