From 7186f20e05837188a738b1e4e88223d41f2eebbc Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 30 Jun 2018 21:41:00 -0700 Subject: [PATCH] Integrate forked QMdnsEngine with some required fixes for GameStream (submitted upstream) --- .gitmodules | 3 ++ app/app.pro | 7 ++++ moonlight-qt.pro | 1 + qmdnsengine/qmdnsengine | 1 + qmdnsengine/qmdnsengine.pro | 64 ++++++++++++++++++++++++++++++++ qmdnsengine/qmdnsengine_export.h | 40 ++++++++++++++++++++ 6 files changed, 116 insertions(+) create mode 160000 qmdnsengine/qmdnsengine create mode 100644 qmdnsengine/qmdnsengine.pro create mode 100644 qmdnsengine/qmdnsengine_export.h diff --git a/.gitmodules b/.gitmodules index c5ea24df..124a6af8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "opus/opus"] path = opus/opus url = https://github.com/xiph/opus.git +[submodule "qmdnsengine/qmdnsengine"] + path = qmdnsengine/qmdnsengine + url = https://github.com/cgutman/qmdnsengine.git diff --git a/app/app.pro b/app/app.pro index c9e16093..9914681a 100644 --- a/app/app.pro +++ b/app/app.pro @@ -97,3 +97,10 @@ else:unix: LIBS += -L$$OUT_PWD/../opus/ -lopus INCLUDEPATH += $$PWD/../opus/opus/include DEPENDPATH += $$PWD/../opus/opus/include + +win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../qmdnsengine/release/ -lqmdnsengine +else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../qmdnsengine/debug/ -lqmdnsengine +else:unix: LIBS += -L$$OUT_PWD/../qmdnsengine/ -lqmdnsengine + +INCLUDEPATH += $$PWD/../qmdnsengine/qmdnsengine/src/include $$PWD/../qmdnsengine +DEPENDPATH += $$PWD/../qmdnsengine/qmdnsengine/src/include $$PWD/../qmdnsengine diff --git a/moonlight-qt.pro b/moonlight-qt.pro index 7ae79e7e..2e520723 100644 --- a/moonlight-qt.pro +++ b/moonlight-qt.pro @@ -2,6 +2,7 @@ TEMPLATE = subdirs SUBDIRS = \ moonlight-common-c \ opus \ + qmdnsengine \ app CONFIG += ordered diff --git a/qmdnsengine/qmdnsengine b/qmdnsengine/qmdnsengine new file mode 160000 index 00000000..7d814247 --- /dev/null +++ b/qmdnsengine/qmdnsengine @@ -0,0 +1 @@ +Subproject commit 7d81424763405808e5f2421a9f22145b53c7325f diff --git a/qmdnsengine/qmdnsengine.pro b/qmdnsengine/qmdnsengine.pro new file mode 100644 index 00000000..c7bdfda1 --- /dev/null +++ b/qmdnsengine/qmdnsengine.pro @@ -0,0 +1,64 @@ +QT -= gui +QT += network + +TARGET = qmdnsengine +TEMPLATE = lib + +QMDNSE_DIR = $$PWD/qmdnsengine/src +DEFINES += \ + QT_NO_SIGNALS_SLOTS_KEYWORDS + +# These are all required to be defined here not just +# to get them loaded into the IDE nicely, but more +# importantly, to get MOC to run on them properly. +HEADERS += \ + $$QMDNSE_DIR/include/qmdnsengine/abstractserver.h \ + $$QMDNSE_DIR/include/qmdnsengine/bitmap.h \ + $$QMDNSE_DIR/include/qmdnsengine/browser.h \ + $$QMDNSE_DIR/include/qmdnsengine/cache.h \ + $$QMDNSE_DIR/include/qmdnsengine/dns.h \ + $$QMDNSE_DIR/include/qmdnsengine/hostname.h \ + $$QMDNSE_DIR/include/qmdnsengine/mdns.h \ + $$QMDNSE_DIR/include/qmdnsengine/message.h \ + $$QMDNSE_DIR/include/qmdnsengine/prober.h \ + $$QMDNSE_DIR/include/qmdnsengine/provider.h \ + $$QMDNSE_DIR/include/qmdnsengine/query.h \ + $$QMDNSE_DIR/include/qmdnsengine/record.h \ + $$QMDNSE_DIR/include/qmdnsengine/resolver.h \ + $$QMDNSE_DIR/include/qmdnsengine/server.h \ + $$QMDNSE_DIR/include/qmdnsengine/service.h \ + $$QMDNSE_DIR/src/bitmap_p.h \ + $$QMDNSE_DIR/src/browser_p.h \ + $$QMDNSE_DIR/src/cache_p.h \ + $$QMDNSE_DIR/src/hostname_p.h \ + $$QMDNSE_DIR/src/message_p.h \ + $$QMDNSE_DIR/src/prober_p.h \ + $$QMDNSE_DIR/src/provider_p.h \ + $$QMDNSE_DIR/src/query_p.h \ + $$QMDNSE_DIR/src/record_p.h \ + $$QMDNSE_DIR/src/resolver_p.h \ + $$QMDNSE_DIR/src/server_p.h \ + $$QMDNSE_DIR/src/service_p.h + +SOURCES += \ + $$QMDNSE_DIR/src/abstractserver.cpp \ + $$QMDNSE_DIR/src/bitmap.cpp \ + $$QMDNSE_DIR/src/browser.cpp \ + $$QMDNSE_DIR/src/cache.cpp \ + $$QMDNSE_DIR/src/dns.cpp \ + $$QMDNSE_DIR/src/hostname.cpp \ + $$QMDNSE_DIR/src/mdns.cpp \ + $$QMDNSE_DIR/src/message.cpp \ + $$QMDNSE_DIR/src/prober.cpp \ + $$QMDNSE_DIR/src/provider.cpp \ + $$QMDNSE_DIR/src/query.cpp \ + $$QMDNSE_DIR/src/record.cpp \ + $$QMDNSE_DIR/src/resolver.cpp \ + $$QMDNSE_DIR/src/server.cpp \ + $$QMDNSE_DIR/src/service.cpp + +INCLUDEPATH += \ + $$QMDNSE_DIR/include \ + $$PWD/qmdnsengine + +CONFIG += warn_off staticlib c++11 diff --git a/qmdnsengine/qmdnsengine_export.h b/qmdnsengine/qmdnsengine_export.h new file mode 100644 index 00000000..da22671c --- /dev/null +++ b/qmdnsengine/qmdnsengine_export.h @@ -0,0 +1,40 @@ +/* + * The MIT License (MIT) + * + * Copyright (c) 2017 Nathan Osman + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + */ + +#ifndef QMDNSENGINE_EXPORT_H +#define QMDNSENGINE_EXPORT_H + +#include + +#if defined(BUILD_SHARED_LIBS) +# if defined(QMDNSENGINE_LIBRARY) +# define QMDNSENGINE_EXPORT Q_DECL_EXPORT +# else +# define QMDNSENGINE_EXPORT Q_DECL_IMPORT +# endif +#else +# define QMDNSENGINE_EXPORT +#endif + +#endif // QMDNSENGINE_EXPORT_H