Spankmaster79
Grünschnabel
Hallo,
ich will eigentlich nur ganz simple die Umgebungsvariablen meines .fcgi Scripts bekommen. Das echo.cpp von fastcgi.com hab ich ja auch zum laufen bekommen. Nun würde ich das ganze nur gerne in einer Klasse kapseln.
Hier mein Vorschlag der aber leider nicht funktioniert....hab mich vielleicht verpointert...
Hier die main:
Hier die .h meiner Klasse:
Hier die .cpp meiner Klasse
Kann mir hier dabei jemand helfen Die Support Email Liste ist nicht gerade sehr hilfreich
Gruß
Spanky
ich will eigentlich nur ganz simple die Umgebungsvariablen meines .fcgi Scripts bekommen. Das echo.cpp von fastcgi.com hab ich ja auch zum laufen bekommen. Nun würde ich das ganze nur gerne in einer Klasse kapseln.
Hier mein Vorschlag der aber leider nicht funktioniert....hab mich vielleicht verpointert...
Hier die main:
Code:
/**
* Sebastian Beyer, 10.11.2005
* nun doch fastCGI.....komm mal in die Puschen....
*/
#include <cstdlib> //for getenv
#include <iostream.h>
#include <string>
#include "Fcgi_wrapper.h" /* fcgi Environment output */
#include "fcgi_stdio.h" /* fcgi library; put it first*/
int count;
char* hostname;
void initialize(void)
{
hostname = getenv("OS");
count=0;
}
void main(void)
{
/* Initialization. */
initialize();
FCGX_Request request;
Fcgi_wrapper fcgi(&request);
/* Response loop. */
while (FCGI_Accept() >= 0) {
printf("Content-type: text/html\r\n"
"\r\n"
"<title>FastCGI Hello! (C, fcgi_stdio library)</title>"
"<h1>FastCGI Hello! (C, fcgi_stdio library)</h1>"
"Request number %d running on host <i>%s</i>\n",
++count, (hostname ? hostname:"OS not set"));
printf(fcgi.get_server_name() ? fcgi.get_server_name():"fcgi request not working");
}
}
Hier die .h meiner Klasse:
Code:
#include <string>
#include "fcgio.h"
class Fcgi_wrapper
{
public:
//****Kosnt&Destrukt****
Fcgi_wrapper(FCGX_Request*);
virtual ~Fcgi_wrapper();
//****Functions****
char* getenv(const std::string& name, FCGX_ParamArray envp);
char* get_server_name();
private:
FCGX_Request* m_request;
};
Hier die .cpp meiner Klasse
Code:
#include "Fcgi_wrapper.h"
//////////////////////////////////////////////////////////////////////
// Konstruktion/Destruktion
//////////////////////////////////////////////////////////////////////
Fcgi_wrapper::Fcgi_wrapper(FCGX_Request* request)
{
m_request=request;
}
Fcgi_wrapper::~Fcgi_wrapper()
{
}
char* Fcgi_wrapper::getenv(const std::string& name, FCGX_ParamArray envp)
{
char * result;
char * t;
t = FCGX_GetParam( name.c_str(), envp );
//if result==NULL, check the environ
if ( t )
result = t;
return ( result );
}
char* Fcgi_wrapper::get_server_name()
{
return (getenv("SERVER_NAME", m_request->envp));
}
Kann mir hier dabei jemand helfen Die Support Email Liste ist nicht gerade sehr hilfreich
Gruß
Spanky