virtual string getArgs(void) { return string(m_req->args ? m_req->args : ""); }
virtual string getPostData(void) {
// Read the posted data
- if (ap_setup_client_block(m_req, REQUEST_CHUNKED_DECHUNK) != OK)
+#ifdef SHIB_APACHE_13
+ if (ap_setup_client_block(m_req, REQUEST_CHUNKED_DECHUNK))
throw FatalProfileException("Apache function (setup_client_block) failed while reading profile submission.");
if (!ap_should_client_block(m_req))
throw FatalProfileException("Apache function (should_client_block) failed while reading profile submission.");
if (m_req->remaining > 1024*1024)
throw FatalProfileException("Blocked too-large a submission to profile endpoint.");
+ int len;
string cgistr;
char buff[HUGE_STRING_LEN];
ap_hard_timeout("[mod_shib] getPostData", m_req);
- memset(buff, 0, sizeof(buff));
- while (ap_get_client_block(m_req, buff, sizeof(buff)-1) > 0) {
+ while ((len=ap_get_client_block(m_req, buff, sizeof(buff))) > 0) {
ap_reset_timeout(m_req);
- cgistr += buff;
- memset(buff, 0, sizeof(buff));
+ cgistr.append(buff, len);
}
ap_kill_timeout(m_req);
+ return cgistr;
+#else
+ string cgistr;
+ const char *data;
+ apr_size_t len;
+ int seen_eos = 0;
+ apr_bucket_brigade* bb = apr_brigade_create(m_req->pool, m_req->connection->bucket_alloc);
+ do {
+ apr_bucket *bucket;
+ apr_status_t rv = ap_get_brigade(m_req->input_filters, bb, AP_MODE_READBYTES, APR_BLOCK_READ, HUGE_STRING_LEN);
+ if (rv != APR_SUCCESS)
+ throw FatalProfileException("Apache function (ap_get_brigade) failed while reading profile submission.");
+
+ for (bucket = APR_BRIGADE_FIRST(bb); bucket != APR_BRIGADE_SENTINEL(bb); bucket = APR_BUCKET_NEXT(bucket)) {
+ if (APR_BUCKET_IS_EOS(bucket)) {
+ seen_eos = 1;
+ break;
+ }
+
+ /* We can't do much with this. */
+ if (APR_BUCKET_IS_FLUSH(bucket))
+ continue;
+ /* read */
+ apr_bucket_read(bucket, &data, &len, APR_BLOCK_READ);
+ if (len > 0)
+ cgistr.append(data, len);
+ }
+ apr_brigade_cleanup(bb);
+ } while (!seen_eos);
+ apr_brigade_destroy(bb);
return cgistr;
+#endif
}
virtual void clearHeader(const string &name) {
if (m_dc->bUseEnvVars==1) {
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 log4cpp.lib xerces-c_2.lib libapr.lib libhttpd.lib saml_5.lib /nologo /dll /machine:I386 /out:"mod_shib20___Win32_Release/mod_shib_20.so" /libpath:"\Apache2\lib" /libpath:"..\..\cpp-opensaml1\saml\Release"
+# ADD LINK32 log4cpp.lib xerces-c_2.lib libapr.lib libaprutil.lib libhttpd.lib saml_5.lib /nologo /dll /machine:I386 /out:"mod_shib20___Win32_Release/mod_shib_20.so" /libpath:"\Apache2\lib" /libpath:"..\..\cpp-opensaml1\saml\Release"
!ELSEIF "$(CFG)" == "mod_shib20 - Win32 Debug"
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 log4cppD.lib xerces-c_2D.lib libapr.lib libhttpd.lib saml_5D.lib /nologo /dll /debug /machine:I386 /out:"mod_shib20___Win32_Debug/mod_shib_20.so" /pdbtype:sept /libpath:"\Apache2\lib" /libpath:"..\..\cpp-opensaml1\saml\Debug"
+# ADD LINK32 log4cppD.lib xerces-c_2D.lib libapr.lib libaprutil.lib libhttpd.lib saml_5D.lib /nologo /dll /debug /machine:I386 /out:"mod_shib20___Win32_Debug/mod_shib_20.so" /pdbtype:sept /libpath:"\Apache2\lib" /libpath:"..\..\cpp-opensaml1\saml\Debug"
!ENDIF
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
-# ADD LINK32 log4cpp.lib xerces-c_2.lib saml_5.lib libapr-1.lib libhttpd.lib /nologo /dll /machine:I386 /out:"mod_shib22___Win32_Release/mod_shib_22.so" /libpath:"\Apache2.2\lib" /libpath:"..\..\cpp-opensaml1\saml\Release"
+# ADD LINK32 log4cpp.lib xerces-c_2.lib saml_5.lib libapr-1.lib libaprutil-1.lib libhttpd.lib /nologo /dll /machine:I386 /out:"mod_shib22___Win32_Release/mod_shib_22.so" /libpath:"\Apache2.2\lib" /libpath:"..\..\cpp-opensaml1\saml\Release"
!ELSEIF "$(CFG)" == "mod_shib22 - Win32 Debug"
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 log4cppD.lib xerces-c_2D.lib saml_5D.lib libapr-1.lib libhttpd.lib /nologo /dll /debug /machine:I386 /out:"mod_shib22___Win32_Debug/mod_shib_22.so" /pdbtype:sept /libpath:"\Apache2.2\lib" /libpath:"..\..\cpp-opensaml1\saml\Debug"
+# ADD LINK32 log4cppD.lib xerces-c_2D.lib saml_5D.lib libapr-1.lib libaprutil-1.lib libhttpd.lib /nologo /dll /debug /machine:I386 /out:"mod_shib22___Win32_Debug/mod_shib_22.so" /pdbtype:sept /libpath:"\Apache2.2\lib" /libpath:"..\..\cpp-opensaml1\saml\Debug"
!ENDIF
VALUE "CompanyName", "Internet2\0"
VALUE "FileDescription", "Shibboleth Daemon Service\0"
VALUE "FileVersion", "1, 3, 0, 0\0"
- VALUE "InternalName", "shar\0"
- VALUE "LegalCopyright", "Copyright © 2005 Internet2\0"
+ VALUE "InternalName", "shibd\0"
+ VALUE "LegalCopyright", "Copyright © 2007 Internet2\0"
VALUE "LegalTrademarks", "\0"
VALUE "OriginalFilename", "shibd.exe\0"
VALUE "PrivateBuild", "\0"
# PROP Ignore_Export_Lib 0\r
# PROP Target_Dir ""\r
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c\r
-# ADD CPP /nologo /MD /W3 /GX /O2 /I ".." /I "../oncrpc" /I "..\..\..\opensaml\c" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c\r
+# ADD CPP /nologo /MD /W3 /GX /O2 /I ".." /I "../oncrpc" /I "..\..\cpp-opensaml1" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c\r
# ADD BASE RSC /l 0x409 /d "NDEBUG"\r
# ADD RSC /l 0x409 /d "NDEBUG"\r
BSC32=bscmake.exe\r
# PROP Ignore_Export_Lib 0\r
# PROP Target_Dir ""\r
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c\r
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I ".." /I "../oncrpc" /I "..\..\..\opensaml\c" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_MBCS" /FR /YX /FD /GZ /c\r
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I ".." /I "../oncrpc" /I "..\..\cpp-opensaml1" /D "_CONSOLE" /D "WIN32" /D "_DEBUG" /D "_MBCS" /FR /YX /FD /GZ /c\r
# ADD BASE RSC /l 0x409 /d "_DEBUG"\r
# ADD RSC /l 0x409 /d "_DEBUG" /d "_AFXDLL"\r
BSC32=bscmake.exe\r