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;
166 d->m_logLevel =
level;
172 return d->m_logLevel;
178 d->m_logFileName = fileName;
184 return d->m_logFileName;
194 if (d->m_logFileName.isEmpty()) {
197 if (!d->m_logFile.isOpen()) {
198 d->m_logFile.setFileName(d->m_logFileName);
201 d->m_logFileName.clear();
205 d->m_logFile.write(text);
210 if (d->m_logFile.isOpen()) {
211 d->m_logFile.flush();
217 if (d->m_logFile.isOpen()) {
218 d->m_logFile.close();
237 qDebug() <<
"Current limit" <<
lim.rlim_cur <<
lim.rlim_max;
255 lim.rlim_cur =
lim.rlim_max;
258 qDebug() <<
"limit set to" <<
lim.rlim_cur;
261 qDebug() <<
"WARNING: hard limit is not high enough";
279 if (d->m_threadPool) {
280 d->m_threadPool->disconnectSockets(
this);
281 }
else if (d->m_mainThreadSocketList) {
282 d->m_mainThreadSocketList->disconnectAll();
288 if (d->m_portBeforeSuspend == 0) {
289 qWarning(
"KDSoapServer: resume() called without calling suspend() first");
291 if (!
listen(d->m_addressBeforeSuspend, d->m_portBeforeSuspend)) {
292 qWarning(
"KDSoapServer: failed to listen on %s port %d",
qPrintable(d->m_addressBeforeSuspend.toString()), d->m_portBeforeSuspend);
294 d->m_portBeforeSuspend = 0;
301 d->m_wsdlFile = file;
308 return d->m_wsdlFile;
314 return d->m_wsdlPathInUrl;
338 return d->m_maxConnections;
350 return d->m_features;
356 return d->m_sslConfiguration;
361 d->m_sslConfiguration =
config;
365#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