10
10
//#include <netinet/in.h>
11
11
//#include <netdb.h>
13
#include "tcpconnect.h"
13
//#include "tcpconnect.h"
15
15
#include "lockable.h"
16
16
#include "fileitem.h"
23
class dlcon : public lockable, tcpconnect
21
typedef SHARED_PTR<tDlJob> tDlJobPtr;
22
typedef MYSTD::list<tDlJobPtr> tDljQueue;
24
class dlcon : public lockable
26
27
dlcon(bool bManualExecution, mstring *xff=NULL);
33
34
void AddJob(tFileItemPtr m_pItem, tHttpUrl hi);
34
void AddJob(tFileItemPtr m_pItem,
35
acfg::tHostiVec *pBackends, const mstring & sPatSuffix);
35
void AddJob(tFileItemPtr m_pItem, const acfg::tRepoData *pBackends,
36
const mstring & sPatSuffix);
36
37
void EnqJob(tDlJob *);
38
39
mstring m_sXForwardedFor;
45
MYSTD::list<tDlJob*> m_qToReceive;
44
dlcon & operator=(const dlcon&);
47
//friend class tDlJob;
48
//mstring m_sConnectedHost; // used to remember to which host we are connected
52
53
// flags and local copies for input parsing
53
54
/// remember being attached to an fitem
57
//MYSTD::set<tHttpUrl*> m_MirrorBlacklist;
58
MYSTD::set<mstring> m_MirrorHostBlacklist;
61
dlcon & operator=(const dlcon&);
60
/// blacklist for permanently failing hosts, with error message
61
MYSTD::map<MYSTD::pair<cmstring,cmstring>, mstring> m_blacklist;
62
void BlacklistMirror(tDlJobPtr &failJob, cmstring &msg);
63
bool SetupJobConfig(tDlJobPtr &job, mstring *pReasonMsg);
65
tSS m_sendBuf, m_inBuf;
67
UINT ExchangeData(mstring &sErrorMsg, int fd, tDljQueue &qActive);
65
typedef MYSTD::list<tDlJob*>::iterator dljIter;