Merge pull request #12 from RetroShare/master

update master
This commit is contained in:
defnax 2019-09-28 18:06:22 +02:00 committed by GitHub
commit 56b93def00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 84 additions and 34 deletions

View File

@ -49,6 +49,9 @@ define_default_value XAPIAN_SOURCE_SHA256 13f08a0b649c7afa804fa0e85678d693fd6069
define_default_value RAPIDJSON_SOURCE_VERSION "1.1.0" define_default_value RAPIDJSON_SOURCE_VERSION "1.1.0"
define_default_value RAPIDJSON_SOURCE_SHA256 bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e define_default_value RAPIDJSON_SOURCE_SHA256 bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e
define_default_value MINIUPNPC_SOURCE_VERSION "2.1.20190625"
define_default_value MINIUPNPC_SOURCE_SHA256 8723f5d7fd7970de23635547700878cd29a5c2bb708b5e5475b2d1d2510317fb
## $1 filename, $2 sha256 hash ## $1 filename, $2 sha256 hash
function check_sha256() function check_sha256()
@ -482,6 +485,33 @@ build_xapian()
make install make install
} }
build_miniupnpc()
{
echo "build_miniupnpc()
################################################################################
################################################################################
################################################################################
"
S_dir="miniupnpc-${MINIUPNPC_SOURCE_VERSION}"
B_dir="miniupnpc-${MINIUPNPC_SOURCE_VERSION}-build"
D_file="$S_dir.tar.gz"
verified_download $D_file $MINIUPNPC_SOURCE_SHA256 \
http://miniupnp.free.fr/files/${D_file}
rm -rf $S_dir $B_dir
tar -xf $D_file
mkdir $B_dir
cd $B_dir
cmake \
-DUPNPC_BUILD_STATIC=TRUE \
-DUPNPC_BUILD_SHARED=FALSE \
-DUPNPC_BUILD_TESTS=FALSE \
-DUPNPC_BUILD_SAMPLE=FALSE \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_INSTALL_PREFIX="${PREFIX}" -B. -S../$S_dir
make -j${HOST_NUM_CPU}
make install
}
build_toolchain build_toolchain
[ "${INSTALL_QT_ANDROID}X" != "trueX" ] || install_qt_android [ "${INSTALL_QT_ANDROID}X" != "trueX" ] || install_qt_android
build_bzlib build_bzlib
@ -493,6 +523,7 @@ build_rapidjson
build_restbed build_restbed
build_udp-discovery-cpp build_udp-discovery-cpp
build_xapian build_xapian
build_miniupnpc
delete_copied_includes delete_copied_includes
echo NATIVE_LIBS_TOOLCHAIN_PATH=${NATIVE_LIBS_TOOLCHAIN_PATH} echo NATIVE_LIBS_TOOLCHAIN_PATH=${NATIVE_LIBS_TOOLCHAIN_PATH}

View File

@ -648,7 +648,7 @@ SOURCES += util/folderiterator.cc \
equals(RS_UPNP_LIB, miniupnpc) { equals(RS_UPNP_LIB, miniupnpc) {
HEADERS += rs_upnp/upnputil.h rs_upnp/upnphandler_miniupnp.h HEADERS += rs_upnp/upnputil.h rs_upnp/upnphandler_miniupnp.h
SOURCES += rs_upnp/upnputil.c rs_upnp/upnphandler_miniupnp.cc SOURCES += rs_upnp/upnputil.cc rs_upnp/upnphandler_miniupnp.cc
} }
contains(RS_UPNP_LIB, upnp) { contains(RS_UPNP_LIB, upnp) {

View File

@ -41,11 +41,12 @@ class RsBroadcastDiscovery;
* TODO: this should become std::weak_ptr once we have a reasonable services * TODO: this should become std::weak_ptr once we have a reasonable services
* management. * management.
*/ */
extern std::shared_ptr<RsBroadcastDiscovery> rsBroadcastDiscovery; extern RsBroadcastDiscovery* rsBroadcastDiscovery;
struct RsBroadcastDiscoveryResult : RsSerializable struct RsBroadcastDiscoveryResult : RsSerializable
{ {
RsPgpFingerprint mPgpFingerprint;
RsPeerId mSslId; RsPeerId mSslId;
std::string mProfileName; std::string mProfileName;
RsUrl mLocator; RsUrl mLocator;
@ -54,6 +55,7 @@ struct RsBroadcastDiscoveryResult : RsSerializable
void serial_process( RsGenericSerializer::SerializeJob j, void serial_process( RsGenericSerializer::SerializeJob j,
RsGenericSerializer::SerializeContext& ctx) override RsGenericSerializer::SerializeContext& ctx) override
{ {
RS_SERIAL_PROCESS(mPgpFingerprint);
RS_SERIAL_PROCESS(mSslId); RS_SERIAL_PROCESS(mSslId);
RS_SERIAL_PROCESS(mProfileName); RS_SERIAL_PROCESS(mProfileName);
RS_SERIAL_PROCESS(mLocator); RS_SERIAL_PROCESS(mLocator);

View File

@ -1429,9 +1429,9 @@ int RsServer::StartupRetroShare()
mStatusSrv = new p3StatusService(serviceCtrl); mStatusSrv = new p3StatusService(serviceCtrl);
#ifdef RS_BROADCAST_DISCOVERY #ifdef RS_BROADCAST_DISCOVERY
rsBroadcastDiscovery.reset(new BroadcastDiscoveryService(*rsPeers)); BroadcastDiscoveryService* broadcastDiscoveryService =
BroadcastDiscoveryService& tBroadcastDiscoveryService = new BroadcastDiscoveryService(*rsPeers);
static_cast<BroadcastDiscoveryService&>(*rsBroadcastDiscovery); rsBroadcastDiscovery = broadcastDiscoveryService;
#endif // def RS_BROADCAST_DISCOVERY #endif // def RS_BROADCAST_DISCOVERY
#ifdef ENABLE_GROUTER #ifdef ENABLE_GROUTER
@ -1828,7 +1828,7 @@ int RsServer::StartupRetroShare()
#endif // RS_ENABLE_GXS #endif // RS_ENABLE_GXS
#ifdef RS_BROADCAST_DISCOVERY #ifdef RS_BROADCAST_DISCOVERY
startServiceThread(&tBroadcastDiscoveryService, "Broadcast Discovery"); startServiceThread(broadcastDiscoveryService, "Broadcast Discovery");
#endif // def RS_BROADCAST_DISCOVERY #endif // def RS_BROADCAST_DISCOVERY
ftserver->StartupThreads(); ftserver->StartupThreads();

View File

@ -31,15 +31,13 @@
#include "serialiser/rsserializer.h" #include "serialiser/rsserializer.h"
#include "retroshare/rsevents.h" #include "retroshare/rsevents.h"
/*extern*/ std::shared_ptr<RsBroadcastDiscovery> rsBroadcastDiscovery(nullptr); /*extern*/ RsBroadcastDiscovery* rsBroadcastDiscovery = nullptr;
RsBroadcastDiscovery::~RsBroadcastDiscovery() { /* Beware of Rs prefix! */ }
RsBroadcastDiscoveryResult::~RsBroadcastDiscoveryResult() {}
RsBroadcastDiscoveryPeerFoundEvent::~RsBroadcastDiscoveryPeerFoundEvent() {}
struct BroadcastDiscoveryPack : RsSerializable struct BroadcastDiscoveryPack : RsSerializable
{ {
BroadcastDiscoveryPack() : mLocalPort(0) {} BroadcastDiscoveryPack() : mLocalPort(0) {}
RsPgpFingerprint mPgpFingerprint;
RsPeerId mSslId; RsPeerId mSslId;
uint16_t mLocalPort; uint16_t mLocalPort;
std::string mProfileName; std::string mProfileName;
@ -47,6 +45,7 @@ struct BroadcastDiscoveryPack : RsSerializable
void serial_process( RsGenericSerializer::SerializeJob j, void serial_process( RsGenericSerializer::SerializeJob j,
RsGenericSerializer::SerializeContext& ctx ) override RsGenericSerializer::SerializeContext& ctx ) override
{ {
RS_SERIAL_PROCESS(mPgpFingerprint);
RS_SERIAL_PROCESS(mSslId); RS_SERIAL_PROCESS(mSslId);
RS_SERIAL_PROCESS(mLocalPort); RS_SERIAL_PROCESS(mLocalPort);
RS_SERIAL_PROCESS(mProfileName); RS_SERIAL_PROCESS(mProfileName);
@ -55,6 +54,7 @@ struct BroadcastDiscoveryPack : RsSerializable
static BroadcastDiscoveryPack fromPeerDetails(const RsPeerDetails& pd) static BroadcastDiscoveryPack fromPeerDetails(const RsPeerDetails& pd)
{ {
BroadcastDiscoveryPack bdp; BroadcastDiscoveryPack bdp;
bdp.mPgpFingerprint = pd.fpr;
bdp.mSslId = pd.id; bdp.mSslId = pd.id;
bdp.mLocalPort = pd.localPort; bdp.mLocalPort = pd.localPort;
bdp.mProfileName = pd.name; bdp.mProfileName = pd.name;
@ -86,7 +86,6 @@ struct BroadcastDiscoveryPack : RsSerializable
~BroadcastDiscoveryPack() override; ~BroadcastDiscoveryPack() override;
}; };
BroadcastDiscoveryPack::~BroadcastDiscoveryPack() {};
BroadcastDiscoveryService::BroadcastDiscoveryService( BroadcastDiscoveryService::BroadcastDiscoveryService(
RsPeers& pRsPeers ) : RsPeers& pRsPeers ) :
@ -202,3 +201,8 @@ RsBroadcastDiscoveryResult BroadcastDiscoveryService::createResult(
return rbdr; return rbdr;
} }
RsBroadcastDiscovery::~RsBroadcastDiscovery() = default;
RsBroadcastDiscoveryResult::~RsBroadcastDiscoveryResult() = default;
RsBroadcastDiscoveryPeerFoundEvent::~RsBroadcastDiscoveryPeerFoundEvent() = default;
BroadcastDiscoveryPack::~BroadcastDiscoveryPack() = default;

View File

@ -2061,29 +2061,41 @@ void p3GxsCircles::handle_event(uint32_t event_type, const std::string &elabel)
// | | Grp Subscribed: NO | Grp Subscribed: NO | // | | Grp Subscribed: NO | Grp Subscribed: NO |
// +-------------+------------------------------+-----------------------------+ // +-------------+------------------------------+-----------------------------+
bool p3GxsCircles::pushCircleMembershipRequest(const RsGxsId& own_gxsid,const RsGxsCircleId& circle_id,uint32_t request_type) bool p3GxsCircles::pushCircleMembershipRequest(
const RsGxsId& own_gxsid, const RsGxsCircleId& circle_id,
uint32_t request_type )
{ {
#ifdef DEBUG_CIRCLES Dbg3() << __PRETTY_FUNCTION__ << "own_gxsid = " << own_gxsid
std::cerr << "Circle membership request: own_gxsid = " << own_gxsid << ", circle=" << circle_id << ", req type=" << request_type << std::endl; << ", circle=" << circle_id << ", req type=" << request_type
#endif << std::endl;
// check for some consistency
if(request_type != RsGxsCircleSubscriptionRequestItem::SUBSCRIPTION_REQUEST_SUBSCRIBE && request_type != RsGxsCircleSubscriptionRequestItem::SUBSCRIPTION_REQUEST_UNSUBSCRIBE)
return false ;
std::list<RsGxsId> own_ids ;
if(!rsIdentity->getOwnIds(own_ids))
return false ;
bool found = false ;
for(std::list<RsGxsId>::const_iterator it(own_ids.begin());it!=own_ids.end() && !found;++it)
found = ( (*it) == own_gxsid) ;
if(!found) if( request_type !=
return false ; RsGxsCircleSubscriptionRequestItem::SUBSCRIPTION_REQUEST_SUBSCRIBE &&
request_type !=
// Create a subscribe item RsGxsCircleSubscriptionRequestItem::SUBSCRIPTION_REQUEST_UNSUBSCRIBE )
{
RsErr() << __PRETTY_FUNCTION__ << " Unknown request type: "
<< request_type << std::endl;
return false;
}
if(!rsIdentity->isOwnId(own_gxsid))
{
RsErr() << __PRETTY_FUNCTION__ << " Cannot generate membership request "
<< "from not-own id: " << own_gxsid << std::endl;
return false;
}
if(!getCirclesInfo(
std::list<RsGxsGroupId>{static_cast<RsGxsGroupId>(circle_id)},
RS_DEFAULT_STORAGE_PARAM(std::vector<RsGxsCircleGroup>) ))
{
RsErr() << __PRETTY_FUNCTION__ << " Cannot generate membership request "
<< "from unknown circle: " << circle_id << std::endl;
return false;
}
// Create a subscribe item
RsGxsCircleSubscriptionRequestItem *s = new RsGxsCircleSubscriptionRequestItem ; RsGxsCircleSubscriptionRequestItem *s = new RsGxsCircleSubscriptionRequestItem ;

View File

@ -26,12 +26,11 @@
#include "retroshare/rsgxscircles.h" // External Interfaces. #include "retroshare/rsgxscircles.h" // External Interfaces.
#include "gxs/rsgenexchange.h" // GXS service. #include "gxs/rsgenexchange.h" // GXS service.
#include "gxs/rsgixs.h" // Internal Interfaces. #include "gxs/rsgixs.h" // Internal Interfaces.
#include "services/p3idservice.h" // For constructing Caches #include "services/p3idservice.h" // For constructing Caches
#include "gxs/gxstokenqueue.h" #include "gxs/gxstokenqueue.h"
#include "util/rstickevent.h" #include "util/rstickevent.h"
#include "util/rsmemcache.h" #include "util/rsmemcache.h"
#include "util/rsdebug.h"
#include <map> #include <map>
#include <string> #include <string>
@ -321,4 +320,6 @@ virtual RsServiceInfo getServiceInfo();
uint32_t mDummyIdToken; uint32_t mDummyIdToken;
std::list<RsGxsId> mDummyPgpLinkedIds; std::list<RsGxsId> mDummyPgpLinkedIds;
std::list<RsGxsId> mDummyOwnIds; std::list<RsGxsId> mDummyOwnIds;
RS_SET_CONTEXT_DEBUG_LEVEL(2)
}; };