summaryrefslogtreecommitdiff
path: root/www/seamonkey/files/patch-netwerk::base::src::nsSocketTransport.h
blob: ed73e127f901bfe51669bbc017850a2c7aaead72 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
--- netwerk/base/src/nsSocketTransport.h.orig	Fri Feb  8 11:20:24 2002
+++ netwerk/base/src/nsSocketTransport.h	Fri Feb  8 11:20:29 2002
@@ -176,7 +176,7 @@
     PRFileDesc* GetSocket(void)      { return mSocketFD;    }
     PRInt16     GetSelectFlags(void) { return mSelectFlags; }
     PRCList*    GetListNode(void)    { return &mListLink;   }
-    
+
     static nsSocketTransport* GetInstance(PRCList* qp) { return (nsSocketTransport*)((char*)qp - offsetof(nsSocketTransport, mListLink)); }
     
     PRBool CanBeReused() { return 
@@ -237,8 +237,27 @@
     inline void ClearFlag(nsSocketReadWriteInfo aFlag) {
         mReadWriteState &= ~aFlag;
     } 
+
+    PRInt32     GetSocketPort(void)  { return (mProxyPort != -1 && !mProxyTransparent) ? mProxyPort : mPort; }
+    const char *GetSocketHost(void)  { return (mProxyHost && !mProxyTransparent) ? mProxyHost : mHostName; }
     
 protected:
+    class nsNetAddrList {
+    public:
+        nsNetAddrList() : mList(nsnull), mLen(0) {}
+       ~nsNetAddrList() { delete[] mList; }
+
+        // allocate space for the address list
+        nsresult Init(PRUint32 len);
+
+        // given a net addr in the list, return the next addr.
+        // if given NULL, then return the first addr in the list.
+        // returns NULL if given addr is the last addr.
+        PRNetAddr *GetNext(PRNetAddr *currentAddr);
+    private:
+        PRNetAddr *mList;
+        PRUint32   mLen;
+    };
     
     nsSocketState                   mCurrentState;
     nsCOMPtr<nsIRequest>            mDNSRequest;
@@ -249,7 +268,8 @@
     PRIntervalTime                  mLastActiveTime;
     PRCList                         mListLink;
     PRMonitor*                      mMonitor;
-    PRNetAddr                       mNetAddress;
+    nsNetAddrList                   mNetAddrList;
+    PRNetAddr                      *mNetAddress;
     nsSocketOperation               mOperation;
     nsCOMPtr<nsISupports>           mSecurityInfo;
 
@@ -415,6 +435,7 @@
     PRBool IsInitialized() { return mStartFired; }
     PRBool IsSuspended() { return mSuspendCount > 0; }
     PRBool IsCanceled() { return mCanceled; }
+    PRBool HasFailed() { return NS_FAILED(mStatus); }
 
     void SetTransport(nsSocketTransport *);
     void SetObserver(nsIRequestObserver *obs) { mObserver = obs; }