Add code to add the incoming server to the host session list when parsing it.

This commit is contained in:
mscott%netscape.com 1999-04-14 01:19:34 +00:00
Родитель 930195d95c
Коммит c1260a7df1
1 изменённых файлов: 30 добавлений и 1 удалений

Просмотреть файл

@ -19,6 +19,7 @@
#include "msgCore.h" #include "msgCore.h"
#include "nsIImapIncomingServer.h" #include "nsIImapIncomingServer.h"
#include "nsIImapHostSessionList.h"
#include "nsImapIncomingServer.h" #include "nsImapIncomingServer.h"
#include "nsMsgIncomingServer.h" #include "nsMsgIncomingServer.h"
@ -27,6 +28,7 @@
#include "prmem.h" #include "prmem.h"
#include "plstr.h" #include "plstr.h"
static NS_DEFINE_CID(kCImapHostSessionList, NS_IIMAPHOSTSESSIONLIST_CID);
/* get some implementation from nsMsgIncomingServer */ /* get some implementation from nsMsgIncomingServer */
class nsImapIncomingServer : public nsMsgIncomingServer, class nsImapIncomingServer : public nsMsgIncomingServer,
@ -42,6 +44,7 @@ public:
// we support the nsIImapIncomingServer interface // we support the nsIImapIncomingServer interface
NS_IMETHOD GetRootFolderPath(char **); NS_IMETHOD GetRootFolderPath(char **);
NS_IMETHOD SetRootFolderPath(char *); NS_IMETHOD SetRootFolderPath(char *);
NS_IMETHOD SetKey(char * aKey); // override nsMsgIncomingServer's implementation...
private: private:
char *m_rootFolderPath; char *m_rootFolderPath;
@ -64,13 +67,39 @@ nsImapIncomingServer::~nsImapIncomingServer()
NS_IMPL_SERVERPREF_STR(nsImapIncomingServer, RootFolderPath, "directory") NS_IMPL_SERVERPREF_STR(nsImapIncomingServer, RootFolderPath, "directory")
NS_IMETHODIMP nsImapIncomingServer::SetKey(char * aKey) // override nsMsgIncomingServer's implementation...
{
nsMsgIncomingServer::SetKey(aKey);
// okay now that the key has been set, we need to add ourselves to the
// host session list...
// every time we create an imap incoming server, we need to add it to the
// host session list!!
// get the user and host name and the fields to the host session list.
char * userName = nsnull;
char * hostName = nsnull;
nsresult rv = GetHostName(&hostName);
rv = GetUserName(&userName);
NS_WITH_SERVICE(nsIImapHostSessionList, hostSession, kCImapHostSessionList, &rv);
if (NS_FAILED(rv)) return rv;
hostSession->AddHostToList(hostName, userName);
PR_FREEIF(userName);
PR_FREEIF(hostName);
return rv;
}
nsresult NS_NewImapIncomingServer(const nsIID& iid, nsresult NS_NewImapIncomingServer(const nsIID& iid,
void **result) void **result)
{ {
nsImapIncomingServer *server; nsImapIncomingServer *server;
if (!result) return NS_ERROR_NULL_POINTER; if (!result) return NS_ERROR_NULL_POINTER;
server = new nsImapIncomingServer(); server = new nsImapIncomingServer();
return server->QueryInterface(iid, result); return server->QueryInterface(iid, result);
} }