# Name "isapi_shib - Win32 Debug"
# Begin Source File
-SOURCE=.\directive_class.h
+SOURCE=.\isapi_shib.cpp
# End Source File
# Begin Source File
-SOURCE=.\directives.h
+SOURCE=.\isapi_shib.rc
# End Source File
# Begin Source File
-SOURCE=.\isapi_shib.cpp
+SOURCE=.\resource.h
# End Source File
# End Target
# End Project
--- /dev/null
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,2,1,0
+ PRODUCTVERSION 1,2,1,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "Comments", "\0"
+ VALUE "CompanyName", "UCAID\0"
+ VALUE "FileDescription", "Shibboleth ISAPI Filter / Extension\0"
+ VALUE "FileVersion", "1, 2, 1, 0\0"
+ VALUE "InternalName", "isapi_shib\0"
+ VALUE "LegalCopyright", "Copyright © 2004 UCAID\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "isapi_shib.dll\0"
+ VALUE "PrivateBuild", "\0"
+ VALUE "ProductName", "Shibboleth 1.2.1\0"
+ VALUE "ProductVersion", "1, 2, 1, 0\0"
+ VALUE "SpecialBuild", "\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // !_MAC
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
--- /dev/null
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by isapi_shib.rc
+//
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
install-exec-hook:
for la in $(plugin_LTLIBRARIES) ; do rm -f $(DESTDIR)$(plugindir)/$$la ; done
-EXTRA_DIST = shib_mysql_ccache.dsp
+EXTRA_DIST = shib_mysql_ccache.dsp shib_mysql_ccache.rc resource.h
--- /dev/null
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by shib_mysql_ccache.rc
+//
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
# Name "shib_mysql_ccache - Win32 Debug"
# Begin Source File
+SOURCE=.\resource.h
+# End Source File
+# Begin Source File
+
SOURCE=".\shib-mysql-ccache.cpp"
# End Source File
+# Begin Source File
+
+SOURCE=.\shib_mysql_ccache.rc
+# End Source File
# End Target
# End Project
--- /dev/null
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,2,1,0
+ PRODUCTVERSION 1,2,1,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "Comments", "\0"
+ VALUE "CompanyName", "UCAID\0"
+ VALUE "FileDescription", "Shibboleth MySQL Session Cache Plugin\0"
+ VALUE "FileVersion", "1, 2, 1, 0\0"
+ VALUE "InternalName", "shib-mysql-ccache\0"
+ VALUE "LegalCopyright", "Copyright © 2004 UCAID\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "shib-mysql-ccache.so\0"
+ VALUE "PrivateBuild", "\0"
+ VALUE "ProductName", "Shibboleth 1.2.1\0"
+ VALUE "ProductVersion", "1, 2, 1, 0\0"
+ VALUE "SpecialBuild", "\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // !_MAC
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
# this is different from the project version
# http://sources.redhat.com/autobook/autobook/autobook_91.html
-libshib_target_la_LDFLAGS = -version-info 4:0:0
+libshib_target_la_LDFLAGS = -version-info 4:1:0
install-exec-hook:
for la in $(lib_LTLIBRARIES) ; do rm -f $(DESTDIR)$(libdir)/$$la ; done
-EXTRA_DIST = shibtarget.dsp shib-paths.h.in
+EXTRA_DIST = shibtarget.dsp shib-paths.h.in resource.h shib-target.rc
BUILT_SOURCES = shib-paths.h
char* dup=strdup(name.second);
for (char* pch=dup; *pch; pch++)
*pch=tolower(*pch);
+ auto_ptr<char> dupwrap(dup);
- string url(scheme.first ? scheme.second : "http");
- url=url + "://" + dup;
- free(dup);
- if (!port.first) {
- // First store a port-less version.
- if (m_map.count(url)) {
- log->warn("Skipping duplicate Host element (%s)",url.c_str());
- delete o;
- continue;
- }
- m_map[url]=o;
-
- // Now append the default port.
+ if (!scheme.first && port.first) {
+ // No scheme, but a port, so assume http.
+ scheme = pair<bool,const char*>(true,"http");
+ }
+ else if (scheme.first && !port.first) {
+ // Scheme, no port, so default it.
// XXX Use getservbyname instead?
- if (!scheme.first || !strcmp(scheme.second,"http"))
- url=url + ":80";
+ port.first = true;
+ if (!strcmp(scheme.second,"http"))
+ port.second = "80";
else if (!strcmp(scheme.second,"https"))
- url=url + ":443";
+ port.second = "443";
else if (!strcmp(scheme.second,"ftp"))
- url=url + ":21";
+ port.second = "21";
else if (!strcmp(scheme.second,"ldap"))
- url=url + ":389";
+ port.second = "389";
else if (!strcmp(scheme.second,"ldaps"))
- url=url + ":636";
+ port.second = "636";
+ }
+
+ if (scheme.first) {
+ string url(scheme.second);
+ url=url + "://" + dup;
- m_extras[url]=o;
+ // Is this the default port?
+ if ((!strcmp(scheme.second,"http") && !strcmp(port.second,"80")) ||
+ (!strcmp(scheme.second,"https") && !strcmp(port.second,"443")) ||
+ (!strcmp(scheme.second,"ftp") && !strcmp(port.second,"21")) ||
+ (!strcmp(scheme.second,"ldap") && !strcmp(port.second,"389")) ||
+ (!strcmp(scheme.second,"ldaps") && !strcmp(port.second,"636"))) {
+ // First store a port-less version.
+ if (m_map.count(url) || m_extras.count(url)) {
+ log->warn("Skipping duplicate Host element (%s)",url.c_str());
+ delete o;
+ continue;
+ }
+ m_map[url]=o;
+ log->debug("Added <Host> mapping for %s",url.c_str());
+
+ // Now append the port. We use the extras vector, to avoid double freeing the object later.
+ url=url + ':' + port.second;
+ m_extras[url]=o;
+ log->debug("Added <Host> mapping for %s",url.c_str());
+ }
+ else {
+ url=url + ':' + port.second;
+ if (m_map.count(url) || m_extras.count(url)) {
+ log->warn("Skipping duplicate Host element (%s)",url.c_str());
+ delete o;
+ continue;
+ }
+ m_map[url]=o;
+ log->debug("Added <Host> mapping for %s",url.c_str());
+ }
}
else {
- url=url + ':' + port.second;
- if (m_map.count(url)) {
+ // No scheme or port, so we enter dual hosts on http:80 and https:443
+ string url("http://");
+ url = url + dup;
+ if (m_map.count(url) || m_extras.count(url)) {
log->warn("Skipping duplicate Host element (%s)",url.c_str());
delete o;
continue;
}
m_map[url]=o;
+ log->debug("Added <Host> mapping for %s",url.c_str());
+
+ url = url + ":80";
+ if (m_map.count(url) || m_extras.count(url)) {
+ log->warn("Skipping duplicate Host element (%s)",url.c_str());
+ continue;
+ }
+ m_extras[url]=o;
+ log->debug("Added <Host> mapping for %s",url.c_str());
+
+ url = "https://";
+ url = url + dup;
+ if (m_map.count(url) || m_extras.count(url)) {
+ log->warn("Skipping duplicate Host element (%s)",url.c_str());
+ continue;
+ }
+ m_extras[url]=o;
+ log->debug("Added <Host> mapping for %s",url.c_str());
+
+ url = url + ":443";
+ if (m_map.count(url) || m_extras.count(url)) {
+ log->warn("Skipping duplicate Host element (%s)",url.c_str());
+ continue;
+ }
+ m_extras[url]=o;
+ log->debug("Added <Host> mapping for %s",url.c_str());
}
- log->debug("Added <Host> mapping for %s",url.c_str());
}
}
catch (SAMLException& e) {
const char* split_url(const char* url, string& vhost)
{
const char* path=NULL;
- const char* slash=strchr(url,'/');
+ char* slash=strchr(url,'/');
if (slash)
{
slash=strchr(slash,'/');
--- /dev/null
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by shib-target.rc
+//
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
RPC rpc;
do {
clnt = rpc->connect();
- if (shibrpc_get_assertions_1(&arg, &ret, clnt) != RPC_SUCCESS) {
+ clnt_stat status = shibrpc_get_assertions_1(&arg, &ret, clnt);
+ if (status != RPC_SUCCESS) {
// FAILED. Release, disconnect, and try again.
- log.debug("RPC Failure: %p (%p): %s", this, clnt, clnt_spcreateerror (""));
+ log.debug("RPC Failure: %p (%p) (%d): %s", this, clnt, status, clnt_spcreateerror("shibrpc_get_assertions_1"));
rpc->disconnect();
if (retry)
retry--;
- else {
- log.error("RPC Failure: %p, %p", this, clnt);
+ else
return new RPCError(-1, "RPC Failure");
- }
}
else {
// SUCCESS. Release back into pool
- rpc.pool();
retry = -1;
}
} while (retry>=0);
}
clnt_freeres(clnt, (xdrproc_t)xdr_shibrpc_get_assertions_ret_1, (caddr_t)&ret);
+ rpc.pool();
log.debug ("returning..");
return retval;
RPC rpc;
do {
clnt = rpc->connect();
- if (shibrpc_session_is_valid_1(&arg, &ret, clnt) != RPC_SUCCESS) {
+ clnt_stat status = shibrpc_session_is_valid_1(&arg, &ret, clnt);
+ if (status != RPC_SUCCESS) {
// FAILED. Release, disconnect, and try again...
- log.debug("RPC Failure: %p (%p): %s", this, clnt, clnt_spcreateerror(""));
+ log.error("RPC Failure: %p (%p) (%d) %s", this, clnt, status, clnt_spcreateerror("shibrpc_session_is_valid_1"));
rpc->disconnect();
if (retry)
retry--;
- else {
- log.error("RPC Failure: %p (%p)", this, clnt);
- return new RPCError(-1, "RPC Failure");
- }
+ else
+ return new RPCError(-1, "RPC Failure");
}
else {
- // SUCCESS. Return to the pool.
- rpc.pool();
+ // SUCCESS
retry = -1;
}
} while (retry>=0);
retval = new RPCError();
clnt_freeres (clnt, (xdrproc_t)xdr_shibrpc_session_is_valid_ret_1, (caddr_t)&ret);
+ rpc.pool();
log.debug("returning");
return retval;
RPC rpc;
do {
clnt = rpc->connect();
- if (shibrpc_new_session_1 (&arg, &ret, clnt) != RPC_SUCCESS) {
+ clnt_stat status = shibrpc_new_session_1 (&arg, &ret, clnt);
+ if (status != RPC_SUCCESS) {
// FAILED. Release, disconnect, and retry
- log.debug("RPC Failure: %p (%p): %s", this, clnt, clnt_spcreateerror (""));
+ log.error("RPC Failure: %p (%p) (%d): %s", this, clnt, status, clnt_spcreateerror("shibrpc_new_session_1"));
rpc->disconnect();
if (retry)
- retry--;
- else {
- log.error("RPC Failure: %p (%p)", this, clnt);
+ retry--;
+ else
return new RPCError(-1, "RPC Failure");
- }
}
else {
// SUCCESS. Pool and continue
- rpc.pool();
retry = -1;
}
} while (retry>=0);
}
clnt_freeres(clnt, (xdrproc_t)xdr_shibrpc_new_session_ret_1, (caddr_t)&ret);
+ rpc.pool();
log.debug("returning");
return retval;
--- /dev/null
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// English (U.S.) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
+#ifdef _WIN32
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 4,0,1,0
+ PRODUCTVERSION 1,2,1,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "040904b0"
+ BEGIN
+ VALUE "Comments", "\0"
+ VALUE "CompanyName", "UCAID\0"
+ VALUE "FileDescription", "Shibboleth Target Library\0"
+ VALUE "FileVersion", "4, 0, 1, 0\0"
+#ifdef _DEBUG
+ VALUE "InternalName", "shibtarget_4D\0"
+#else
+ VALUE "InternalName", "shibtarget_4\0"
+#endif
+ VALUE "LegalCopyright", "Copyright © 2004 UCAID\0"
+ VALUE "LegalTrademarks", "\0"
+#ifdef _DEBUG
+ VALUE "OriginalFilename", "shibtarget_4D.dll\0"
+#else
+ VALUE "OriginalFilename", "shibtarget_4.dll\0"
+#endif
+ VALUE "PrivateBuild", "\0"
+ VALUE "ProductName", "Shibboleth 1.2.1\0"
+ VALUE "ProductVersion", "1, 2, 1, 0\0"
+ VALUE "SpecialBuild", "\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x409, 1200
+ END
+END
+
+#endif // !_MAC
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // English (U.S.) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
# End Source File
# Begin Source File
+SOURCE=.\resource.h
+# End Source File
+# Begin Source File
+
SOURCE=".\shib-ccache.cpp"
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=".\shib-target.rc"
+# End Source File
+# Begin Source File
+
SOURCE=".\shibrpc-clnt.c"
# End Source File
# Begin Source File