mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-14 20:12:29 -04:00
Work-in-progress to reduce latency time:
* service->SendItem() now goes direct to pqistreamer buffer. * split p3FastService out of p3Service. p3FastService removes the recv buffer for faster processing. p3Service maintains its original interface, so derivate classes can remain unchanged. * Added uint32_t usec (wait period) to BinInterface.moretoread() & cansend() for future threading. * Added Mutex protection to pqistreamer, pqissl and derivatives of both. git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.6-initdev@6783 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
8e7fe9f79b
commit
a7dd9ad9e3
24 changed files with 713 additions and 574 deletions
|
@ -109,14 +109,37 @@ virtual int senddata(void*, int);
|
|||
virtual int readdata(void*, int);
|
||||
virtual int netstatus();
|
||||
virtual int isactive();
|
||||
virtual bool moretoread();
|
||||
virtual bool cansend();
|
||||
virtual bool moretoread(uint32_t usec);
|
||||
virtual bool cansend(uint32_t usec);
|
||||
|
||||
virtual int close(); /* BinInterface version of reset() */
|
||||
virtual std::string gethash(); /* not used here */
|
||||
virtual bool bandwidthLimited() { return true ; } // replace by !sameLAN to avoid bandwidth limiting on LAN
|
||||
|
||||
public:
|
||||
|
||||
/* Completion of the SSL connection,
|
||||
* this is public, so it can be called by
|
||||
* the listener (should make friends??)
|
||||
*/
|
||||
|
||||
int accept(SSL *ssl, int fd, const struct sockaddr_storage &foreign_addr);
|
||||
void getCryptoParams(RsPeerCryptoParams& params) ;
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
/* no mutex protection for these ones */
|
||||
|
||||
p3LinkMgr *mLinkMgr;
|
||||
pqissllistener *pqil;
|
||||
|
||||
RsMutex mSslMtx; /**** MUTEX protects data and fn below ****/
|
||||
|
||||
virtual int reset_locked();
|
||||
int accept_locked(SSL *ssl, int fd, const struct sockaddr_storage &foreign_addr);
|
||||
|
||||
// A little bit of information to describe
|
||||
// the SSL state, this is needed
|
||||
// to allow full Non-Blocking Connect behaviour.
|
||||
|
@ -124,7 +147,6 @@ protected:
|
|||
// to complete an SSL.
|
||||
|
||||
int ConnectAttempt();
|
||||
int waiting;
|
||||
|
||||
virtual int Failed_Connection();
|
||||
|
||||
|
@ -143,18 +165,6 @@ int Authorise_SSL_Connection();
|
|||
|
||||
int Extract_Failed_SSL_Certificate(); // try to get cert anyway.
|
||||
|
||||
public:
|
||||
|
||||
/* Completion of the SSL connection,
|
||||
* this is public, so it can be called by
|
||||
* the listener (should make friends??)
|
||||
*/
|
||||
|
||||
int accept(SSL *ssl, int fd, const struct sockaddr_storage &foreign_addr);
|
||||
|
||||
void getCryptoParams(RsPeerCryptoParams& params) ;
|
||||
|
||||
protected:
|
||||
|
||||
//protected internal fns that are overloaded for udp case.
|
||||
virtual int net_internal_close(int fd);
|
||||
|
@ -166,13 +176,14 @@ virtual int net_internal_fcntl_nonblock(int fd);
|
|||
bool active;
|
||||
bool certvalid;
|
||||
|
||||
int waiting;
|
||||
|
||||
// addition for udp (tcp version == ACTIVE).
|
||||
int sslmode;
|
||||
|
||||
SSL *ssl_connection;
|
||||
int sockfd;
|
||||
|
||||
pqissllistener *pqil;
|
||||
struct sockaddr_storage remote_addr;
|
||||
|
||||
void *readpkt;
|
||||
|
@ -193,7 +204,6 @@ virtual int net_internal_fcntl_nonblock(int fd);
|
|||
uint32_t mConnectTimeout;
|
||||
time_t mTimeoutTS;
|
||||
|
||||
p3LinkMgr *mLinkMgr;
|
||||
|
||||
private:
|
||||
// ssl only fns.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue