Example #1
0
_declspec( dllexport ) HANDLE GetServerList(char *retPort)	
{
	char ports[MAXPORTNAME];
	BOOL status = NOERROR;
	HANDLE serverList;

	status = OSGetEnvironmentString("Ports", ports, MAXPORTNAME);
	if (status == TRUE) 
	{
		//try first port
		for(UINT i=0; i < strlen(ports); i++) 
		{
			if (ports[i] == ',' || ports[i] == '\0') 
			{
				retPort[i] = '\0';
				break;
			}			
			retPort[i] = ports[i];
		}
	}

	status = NSGetServerList((char *)retPort, &serverList);
	
	if (status == NOERROR) 
	{
		return serverList;
	} else 
	{
		return (HANDLE)NULL;
	}
}
Example #2
0
_declspec ( dllexport ) WORD GetCurrentUserMailFileName(char *retMailFile)
{
	BOOL bStatus;
	
	bStatus = OSGetEnvironmentString(_T("MailFile"), 
								     retMailFile, 
									 (WORD)strlen(retMailFile));

	return (WORD)strlen(retMailFile);
}
Example #3
0
void NotesHelper::InitialiseSession()
{
	if(m_notesInitialised)
		return;

	if (0 != NotesInit())
		throw CppUnitException(_T("Failed to Initialise Notes runtime"), __LINE__, _T(__FILE__));     

	char serverName[1024] = {0};
	if(TRUE != OSGetEnvironmentString("MailServer", serverName, sizeof(serverName)))
		throw CppUnitException(_T("Failed to obtain the Lotus Domino Mail Server"), __LINE__, _T(__FILE__)); 

	char szMailFileName[MAXUSERNAME + 1];
	strcpy(szMailFileName, MAILBOX_NAME);
	char szMailBoxPath[MAXPATH + 1] = {0};    

	OSPathNetConstruct(0, serverName, szMailFileName, szMailBoxPath);
	STATUS error = NSFDbOpen(szMailBoxPath, &m_hMailBox);
	if (NOERROR != error)
		throw CppUnitException(_T("Failed to open mail.box"), __LINE__, _T(__FILE__));	

	m_notesInitialised = true;
}
Example #4
0
_declspec ( dllexport ) WORD GetServerNamesEx(char retServerNames[MAX_SERVERS][MAXPATH])
{
	BOOL status = NOERROR;
	char szLocation[MAXENVVALUE];
	char szPAB[MAXENVVALUE];
	HANDLE db;
	char full_netpath[MAXPATH-1];
	NOTEID view_id;
	HCOLLECTION hCollection;
	COLLECTIONPOSITION pCollPosition;
	HANDLE hBuffer;
	DWORD NumberReturned = 0;
	NOTEID *IdList;
	NOTEHANDLE note;
	char szFieldName[80] = { 0 };
	char szFieldType[80] = { 0 };
	WORD retServerCount = 0;
	bool bUseLocal = false;

	// first, get the name of the current location
	status = OSGetEnvironmentString("Location", szLocation, MAXENVVALUE);
	if (status == TRUE) 
	{
		char *pb = strchr(szLocation, ',');
		if (pb != NULL)
			*pb = 0 ;
	}

	status = OSGetEnvironmentString("MAILSERVER", szPAB, MAXENVVALUE);
	if (status == TRUE) 
	{
		char *pb = strchr(szPAB, ',');
		if (pb != NULL)
			*pb = 0 ;
	}

	if (status = OSPathNetConstruct(NULL, szPAB, _T("names.nsf"), full_netpath))
	{
		printf("unable to open the public NAB %s!!names.nsf\n", szFieldName);
		return 0;
	}

	if (status = NSFDbOpen (full_netpath, &db))
        return 0;

	if (bUseLocal)
	{
		// choose local PAB view
		if (status = NIFFindView(db, _T("Connections"), &view_id))
		{
			NSFDbClose(db);
			return 0;
		}
	} else
	{
		// choose server list from server Directory
		if (status = NIFFindView(db, _T("Servers"), &view_id))
		{
			NSFDbClose(db);
			return 0;
		}
	}

	if (status = NIFOpenCollection( db,	 
									db,	  
		                			view_id,	 
									0,		   
		                			NULLHANDLE,	  
                					&hCollection,	 
		                			NULL,		   
		                			NULL,		
									NULL,	    	
		                			NULL ))	
	{
		NSFDbClose(db);
		return 0;
	}

	pCollPosition.Level = 0;
	pCollPosition.Tumbler[0] = 1;

	 if (status = NIFReadEntries(hCollection,	
							     &pCollPosition,		
							     NAVIGATE_CURRENT,	   
							     1L,		
							     NAVIGATE_NEXT,	   
							     0xFFFFFFFF,		  
							     READ_MASK_NOTEID,	
							     &hBuffer,	  
							     NULL,		 
							     NULL,		 
							     &NumberReturned,	  
							     NULL))		
	 {
		NIFCloseCollection(hCollection);
		NSFDbClose(db);
		return 0;
	 }

	 strcpy_s(retServerNames[retServerCount++], MAXPATH, _T("Local"));
	 if (NumberReturned != 0) 
	 {
		if (hBuffer != NULLHANDLE)
        {
    		IdList = (NOTEID far *)OSLockObject(hBuffer);
    		for (DWORD i=0; i<(DWORD)NumberReturned; i++)
			{
  				if (status = NSFNoteOpen( db, IdList[i], 0, &note))
				{
					// skip categories
				} else
				{
					// scan documents
					WORD lenFieldName = NSFItemGetText(note, 
													  (bUseLocal) ? _T("Destination") : _T("ServerName"), 
													  szFieldName, 
													  sizeof(szFieldName)); 
					strcpy_s(retServerNames[retServerCount++], MAXPATH, szFieldName);
					status = NSFNoteClose(note);
				}
			}
			OSUnlockObject(hBuffer);
            OSMemFree(hBuffer);
		}
	}

	if (status)
	{
		NIFCloseCollection(hCollection);
		NSFDbClose(db);
		return 0;
	}

	if (status = NIFCloseCollection(hCollection))
	{
		NSFDbClose(db);
		return 0;
	}

	if (status = NSFDbClose(db))
		return 0;

	return retServerCount;
}