Daniel Molkentin vor 10 Jahren
Ursprung
Commit
77a28a81eb

+ 2 - 2
VERSION.cmake

@@ -1,6 +1,6 @@
 set( MIRALL_VERSION_MAJOR 1 )
-set( MIRALL_VERSION_MINOR 8 )
-set( MIRALL_VERSION_PATCH 1 )
+set( MIRALL_VERSION_MINOR 9 )
+set( MIRALL_VERSION_PATCH 0 )
 set( MIRALL_SOVERSION 0 )
 
 if ( NOT DEFINED MIRALL_VERSION_SUFFIX )

+ 5 - 0
binary.rej

@@ -0,0 +1,5 @@
+--- binary
++++ binary
+@@ -1 +1 @@
+-Subproject commit 1fb9ddfa9a9a1b4dbc447eee10dbed89172d968a
++Subproject commit 01d73965dc8b862d1b2310d3ef801c297b697ec7

+ 24 - 0
src/mirall/qbacktrace.h

@@ -0,0 +1,24 @@
+
+#include <execinfo.h>
+#include <stdlib.h>
+
+static QString qBacktrace( int levels = -1 )
+{
+    QString s;
+    void* trace[256];
+    int n = backtrace(trace, 256);
+    char** strings = backtrace_symbols (trace, n);
+
+    if ( levels != -1 )
+        n = qMin( n, levels );
+    s = QString::fromLatin1("[\n");
+
+    for (int i = 0; i < n; ++i)
+        s += QString::number(i) +
+             QString::fromLatin1(": ") +
+             QString::fromLatin1(strings[i]) + QString::fromLatin1("\n");
+    s += QString::fromLatin1("]\n");
+    free (strings);
+    return s;
+}
+

+ 21 - 0
test/mockserver/CMakeLists.txt

@@ -0,0 +1,21 @@
+project(gui)
+set(CMAKE_AUTOMOC TRUE)
+
+set(MOCKSERVER_NAME mockserver)
+
+#qt_wrap_ui(mockserver_UI_SRCS ${mockserver_UI})
+
+set(mockserver_SRCS
+  main.cpp
+  httpserver.cpp
+)
+
+set(mockserver_HDRS
+  httpserver.h
+)
+
+# add_executable( ${MOCKSERVER_NAME} main.cpp ${final_src})
+add_executable(${MOCKSERVER_NAME} WIN32 ${mockserver_SRCS} ${mockserver_HDRS})
+qt5_use_modules(${MOCKSERVER_NAME} Network Xml)
+target_link_libraries(${MOCKSERVER_NAME} ${QT_LIBRARIES})
+

+ 63 - 0
test/mockserver/httpserver.cpp

@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) by Daniel Molkentin <danimo@owncloud.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+#include "httpserver.h"
+
+HttpServer::HttpServer(quint16 port, QObject* parent)
+    : QTcpServer(parent)
+{
+    listen(QHostAddress::Any, port);
+}
+
+void HttpServer::readClient()
+{
+    QTcpSocket* socket = (QTcpSocket*)sender();
+    if (socket->canReadLine()) {
+        QStringList tokens = QString(socket->readLine()).split(QRegExp("[ \r\n][ \r\n]*"));
+        if (tokens[0] == "GET") {
+            QTextStream os(socket);
+            os.setAutoDetectUnicode(true);
+            os << "HTTP/1.0 200 Ok\r\n"
+                "Content-Type: text/html; charset=\"utf-8\"\r\n"
+                "\r\n"
+                "<h1>Nothing to see here</h1>\n"
+                << QDateTime::currentDateTime().toString() << "\n";
+            socket->close();
+
+            QtServiceBase::instance()->logMessage("Wrote to client");
+
+            if (socket->state() == QTcpSocket::UnconnectedState) {
+                delete socket;
+                QtServiceBase::instance()->logMessage("Connection closed");
+            }
+        }
+    }
+}
+void HttpServer::discardClient()
+{
+    QTcpSocket* socket = (QTcpSocket*)sender();
+    socket->deleteLater();
+
+    QtServiceBase::instance()->logMessage("Connection closed");
+}
+
+
+void HttpServer::incomingConnection(int socket)
+{
+    if (disabled)
+        return;
+    QTcpSocket* s = new QTcpSocket(this);
+    connect(s, SIGNAL(readyRead()), this, SLOT(readClient()));
+    connect(s, SIGNAL(disconnected()), this, SLOT(discardClient()));
+    s->setSocketDescriptor(socket);
+}

+ 26 - 0
test/mockserver/httpserver.h

@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) by Daniel Molkentin <danimo@owncloud.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+#include <QTcpServer>
+
+class HttpServer : public QTcpServer
+ {
+     Q_OBJECT
+ public:
+    HttpServer(qint16 port, QObject* parent = 0);
+    void incomingConnection(int socket);
+
+ private slots:
+     void readClient();
+     void discardClient();
+ };

+ 23 - 0
test/mockserver/main.cpp

@@ -0,0 +1,23 @@
+/*
+ * Copyright (C) by Daniel Molkentin <danimo@owncloud.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * for more details.
+ */
+
+#include <QCoreApplication>
+
+#include "httpserver.h"
+
+int main(int argc, char* argv[])
+{
+  QCoreApplication app(argc, argv);
+  HttpServer server;
+  return app.exec();
+}