mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-09 17:45:15 -04:00

This is not enabled by default. Instructions to enable are at the end of msg. This is 60% complete. Supports creation of certificates, adding friends and connections. Parts still to do: pgpids, p3discovery, signing and trusting peers. The main reason it is being commited is so that connections between peers can be properly tested, and development on OSX and win can start. This requires gpg and the gpgme.h development libraries, and no longer requires the custom ssl libraries. To compile it switch the configuration flags in scripts/config-linux.mk To compile XPGP (v0.4.x) enable PQI_USE_XPGP: #PQI_USE_SSLONLY = 1 PQI_USE_XPGP = 1 To compile SSL only, enable PQI_USE_SSLONLY: PQI_USE_SSLONLY = 1 #PQI_USE_XPGP = 1 To compile OpenPGP, disable both: #PQI_USE_SSLONLY = 1 #PQI_USE_XPGP = 1 and enable RS_USEPGPSSL in rsiface/rsinit.h git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@1265 b45a01b8-16f6-495d-af2f-9b41ad6348cc
98 lines
3.1 KiB
C++
98 lines
3.1 KiB
C++
#ifndef RETROSHARE_P3_PEER_INTERFACE_H
|
|
#define RETROSHARE_P3_PEER_INTERFACE_H
|
|
|
|
/*
|
|
* libretroshare/src/rsserver: p3peers.h
|
|
*
|
|
* RetroShare C++ Interface.
|
|
*
|
|
* Copyright 2004-2008 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 "rsiface/rspeers.h"
|
|
#include "pqi/p3connmgr.h"
|
|
#include "pqi/p3authmgr.h"
|
|
|
|
class p3Peers: public RsPeers
|
|
{
|
|
public:
|
|
|
|
p3Peers(p3ConnectMgr *cm, p3AuthMgr *am);
|
|
virtual ~p3Peers() { return; }
|
|
|
|
/* Updates ... */
|
|
virtual bool FriendsChanged();
|
|
virtual bool OthersChanged();
|
|
|
|
/* Peer Details (Net & Auth) */
|
|
virtual std::string getOwnId();
|
|
|
|
virtual bool getOnlineList(std::list<std::string> &ids);
|
|
virtual bool getFriendList(std::list<std::string> &ids);
|
|
virtual bool getOthersList(std::list<std::string> &ids);
|
|
|
|
virtual bool isOnline(std::string id);
|
|
virtual bool isFriend(std::string id);
|
|
virtual std::string getPeerName(std::string id);
|
|
virtual bool getPeerDetails(std::string id, RsPeerDetails &d);
|
|
|
|
/* Using PGP Ids */
|
|
virtual std::string getPGPOwnId();
|
|
virtual bool getPGPFriendList(std::list<std::string> &ids);
|
|
virtual bool getPGPAllList(std::list<std::string> &ids);
|
|
|
|
|
|
/* Add/Remove Friends */
|
|
virtual bool addFriend(std::string id);
|
|
virtual bool removeFriend(std::string id);
|
|
|
|
/* get/set third party info about who trusts me */
|
|
virtual bool isTrustingMe(std::string id) const ;
|
|
|
|
/* Network Stuff */
|
|
virtual bool connectAttempt(std::string id);
|
|
virtual bool setLocalAddress(std::string id, std::string addr, uint16_t port);
|
|
virtual bool setExtAddress(std::string id, std::string addr, uint16_t port);
|
|
virtual bool setNetworkMode(std::string id, uint32_t netMode);
|
|
virtual bool setVisState(std::string id, uint32_t mode);
|
|
|
|
virtual void getIPServersList(std::list<std::string>& ip_servers) ;
|
|
virtual void allowServerIPDetermination(bool) ;
|
|
virtual bool getAllowServerIPDetermination() ;
|
|
|
|
/* Auth Stuff */
|
|
virtual std::string GetRetroshareInvite();
|
|
|
|
virtual bool LoadCertificateFromFile(std::string fname, std::string &id);
|
|
virtual bool LoadCertificateFromString(std::string cert, std::string &id);
|
|
virtual bool SaveCertificateToFile(std::string id, std::string fname);
|
|
virtual std::string SaveCertificateToString(std::string id);
|
|
|
|
virtual bool AuthCertificate(std::string id, std::string code);
|
|
virtual bool SignCertificate(std::string id);
|
|
virtual bool TrustCertificate(std::string id, bool trust);
|
|
|
|
private:
|
|
|
|
p3ConnectMgr *mConnMgr;
|
|
p3AuthMgr *mAuthMgr;
|
|
};
|
|
|
|
#endif
|