Esempio n. 1
0
//  FUNCTION:   sys_LoggingStart(PA_PluginParameters params)
//
//  PURPOSE:	Start logging Win32API commands
//
//  COMMENTS:
//
//	DATE:		7/11/16 Win-20
void sys_LoggingStart(PA_PluginParameters params) {
	LONG returnValue = 0; // WJF 7/11/16 Win-20

	PA_GetTextParameter(params, 1, szLogsPath);
	lNumDays = PA_GetLongParameter(params, 2);
	
	returnValue = logOpenFile();

	PA_ReturnLong(params, returnValue); // WJF 7/11/16 Win-20
}
Esempio n. 2
0
static int logOpen (LOGGER *p_logger) {

	int	retval	= SUCCESS;

	if (p_logger == NULL) {
		fprintf (stderr, "ERROR: %s - NULL logger provided\n", __FUNCTION__);
		return ERROR;
	}

	if (!(p_logger->optionMask & NODE_IN_USE)) {
		fprintf (stderr, "ERROR: %s - Logger not in use\n", __FUNCTION__);
		return ERROR;
	}

	switch (p_logger->facility) {
		case F_FILE:
			retval = logOpenFile (p_logger);
			break;

		case F_DB:
			retval = logOpenDB (p_logger);
			break;

		case F_SOCKET:
			retval = logOpenSocket (p_logger);
			break;

		case F_PIPE:
			retval = logOpenPipe (p_logger);
			break;

		case F_CONSOLE:
			retval = logOpenConsole (p_logger);
			break;

		case F_PRINTER:
			retval = logOpenPrinter (p_logger);
			break;

		default:	/* Shouldn't ever get here... */
			break;
	}

	return retval;
}
Esempio n. 3
0
// Write to the log file
void writeLogFile(const char * szLog){
	DWORD dwPos = 0;
	DWORD dwBytesWritten = 0;
	SYSTEMTIME lt; // WJF 7/11/16 Win-20 localTime -> lt
	CHAR szOutput[128]; // WJF 7/11/16 Win-20 1024 -> 128
	DWORD logLength = 0; // WJF 6/30/16 Win-21 size_t -> DWORD
	LPSTR dateString = NULL; // WJF 7/11/16 Win-20
	CHAR dateComp[16]; // WJF 7/11/16 Win-20

	if (bLogIsOpen) { // WJF 7/8/16 Win-20 Don't bother doing this if the log isn't open
		GetLocalTime(&lt);

		sprintf_s(dateComp, 16, "%04u%02u%02u", lt.wYear, lt.wMonth, lt.wDay);

		// WJF 7/11/16 Win-20 If the current date doesn't match the date of the open log file, close it and make a new one
		if (strcmp(dateComp, dateOpened) != 0) {
			logCloseFile();
			logOpenFile();
		}

		if (bLogIsOpen) { // WJF 7/11/16 Win-20 This might change if the day rolled over
			// MM/DD/YYYY H:M:S:MS - 
			// WJF 7/11/16 Win-20 Rewrote to be simpler
			sprintf_s(szOutput, 128, "%02u/%02u/%04u %02u:%02u:%02u:%03u - ", lt.wMonth, lt.wDay, lt.wYear, lt.wHour, lt.wMinute, lt.wSecond, lt.wMilliseconds);
			strcat_s(szOutput, 128, szLog);

			logLength = (DWORD)strlen(szOutput); // WJF 6/30/16 Win-21 Cast to DWORD

			//if ((hLogFile != INVALID_HANDLE_VALUE) && (bLogIsOpen)) { // WJF 7/8/16 Win-20 Removed unneccessary check
			dwPos = SetFilePointer(hLogFile, 0, NULL, FILE_END);
			LockFile(hLogFile, dwPos, 0, logLength, 0);
			WriteFile(hLogFile, szOutput, logLength, &dwBytesWritten, NULL);
			UnlockFile(hLogFile, dwPos, 0, logLength, 0);
			// }

		}
	}
}
void paraNode()
/* paraNode - a net server. */
{
char *line;
char *command;
struct sockaddr_in sai;

/* We have to know who we are... */
hostName = getMachine();
initRandom();
getTicksToHundreths();

/* log init */
if (optionExists("log"))
    logOpenFile("paraNode", optionVal("log", NULL));
else    
    logOpenSyslog("paraNode", optionVal("logFacility", NULL));
logSetMinPriority(optionVal("logMinPriority", "info"));
logInfo("starting paraNode on %s", hostName);

/* Make job lists. */
jobsRunning = newDlList();
jobsFinished = newDlList();

/* Set up socket and self to listen to it. */
ZeroVar(&sai);
sai.sin_family = AF_INET;
sai.sin_port = htons(paraNodePort);
sai.sin_addr.s_addr = INADDR_ANY;
mainRudp = rudpMustOpenBound(&sai);
mainRudp->maxRetries = 12;

/* Event loop. */
findNow();
for (;;)
    {
    /* Get next incoming message and optionally check to make
     * sure that it's from a host we trust, and check signature
     * on first bit of incoming data. */
    if (pmReceive(&pmIn, mainRudp))
	{
	findNow();
	if (hubName == NULL || ntohl(pmIn.ipAddress.sin_addr.s_addr) == hubIp 
		|| ntohl(pmIn.ipAddress.sin_addr.s_addr) == localIp)
	    {
	    /* Host and signature look ok,  read a string and
	     * parse out first word as command. */
	    line = pmIn.data;
	    logDebug("message from %s: \"%s\"",
                     paraFormatIp(ntohl(pmIn.ipAddress.sin_addr.s_addr)),
                     line);
	    command = nextWord(&line);
	    if (command != NULL)
		{
		if (sameString("quit", command))
		    break;
		else if (sameString("run", command))
		    doRun(line, &pmIn.ipAddress);
		else if (sameString("jobDone", command))
		    jobDone(line);
		else if (sameString("status", command))
		    doStatus();
		else if (sameString("kill", command))
		    doKill(line);
		else if (sameString("check", command))
		    doCheck(line, &pmIn.ipAddress);
		else if (sameString("resurrect", command))
		    doResurrect(line, &pmIn.ipAddress);
		else if (sameString("listJobs", command))
		    listJobs();
		else if (sameString("fetch", command))
		    doFetch(line);
                else
                    logWarn("invalid command: \"%s\"", command);
		}
	    logDebug("done command");
	    }
	else
	    {
	    logWarn("command from unauthorized host %s",
                    paraFormatIp(ntohl(pmIn.ipAddress.sin_addr.s_addr)));
	    }
	}
    }
rudpClose(&mainRudp);
}