using namespace shibtarget;
using namespace std;
-class CgiParseImpl {
+class CgiParseImpl : CgiParse{
public:
- CgiParseImpl(string& cgi);
~CgiParseImpl() {};
+ CgiParseImpl(string& cgi);
const char * get_value(const string& name) const;
private:
}
else
return NULL;
-#endif
-
+#else
pch = cgi.c_str();
cl = strlen(pch);
+#endif
while (cl && pch)
{
}
CgiParse*
-CgiParse::ParseCGI(string& cgi)
+CgiParse::ParseCGI(string& input)
{
- return (CgiParse*)(new CgiParseImpl(cgi));
+ CgiParseImpl* res = new CgiParseImpl(input);
+ return (CgiParse*) res;
}
ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,0,r,
"shire_post_handler() about to read using get_client_block");
- string cgistr;
+ string cgistr = "";
char buff[BUFSIZ];
//ap_hard_timeout("[mod_shib] CGI Parser", r);
cgi = CgiParse::ParseCGI(cgistr);
ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,0,r,
- "shire_post_handler() CGI parsed...");
+ "shire_post_handler() CGI parsed... (%p)", cgi);
if (!cgi)
throw ShibTargetException (SHIBRPC_OK, "CgiParse failed");
// Make sure the target parameter exists
- const string target_str = cgi->get_value("TARGET");
-
- ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,0,r,
- "shire_post_handler() obtained target string from CGI...");
-
- const char *target = target_str.c_str();
+ const char *target = cgi->get_value("TARGET");
ap_log_rerror(APLOG_MARK,APLOG_DEBUG|APLOG_NOERRNO,0,r,
"shire_post_handler() obtained target...");
"shire_post_handler() obtained target...");
// Make sure the SAML Response parameter exists
- const string poststr = cgi->get_value("SAMLResponse");
- const char *post = poststr.c_str();
+ const char *post = cgi->get_value("SAMLResponse");
if (!post || *post == '\0')
// invalid post
throw ShibTargetException (SHIBRPC_OK,