Major cleanup of Retroshare Logging - aimed at enabling proper UDP testing.

* Switched off most of std::cerr output. (expect UPnP)
 * moved pqi/pqidebug to util/rsdebug to allow greater usage.
 * added Mutexes to logging.
 * Downgraded many log messages to DEBUG.
 * New Log messages for connections, dht and udp code.
 * Added check for bad UDP socket.
 * Added check for non-firewalled scenario.
 * Increased Storage period from 1 Month to 6 Months for Links & Blog.




git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@644 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
drbob 2008-07-10 16:29:18 +00:00
parent afeb93d0f3
commit d36b15d526
33 changed files with 867 additions and 346 deletions

View File

@ -7,7 +7,7 @@ RS_TOP_DIR = ..
include $(RS_TOP_DIR)/scripts/config.mk include $(RS_TOP_DIR)/scripts/config.mk
############################################################### ###############################################################
BASE_OBJ = pqidebug.o pqisecurity.o pqinetwork.o BASE_OBJ = pqisecurity.o pqinetwork.o
#pqi_base.o #pqi_base.o
LOOP_OBJ = pqiloopback.o LOOP_OBJ = pqiloopback.o

View File

@ -874,8 +874,10 @@ XPGP *AuthXPGP::loadXPGPFromFile(std::string fname, std::string hash)
// load certificates from file. // load certificates from file.
if (pcertfp == NULL) if (pcertfp == NULL)
{ {
#ifdef AUTHXPGP_DEBUG
std::cerr << "sslroot::loadcertificate() Bad File: " << fname; std::cerr << "sslroot::loadcertificate() Bad File: " << fname;
std::cerr << " Cannot be Hashed!" << std::endl; std::cerr << " Cannot be Hashed!" << std::endl;
#endif
return NULL; return NULL;
} }
@ -900,7 +902,9 @@ XPGP *AuthXPGP::loadXPGPFromFile(std::string fname, std::string hash)
char inall[maxsize]; char inall[maxsize];
if (0 == (rbytes = fread(inall, 1, maxsize, pcertfp))) if (0 == (rbytes = fread(inall, 1, maxsize, pcertfp)))
{ {
#ifdef AUTHXPGP_DEBUG
std::cerr << "Error Reading Peer Record!" << std::endl; std::cerr << "Error Reading Peer Record!" << std::endl;
#endif
return NULL; return NULL;
} }
//std::cerr << "Read " << rbytes << std::endl; //std::cerr << "Read " << rbytes << std::endl;
@ -928,8 +932,10 @@ XPGP *AuthXPGP::loadXPGPFromFile(std::string fname, std::string hash)
bool same = true; bool same = true;
if (signlen != hash.length()) if (signlen != hash.length())
{ {
#ifdef AUTHXPGP_DEBUG
std::cerr << "Different Length Signatures... "; std::cerr << "Different Length Signatures... ";
std::cerr << "Cannot Load Certificate!" << std::endl; std::cerr << "Cannot Load Certificate!" << std::endl;
#endif
fclose(pcertfp); fclose(pcertfp);
return NULL; return NULL;
} }
@ -939,18 +945,24 @@ XPGP *AuthXPGP::loadXPGPFromFile(std::string fname, std::string hash)
if (signature[i] != (unsigned char) hash[i]) if (signature[i] != (unsigned char) hash[i])
{ {
same = false; same = false;
#ifdef AUTHXPGP_DEBUG
std::cerr << "Invalid Signature... "; std::cerr << "Invalid Signature... ";
std::cerr << "Cannot Load Certificate!" << std::endl; std::cerr << "Cannot Load Certificate!" << std::endl;
#endif
fclose(pcertfp); fclose(pcertfp);
return NULL; return NULL;
} }
} }
#ifdef AUTHXPGP_DEBUG
std::cerr << "Verified Signature for: " << fname; std::cerr << "Verified Signature for: " << fname;
std::cerr << std::endl; std::cerr << std::endl;
#endif
} }
else else
{ {
#ifdef AUTHXPGP_DEBUG
std::cerr << "Not checking cert signature" << std::endl; std::cerr << "Not checking cert signature" << std::endl;
#endif
} }
fseek(pcertfp, 0, SEEK_SET); /* rewind */ fseek(pcertfp, 0, SEEK_SET); /* rewind */
@ -960,7 +972,9 @@ XPGP *AuthXPGP::loadXPGPFromFile(std::string fname, std::string hash)
if (pc != NULL) if (pc != NULL)
{ {
// read a certificate. // read a certificate.
#ifdef AUTHXPGP_DEBUG
std::cerr << "Loaded Certificate: " << pc -> name << std::endl; std::cerr << "Loaded Certificate: " << pc -> name << std::endl;
#endif
} }
else // (pc == NULL) else // (pc == NULL)
{ {
@ -984,12 +998,16 @@ bool AuthXPGP::saveXPGPToFile(XPGP *xpgp, std::string fname, std::string &hash
FILE *setfp = fopen(fname.c_str(), "wb"); FILE *setfp = fopen(fname.c_str(), "wb");
if (setfp == NULL) if (setfp == NULL)
{ {
#ifdef AUTHXPGP_DEBUG
std::cerr << "sslroot::savecertificate() Bad File: " << fname; std::cerr << "sslroot::savecertificate() Bad File: " << fname;
std::cerr << " Cannot be Written!" << std::endl; std::cerr << " Cannot be Written!" << std::endl;
#endif
return false; return false;
} }
#ifdef AUTHXPGP_DEBUG
std::cerr << "Writing out Cert...:" << xpgp->name << std::endl; std::cerr << "Writing out Cert...:" << xpgp->name << std::endl;
#endif
PEM_write_XPGP(setfp, xpgp); PEM_write_XPGP(setfp, xpgp);
fclose(setfp); fclose(setfp);
@ -998,8 +1016,10 @@ bool AuthXPGP::saveXPGPToFile(XPGP *xpgp, std::string fname, std::string &hash
setfp = fopen(fname.c_str(), "rb"); setfp = fopen(fname.c_str(), "rb");
if (setfp == NULL) if (setfp == NULL)
{ {
#ifdef AUTHXPGP_DEBUG
std::cerr << "sslroot::savecertificate() Bad File: " << fname; std::cerr << "sslroot::savecertificate() Bad File: " << fname;
std::cerr << " Opened for ReHash!" << std::endl; std::cerr << " Opened for ReHash!" << std::endl;
#endif
return false; return false;
} }
@ -1011,10 +1031,14 @@ bool AuthXPGP::saveXPGPToFile(XPGP *xpgp, std::string fname, std::string &hash
char inall[maxsize]; char inall[maxsize];
if (0 == (rbytes = fread(inall, 1, maxsize, setfp))) if (0 == (rbytes = fread(inall, 1, maxsize, setfp)))
{ {
#ifdef AUTHXPGP_DEBUG
std::cerr << "Error Writing Peer Record!" << std::endl; std::cerr << "Error Writing Peer Record!" << std::endl;
#endif
return -1; return -1;
} }
#ifdef AUTHXPGP_DEBUG
std::cerr << "Read " << rbytes << std::endl; std::cerr << "Read " << rbytes << std::endl;
#endif
EVP_MD_CTX *mdctx = EVP_MD_CTX_create(); EVP_MD_CTX *mdctx = EVP_MD_CTX_create();
@ -1033,17 +1057,25 @@ bool AuthXPGP::saveXPGPToFile(XPGP *xpgp, std::string fname, std::string &hash
std::cerr << "EVP_SignFinal Failure!" << std::endl; std::cerr << "EVP_SignFinal Failure!" << std::endl;
} }
#ifdef AUTHXPGP_DEBUG
std::cerr << "Saved Cert: " << xpgp->name; std::cerr << "Saved Cert: " << xpgp->name;
std::cerr << std::endl; std::cerr << std::endl;
#endif
#ifdef AUTHXPGP_DEBUG
std::cerr << "Cert + Setting Signature is(" << signlen << "): "; std::cerr << "Cert + Setting Signature is(" << signlen << "): ";
#endif
std::string signstr; std::string signstr;
for(uint32_t i = 0; i < signlen; i++) for(uint32_t i = 0; i < signlen; i++)
{ {
#ifdef AUTHXPGP_DEBUG
fprintf(stderr, "%02x", signature[i]); fprintf(stderr, "%02x", signature[i]);
#endif
signstr += signature[i]; signstr += signature[i];
} }
#ifdef AUTHXPGP_DEBUG
std::cerr << std::endl; std::cerr << std::endl;
#endif
hash = signstr; hash = signstr;
fclose(setfp); fclose(setfp);

View File

@ -25,11 +25,16 @@
#include "pqi/p3connmgr.h" #include "pqi/p3connmgr.h"
#include "tcponudp/tou.h" #include "tcponudp/tou.h"
#include "util/rsprint.h" #include "util/rsprint.h"
#include "util/rsdebug.h"
const int p3connectzone = 3431;
#include "serialiser/rsconfigitems.h" #include "serialiser/rsconfigitems.h"
#include "pqi/pqinotify.h" #include "pqi/pqinotify.h"
#include <sstream>
/* Network setup States */ /* Network setup States */
const uint32_t RS_NET_UNKNOWN = 0x0001; const uint32_t RS_NET_UNKNOWN = 0x0001;
@ -57,7 +62,6 @@ const uint32_t MAX_UPNP_INIT = 10; /* seconds UPnP timeout */
* #define P3CONNMGR_NO_AUTO_CONNECTION 1 * #define P3CONNMGR_NO_AUTO_CONNECTION 1
***/ ***/
const uint32_t P3CONNMGR_TCP_DEFAULT_DELAY = 2; /* 2 Seconds? is it be enough! */ const uint32_t P3CONNMGR_TCP_DEFAULT_DELAY = 2; /* 2 Seconds? is it be enough! */
const uint32_t P3CONNMGR_UDP_DHT_DELAY = DHT_NOTIFY_PERIOD + 60; /* + 1 minute for DHT POST */ const uint32_t P3CONNMGR_UDP_DHT_DELAY = DHT_NOTIFY_PERIOD + 60; /* + 1 minute for DHT POST */
const uint32_t P3CONNMGR_UDP_PROXY_DELAY = 30; /* 30 seconds (NOT IMPLEMENTED YET!) */ const uint32_t P3CONNMGR_UDP_PROXY_DELAY = 30; /* 30 seconds (NOT IMPLEMENTED YET!) */
@ -623,6 +627,13 @@ void p3ConnectMgr::netUdpCheck()
} }
else // if (extAddrStable) else // if (extAddrStable)
{ {
/* Check if extAddr == intAddr (Not Firewalled) */
if ((0 == inaddr_cmp(iaddr, extAddr)) &&
isExternalNet(&(extAddr.sin_addr)))
{
mode |= RS_NET_CONN_TCP_EXTERNAL;
}
mode |= RS_NET_CONN_UDP_DHT_SYNC; mode |= RS_NET_CONN_UDP_DHT_SYNC;
} }
@ -1442,6 +1453,20 @@ void p3ConnectMgr::peerStatus(std::string id,
std::cerr << " source: " << source; std::cerr << " source: " << source;
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3ConnectMgr::peerStatus()";
out << " id: " << id;
out << " laddr: " << inet_ntoa(laddr.sin_addr);
out << " lport: " << ntohs(laddr.sin_port);
out << " raddr: " << inet_ntoa(raddr.sin_addr);
out << " rport: " << ntohs(raddr.sin_port);
out << " type: " << type;
out << " flags: " << flags;
out << " source: " << source;
rslog(RSL_WARNING, p3connectzone, out.str());
}
/* look up the id */ /* look up the id */
it = mFriendList.find(id); it = mFriendList.find(id);
@ -1605,6 +1630,12 @@ void p3ConnectMgr::peerStatus(std::string id,
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3ConnectMgr::peerStatus() NO CONNECT (not friend)";
rslog(RSL_WARNING, p3connectzone, out.str());
}
return; return;
} }
@ -1616,6 +1647,12 @@ void p3ConnectMgr::peerStatus(std::string id,
std::cerr << " id: " << id; std::cerr << " id: " << id;
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3ConnectMgr::peerStatus() NO CONNECT (already connected!)";
rslog(RSL_WARNING, p3connectzone, out.str());
}
return; return;
} }
@ -1680,6 +1717,20 @@ void p3ConnectMgr::peerStatus(std::string id,
std::cerr << " source: " << source; std::cerr << " source: " << source;
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3ConnectMgr::peerStatus() PushBack Local TCP Address: ";
out << " id: " << id;
out << " laddr: " << inet_ntoa(pca.addr.sin_addr);
out << ":" << ntohs(pca.addr.sin_port);
out << " type: " << pca.type;
out << " delay: " << pca.delay;
out << " period: " << pca.period;
out << " ts: " << pca.ts;
out << " source: " << source;
rslog(RSL_WARNING, p3connectzone, out.str());
}
it->second.connAddrs.push_back(pca); it->second.connAddrs.push_back(pca);
} }
@ -1712,14 +1763,28 @@ void p3ConnectMgr::peerStatus(std::string id,
#ifdef CONN_DEBUG #ifdef CONN_DEBUG
std::cerr << "p3ConnectMgr::peerStatus() ADDING TCP_REMOTE ADDR: "; std::cerr << "p3ConnectMgr::peerStatus() ADDING TCP_REMOTE ADDR: ";
std::cerr << " id: " << id; std::cerr << " id: " << id;
std::cerr << " laddr: " << inet_ntoa(pca.addr.sin_addr); std::cerr << " raddr: " << inet_ntoa(pca.addr.sin_addr);
std::cerr << " lport: " << ntohs(pca.addr.sin_port); std::cerr << " rport: " << ntohs(pca.addr.sin_port);
std::cerr << " delay: " << pca.delay; std::cerr << " delay: " << pca.delay;
std::cerr << " period: " << pca.period; std::cerr << " period: " << pca.period;
std::cerr << " type: " << pca.type; std::cerr << " type: " << pca.type;
std::cerr << " source: " << source; std::cerr << " source: " << source;
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3ConnectMgr::peerStatus() PushBack Remote TCP Address: ";
out << " id: " << id;
out << " raddr: " << inet_ntoa(pca.addr.sin_addr);
out << ":" << ntohs(pca.addr.sin_port);
out << " type: " << pca.type;
out << " delay: " << pca.delay;
out << " period: " << pca.period;
out << " ts: " << pca.ts;
out << " source: " << source;
rslog(RSL_WARNING, p3connectzone, out.str());
}
it->second.connAddrs.push_back(pca); it->second.connAddrs.push_back(pca);
} }
@ -1808,6 +1873,16 @@ void p3ConnectMgr::peerConnectRequest(std::string id, struct sockaddr_in radd
std::cerr << " source: " << source; std::cerr << " source: " << source;
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3ConnectMgr::peerConnectRequest()";
out << " id: " << id;
out << " raddr: " << inet_ntoa(raddr.sin_addr);
out << ":" << ntohs(raddr.sin_port);
out << " source: " << source;
rslog(RSL_WARNING, p3connectzone, out.str());
}
/******************** TCP PART *****************************/ /******************** TCP PART *****************************/
@ -1910,6 +1985,20 @@ void p3ConnectMgr::peerConnectRequest(std::string id, struct sockaddr_in radd
pca.addr = raddr; pca.addr = raddr;
{
/* Log */
std::ostringstream out;
out << "p3ConnectMgr::peerConnectRequest() PushBack UDP Address: ";
out << " id: " << id;
out << " raddr: " << inet_ntoa(pca.addr.sin_addr);
out << ":" << ntohs(pca.addr.sin_port);
out << " type: " << pca.type;
out << " delay: " << pca.delay;
out << " period: " << pca.period;
out << " ts: " << pca.ts;
rslog(RSL_WARNING, p3connectzone, out.str());
}
/* push to the back ... TCP ones should be tried first */ /* push to the back ... TCP ones should be tried first */
it->second.connAddrs.push_back(pca); it->second.connAddrs.push_back(pca);
} }
@ -2271,6 +2360,20 @@ bool p3ConnectMgr::retryConnectTCP(std::string id)
pca.type = RS_NET_CONN_TCP_LOCAL; pca.type = RS_NET_CONN_TCP_LOCAL;
pca.addr = it->second.localaddr; pca.addr = it->second.localaddr;
{
/* Log */
std::ostringstream out;
out << "p3ConnectMgr::retryConnectTCP() PushBack Local TCP Address: ";
out << " id: " << id;
out << " raddr: " << inet_ntoa(pca.addr.sin_addr);
out << ":" << ntohs(pca.addr.sin_port);
out << " type: " << pca.type;
out << " delay: " << pca.delay;
out << " period: " << pca.period;
out << " ts: " << pca.ts;
rslog(RSL_WARNING, p3connectzone, out.str());
}
it->second.connAddrs.push_back(pca); it->second.connAddrs.push_back(pca);
} }
else else
@ -2328,6 +2431,20 @@ bool p3ConnectMgr::retryConnectTCP(std::string id)
pca.type = RS_NET_CONN_TCP_EXTERNAL; pca.type = RS_NET_CONN_TCP_EXTERNAL;
pca.addr = it->second.serveraddr; pca.addr = it->second.serveraddr;
{
/* Log */
std::ostringstream out;
out << "p3ConnectMgr::retryConnectTCP() PushBack Ext TCP Address: ";
out << " id: " << id;
out << " raddr: " << inet_ntoa(pca.addr.sin_addr);
out << ":" << ntohs(pca.addr.sin_port);
out << " type: " << pca.type;
out << " delay: " << pca.delay;
out << " period: " << pca.period;
out << " ts: " << pca.ts;
rslog(RSL_WARNING, p3connectzone, out.str());
}
it->second.connAddrs.push_back(pca); it->second.connAddrs.push_back(pca);
} }
else else
@ -2425,6 +2542,13 @@ bool p3ConnectMgr::retryConnectNotify(std::string id)
std::cerr << " id: " << id; std::cerr << " id: " << id;
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3ConnectMgr::retryConnectNotify() Notifying Peer";
out << " id: " << id;
rslog(RSL_WARNING, p3connectzone, out.str());
}
/* attempt UDP connection */ /* attempt UDP connection */
mDhtMgr->notifyPeer(id); mDhtMgr->notifyPeer(id);

View File

@ -30,6 +30,8 @@
#include <iomanip> #include <iomanip>
#include "util/rsprint.h" #include "util/rsprint.h"
#include "util/rsdebug.h"
const int p3dhtzone = 3892;
/***** /*****
* #define DHT_DEBUG 1 * #define DHT_DEBUG 1
@ -193,6 +195,18 @@ bool p3DhtMgr::setExternalInterface(
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
/* Log External Interface too */
std::ostringstream out;
out << "p3DhtMgr::setExternalInterface()";
out << " laddr: " << inet_ntoa(ownEntry.laddr.sin_addr);
out << " lport: " << ntohs(ownEntry.laddr.sin_port);
out << " raddr: " << inet_ntoa(ownEntry.raddr.sin_addr);
out << " rport: " << ntohs(ownEntry.raddr.sin_port);
out << " type: " << ownEntry.type;
out << " state: " << ownEntry.state;
rslog(RSL_WARNING, p3dhtzone, out.str());
dhtMtx.unlock(); /* UNLOCK MUTEX */ dhtMtx.unlock(); /* UNLOCK MUTEX */
return true; return true;
@ -293,6 +307,13 @@ bool p3DhtMgr::notifyPeer(std::string id)
#ifdef DHT_DEBUG #ifdef DHT_DEBUG
std::cerr << "p3DhtMgr::notifyPeer() TO SOON - DROPPING" << std::endl; std::cerr << "p3DhtMgr::notifyPeer() TO SOON - DROPPING" << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3DhtMgr::notifyPeer() Id: " << id;
out << " TO SOON - DROPPING";
rslog(RSL_WARNING, p3dhtzone, out.str());
}
return false; return false;
} }
@ -305,6 +326,13 @@ bool p3DhtMgr::notifyPeer(std::string id)
#ifdef DHT_DEBUG #ifdef DHT_DEBUG
std::cerr << "p3DhtMgr::notifyPeer() PEER NOT FOUND - Trigger search" << std::endl; std::cerr << "p3DhtMgr::notifyPeer() PEER NOT FOUND - Trigger search" << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3DhtMgr::notifyPeer() Id: " << id;
out << " PEER NOT FOUND - Trigger Search";
rslog(RSL_WARNING, p3dhtzone, out.str());
}
it->second.lastTS = 0; it->second.lastTS = 0;
} }
@ -567,6 +595,20 @@ int p3DhtMgr::checkOwnDHTKeys()
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3DhtMgr::checkOwnDHTKeys() PUBLISH OWN ADDR:";
out << " hash1: " << RsUtil::BinToHex(peer.hash1);
out << " laddr: " << inet_ntoa(peer.laddr.sin_addr);
out << " :" << ntohs(peer.laddr.sin_port);
out << " raddr: " << inet_ntoa(peer.raddr.sin_addr);
out << ":" << ntohs(peer.raddr.sin_port);
out << " type: " << peer.type;
rslog(RSL_WARNING, p3dhtzone, out.str());
}
/* publish own key */ /* publish own key */
if (dhtPublish(peer.hash1, peer.laddr, peer.raddr, peer.type, "")) if (dhtPublish(peer.hash1, peer.laddr, peer.raddr, peer.type, ""))
{ {
@ -626,6 +668,13 @@ int p3DhtMgr::checkOwnDHTKeys()
std::cerr << "p3DhtMgr::checkOwnDHTKeys() check for Notify (rep=0)"; std::cerr << "p3DhtMgr::checkOwnDHTKeys() check for Notify (rep=0)";
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3DhtMgr::checkOwnDHTKeys() Checking for NOTIFY";
rslog(RSL_WARNING, p3dhtzone, out.str());
}
if (dhtSearch(peer.hash1, DHT_MODE_NOTIFY)) if (dhtSearch(peer.hash1, DHT_MODE_NOTIFY))
{ {
dhtMtx.lock(); /* LOCK MUTEX */ dhtMtx.lock(); /* LOCK MUTEX */
@ -805,12 +854,6 @@ int p3DhtMgr::checkNotifyDHT()
if (it->second.notifyPending) if (it->second.notifyPending)
{ {
if (it->second.state == DHT_PEER_FOUND)
{
notifyType = it->second.notifyPending;
break;
}
/* if very old drop it */ /* if very old drop it */
if (now - it->second.notifyTS > DHT_NOTIFY_PERIOD) if (now - it->second.notifyTS > DHT_NOTIFY_PERIOD)
{ {
@ -820,6 +863,12 @@ int p3DhtMgr::checkNotifyDHT()
#endif #endif
it->second.notifyPending = 0; it->second.notifyPending = 0;
} }
if (it->second.state == DHT_PEER_FOUND)
{
notifyType = it->second.notifyPending;
break;
}
} }
} }
@ -833,6 +882,12 @@ int p3DhtMgr::checkNotifyDHT()
std::cerr << "p3DhtMgr::checkNotifyDHT() Notify From: "; std::cerr << "p3DhtMgr::checkNotifyDHT() Notify From: ";
std::cerr << it->first << std::endl; std::cerr << it->first << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3DhtMgr::checkNotifyDHT() Notify Request for Known Peer: " << it->first;
rslog(RSL_WARNING, p3dhtzone, out.str());
}
/* update timestamp */ /* update timestamp */
it->second.notifyTS = now; it->second.notifyTS = now;
@ -853,6 +908,12 @@ int p3DhtMgr::checkNotifyDHT()
std::cerr << "p3DhtMgr::checkNotifyDHT() Posting Active Notify"; std::cerr << "p3DhtMgr::checkNotifyDHT() Posting Active Notify";
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3DhtMgr::checkNotifyDHT() POST DHT (Active Notify) for Peer: " << peer.id;
rslog(RSL_WARNING, p3dhtzone, out.str());
}
dhtNotify(peer.hash1, own.hash2, ""); dhtNotify(peer.hash1, own.hash2, "");
} }
@ -1565,6 +1626,13 @@ bool p3DhtMgr::dhtResultNotify(std::string idhash)
#ifdef DHT_DEBUG #ifdef DHT_DEBUG
std::cerr << "p3DhtMgr::dhtResult() NOTIFY for id: " << it->first << std::endl; std::cerr << "p3DhtMgr::dhtResult() NOTIFY for id: " << it->first << std::endl;
#endif #endif
{
/* Log */
std::ostringstream out;
out << "p3DhtMgr::dhtResultNotify() NOTIFY from Id: " << it->first;
rslog(RSL_WARNING, p3dhtzone, out.str());
}
/* delay callback -> if they are not found */ /* delay callback -> if they are not found */
it->second.notifyTS = now; it->second.notifyTS = now;
it->second.notifyPending = RS_CONNECT_PASSIVE; it->second.notifyPending = RS_CONNECT_PASSIVE;
@ -1618,6 +1686,19 @@ bool p3DhtMgr::dhtResultSearch(std::string idhash,
#endif #endif
it->second.lastTS = now; it->second.lastTS = now;
{
/* Log */
std::ostringstream out;
out << "p3DhtMgr::dhtSearchResult() for Id: " << it->first;
out << " laddr: " << inet_ntoa(laddr.sin_addr);
out << ":" << ntohs(laddr.sin_port);
out << " raddr: " << inet_ntoa(raddr.sin_addr);
out << ":" << ntohs(raddr.sin_port);
out << " type: " << ownEntry.type;
rslog(RSL_WARNING, p3dhtzone, out.str());
}
/* update info .... always */ /* update info .... always */
it->second.state = DHT_PEER_FOUND; it->second.state = DHT_PEER_FOUND;
it->second.laddr = laddr; it->second.laddr = laddr;

View File

@ -46,7 +46,7 @@
#include <fstream> #include <fstream>
#include <sstream> #include <sstream>
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
const int pqiarchivezone = 9326; const int pqiarchivezone = 9326;

View File

@ -29,7 +29,7 @@
#include "pqi/pqihandler.h" #include "pqi/pqihandler.h"
#include <sstream> #include <sstream>
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
const int pqihandlerzone = 34283; const int pqihandlerzone = 34283;
/**** /****

View File

@ -32,7 +32,7 @@
#include <errno.h> #include <errno.h>
#include <iostream> #include <iostream>
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
#include <sstream> #include <sstream>
#include <iomanip> #include <iomanip>
static const int pqinetzone = 96184; static const int pqinetzone = 96184;

View File

@ -28,7 +28,7 @@
#include "pqi/pqipersongrp.h" #include "pqi/pqipersongrp.h"
const int pqipersonzone = 82371; const int pqipersonzone = 82371;
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
#include <sstream> #include <sstream>
/**** /****

View File

@ -25,7 +25,7 @@
#include "pqi/pqipersongrp.h" #include "pqi/pqipersongrp.h"
#include "pqi/p3connmgr.h" #include "pqi/p3connmgr.h"
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
#include <sstream> #include <sstream>

View File

@ -24,15 +24,22 @@
*/ */
#include "pqi/pqiservice.h" #include "pqi/pqiservice.h"
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
#include <sstream> #include <sstream>
const int pqiservicezone = 60478; const int pqiservicezone = 60478;
/****
* #define SERVICE_DEBUG 1
****/
p3ServiceServer::p3ServiceServer() p3ServiceServer::p3ServiceServer()
{ {
#ifdef SERVICE_DEBUG
pqioutput(PQL_DEBUG_BASIC, pqiservicezone, pqioutput(PQL_DEBUG_BASIC, pqiservicezone,
"p3ServiceServer::p3ServiceServer()"); "p3ServiceServer::p3ServiceServer()");
#endif
rrit = services.begin(); rrit = services.begin();
return; return;
@ -40,8 +47,10 @@ p3ServiceServer::p3ServiceServer()
int p3ServiceServer::addService(pqiService *ts) int p3ServiceServer::addService(pqiService *ts)
{ {
#ifdef SERVICE_DEBUG
pqioutput(PQL_DEBUG_BASIC, pqiservicezone, pqioutput(PQL_DEBUG_BASIC, pqiservicezone,
"p3ServiceServer::addService()"); "p3ServiceServer::addService()");
#endif
std::map<uint32_t, pqiService *>::iterator it; std::map<uint32_t, pqiService *>::iterator it;
it = services.find(ts -> getType()); it = services.find(ts -> getType());
@ -58,6 +67,7 @@ int p3ServiceServer::addService(pqiService *ts)
int p3ServiceServer::incoming(RsRawItem *item) int p3ServiceServer::incoming(RsRawItem *item)
{ {
#ifdef SERVICE_DEBUG
pqioutput(PQL_DEBUG_BASIC, pqiservicezone, pqioutput(PQL_DEBUG_BASIC, pqiservicezone,
"p3ServiceServer::incoming()"); "p3ServiceServer::incoming()");
@ -73,13 +83,16 @@ int p3ServiceServer::incoming(RsRawItem *item)
out << std::endl; out << std::endl;
pqioutput(PQL_DEBUG_BASIC, pqiservicezone, out.str()); pqioutput(PQL_DEBUG_BASIC, pqiservicezone, out.str());
} }
#endif
std::map<uint32_t, pqiService *>::iterator it; std::map<uint32_t, pqiService *>::iterator it;
it = services.find(item -> PacketId() & 0xffffff00); it = services.find(item -> PacketId() & 0xffffff00);
if (it == services.end()) if (it == services.end())
{ {
#ifdef SERVICE_DEBUG
pqioutput(PQL_DEBUG_BASIC, pqiservicezone, pqioutput(PQL_DEBUG_BASIC, pqiservicezone,
"p3ServiceServer::incoming() Service: No Service - deleting"); "p3ServiceServer::incoming() Service: No Service - deleting");
#endif
// delete it. // delete it.
delete item; delete item;
@ -89,10 +102,12 @@ int p3ServiceServer::incoming(RsRawItem *item)
} }
{ {
#ifdef SERVICE_DEBUG
std::ostringstream out; std::ostringstream out;
out << "p3ServiceServer::incoming() Sending to"; out << "p3ServiceServer::incoming() Sending to";
out << it -> second << std::endl; out << it -> second << std::endl;
pqioutput(PQL_DEBUG_BASIC, pqiservicezone, out.str()); pqioutput(PQL_DEBUG_BASIC, pqiservicezone, out.str());
#endif
return (it->second) -> receive(item); return (it->second) -> receive(item);
} }
@ -105,8 +120,11 @@ int p3ServiceServer::incoming(RsRawItem *item)
RsRawItem *p3ServiceServer::outgoing() RsRawItem *p3ServiceServer::outgoing()
{ {
#ifdef SERVICE_DEBUG
pqioutput(PQL_DEBUG_ALL, pqiservicezone, pqioutput(PQL_DEBUG_ALL, pqiservicezone,
"p3ServiceServer::outgoing()"); "p3ServiceServer::outgoing()");
#endif
if (rrit != services.end()) if (rrit != services.end())
{ {
@ -126,6 +144,8 @@ RsRawItem *p3ServiceServer::outgoing()
{ {
if (NULL != (item = (rrit -> second) -> send())) if (NULL != (item = (rrit -> second) -> send()))
{ {
#ifdef SERVICE_DEBUG
std::ostringstream out; std::ostringstream out;
out << "p3ServiceServer::outgoing() Got Item From:"; out << "p3ServiceServer::outgoing() Got Item From:";
out << rrit -> second << std::endl; out << rrit -> second << std::endl;
@ -133,6 +153,8 @@ RsRawItem *p3ServiceServer::outgoing()
item -> print(out); item -> print(out);
out << std::endl; out << std::endl;
pqioutput(PQL_DEBUG_BASIC, pqiservicezone, out.str()); pqioutput(PQL_DEBUG_BASIC, pqiservicezone, out.str());
#endif
return item; return item;
} }
} }
@ -142,6 +164,8 @@ RsRawItem *p3ServiceServer::outgoing()
{ {
if (NULL != (item = (rrit -> second) -> send())) if (NULL != (item = (rrit -> second) -> send()))
{ {
#ifdef SERVICE_DEBUG
std::ostringstream out; std::ostringstream out;
out << "p3ServiceServer::outgoing() Got Item From:"; out << "p3ServiceServer::outgoing() Got Item From:";
out << rrit -> second << std::endl; out << rrit -> second << std::endl;
@ -149,6 +173,8 @@ RsRawItem *p3ServiceServer::outgoing()
item -> print(out); item -> print(out);
out << std::endl; out << std::endl;
pqioutput(PQL_DEBUG_BASIC, pqiservicezone, out.str()); pqioutput(PQL_DEBUG_BASIC, pqiservicezone, out.str());
#endif
return item; return item;
} }
} }
@ -159,19 +185,25 @@ RsRawItem *p3ServiceServer::outgoing()
int p3ServiceServer::tick() int p3ServiceServer::tick()
{ {
#ifdef SERVICE_DEBUG
pqioutput(PQL_DEBUG_ALL, pqiservicezone, pqioutput(PQL_DEBUG_ALL, pqiservicezone,
"p3ServiceServer::tick()"); "p3ServiceServer::tick()");
#endif
std::map<uint32_t, pqiService *>::iterator it; std::map<uint32_t, pqiService *>::iterator it;
// from the beginning to where we started. // from the beginning to where we started.
for(it = services.begin();it != services.end(); it++) for(it = services.begin();it != services.end(); it++)
{ {
#ifdef SERVICE_DEBUG
std::ostringstream out; std::ostringstream out;
out << "p3ServiceServer::service id:" << it -> first; out << "p3ServiceServer::service id:" << it -> first;
out << " -> Service: " << it -> second; out << " -> Service: " << it -> second;
out << std::endl; out << std::endl;
pqioutput(PQL_DEBUG_ALL, pqiservicezone, out.str()); pqioutput(PQL_DEBUG_ALL, pqiservicezone, out.str());
#endif
// now we should actually tick the service. // now we should actually tick the service.
(it -> second) -> tick(); (it -> second) -> tick();

File diff suppressed because it is too large Load Diff

View File

@ -34,7 +34,7 @@
#include <errno.h> #include <errno.h>
#include <openssl/err.h> #include <openssl/err.h>
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
#include <sstream> #include <sstream>
const int pqissllistenzone = 49787; const int pqissllistenzone = 49787;

View File

@ -23,11 +23,13 @@
* *
*/ */
#include <sstream>
#include "util/rsdebug.h"
#include "pqi/pqisslpersongrp.h" #include "pqi/pqisslpersongrp.h"
#include "pqi/pqidebug.h"
#include "pqi/p3authmgr.h" #include "pqi/p3authmgr.h"
#include <sstream>
const int pqipersongrpzone = 354; const int pqipersongrpzone = 354;

View File

@ -36,9 +36,9 @@
#include <errno.h> #include <errno.h>
#include <openssl/err.h> #include <openssl/err.h>
#include "pqi/pqidebug.h"
#include <sstream> #include <sstream>
#include "util/rsdebug.h"
#include "util/rsnet.h" #include "util/rsnet.h"
const int pqissludpzone = 3144; const int pqissludpzone = 3144;
@ -63,7 +63,7 @@ pqissludp::pqissludp(PQInterface *parent, p3AuthMgr *am, p3ConnectMgr *cm)
pqissludp::~pqissludp() pqissludp::~pqissludp()
{ {
pqioutput(PQL_ALERT, pqissludpzone, rslog(RSL_ALERT, pqissludpzone,
"pqissludp::~pqissludp -> destroying pqissludp"); "pqissludp::~pqissludp -> destroying pqissludp");
/* must call reset from here, so that the /* must call reset from here, so that the
@ -102,13 +102,13 @@ int pqissludp::attach()
sockfd = tou_socket(0,0,0); sockfd = tou_socket(0,0,0);
if (0 > sockfd) if (0 > sockfd)
{ {
pqioutput(PQL_WARNING, pqissludpzone, rslog(RSL_WARNING, pqissludpzone,
"pqissludp::attach() failed to create a socket"); "pqissludp::attach() failed to create a socket");
return -1; return -1;
} }
// setup remote address // setup remote address
pqioutput(PQL_WARNING, pqissludpzone, rslog(RSL_WARNING, pqissludpzone,
"pqissludp::attach() Opened Local Udp Socket"); "pqissludp::attach() Opened Local Udp Socket");
return 1; return 1;
@ -123,7 +123,7 @@ int pqissludp::Initiate_Connection()
attach(); /* open socket */ attach(); /* open socket */
remote_addr.sin_family = AF_INET; remote_addr.sin_family = AF_INET;
pqioutput(PQL_DEBUG_BASIC, pqissludpzone, rslog(RSL_DEBUG_BASIC, pqissludpzone,
"pqissludp::Initiate_Connection() Attempting Outgoing Connection...."); "pqissludp::Initiate_Connection() Attempting Outgoing Connection....");
/* decide if we're active or passive */ /* decide if we're active or passive */
@ -138,29 +138,37 @@ int pqissludp::Initiate_Connection()
if (waiting != WAITING_DELAY) if (waiting != WAITING_DELAY)
{ {
pqioutput(PQL_WARNING, pqissludpzone, rslog(RSL_WARNING, pqissludpzone,
"pqissludp::Initiate_Connection() Already Attempt in Progress!"); "pqissludp::Initiate_Connection() Already Attempt in Progress!");
return -1; return -1;
} }
pqioutput(PQL_DEBUG_BASIC, pqissludpzone, if (sockfd < 0)
{
rslog(RSL_ALERT, pqissludpzone,
"pqissludp::Initiate_Connection() Socket Creation Failed!");
waiting = WAITING_FAIL_INTERFACE;
return -1;
}
rslog(RSL_DEBUG_BASIC, pqissludpzone,
"pqissludp::Initiate_Connection() Opening Socket"); "pqissludp::Initiate_Connection() Opening Socket");
{ {
std::ostringstream out; std::ostringstream out;
out << "pqissludp::Initiate_Connection() "; out << "pqissludp::Initiate_Connection() ";
out << "Connecting To: " << inet_ntoa(remote_addr.sin_addr) << ":"; out << "Connecting To: " << PeerId();
out << ntohs(remote_addr.sin_port) << std::endl; out << " via: " << inet_ntoa(remote_addr.sin_addr) << ":";
out << ntohs(remote_addr.sin_port) << " ";
if (sslmode) if (sslmode)
{ {
out << "Using ACTIVE Connect Mode (SSL_Connect)"; out << "ACTIVE Connect (SSL_Connect)";
} }
else else
{ {
out << "Using PASSIVE Connect Mode (SSL_Accept)"; out << "PASSIVE Connect (SSL_Accept)";
} }
out << std::endl; rslog(RSL_WARNING, pqissludpzone, out.str());
pqioutput(PQL_WARNING, pqissludpzone, out.str());
} }
if (remote_addr.sin_addr.s_addr == 0) if (remote_addr.sin_addr.s_addr == 0)
@ -170,25 +178,16 @@ int pqissludp::Initiate_Connection()
out << "Invalid (0.0.0.0) Remote Address,"; out << "Invalid (0.0.0.0) Remote Address,";
out << " Aborting Connect."; out << " Aborting Connect.";
out << std::endl; out << std::endl;
pqioutput(PQL_WARNING, pqissludpzone, out.str()); rslog(RSL_WARNING, pqissludpzone, out.str());
waiting = WAITING_FAIL_INTERFACE; waiting = WAITING_FAIL_INTERFACE;
reset(); reset();
return -1; return -1;
} }
{
std::ostringstream out;
out << "Connecting to ";
out << PeerId() << " via ";
out << inet_ntoa(remote_addr.sin_addr);
out << ":" << ntohs(remote_addr.sin_port);
pqioutput(PQL_DEBUG_BASIC, pqissludpzone, out.str());
}
mTimeoutTS = time(NULL) + mConnectTimeout; mTimeoutTS = time(NULL) + mConnectTimeout;
std::cerr << "Setting Connect Timeout " << mConnectTimeout << " Seconds into Future " << std::endl; //std::cerr << "Setting Connect Timeout " << mConnectTimeout << " Seconds into Future " << std::endl;
std::cerr << " Connect Period is:" << mConnectPeriod << std::endl; //std::cerr << " Connect Period is:" << mConnectPeriod << std::endl;
/* <===================== UDP Difference *******************/ /* <===================== UDP Difference *******************/
if (0 != (err = tou_connect(sockfd, (struct sockaddr *) &remote_addr, if (0 != (err = tou_connect(sockfd, (struct sockaddr *) &remote_addr,
@ -196,9 +195,6 @@ int pqissludp::Initiate_Connection()
/* <===================== UDP Difference *******************/ /* <===================== UDP Difference *******************/
{ {
int tou_err = tou_errno(sockfd); int tou_err = tou_errno(sockfd);
std::cerr << "pqissludp::Initiate_Connection() connect returns:";
std::cerr << err << " -> errno: " << tou_err << " error: ";
std::cerr << socket_errorType(tou_err) << std::endl;
std::ostringstream out; std::ostringstream out;
out << "pqissludp::Initiate_Connection()"; out << "pqissludp::Initiate_Connection()";
@ -209,13 +205,13 @@ int pqissludp::Initiate_Connection()
waiting = WAITING_SOCK_CONNECT; waiting = WAITING_SOCK_CONNECT;
out << " EINPROGRESS Waiting for Socket Connection"; out << " EINPROGRESS Waiting for Socket Connection";
pqioutput(PQL_WARNING, pqissludpzone, out.str()); rslog(RSL_WARNING, pqissludpzone, out.str());
return 0; return 0;
} }
else if ((tou_err == ENETUNREACH) || (tou_err == ETIMEDOUT)) else if ((tou_err == ENETUNREACH) || (tou_err == ETIMEDOUT))
{ {
out << "ENETUNREACHABLE: cert" << PeerId(); out << "ENETUNREACHABLE: cert: " << PeerId();
out << std::endl; out << std::endl;
// Then send unreachable message. // Then send unreachable message.
@ -226,20 +222,21 @@ int pqissludp::Initiate_Connection()
out << "Error: Connection Failed: " << tou_err; out << "Error: Connection Failed: " << tou_err;
out << " - " << socket_errorType(tou_err) << std::endl; out << " - " << socket_errorType(tou_err) << std::endl;
rslog(RSL_WARNING, pqissludpzone, out.str());
reset(); reset();
pqioutput(PQL_WARNING, pqissludpzone, out.str());
return -1; return -1;
} }
else else
{ {
pqioutput(PQL_WARNING, pqissludpzone, rslog(RSL_DEBUG_BASIC, pqissludpzone,
"pqissludp::Init_Connection() connect returned 0"); "pqissludp::Init_Connection() connect returned 0");
} }
waiting = WAITING_SOCK_CONNECT; waiting = WAITING_SOCK_CONNECT;
pqioutput(PQL_DEBUG_BASIC, pqissludpzone, rslog(RSL_DEBUG_BASIC, pqissludpzone,
"pqissludp::Initiate_Connection() Waiting for Socket Connect"); "pqissludp::Initiate_Connection() Waiting for Socket Connect");
return 1; return 1;
@ -248,20 +245,21 @@ int pqissludp::Initiate_Connection()
/********* VERY DIFFERENT **********/ /********* VERY DIFFERENT **********/
int pqissludp::Basic_Connection_Complete() int pqissludp::Basic_Connection_Complete()
{ {
pqioutput(PQL_DEBUG_BASIC, pqissludpzone, rslog(RSL_DEBUG_BASIC, pqissludpzone,
"pqissludp::Basic_Connection_Complete()..."); "pqissludp::Basic_Connection_Complete()...");
if (time(NULL) > mTimeoutTS) if (time(NULL) > mTimeoutTS)
{ {
pqioutput(PQL_DEBUG_BASIC, pqissludpzone, std::ostringstream out;
"pqissludp::Basic_Connection_Complete() Connection Timed Out!"); out << "pqissludp::Basic_Connection_Complete() Connection Timed Out. ";
out << "Peer: " << PeerId() << " Period: ";
out << mConnectTimeout;
rslog(RSL_WARNING, pqissludpzone, out.str());
/* as sockfd is valid, this should close it all up */ /* as sockfd is valid, this should close it all up */
std::cerr << "pqissludp::Basic_Connection_Complete() Connection Timed Out!";
std::cerr << std::endl;
std::cerr << "pqissludp::Basic_Connection_Complete() Timeout Period: " << mConnectTimeout;
std::cerr << std::endl;
reset(); reset();
return -1; return -1;
} }
@ -269,14 +267,12 @@ int pqissludp::Basic_Connection_Complete()
if (waiting != WAITING_SOCK_CONNECT) if (waiting != WAITING_SOCK_CONNECT)
{ {
pqioutput(PQL_DEBUG_BASIC, pqissludpzone, rslog(RSL_DEBUG_BASIC, pqissludpzone,
"pqissludp::Basic_Connection_Complete() Wrong Mode"); "pqissludp::Basic_Connection_Complete() Wrong Mode");
return -1; return -1;
} }
/* new approach is to check for an error */ /* new approach is to check for an error */
/* check for an error */ /* check for an error */
int err; int err;
@ -286,17 +282,25 @@ int pqissludp::Basic_Connection_Complete()
{ {
std::ostringstream out; std::ostringstream out;
out << "pqissludp::Basic_Connection_Complete()"; out << "pqissludp::Basic_Connection_Complete() ";
out << "EINPROGRESS: cert" << PeerId(); out << "EINPROGRESS: cert: " << PeerId();
pqioutput(PQL_WARNING, pqissludpzone, out.str()); rslog(RSL_DEBUG_BASIC, pqissludpzone, out.str());
} }
else if ((err == ENETUNREACH) || (err == ETIMEDOUT)) else if ((err == ENETUNREACH) || (err == ETIMEDOUT))
{ {
std::ostringstream out; std::ostringstream out;
out << "pqissludp::Basic_Connection_Complete()"; out << "pqissludp::Basic_Connection_Complete() ";
out << "ENETUNREACH/ETIMEDOUT: cert"; out << "ENETUNREACH/ETIMEDOUT: cert: ";
out << PeerId() << std::endl; out << PeerId();
rslog(RSL_WARNING, pqissludpzone, out.str());
/* is the second one needed? */
std::ostringstream out2;
out2 << "pqissludp::Basic_Connection_Complete() ";
out2 << "Error: Connection Failed: " << err;
out2 << " - " << socket_errorType(err);
rslog(RSL_DEBUG_BASIC, pqissludpzone, out2.str());
net_unreachable |= net_attempt; net_unreachable |= net_attempt;
@ -305,10 +309,6 @@ int pqissludp::Basic_Connection_Complete()
// Then send unreachable message. // Then send unreachable message.
waiting = WAITING_FAIL_INTERFACE; waiting = WAITING_FAIL_INTERFACE;
out << "pqissludp::Basic_Connection_Complete()";
out << "Error: Connection Failed: " << err;
out << " - " << socket_errorType(err);
pqioutput(PQL_WARNING, pqissludpzone, out.str());
return -1; return -1;
} }
} }
@ -317,14 +317,18 @@ int pqissludp::Basic_Connection_Complete()
if (tou_connected(sockfd)) if (tou_connected(sockfd))
/* <===================== UDP Difference *******************/ /* <===================== UDP Difference *******************/
{ {
pqioutput(PQL_WARNING, pqissludpzone, std::ostringstream out;
"pqissludp::Basic_Connection_Complete() Connection Complete!"); out << "pqissludp::Basic_Connection_Complete() ";
out << "Connection Complete: cert: ";
out << PeerId();
rslog(RSL_WARNING, pqissludpzone, out.str());
return 1; return 1;
} }
else else
{ {
// not ready return -1; // not ready return -1;
pqioutput(PQL_WARNING, pqissludpzone, rslog(RSL_DEBUG_BASIC, pqissludpzone,
"pqissludp::Basic_Connection_Complete() Not Yet Ready!"); "pqissludp::Basic_Connection_Complete() Not Yet Ready!");
return 0; return 0;
} }
@ -340,7 +344,7 @@ int pqissludp::Basic_Connection_Complete()
// used everywhere // used everywhere
int pqissludp::net_internal_close(int fd) int pqissludp::net_internal_close(int fd)
{ {
pqioutput(PQL_ALERT, pqissludpzone, rslog(RSL_ALERT, pqissludpzone,
"pqissludp::net_internal_close() -> tou_close()"); "pqissludp::net_internal_close() -> tou_close()");
return tou_close(fd); return tou_close(fd);
} }
@ -348,7 +352,7 @@ int pqissludp::net_internal_close(int fd)
// install udp BIO. // install udp BIO.
int pqissludp::net_internal_SSL_set_fd(SSL *ssl, int fd) int pqissludp::net_internal_SSL_set_fd(SSL *ssl, int fd)
{ {
pqioutput(PQL_DEBUG_BASIC, pqissludpzone, rslog(RSL_DEBUG_BASIC, pqissludpzone,
"pqissludp::net_internal_SSL_set_fd()"); "pqissludp::net_internal_SSL_set_fd()");
/* create the bio's */ /* create the bio's */
@ -362,7 +366,7 @@ int pqissludp::net_internal_SSL_set_fd(SSL *ssl, int fd)
int pqissludp::net_internal_fcntl_nonblock(int fd) int pqissludp::net_internal_fcntl_nonblock(int fd)
{ {
pqioutput(PQL_DEBUG_BASIC, pqissludpzone, rslog(RSL_DEBUG_BASIC, pqissludpzone,
"pqissludp::net_internal_fcntl_nonblock()"); "pqissludp::net_internal_fcntl_nonblock()");
return 0; return 0;
} }
@ -383,7 +387,7 @@ int pqissludp::listen()
{ {
std::ostringstream out; std::ostringstream out;
out << "pqissludp::listen() (NULLOP)"; out << "pqissludp::listen() (NULLOP)";
pqioutput(PQL_ALERT, pqissludpzone, out.str()); rslog(RSL_DEBUG_BASIC, pqissludpzone, out.str());
} }
return 1; //udpproxy->listen(); return 1; //udpproxy->listen();
} }
@ -393,7 +397,7 @@ int pqissludp::stoplistening()
{ {
std::ostringstream out; std::ostringstream out;
out << "pqissludp::stoplistening() (NULLOP)"; out << "pqissludp::stoplistening() (NULLOP)";
pqioutput(PQL_ALERT, pqissludpzone, out.str()); rslog(RSL_DEBUG_BASIC, pqissludpzone, out.str());
} }
return 1; //udpproxy->stoplistening(); return 1; //udpproxy->stoplistening();
} }
@ -401,10 +405,13 @@ int pqissludp::stoplistening()
bool pqissludp::connect_parameter(uint32_t type, uint32_t value) bool pqissludp::connect_parameter(uint32_t type, uint32_t value)
{ {
std::cerr << "pqissludp::connect_parameter() type: " << type << "value: " << value << std::endl; //std::cerr << "pqissludp::connect_parameter() type: " << type << "value: " << value << std::endl;
if (type == NET_PARAM_CONNECT_PERIOD) if (type == NET_PARAM_CONNECT_PERIOD)
{ {
std::cerr << "pqissludp::connect_parameter() PERIOD: " << value << std::endl; std::ostringstream out;
out << "pqissludp::connect_parameter() Peer: " << PeerId() << " PERIOD: " << value;
rslog(RSL_WARNING, pqissludpzone, out.str());
mConnectPeriod = value; mConnectPeriod = value;
return true; return true;
} }
@ -419,7 +426,7 @@ bool pqissludp::moretoread()
std::ostringstream out; std::ostringstream out;
out << "pqissludp::moretoread()"; out << "pqissludp::moretoread()";
out << " polling socket (" << sockfd << ")"; out << " polling socket (" << sockfd << ")";
pqioutput(PQL_DEBUG_ALL, pqissludpzone, out.str()); rslog(RSL_DEBUG_ALL, pqissludpzone, out.str());
} }
/* check for more to read first ... if nothing... check error /* check for more to read first ... if nothing... check error
@ -428,13 +435,13 @@ bool pqissludp::moretoread()
if (tou_maxread(sockfd)) if (tou_maxread(sockfd))
/* <===================== UDP Difference *******************/ /* <===================== UDP Difference *******************/
{ {
pqioutput(PQL_DEBUG_BASIC, pqissludpzone, rslog(RSL_DEBUG_BASIC, pqissludpzone,
"pqissludp::moretoread() Data to Read!"); "pqissludp::moretoread() Data to Read!");
return 1; return 1;
} }
/* else check the error */ /* else check the error */
pqioutput(PQL_DEBUG_ALL, pqissludpzone, rslog(RSL_DEBUG_ALL, pqissludpzone,
"pqissludp::moretoread() No Data to Read!"); "pqissludp::moretoread() No Data to Read!");
int err; int err;
@ -445,8 +452,8 @@ bool pqissludp::moretoread()
std::ostringstream out; std::ostringstream out;
out << "pqissludp::moretoread() "; out << "pqissludp::moretoread() ";
out << "EAGAIN/EINPROGRESS: cert" << PeerId(); out << "EAGAIN/EINPROGRESS: cert " << PeerId();
pqioutput(PQL_WARNING, pqissludpzone, out.str()); rslog(RSL_DEBUG_BASIC, pqissludpzone, out.str());
return 0; return 0;
} }
@ -454,27 +461,27 @@ bool pqissludp::moretoread()
{ {
std::ostringstream out; std::ostringstream out;
out << "pqissludp::moretoread() "; out << "pqissludp::moretoread() ";
out << "ENETUNREACH/ETIMEDOUT: cert"; out << "ENETUNREACH/ETIMEDOUT: cert ";
out << PeerId(); out << PeerId();
pqioutput(PQL_WARNING, pqissludpzone, out.str()); rslog(RSL_WARNING, pqissludpzone, out.str());
} }
else if (err == EBADF) else if (err == EBADF)
{ {
std::ostringstream out; std::ostringstream out;
out << "pqissludp::moretoread() "; out << "pqissludp::moretoread() ";
out << "EBADF: cert"; out << "EBADF: cert ";
out << PeerId(); out << PeerId();
pqioutput(PQL_WARNING, pqissludpzone, out.str()); rslog(RSL_WARNING, pqissludpzone, out.str());
} }
else else
{ {
std::ostringstream out; std::ostringstream out;
out << "pqissludp::moretoread() "; out << "pqissludp::moretoread() ";
out << " Unknown ERROR: " << err << ": cert"; out << " Unknown ERROR: " << err << ": cert ";
out << PeerId(); out << PeerId();
pqioutput(PQL_WARNING, pqissludpzone, out.str()); rslog(RSL_WARNING, pqissludpzone, out.str());
} }
@ -483,7 +490,7 @@ bool pqissludp::moretoread()
} }
/* otherwise - not error - strange! */ /* otherwise - not error - strange! */
pqioutput(PQL_DEBUG_BASIC, pqissludpzone, rslog(RSL_DEBUG_BASIC, pqissludpzone,
"pqissludp::moretoread() No Data + No Error (really nothing)"); "pqissludp::moretoread() No Data + No Error (really nothing)");
return 0; return 0;
@ -493,7 +500,7 @@ bool pqissludp::moretoread()
bool pqissludp::cansend() bool pqissludp::cansend()
{ {
pqioutput(PQL_DEBUG_ALL, pqissludpzone, rslog(RSL_DEBUG_ALL, pqissludpzone,
"pqissludp::cansend() polling socket!"); "pqissludp::cansend() polling socket!");
/* <===================== UDP Difference *******************/ /* <===================== UDP Difference *******************/

View File

@ -24,18 +24,18 @@
*/ */
#include "pqi/pqistreamer.h"
#include "serialiser/rsserial.h"
#include "serialiser/rsbaseitems.h" /***** For RsFileData *****/
#include <iostream> #include <iostream>
#include <fstream> #include <fstream>
#include <sstream> #include <sstream>
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
#include "pqi/pqistreamer.h"
#include "pqi/pqinotify.h" #include "pqi/pqinotify.h"
#include "serialiser/rsserial.h"
#include "serialiser/rsbaseitems.h" /***** For RsFileData *****/
const int pqistreamerzone = 8221; const int pqistreamerzone = 8221;
const int PQISTREAM_ABS_MAX = 100000000; /* 100 MB/sec (actually per loop) */ const int PQISTREAM_ABS_MAX = 100000000; /* 100 MB/sec (actually per loop) */

View File

@ -30,7 +30,7 @@
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
const int p3facemsgzone = 11453; const int p3facemsgzone = 11453;
#include <sys/time.h> #include <sys/time.h>

View File

@ -34,7 +34,7 @@
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
const int p3facefilezone = 11452; const int p3facefilezone = 11452;
#include <sys/time.h> #include <sys/time.h>

View File

@ -31,7 +31,7 @@
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
const int p3facemsgzone = 11453; const int p3facemsgzone = 11453;
#include <sys/time.h> #include <sys/time.h>
@ -57,7 +57,7 @@ int RsServer::SetInChat(std::string id, bool in) /* friend : cha
/* so we send this.... */ /* so we send this.... */
lockRsCore(); /* LOCK */ lockRsCore(); /* LOCK */
std::cerr << "Set InChat(" << id << ") to " << (in ? "True" : "False") << std::endl; //std::cerr << "Set InChat(" << id << ") to " << (in ? "True" : "False") << std::endl;
std::list<std::string>::iterator it; std::list<std::string>::iterator it;
it = std::find(mInChatList.begin(), mInChatList.end(), id); it = std::find(mInChatList.begin(), mInChatList.end(), id);
if (it == mInChatList.end()) if (it == mInChatList.end())
@ -98,7 +98,7 @@ int RsServer::SetInMsg(std::string id, bool in) /* friend : msgs
/* so we send this.... */ /* so we send this.... */
lockRsCore(); /* LOCK */ lockRsCore(); /* LOCK */
std::cerr << "Set InMsg(" << id << ") to " << (in ? "True" : "False") << std::endl; //std::cerr << "Set InMsg(" << id << ") to " << (in ? "True" : "False") << std::endl;
std::list<std::string>::iterator it; std::list<std::string>::iterator it;
it = std::find(mInMsgList.begin(), mInMsgList.end(), id); it = std::find(mInMsgList.begin(), mInMsgList.end(), id);
if (it == mInMsgList.end()) if (it == mInMsgList.end())
@ -207,7 +207,7 @@ int RsServer::SetInRecommend(std::string id, bool in) /* file : recom
{ {
/* set flag */ /* set flag */
it -> inRecommend = in; it -> inRecommend = in;
std::cerr << "Set InRecommend (" << id << ") to " << (in ? "True" : "False") << std::endl; //std::cerr << "Set InRecommend (" << id << ") to " << (in ? "True" : "False") << std::endl;
} }
} }

View File

@ -35,7 +35,7 @@
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
#include <sys/time.h> #include <sys/time.h>
#include <time.h> #include <time.h>

View File

@ -89,7 +89,7 @@ void intNotifyChangeCert(RsCertId &id)
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
const int fltksrvrzone = 25915; const int fltksrvrzone = 25915;
#include <sys/time.h> #include <sys/time.h>

View File

@ -35,8 +35,8 @@
#include "pqi/pqisslpersongrp.h" #include "pqi/pqisslpersongrp.h"
#include "pqi/pqiloopback.h" #include "pqi/pqiloopback.h"
#include "pqi/p3cfgmgr.h" #include "pqi/p3cfgmgr.h"
#include "pqi/pqidebug.h"
#include "util/rsdebug.h"
#include "util/rsdir.h" #include "util/rsdir.h"
#include "upnp/upnphandler.h" #include "upnp/upnphandler.h"
@ -591,7 +591,7 @@ int RsServer::StartupRetroShare(RsInit *config)
mRanking = new p3Ranking(mConnMgr, RS_SERVICE_TYPE_RANK, /* declaration of cache enable service rank */ mRanking = new p3Ranking(mConnMgr, RS_SERVICE_TYPE_RANK, /* declaration of cache enable service rank */
mCacheStrapper, mCacheTransfer, mCacheStrapper, mCacheTransfer,
localcachedir, remotecachedir, 3600 * 24 * 30); localcachedir, remotecachedir, 3600 * 24 * 30 * 6); // 6 Months
CachePair cp(mRanking, mRanking, CacheId(RS_SERVICE_TYPE_RANK, 0)); CachePair cp(mRanking, mRanking, CacheId(RS_SERVICE_TYPE_RANK, 0));
mCacheStrapper -> addCachePair(cp); /* end of declaration */ mCacheStrapper -> addCachePair(cp); /* end of declaration */
@ -609,7 +609,7 @@ int RsServer::StartupRetroShare(RsInit *config)
mQblog = new p3Qblog(mConnMgr, RS_SERVICE_TYPE_QBLOG, /* ...then for Qblog */ mQblog = new p3Qblog(mConnMgr, RS_SERVICE_TYPE_QBLOG, /* ...then for Qblog */
mCacheStrapper, mCacheTransfer, mCacheStrapper, mCacheTransfer,
localcachedir, remotecachedir, 3600 * 24 * 30); localcachedir, remotecachedir, 3600 * 24 * 30 * 6); // 6 Months
CachePair cp3(mQblog, mQblog, CacheId(RS_SERVICE_TYPE_QBLOG, 0)); CachePair cp3(mQblog, mQblog, CacheId(RS_SERVICE_TYPE_QBLOG, 0));
mCacheStrapper -> addCachePair(cp3); mCacheStrapper -> addCachePair(cp3);

View File

@ -29,14 +29,14 @@
#include <iostream> #include <iostream>
#include <sstream> #include <sstream>
#include "pqi/pqidebug.h" #include "util/rsdir.h"
#include "util/rsdebug.h"
const int p3facemsgzone = 11453; const int p3facemsgzone = 11453;
#include <sys/time.h> #include <sys/time.h>
#include <time.h> #include <time.h>
#include "rsiface/rstypes.h" #include "rsiface/rstypes.h"
#include "util/rsdir.h"
#include "rsserver/p3msgs.h" #include "rsserver/p3msgs.h"
#include "services/p3msgservice.h" #include "services/p3msgservice.h"
@ -74,8 +74,8 @@ bool p3Msgs::MessageSend(MessageInfo &info)
/****************************************/ /****************************************/
bool p3Msgs::MessageDelete(std::string mid) bool p3Msgs::MessageDelete(std::string mid)
{ {
std::cerr << "p3Msgs::MessageDelete() "; //std::cerr << "p3Msgs::MessageDelete() ";
std::cerr << "mid: " << mid << std::endl; //std::cerr << "mid: " << mid << std::endl;
mMsgSrv -> removeMsgId(mid); mMsgSrv -> removeMsgId(mid);
@ -84,8 +84,8 @@ bool p3Msgs::MessageDelete(std::string mid)
bool p3Msgs::MessageRead(std::string mid) bool p3Msgs::MessageRead(std::string mid)
{ {
std::cerr << "p3Msgs::MessageRead() "; //std::cerr << "p3Msgs::MessageRead() ";
std::cerr << "mid: " << mid << std::endl; //std::cerr << "mid: " << mid << std::endl;
mMsgSrv -> markMsgIdRead(mid); mMsgSrv -> markMsgIdRead(mid);
@ -150,14 +150,14 @@ void p3Msgs::initRsChatInfo(RsChatItem *c, ChatInfo &i)
i.msg = c -> message; i.msg = c -> message;
if (c -> chatFlags & RS_CHAT_FLAG_PRIVATE) if (c -> chatFlags & RS_CHAT_FLAG_PRIVATE)
{ {
std::cerr << "RsServer::initRsChatInfo() Chat Private!!!";
i.chatflags = RS_CHAT_PRIVATE; i.chatflags = RS_CHAT_PRIVATE;
//std::cerr << "RsServer::initRsChatInfo() Chat Private!!!";
} }
else else
{ {
i.chatflags = RS_CHAT_PUBLIC; i.chatflags = RS_CHAT_PUBLIC;
std::cerr << "RsServer::initRsChatInfo() Chat Public!!!"; //std::cerr << "RsServer::initRsChatInfo() Chat Public!!!";
} }
std::cerr << std::endl; //std::cerr << std::endl;
} }

View File

@ -29,9 +29,10 @@
#include "pqi/pqibin.h" #include "pqi/pqibin.h"
#include "pqi/pqiarchive.h" #include "pqi/pqiarchive.h"
#include "pqi/pqidebug.h"
#include "util/rsdebug.h"
#include "util/rsdir.h" #include "util/rsdir.h"
#include <sstream> #include <sstream>
#include <iomanip> #include <iomanip>

View File

@ -28,8 +28,8 @@
#include "server/ftfiler.h" #include "server/ftfiler.h"
#include "util/rsdir.h" #include "util/rsdir.h"
#include "util/rsdebug.h"
#include "pqi/pqidebug.h"
#include "pqi/pqinotify.h" #include "pqi/pqinotify.h"
#include <errno.h> #include <errno.h>

View File

@ -38,7 +38,7 @@ const uint32_t AUTODISC_LDI_SUBTYPE_RPLY = 0x02;
#include <sstream> #include <sstream>
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
#include "util/rsprint.h" #include "util/rsprint.h"
const int pqidisczone = 2482; const int pqidisczone = 2482;

View File

@ -25,7 +25,7 @@
#include "services/p3gamelauncher.h" #include "services/p3gamelauncher.h"
#include "services/p3gameservice.h" #include "services/p3gameservice.h"
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
#include "pqi/p3connmgr.h" #include "pqi/p3connmgr.h"
#include <sstream> #include <sstream>
#include <iomanip> #include <iomanip>

View File

@ -26,12 +26,12 @@
#include "pqi/pqibin.h" #include "pqi/pqibin.h"
#include "pqi/pqiarchive.h" #include "pqi/pqiarchive.h"
#include "pqi/pqidebug.h"
#include "pqi/p3connmgr.h" #include "pqi/p3connmgr.h"
#include "services/p3msgservice.h" #include "services/p3msgservice.h"
#include "pqi/pqinotify.h" #include "pqi/pqinotify.h"
#include "util/rsdebug.h"
#include "util/rsdir.h" #include "util/rsdir.h"
#include <sstream> #include <sstream>
@ -209,7 +209,7 @@ int p3MsgService::checkOutgoingMessages()
if (toSend) if (toSend)
{ {
/* send msg */ /* send msg */
pqioutput(PQL_ALERT, msgservicezone, pqioutput(PQL_DEBUG_BASIC, msgservicezone,
"p3MsgService::checkOutGoingMessages() Sending out message"); "p3MsgService::checkOutGoingMessages() Sending out message");
/* remove the pending flag */ /* remove the pending flag */
(mit->second)->msgFlags &= ~RS_MSG_FLAGS_PENDING; (mit->second)->msgFlags &= ~RS_MSG_FLAGS_PENDING;
@ -219,7 +219,7 @@ int p3MsgService::checkOutgoingMessages()
} }
else else
{ {
pqioutput(PQL_ALERT, msgservicezone, pqioutput(PQL_DEBUG_BASIC, msgservicezone,
"p3MsgService::checkOutGoingMessages() Delaying until available..."); "p3MsgService::checkOutGoingMessages() Delaying until available...");
} }
} }

View File

@ -28,7 +28,9 @@
#include <sstream> #include <sstream>
#include <iomanip> #include <iomanip>
#define SERV_DEBUG 1 /*****
* #define SERV_DEBUG 1
****/
void p3Service::addSerialType(RsSerialType *st) void p3Service::addSerialType(RsSerialType *st)
{ {

View File

@ -29,6 +29,7 @@
#include "tcpstream.h" #include "tcpstream.h"
#include <iostream> #include <iostream>
#include <sstream>
#include <assert.h> #include <assert.h>
#include <errno.h> #include <errno.h>
#include <math.h> #include <math.h>
@ -36,6 +37,10 @@
#include <sys/time.h> #include <sys/time.h>
#include <time.h> #include <time.h>
/* Debugging for STATE change, and Startup SYNs */
#include "util/rsdebug.h"
const int rstcpstreamzone = 28455;
/* /*
* #define DEBUG_TCP_STREAM 1 * #define DEBUG_TCP_STREAM 1
@ -158,9 +163,18 @@ int TcpStream::connect(const struct sockaddr_in &raddr, uint32_t conn_period)
toSend(pkt); toSend(pkt);
/* change state */ /* change state */
state = TCP_SYN_SENT; state = TCP_SYN_SENT;
std::cerr << "TcpStream STATE -> TCP_SYN_SENT" << std::endl;
errorState = EAGAIN; errorState = EAGAIN;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream STATE -> TCP_SYN_SENT" << std::endl;
#endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_SYN_SENT";
out << " (Connect)";
rslog(RSL_WARNING,rstcpstreamzone,out.str());
}
tcpMtx.unlock(); /******** UNLOCK MUTEX *********/ tcpMtx.unlock(); /******** UNLOCK MUTEX *********/
return -1; return -1;
@ -979,6 +993,13 @@ int TcpStream::recv_check()
* for max efficiency * for max efficiency
*/ */
{
std::ostringstream out;
out << "TcpStream::state => TCP_CLOSED";
out << " (kNoPktTimeout)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
outStreamActive = false; outStreamActive = false;
inStreamActive = false; inStreamActive = false;
state = TCP_CLOSED; state = TCP_CLOSED;
@ -990,11 +1011,19 @@ int TcpStream::recv_check()
int TcpStream::cleanup() int TcpStream::cleanup()
{ {
// This shuts it all down! no matter what. // This shuts it all down! no matter what.
{
std::ostringstream out;
out << "TcpStream::cleanup() state = TCP_CLOSED";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
outStreamActive = false; outStreamActive = false;
inStreamActive = false; inStreamActive = false;
state = TCP_CLOSED; state = TCP_CLOSED;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream STATE -> TCP_CLOSED" << std::endl; std::cerr << "TcpStream STATE -> TCP_CLOSED" << std::endl;
#endif
//peerKnown = false; //??? NOT SURE -> for a rapid reconnetion this might be key?? //peerKnown = false; //??? NOT SURE -> for a rapid reconnetion this might be key??
@ -1147,6 +1176,12 @@ int TcpStream::handleIncoming(TcpPacket *pkt)
*/ */
state = TCP_CLOSED; state = TCP_CLOSED;
// return incoming_TimedWait(pkt); // return incoming_TimedWait(pkt);
{
std::ostringstream out;
out << "TcpStream::state => TCP_CLOSED";
out << " (recvd TCP_TIMED_WAIT?)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
break; break;
} }
delete pkt; delete pkt;
@ -1163,7 +1198,9 @@ int TcpStream::incoming_Closed(TcpPacket *pkt)
* else Discard. * else Discard.
*/ */
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::incoming_Closed()" << std::endl; std::cerr << "TcpStream::incoming_Closed()" << std::endl;
#endif
if ((pkt -> hasSyn()) && (!pkt -> hasAck())) if ((pkt -> hasSyn()) && (!pkt -> hasAck()))
{ {
/* Init Connection */ /* Init Connection */
@ -1212,7 +1249,16 @@ int TcpStream::incoming_Closed(TcpPacket *pkt)
toSend(rsp); toSend(rsp);
/* change state */ /* change state */
state = TCP_SYN_RCVD; state = TCP_SYN_RCVD;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream STATE -> TCP_SYN_RCVD" << std::endl; std::cerr << "TcpStream STATE -> TCP_SYN_RCVD" << std::endl;
#endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_SYN_RECVD";
out << " (recvd SYN & !ACK)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
} }
delete pkt; delete pkt;
@ -1233,14 +1279,18 @@ int TcpStream::incoming_SynSent(TcpPacket *pkt)
* else Discard. * else Discard.
*/ */
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::incoming_SynSent()" << std::endl; std::cerr << "TcpStream::incoming_SynSent()" << std::endl;
#endif
if ((pkt -> hasSyn()) && (pkt -> hasAck())) if ((pkt -> hasSyn()) && (pkt -> hasAck()))
{ {
/* check stuff */ /* check stuff */
if (pkt -> getAck() != outSeqno) if (pkt -> getAck() != outSeqno)
{ {
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::incoming_SynSent() Bad Ack - Deleting " << std::endl; std::cerr << "TcpStream::incoming_SynSent() Bad Ack - Deleting " << std::endl;
#endif
/* bad ignore */ /* bad ignore */
delete pkt; delete pkt;
return -1; return -1;
@ -1270,7 +1320,15 @@ int TcpStream::incoming_SynSent(TcpPacket *pkt)
outStreamActive = true; outStreamActive = true;
inStreamActive = true; inStreamActive = true;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream STATE -> TCP_ESTABLISHED" << std::endl; std::cerr << "TcpStream STATE -> TCP_ESTABLISHED" << std::endl;
#endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_ESTABLISHED";
out << " (recvd SUN & ACK)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
delete pkt; delete pkt;
} }
@ -1291,7 +1349,15 @@ int TcpStream::incoming_SynRcvd(TcpPacket *pkt)
{ {
/* trouble */ /* trouble */
state = TCP_CLOSED; state = TCP_CLOSED;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream STATE -> TCP_CLOSED" << std::endl; std::cerr << "TcpStream STATE -> TCP_CLOSED" << std::endl;
#endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_CLOSED";
out << " (recvd RST)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
delete pkt; delete pkt;
return 1; return 1;
} }
@ -1303,14 +1369,18 @@ int TcpStream::incoming_SynRcvd(TcpPacket *pkt)
if (pkt -> hasSyn()) if (pkt -> hasSyn())
{ {
/* has resent syn -> check it matches */ /* has resent syn -> check it matches */
#ifdef DEBUG_TCP_STREAM
std::cerr << "incoming_SynRcvd -> Pkt with ACK + SYN" << std::endl; std::cerr << "incoming_SynRcvd -> Pkt with ACK + SYN" << std::endl;
#endif
} }
/* check stuff */ /* check stuff */
if (pkt -> getAck() != outSeqno) if (pkt -> getAck() != outSeqno)
{ {
/* bad ignore */ /* bad ignore */
#ifdef DEBUG_TCP_STREAM
std::cerr << "incoming_SynRcvd -> Ignoring Pkt with bad ACK" << std::endl; std::cerr << "incoming_SynRcvd -> Ignoring Pkt with bad ACK" << std::endl;
#endif
delete pkt; delete pkt;
return -1; return -1;
} }
@ -1320,8 +1390,10 @@ int TcpStream::incoming_SynRcvd(TcpPacket *pkt)
/* save seqno */ /* save seqno */
if (pkt -> datasize > 0) if (pkt -> datasize > 0)
{ {
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::incoming_SynRcvd() ACK with Data!" << std::endl; std::cerr << "TcpStream::incoming_SynRcvd() ACK with Data!" << std::endl;
std::cerr << "TcpStream::incoming_SynRcvd() Shoudn't recv ... unless initACK lost!" << std::endl; std::cerr << "TcpStream::incoming_SynRcvd() Shoudn't recv ... unless initACK lost!" << std::endl;
#endif
// managed to trigger this under windows... // managed to trigger this under windows...
// perhaps the initial Ack was lost, // perhaps the initial Ack was lost,
// believe we should just pass this packet // believe we should just pass this packet
@ -1347,20 +1419,32 @@ int TcpStream::incoming_SynRcvd(TcpPacket *pkt)
state = TCP_ESTABLISHED; state = TCP_ESTABLISHED;
outStreamActive = true; outStreamActive = true;
inStreamActive = true; inStreamActive = true;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream STATE -> TCP_ESTABLISHED" << std::endl; std::cerr << "TcpStream STATE -> TCP_ESTABLISHED" << std::endl;
#endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_ESTABLISHED";
out << " (have SYN, recvd ACK)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
} }
if (ackWithData) if (ackWithData)
{ {
/* connection Established -> handle normally */ /* connection Established -> handle normally */
#ifdef DEBUG_TCP_STREAM
std::cerr << "incoming_SynRcvd -> Handling Data with Ack Pkt!"; std::cerr << "incoming_SynRcvd -> Handling Data with Ack Pkt!";
std::cerr << std::endl; std::cerr << std::endl;
#endif
incoming_Established(pkt); incoming_Established(pkt);
} }
else else
{ {
#ifdef DEBUG_TCP_STREAM
std::cerr << "incoming_SynRcvd -> Ignoring Pkt!" << std::endl; std::cerr << "incoming_SynRcvd -> Ignoring Pkt!" << std::endl;
#endif
/* else nothing */ /* else nothing */
delete pkt; delete pkt;
} }
@ -1575,20 +1659,44 @@ int TcpStream::check_InPkts()
if (state == TCP_ESTABLISHED) if (state == TCP_ESTABLISHED)
{ {
state = TCP_CLOSE_WAIT; state = TCP_CLOSE_WAIT;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::state = TCP_CLOSE_WAIT"; std::cerr << "TcpStream::state = TCP_CLOSE_WAIT";
std::cerr << std::endl; std::cerr << std::endl;
#endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_CLOSE_WAIT";
out << " (recvd FIN)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
} }
else if (state == TCP_FIN_WAIT_1) else if (state == TCP_FIN_WAIT_1)
{ {
state = TCP_CLOSING; state = TCP_CLOSING;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::state = TCP_CLOSING"; std::cerr << "TcpStream::state = TCP_CLOSING";
std::cerr << std::endl; std::cerr << std::endl;
#endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_CLOSING";
out << " (FIN_WAIT_1, recvd FIN)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
} }
else if (state == TCP_FIN_WAIT_2) else if (state == TCP_FIN_WAIT_2)
{ {
state = TCP_TIMED_WAIT; state = TCP_TIMED_WAIT;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::state = TCP_TIMED_WAIT"; std::cerr << "TcpStream::state = TCP_TIMED_WAIT";
std::cerr << std::endl; std::cerr << std::endl;
#endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_TIMED_WAIT";
out << " (FIN_WAIT_2, recvd FIN)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
cleanup(); cleanup();
} }
} }
@ -1600,21 +1708,45 @@ int TcpStream::check_InPkts()
if (state == TCP_FIN_WAIT_1) if (state == TCP_FIN_WAIT_1)
{ {
state = TCP_FIN_WAIT_2; state = TCP_FIN_WAIT_2;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::state = TCP_FIN_WAIT_2"; std::cerr << "TcpStream::state = TCP_FIN_WAIT_2";
std::cerr << std::endl; std::cerr << std::endl;
#endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_FIN_WAIT_2";
out << " (FIN_WAIT_1, recvd ACK)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
} }
else if (state == TCP_LAST_ACK) else if (state == TCP_LAST_ACK)
{ {
state = TCP_CLOSED; state = TCP_CLOSED;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::state = TCP_CLOSED"; std::cerr << "TcpStream::state = TCP_CLOSED";
std::cerr << std::endl; std::cerr << std::endl;
#endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_CLOSED";
out << " (LAST_ACK, recvd ACK)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
cleanup(); cleanup();
} }
else if (state == TCP_CLOSING) else if (state == TCP_CLOSING)
{ {
state = TCP_TIMED_WAIT; state = TCP_TIMED_WAIT;
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::state = TCP_TIMED_WAIT"; std::cerr << "TcpStream::state = TCP_TIMED_WAIT";
std::cerr << std::endl; std::cerr << std::endl;
#endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_TIMED_WAIT";
out << " (TCP_CLOSING, recvd ACK)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
cleanup(); cleanup();
} }
} }
@ -1681,8 +1813,10 @@ int TcpStream::toSend(TcpPacket *pkt, bool retrans)
if (!peerKnown) if (!peerKnown)
{ {
/* Major Error! */ /* Major Error! */
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::toSend() peerUnknown ERROR!!!"; std::cerr << "TcpStream::toSend() peerUnknown ERROR!!!";
std::cerr << std::endl; std::cerr << std::endl;
#endif
exit(1); exit(1);
} }
@ -1769,8 +1903,10 @@ int TcpStream::retrans()
if (!peerKnown) if (!peerKnown)
{ {
/* Major Error! */ /* Major Error! */
#ifdef DEBUG_TCP_STREAM
std::cerr << "TcpStream::retrans() peerUnknown ERROR!!!"; std::cerr << "TcpStream::retrans() peerUnknown ERROR!!!";
std::cerr << std::endl; std::cerr << std::endl;
#endif
exit(1); exit(1);
} }
@ -1871,14 +2007,6 @@ int TcpStream::retrans()
if ((pkt->hasSyn()) && (getTTL() < TCP_STD_TTL)) if ((pkt->hasSyn()) && (getTTL() < TCP_STD_TTL))
{ {
std::cerr << "TcpStream::retrans() Startup SYNs";
std::cerr << std::endl;
std::cerr << "TcpStream::retrans() retransTimeout: ";
std::cerr << retransTimeout << std::endl;
//setTTL(1 + pkt->retrans /
// TCP_STARTUP_COUNT_PER_TTL);
/* calculate a new TTL */ /* calculate a new TTL */
if (mTTL_end > cts) if (mTTL_end > cts)
{ {
@ -1889,10 +2017,17 @@ int TcpStream::retrans()
setTTL(getTTL() + 1); setTTL(getTTL() + 1);
} }
std::cerr << "TcpStream::retrans() retrans count: "; std::ostringstream out;
std::cerr << pkt->retrans << std::endl; out << "TcpStream::retrans() Startup SYNs ";
std::cerr << "TcpStream::retrans() Setting TTL to: "; out << "retrans count: " << pkt->retrans;
std::cerr << getTTL() << std::endl; out << " New TTL: " << getTTL();
rslog(RSL_WARNING, rstcpstreamzone, out.str());
#ifdef DEBUG_TCP_STREAM
std::cerr << out.str() << std::endl;
#endif
} }
@ -1913,6 +2048,13 @@ int TcpStream::retrans()
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_CLOSED";
out << " (Too Many Retransmits)";
rslog(RSL_WARNING,rstcpstreamzone,out.str());
}
outStreamActive = false; outStreamActive = false;
inStreamActive = false; inStreamActive = false;
state = TCP_CLOSED; state = TCP_CLOSED;
@ -2239,6 +2381,12 @@ int TcpStream::send()
std::cerr << "TcpStream::state = TCP_FIN_WAIT_1"; std::cerr << "TcpStream::state = TCP_FIN_WAIT_1";
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_FIN_WAIT_1";
out << " (End of Stream)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
} }
else if (state == TCP_CLOSE_WAIT) else if (state == TCP_CLOSE_WAIT)
{ {
@ -2247,6 +2395,12 @@ int TcpStream::send()
std::cerr << "TcpStream::state = TCP_LAST_ACK"; std::cerr << "TcpStream::state = TCP_LAST_ACK";
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
std::ostringstream out;
out << "TcpStream::state => TCP_LAST_ACK";
out << " (CLOSE_WAIT, End of Stream)";
rslog(RSL_WARNING, rstcpstreamzone, out.str());
}
} }
} }

View File

@ -32,6 +32,9 @@
#include <sstream> #include <sstream>
#include <iomanip> #include <iomanip>
#include "util/rsdebug.h"
const int rsudpsorterzone = 28477;
static const int STUN_TTL = 64; static const int STUN_TTL = 64;
/* /*
@ -86,6 +89,10 @@ void UdpSorter::recvPkt(void *data, int size, struct sockaddr_in &from)
std::cerr << "UdpSorter::recvPkt() Peer Unknown!"; std::cerr << "UdpSorter::recvPkt() Peer Unknown!";
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
std::ostringstream out;
out << "UdpSorter::recvPkt() ";
out << "from unknown: " << from;
rslog(RSL_WARNING,rsudpsorterzone,out.str());
} }
else else
{ {
@ -233,6 +240,11 @@ bool UdpSorter::locked_handleStunPkt(void *data, int size, struct sockaddr_in &f
std::cerr << inet_ntoa(from.sin_addr) << ":" << ntohs(from.sin_port); std::cerr << inet_ntoa(from.sin_addr) << ":" << ntohs(from.sin_port);
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
std::ostringstream out;
out << "UdpSorter::handleStunPkt() got Request from: " << from;
rslog(RSL_WARNING,rsudpsorterzone,out.str());
}
/* generate a response */ /* generate a response */
int len; int len;
@ -266,6 +278,13 @@ bool UdpSorter::locked_handleStunPkt(void *data, int size, struct sockaddr_in &f
std::cerr << inet_ntoa(eAddr.sin_addr) << ":" << ntohs(eAddr.sin_port); std::cerr << inet_ntoa(eAddr.sin_addr) << ":" << ntohs(eAddr.sin_port);
std::cerr << std::endl; std::cerr << std::endl;
#endif #endif
{
std::ostringstream out;
out << "UdpSorter::handleStunPkt() got Response from: " << from;
out << " Ext Addr: " << eAddr;
rslog(RSL_WARNING,rsudpsorterzone,out.str());
}
locked_recvdStun(from, eAddr); locked_recvdStun(from, eAddr);
return true; return true;

View File

@ -7,7 +7,7 @@ RS_TOP_DIR = ..
include $(RS_TOP_DIR)/scripts/config.mk include $(RS_TOP_DIR)/scripts/config.mk
############################################################### ###############################################################
RSOBJ = rsthreads.o rsdir.o rsprint.o rsnet.o RSOBJ = rsthreads.o rsdir.o rsprint.o rsnet.o rsdebug.o
TESTOBJ = dirtest.o dir2test.o TESTOBJ = dirtest.o dir2test.o

View File

@ -1,7 +1,7 @@
/* /*
* "$Id: pqidebug.cc,v 1.6 2007-02-18 21:46:49 rmf24 Exp $" * "$Id: pqidebug.cc,v 1.6 2007-02-18 21:46:49 rmf24 Exp $"
* *
* 3P/PQI network interface for RetroShare. * 3P/RS network interface for RetroShare.
* *
* Copyright 2004-2006 by Robert Fernie. * Copyright 2004-2006 by Robert Fernie.
* *
@ -26,28 +26,35 @@
#include "pqi/pqidebug.h" #include "util/rsdebug.h"
#include "util/rsthreads.h"
#include <map> #include <map>
#include <stdio.h> #include <stdio.h>
const int PQI_DEBUG_STDERR = 1; /* stuff goes to stderr */ const int RS_DEBUG_STDERR = 1; /* stuff goes to stderr */
const int PQI_DEBUG_LOGFILE = 2; /* stuff goes to logfile */ const int RS_DEBUG_LOGFILE = 2; /* stuff goes to logfile */
const int PQI_DEBUG_LOGCRASH = 3; /* minimal logfile stored after crashes */ const int RS_DEBUG_LOGCRASH = 3; /* minimal logfile stored after crashes */
const int PQI_DEBUG_LOGC_MAX = 1000; /* max length of carshfile log */ const int RS_DEBUG_LOGC_MAX = 100000; /* max length of crashfile log */
const int PQI_DEBUG_LOGC_MIN_SAVE = 100; /* max length of carshfile log */ const int RS_DEBUG_LOGC_MIN_SAVE = 100; /* min length of crashfile log */
static std::map<int, int> zoneLevel; static std::map<int, int> zoneLevel;
static int defaultLevel = PQL_WARNING; static int defaultLevel = RSL_WARNING;
static FILE *ofd = stderr; static FILE *ofd = stderr;
static int debugMode = PQI_DEBUG_STDERR; static int debugMode = RS_DEBUG_STDERR;
static int lineCount = 0; static int lineCount = 0;
static std::string crashfile; static std::string crashfile;
static int debugTS = 0; static int debugTS = 0;
static RsMutex logMtx;
int locked_setDebugFile(const char *fname);
int locked_getZoneLevel(int zone);
int setDebugCrashMode(const char *cfile) int setDebugCrashMode(const char *cfile)
{ {
RsStackMutex stack(logMtx); /******** LOCKED ****************/
crashfile = cfile; crashfile = cfile;
/* if the file exists - then we crashed, save it */ /* if the file exists - then we crashed, save it */
FILE *tmpin = fopen(crashfile.c_str(), "r"); FILE *tmpin = fopen(crashfile.c_str(), "r");
@ -55,7 +62,7 @@ int setDebugCrashMode(const char *cfile)
{ {
/* see how long it is */ /* see how long it is */
fseek(tmpin, 0, SEEK_END); fseek(tmpin, 0, SEEK_END);
if (ftell(tmpin) > PQI_DEBUG_LOGC_MIN_SAVE) if (ftell(tmpin) > RS_DEBUG_LOGC_MIN_SAVE)
{ {
std::string crashfile_save = crashfile + "-save"; std::string crashfile_save = crashfile + "-save";
fprintf(stderr, "Detected Old Crash File: %s\n", crashfile.c_str()); fprintf(stderr, "Detected Old Crash File: %s\n", crashfile.c_str());
@ -95,10 +102,10 @@ int setDebugCrashMode(const char *cfile)
} }
} }
if (0 < setDebugFile(crashfile.c_str())) if (0 < locked_setDebugFile(crashfile.c_str()))
{ {
fprintf(stderr, "Switching To CrashLog Mode!\n"); fprintf(stderr, "Switching To CrashLog Mode!\n");
debugMode = PQI_DEBUG_LOGCRASH; debugMode = RS_DEBUG_LOGCRASH;
lineCount = 0; lineCount = 0;
debugTS = time(NULL); debugTS = time(NULL);
} }
@ -109,8 +116,9 @@ int setDebugCrashMode(const char *cfile)
/* this is called when we exit normally */ /* this is called when we exit normally */
int clearDebugCrashLog() int clearDebugCrashLog()
{ {
RsStackMutex stack(logMtx); /******** LOCKED ****************/
/* check we are in crashLog Mode */ /* check we are in crashLog Mode */
if (debugMode != PQI_DEBUG_LOGCRASH) if (debugMode != RS_DEBUG_LOGCRASH)
{ {
fprintf(stderr, "Not in CrashLog Mode - nothing to clear!\n"); fprintf(stderr, "Not in CrashLog Mode - nothing to clear!\n");
return 1; return 1;
@ -120,7 +128,7 @@ int clearDebugCrashLog()
/* shutdown crashLog Mode */ /* shutdown crashLog Mode */
fclose(ofd); fclose(ofd);
ofd = stderr; ofd = stderr;
debugMode = PQI_DEBUG_STDERR; debugMode = RS_DEBUG_STDERR;
/* just open the file, and then close */ /* just open the file, and then close */
FILE *tmpin = fopen(crashfile.c_str(), "w"); FILE *tmpin = fopen(crashfile.c_str(), "w");
@ -132,17 +140,23 @@ int clearDebugCrashLog()
int setDebugFile(const char *fname) int setDebugFile(const char *fname)
{
RsStackMutex stack(logMtx); /******** LOCKED ****************/
return locked_setDebugFile(fname);
}
int locked_setDebugFile(const char *fname)
{ {
if (NULL != (ofd = fopen(fname, "w"))) if (NULL != (ofd = fopen(fname, "w")))
{ {
fprintf(stderr, "Logging redirected to %s\n", fname); fprintf(stderr, "Logging redirected to %s\n", fname);
debugMode = PQI_DEBUG_LOGFILE; debugMode = RS_DEBUG_LOGFILE;
return 1; return 1;
} }
else else
{ {
ofd = stderr; ofd = stderr;
debugMode = PQI_DEBUG_STDERR; debugMode = RS_DEBUG_STDERR;
fprintf(stderr, "Logging redirect to %s FAILED\n", fname); fprintf(stderr, "Logging redirect to %s FAILED\n", fname);
return -1; return -1;
} }
@ -151,17 +165,25 @@ int setDebugFile(const char *fname)
int setOutputLevel(int lvl) int setOutputLevel(int lvl)
{ {
RsStackMutex stack(logMtx); /******** LOCKED ****************/
return defaultLevel = lvl; return defaultLevel = lvl;
} }
int setZoneLevel(int lvl, int zone) int setZoneLevel(int lvl, int zone)
{ {
RsStackMutex stack(logMtx); /******** LOCKED ****************/
zoneLevel[zone] = lvl; zoneLevel[zone] = lvl;
return zone; return zone;
} }
int getZoneLevel(int zone) int getZoneLevel(int zone)
{
RsStackMutex stack(logMtx); /******** LOCKED ****************/
return locked_getZoneLevel(zone);
}
int locked_getZoneLevel(int zone)
{ {
std::map<int, int>::iterator it = zoneLevel.find(zone); std::map<int, int>::iterator it = zoneLevel.find(zone);
if (it == zoneLevel.end()) if (it == zoneLevel.end())
@ -171,27 +193,28 @@ int getZoneLevel(int zone)
return it -> second; return it -> second;
} }
int pqioutput(unsigned int lvl, int zone, std::string msg) int rslog(unsigned int lvl, int zone, std::string msg)
{ {
if ((signed) lvl <= getZoneLevel(zone)) RsStackMutex stack(logMtx); /******** LOCKED ****************/
if ((signed) lvl <= locked_getZoneLevel(zone))
{ {
time_t t = time(NULL); time_t t = time(NULL);
if (debugMode == PQI_DEBUG_LOGCRASH) if (debugMode == RS_DEBUG_LOGCRASH)
{ {
if (lineCount > PQI_DEBUG_LOGC_MAX) if (lineCount > RS_DEBUG_LOGC_MAX)
{ {
/* restarting logging */ /* restarting logging */
fprintf(stderr, "Rolling over the CrashLog\n"); fprintf(stderr, "Rolling over the CrashLog\n");
fclose(ofd); fclose(ofd);
ofd = NULL; ofd = NULL;
if (0 < setDebugFile(crashfile.c_str())) if (0 < locked_setDebugFile(crashfile.c_str()))
{ {
fprintf(ofd, "Debug CrashLog:"); fprintf(ofd, "Debug CrashLog:");
fprintf(ofd, " retroShare uptime %ld secs\n", fprintf(ofd, " retroShare uptime %ld secs\n",
t-debugTS); t-debugTS);
debugMode = PQI_DEBUG_LOGCRASH; debugMode = RS_DEBUG_LOGCRASH;
lineCount = 0; lineCount = 0;
} }
else else

View File

@ -1,9 +1,9 @@
/* /*
* "$Id: pqidebug.h,v 1.4 2007-02-18 21:46:49 rmf24 Exp $" * libretroshare/src/util: rsdebug.h
* *
* 3P/PQI network interface for RetroShare. * Debug interface for RetroShare.
* *
* Copyright 2004-2006 by Robert Fernie. * Copyright 2004-2008 by Robert Fernie.
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public * modify it under the terms of the GNU Library General Public
@ -24,17 +24,22 @@
*/ */
/* Moved from pqi/ to util/ so it can be used more generally.
*/
#ifndef PQI_LOG_DEBUG_H #ifndef RS_LOG_DEBUG_H
#define PQI_LOG_DEBUG_H #define RS_LOG_DEBUG_H
#define RSL_NONE -1
#define RSL_ALERT 1
#define RSL_ERROR 3
#define RSL_WARNING 5
#define RSL_DEBUG_ALERT 6
#define RSL_DEBUG_BASIC 8
#define RSL_DEBUG_ALL 10
#define PQL_NONE -1
#define PQL_ALERT 1
#define PQL_ERROR 3
#define PQL_WARNING 5
#define PQL_DEBUG_ALERT 6
#define PQL_DEBUG_BASIC 8
#define PQL_DEBUG_ALL 10
#include <string> #include <string>
@ -44,6 +49,25 @@ int clearDebugCrashLog();
int setDebugFile(const char *fname); int setDebugFile(const char *fname);
int setOutputLevel(int lvl); int setOutputLevel(int lvl);
int setZoneLevel(int lvl, int zone); int setZoneLevel(int lvl, int zone);
int pqioutput(unsigned int lvl, int zone, std::string msg); int rslog(unsigned int lvl, int zone, std::string msg);
/*
* retaining old #DEFINES and functions for backward compatibility.
*/
//int pqioutput(unsigned int lvl, int zone, std::string msg);
#define pqioutput rslog
#define PQL_NONE RSL_NONE
#define PQL_ALERT RSL_ALERT
#define PQL_ERROR RSL_ERROR
#define PQL_WARNING RSL_WARNING
#define PQL_DEBUG_ALERT RSL_DEBUG_ALERT
#define PQL_DEBUG_BASIC RSL_DEBUG_BASIC
#define PQL_DEBUG_ALL RSL_DEBUG_ALL
#endif #endif