Compare commits

..

14 Commits

Author SHA1 Message Date
darin%netscape.com
1c144fcd69 Fixed build error for XP_WIN
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96573 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-06 23:44:44 +00:00
darin%netscape.com
e5cf1b276e nsDNSService::Lookup cleanup
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96558 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-06 21:49:51 +00:00
gordon%netscape.com
91fd7764f4 Incorporating super-review comments from darin.
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96550 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-06 20:36:15 +00:00
gordon%netscape.com
ea46c1613f Removed debugging printfs.
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96354 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-04 23:44:58 +00:00
gordon%netscape.com
920bdf7dea Added preferences for network.dnsCacheEntries and network.dnsCacheExpiration.
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96351 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-04 23:40:31 +00:00
gordon%netscape.com
57f5fba9ce Notify condition variable in nsDNSService::Shutdown() to wake DNS thread.
This fixes a hang when going offline on Linux.


git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96188 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-01 20:20:09 +00:00
darin%netscape.com
88be940ec7 fixed compiler warning
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96153 18797224-902f-48f8-a5cc-f745e15eee43
2001-06-01 00:34:15 +00:00
gordon%netscape.com
ab155b6e91 Fixed missing brackets in if/else statement.
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96143 18797224-902f-48f8-a5cc-f745e15eee43
2001-05-31 23:18:56 +00:00
gordon%netscape.com
5784a4519a Hold onto request reference while it is queued on lookup.
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96135 18797224-902f-48f8-a5cc-f745e15eee43
2001-05-31 22:13:55 +00:00
gordon%netscape.com
5ccf744154 Added mState member to nsDNSLookup to track whether the lookup is NEW, PENDING, or COMPLETE.
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96055 18797224-902f-48f8-a5cc-f745e15eee43
2001-05-30 05:59:36 +00:00
gordon%netscape.com
45651a531e Fix windows build errors.
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96041 18797224-902f-48f8-a5cc-f745e15eee43
2001-05-30 02:04:08 +00:00
gordon%netscape.com
14de41037e Fix build errors on linux.
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96039 18797224-902f-48f8-a5cc-f745e15eee43
2001-05-30 01:51:50 +00:00
gordon%netscape.com
b60873d170 Mac implementation.
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@96038 18797224-902f-48f8-a5cc-f745e15eee43
2001-05-30 01:46:55 +00:00
(no author)
7e258e4f27 This commit was manufactured by cvs2svn to create branch 'DNS_BRANCH'.
git-svn-id: svn://10.0.0.236/branches/DNS_BRANCH@91844 18797224-902f-48f8-a5cc-f745e15eee43
2001-04-10 06:01:10 +00:00
3 changed files with 1966 additions and 1647 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,153 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is mozilla.org code.
*
* The Initial Developer of the Original Code is Netscape
* Communications Corporation. Portions created by Netscape are
* Copyright (C) 1999 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s):
*/
#ifndef nsDNSService_h__
#define nsDNSService_h__
#include "nsIDNSService.h"
#include "nsIRunnable.h"
#include "nsIObserver.h"
#include "nsIThread.h"
#include "nsISupportsArray.h"
#if defined(XP_MAC)
#include <OSUtils.h>
#include <OpenTransport.h>
#include <OpenTptInternet.h>
#elif defined (XP_WIN)
#include <windows.h>
#include <Winsock2.h>
#endif
#include "nsCOMPtr.h"
#include "prclist.h"
#include "prcvar.h"
#include "pldhash.h"
#ifdef DEBUG
#define DNS_TIMING 1
#endif
class nsIDNSListener;
class nsDNSLookup;
/******************************************************************************
* nsDNSService
*****************************************************************************/
class nsDNSService : public nsIDNSService,
public nsIRunnable,
public nsIObserver
{
public:
NS_DECL_ISUPPORTS
NS_DECL_NSIRUNNABLE
NS_DECL_NSIDNSSERVICE
NS_DECL_NSIOBSERVER
// nsDNSService methods:
nsDNSService();
virtual ~nsDNSService();
// Define a Create method to be used with a factory:
static NS_METHOD Create( nsISupports * outer,
const nsIID & iid,
void ** result);
static void Lock();
static void Unlock();
void EnqueuePendingQ(nsDNSLookup * lookup);
nsDNSLookup * DequeuePendingQ();
static PRInt32 ExpirationInterval();
static nsDNSService * gService;
private:
nsresult LateInit();
nsresult InstallPrefObserver();
nsresult RemovePrefObserver();
nsDNSLookup * FindOrCreateLookup( const char * hostName);
void EvictLookup( nsDNSLookup * lookup);
void AddToEvictionQ( nsDNSLookup * lookup);
void AbortLookups();
static PRBool gNeedLateInitialization;
static PLDHashTableOps gHashTableOps;
PRLock * mDNSServiceLock;
PRCondVar * mDNSCondVar;
PLDHashTable mHashTable;
PRCList mPendingQ;
PRCList mEvictionQ;
PRInt32 mEvictionQCount;
PRInt32 mMaxCachedLookups;
PRInt32 mExpirationInterval;
char * mMyIPAddress;
nsCOMPtr<nsIThread> mThread;
PRUint32 mState;
enum {
DNS_NOT_INITIALIZED = 0,
DNS_RUNNING = 1,
DNS_SHUTTING_DOWN = 2,
DNS_SHUTDOWN = 3
};
#if defined(XP_MAC)
friend pascal void nsDnsServiceNotifierRoutine(void * contextPtr, OTEventCode code, OTResult result, void * cookie);
public:
InetSvcRef mServiceRef;
OTNotifyUPP nsDnsServiceNotifierRoutineUPP;
#if TARGET_CARBON
OTClientContextPtr mClientContext;
#endif /* TARGET_CARBON */
private:
#endif /* XP_MAC */
#if defined(XP_WIN)
friend static
LRESULT CALLBACK nsDNSEventProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
public:
PRUint32 AllocMsgID( void);
HWND mDNSWindow;
private:
void FreeMsgID( PRUint32 msgID);
LRESULT ProcessLookup( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
PRUint32 mMsgIDBitVector[4];
#endif /* XP_WIN */
#ifdef DNS_TIMING
friend class nsDNSRequest;
double mCount;
double mTimes;
double mSquaredTimes;
FILE * mOut;
#endif
};
#endif /* nsDNSService_h__ */

File diff suppressed because it is too large Load Diff