2007-11-14 22:18:48 -05:00
|
|
|
|
|
|
|
/*
|
|
|
|
* "$Id: p3face-config.cc,v 1.4 2007-05-05 16:10:05 rmf24 Exp $"
|
|
|
|
*
|
|
|
|
* RetroShare C++ Interface.
|
|
|
|
*
|
|
|
|
* Copyright 2004-2006 by Robert Fernie.
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Library General Public
|
|
|
|
* License Version 2 as published by the Free Software Foundation.
|
|
|
|
*
|
|
|
|
* This library 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
|
|
|
|
* Library General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Library General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
|
|
|
* USA.
|
|
|
|
*
|
|
|
|
* Please report all bugs and problems to "retroshare@lunamutt.com".
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#include "rsserver/p3face.h"
|
|
|
|
|
|
|
|
#include <iostream>
|
2010-01-13 15:56:55 -05:00
|
|
|
#include "pqi/authssl.h"
|
2010-01-13 16:22:52 -05:00
|
|
|
#include "pqi/authgpg.h"
|
2010-08-06 05:40:23 -04:00
|
|
|
#include "retroshare/rsinit.h"
|
2012-08-02 09:17:53 -04:00
|
|
|
#include "plugins/pluginmanager.h"
|
2008-07-10 12:29:18 -04:00
|
|
|
#include "util/rsdebug.h"
|
2007-11-14 22:18:48 -05:00
|
|
|
const int p3facemsgzone = 11453;
|
|
|
|
|
|
|
|
#include <sys/time.h>
|
|
|
|
#include <time.h>
|
|
|
|
|
2011-07-09 14:39:34 -04:00
|
|
|
#include "pqi/p3peermgr.h"
|
|
|
|
#include "pqi/p3netmgr.h"
|
|
|
|
|
2007-11-14 22:18:48 -05:00
|
|
|
|
2012-12-16 10:04:52 -05:00
|
|
|
// TO SHUTDOWN THREADS.
|
|
|
|
#ifdef RS_ENABLE_GXS
|
|
|
|
|
|
|
|
#include "services/p3idservice.h"
|
|
|
|
#include "services/p3gxscircles.h"
|
|
|
|
#include "services/p3wiki.h"
|
|
|
|
#include "services/p3posted.h"
|
|
|
|
#include "services/p3photoservice.h"
|
|
|
|
#include "services/p3gxsforums.h"
|
2013-03-04 15:26:48 -05:00
|
|
|
#include "services/p3gxschannels.h"
|
2012-12-16 10:04:52 -05:00
|
|
|
#include "services/p3wire.h"
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
2007-11-14 22:18:48 -05:00
|
|
|
/****************************************/
|
|
|
|
/* RsIface Config */
|
|
|
|
/* Config */
|
|
|
|
|
2011-08-12 09:42:30 -04:00
|
|
|
int RsServer::ConfigSetBootPrompt( bool /*on*/ )
|
2007-11-14 22:18:48 -05:00
|
|
|
{
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int RsServer::UpdateAllConfig()
|
|
|
|
{
|
|
|
|
/* fill the rsiface class */
|
|
|
|
RsIface &iface = getIface();
|
|
|
|
|
|
|
|
/* lock Mutexes */
|
|
|
|
lockRsCore(); /* LOCK */
|
|
|
|
iface.lockData(); /* LOCK */
|
|
|
|
|
|
|
|
RsConfig &config = iface.mConfig;
|
|
|
|
|
2010-01-13 15:58:58 -05:00
|
|
|
config.ownId = AuthSSL::getAuthSSL()->OwnId();
|
2010-01-13 16:22:52 -05:00
|
|
|
config.ownName = AuthGPG::getAuthGPG()->getGPGOwnName();
|
2011-07-09 14:39:34 -04:00
|
|
|
peerState pstate;
|
|
|
|
mPeerMgr->getOwnNetStatus(pstate);
|
2007-11-14 22:18:48 -05:00
|
|
|
|
|
|
|
/* ports */
|
2011-07-09 14:39:34 -04:00
|
|
|
config.localAddr = rs_inet_ntoa(pstate.localaddr.sin_addr);
|
|
|
|
config.localPort = ntohs(pstate.localaddr.sin_port);
|
2008-04-06 16:57:36 -04:00
|
|
|
|
2008-01-25 02:58:29 -05:00
|
|
|
config.firewalled = true;
|
|
|
|
config.forwardPort = true;
|
2007-11-14 22:18:48 -05:00
|
|
|
|
2011-07-09 14:39:34 -04:00
|
|
|
config.extAddr = rs_inet_ntoa(pstate.serveraddr.sin_addr);
|
|
|
|
config.extPort = ntohs(pstate.serveraddr.sin_port);
|
2007-11-14 22:18:48 -05:00
|
|
|
config.promptAtBoot = true; /* popup the password prompt */
|
|
|
|
|
2008-10-18 12:02:06 -04:00
|
|
|
/* update network configuration */
|
|
|
|
|
2010-07-04 06:42:17 -04:00
|
|
|
pqiNetStatus status;
|
2011-07-09 14:39:34 -04:00
|
|
|
mNetMgr->getNetStatus(status);
|
2010-10-31 09:53:28 -04:00
|
|
|
|
2010-07-04 06:42:17 -04:00
|
|
|
config.netLocalOk = status.mLocalAddrOk;
|
|
|
|
config.netUpnpOk = status.mUpnpOk;
|
|
|
|
config.netStunOk = false;
|
|
|
|
config.netExtraAddressOk = status.mExtAddrOk;
|
2008-10-18 12:02:06 -04:00
|
|
|
|
2010-10-31 09:53:28 -04:00
|
|
|
config.netDhtOk = status.mDhtOk;
|
|
|
|
config.netDhtNetSize = status.mDhtNetworkSize;
|
|
|
|
config.netDhtRsNetSize = status.mDhtRsNetworkSize;
|
|
|
|
|
2007-11-14 22:18:48 -05:00
|
|
|
/* update DHT/UPnP config */
|
2008-01-25 02:58:29 -05:00
|
|
|
|
2011-07-09 14:39:34 -04:00
|
|
|
config.uPnPState = mNetMgr->getUPnPState();
|
|
|
|
config.uPnPActive = mNetMgr->getUPnPEnabled();
|
2008-01-25 02:58:29 -05:00
|
|
|
config.DHTPeers = 20;
|
2011-07-09 14:39:34 -04:00
|
|
|
config.DHTActive = mNetMgr->getDHTEnabled();
|
2007-11-14 22:18:48 -05:00
|
|
|
|
|
|
|
/* Notify of Changes */
|
2009-02-22 12:36:39 -05:00
|
|
|
// iface.setChanged(RsIface::Config);
|
|
|
|
rsicontrol->getNotify().notifyListChange(NOTIFY_LIST_CONFIG, NOTIFY_TYPE_MOD);
|
2007-11-14 22:18:48 -05:00
|
|
|
|
|
|
|
/* unlock Mutexes */
|
|
|
|
iface.unlockData(); /* UNLOCK */
|
|
|
|
unlockRsCore(); /* UNLOCK */
|
|
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2008-02-07 11:18:34 -05:00
|
|
|
void RsServer::ConfigFinalSave()
|
|
|
|
{
|
2008-11-13 18:03:46 -05:00
|
|
|
/* force saving of transfers TODO */
|
2008-11-02 06:38:11 -05:00
|
|
|
//ftserver->saveFileTransferStatus();
|
2010-04-08 08:02:46 -04:00
|
|
|
if(!RsInit::getAutoLogin())
|
|
|
|
RsInit::RsClearAutoLogin();
|
2008-02-08 07:39:40 -05:00
|
|
|
|
2010-01-13 16:22:52 -05:00
|
|
|
//AuthSSL::getAuthSSL()->FinalSaveCertificates();
|
2008-02-07 11:18:34 -05:00
|
|
|
mConfigMgr->completeConfiguration();
|
|
|
|
}
|
|
|
|
|
2008-04-06 16:57:36 -04:00
|
|
|
void RsServer::rsGlobalShutDown()
|
|
|
|
{
|
2010-05-08 12:10:34 -04:00
|
|
|
// TODO: cache should also clean up old files
|
2010-12-18 14:35:07 -05:00
|
|
|
|
2008-04-06 16:57:36 -04:00
|
|
|
ConfigFinalSave(); // save configuration before exit
|
2011-07-09 14:39:34 -04:00
|
|
|
mNetMgr->shutdown(); /* Handles UPnP */
|
2008-04-09 08:54:15 -04:00
|
|
|
|
2010-05-29 11:14:25 -04:00
|
|
|
join();
|
|
|
|
ftserver->StopThreads();
|
2010-09-30 15:05:43 -04:00
|
|
|
|
2012-08-02 09:17:53 -04:00
|
|
|
mPluginsManager->stopPlugins();
|
|
|
|
|
2011-04-03 12:20:47 -04:00
|
|
|
// stop the p3distrib threads
|
2012-12-11 17:26:11 -05:00
|
|
|
|
2011-04-03 12:20:47 -04:00
|
|
|
mForums->join();
|
|
|
|
mChannels->join();
|
|
|
|
|
2012-12-16 10:04:52 -05:00
|
|
|
|
|
|
|
|
|
|
|
#ifdef RS_ENABLE_GXS
|
2013-04-04 13:23:10 -04:00
|
|
|
//if(mGxsCircles) mGxsCircles->join();
|
2012-12-11 17:26:11 -05:00
|
|
|
if(mGxsForums) mGxsForums->join();
|
2013-03-04 15:26:48 -05:00
|
|
|
if(mGxsChannels) mGxsChannels->join();
|
2012-12-11 17:26:11 -05:00
|
|
|
if(mGxsIdService) mGxsIdService->join();
|
|
|
|
if(mPosted) mPosted->join();
|
2013-04-04 13:23:10 -04:00
|
|
|
//if(mPhoto) mPhoto->join();
|
2012-12-11 17:26:11 -05:00
|
|
|
if(mWiki) mWiki->join();
|
|
|
|
if(mWire) mWire->join();
|
2012-12-16 10:04:52 -05:00
|
|
|
#endif
|
2012-12-11 17:26:11 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2011-04-03 12:20:47 -04:00
|
|
|
#ifdef RS_USE_BLOGS
|
|
|
|
mBlogs->join();
|
|
|
|
#endif
|
|
|
|
|
2012-06-09 20:29:46 -04:00
|
|
|
AuthGPG::exit();
|
2010-05-29 11:14:25 -04:00
|
|
|
}
|