#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; }