<listOptionValue builtIn="false" value="SHIBSP_API"/>\r
<listOptionValue builtIn="false" value="SHIBSP_DLLLOCAL"/>\r
<listOptionValue builtIn="false" value="SHIBSP_LOGCAT="Shibboleth""/>\r
+<listOptionValue builtIn="false" value="WIN32"/>\r
</option>\r
<option id="org.eclipse.linuxtools.cdt.autotools.option.configure.includes.1925509387" name="includes" superClass="org.eclipse.linuxtools.cdt.autotools.option.configure.includes" valueType="includePath">\r
<listOptionValue builtIn="false" value=""${workspace_loc:/cpp-sp/cpp-xmltooling}""/>\r
elementFormDefault="qualified"
attributeFormDefault="unqualified"
blockDefault="substitution"
- version="2.3">
+ version="2.4">
<import namespace="urn:oasis:names:tc:SAML:2.0:assertion" schemaLocation="saml-schema-assertion-2.0.xsd"/>
<import namespace="urn:oasis:names:tc:SAML:2.0:protocol" schemaLocation="saml-schema-protocol-2.0.xsd"/>
<element name="UnixListener">
<complexType>
<attribute name="address" type="conf:string" use="required"/>
+ <attribute name="stackSize" type="unsignedInt"/>
</complexType>
</element>
<element name="TCPListener">
<attribute name="address" type="conf:string" use="required"/>
<attribute name="port" type="unsignedInt" use="required"/>
<attribute name="acl" type="conf:listOfStrings"/>
+ <attribute name="stackSize" type="unsignedInt"/>
</complexType>
</element>
<element name="Listener" type="conf:PluggableType"/>
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* SocketListener.cpp
*
- * Berkeley Socket-based ListenerService implementation
+ * Berkeley Socket-based ListenerService implementation.
*/
#include "internal.h"
SocketListener::SocketListener(const DOMElement* e)
: m_catchAll(false), log(&Category::getInstance(SHIBSP_LOGCAT".Listener")), m_socketpool(NULL),
- m_shutdown(NULL), m_child_lock(NULL), m_child_wait(NULL), m_socket((ShibSocket)0)
+ m_shutdown(NULL), m_child_lock(NULL), m_child_wait(NULL), m_stackSize(0), m_socket((ShibSocket)0)
{
// Are we a client?
if (SPConfig::getConfig().isEnabled(SPConfig::InProcess)) {
if (SPConfig::getConfig().isEnabled(SPConfig::OutOfProcess)) {
m_child_lock = Mutex::create();
m_child_wait = CondWait::create();
+
+ static const XMLCh stackSize[] = UNICODE_LITERAL_9(s,t,a,c,k,S,i,z,e);
+ const XMLCh* attr = e ? e->getAttributeNS(NULL, stackSize) : NULL;
+ if (attr && *attr)
+ m_stackSize = XMLString::parseInt(attr);
}
}
m_id = buf.str();
// Create the child thread
- m_child = Thread::create(server_thread_fn, (void*)this);
+ m_child = Thread::create(server_thread_fn, (void*)this, m_listener->m_stackSize);
m_child->detach();
}
/*
- * Copyright 2001-2009 Internet2
+ * Copyright 2001-2010 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/**
* SocketListener.h
*
- * Berkeley Socket-based ListenerService implementation
+ * Berkeley Socket-based ListenerService implementation.
*/
#ifndef __shibsp_socklisten_h__
xmltooling::Mutex* m_child_lock;
xmltooling::CondWait* m_child_wait;
+ unsigned int m_stackSize;
+
// Primary socket
ShibSocket m_socket;
};