18#include <sys/resource.h>
22class KDSoapServer::Private
27 , m_mainThreadSocketList(
nullptr)
30 , m_path(
QString::fromLatin1(
"/"))
31 , m_maxConnections(-1)
32 , m_portBeforeSuspend(0)
38 delete m_mainThreadSocketList;
44 KDSoapServer::Features m_features;
85 }
else if (d->m_threadPool) {
90 if (!d->m_mainThreadSocketList) {
99 if (d->m_threadPool) {
100 return d->m_threadPool->numConnectedSockets(
this);
101 }
else if (d->m_mainThreadSocketList) {
102 return d->m_mainThreadSocketList->socketCount();
110 if (d->m_threadPool) {
111 return d->m_threadPool->totalConnectionCount(
this);
112 }
else if (d->m_mainThreadSocketList) {
113 return d->m_mainThreadSocketList->totalConnectionCount();
121 if (d->m_threadPool) {
122 d->m_threadPool->resetTotalConnectionCount(
this);
123 }
else if (d->m_mainThreadSocketList) {
124 d->m_mainThreadSocketList->resetTotalConnectionCount();
135 return d->m_threadPool;
165 d->m_logLevel =
level;
171 return d->m_logLevel;
177 d->m_logFileName = fileName;
183 return d->m_logFileName;
193 if (d->m_logFileName.isEmpty()) {
196 if (!d->m_logFile.isOpen()) {
197 d->m_logFile.setFileName(d->m_logFileName);
200 d->m_logFileName.clear();
204 d->m_logFile.write(text);
209 if (d->m_logFile.isOpen()) {
210 d->m_logFile.flush();
216 if (d->m_logFile.isOpen()) {
217 d->m_logFile.close();
236 qDebug() <<
"Current limit" <<
lim.rlim_cur <<
lim.rlim_max;
254 lim.rlim_cur =
lim.rlim_max;
257 qDebug() <<
"limit set to" <<
lim.rlim_cur;
260 qDebug() <<
"WARNING: hard limit is not high enough";
278 if (d->m_threadPool) {
279 d->m_threadPool->disconnectSockets(
this);
280 }
else if (d->m_mainThreadSocketList) {
281 d->m_mainThreadSocketList->disconnectAll();
287 if (d->m_portBeforeSuspend == 0) {
288 qWarning(
"KDSoapServer: resume() called without calling suspend() first");
290 if (!
listen(d->m_addressBeforeSuspend, d->m_portBeforeSuspend)) {
291 qWarning(
"KDSoapServer: failed to listen on %s port %d",
qPrintable(d->m_addressBeforeSuspend.toString()), d->m_portBeforeSuspend);
293 d->m_portBeforeSuspend = 0;
300 d->m_wsdlFile = file;
307 return d->m_wsdlFile;
313 return d->m_wsdlPathInUrl;
337 return d->m_maxConnections;
349 return d->m_features;
355 return d->m_sslConfiguration;
360 d->m_sslConfiguration =
config;
364#include "moc_KDSoapServer.cpp"
int numConnectedSockets() const
KDSoapThreadPool * threadPool() const
void setPath(const QString &path)
void setLogFileName(const QString &fileName)
int maxConnections() const
void connectionRejected()
static bool setExpectedSocketCount(int sockets)
void setSslConfiguration(const QSslConfiguration &config)
void setUse(KDSoapMessage::Use use)
KDSoapServer(QObject *parent=0)
KDSoapMessage::Use use() const
void setWsdlFile(const QString &file, const QString &pathInUrl)
void incomingConnection(qintptr socketDescriptor) override
QSslConfiguration sslConfiguration() const
void setMaxConnections(int sockets)
void setThreadPool(KDSoapThreadPool *threadPool)
QString logFileName() const
void resetTotalConnectionCount()
QString wsdlPathInUrl() const
void setFeatures(Features features)
LogLevel logLevel() const
Features features() const
int totalConnectionCount() const
void setLogLevel(LogLevel level)
QByteArray number(int n, int base)
QString toString() const const
T qobject_cast(QObject *object)
QString arg(qlonglong a, int fieldWidth, int base, QChar fillChar) const const
QString fromLatin1(const char *str, int size)
bool listen(const QHostAddress &address, quint16 port)
QHostAddress serverAddress() const const
quint16 serverPort() const const
void setMaxPendingConnections(int numConnections)
qintptr socketDescriptor() const const