diff --git a/servlog.c b/servlog.c index 5f3ec948..d5f9c02e 100644 --- a/servlog.c +++ b/servlog.c @@ -246,7 +246,7 @@ int OpenVerifyLogFile() char *pChar = NULL; char fPath[1024]; - /* snprintf(fPath, 1023, "%s/", getenv("SICS_INIT_LOGPATH")); */ +/* snprintf(fPath, 1023, "%s/", getenv("SICS_INIT_LOGPATH")); */ snprintf(fPath, 1023, "%s/", "../log"); pChar = IFindOption(pSICSOptions, "LogFileBaseName"); @@ -310,7 +310,7 @@ static void SICSLogWriteFile(char *pText, OutCode eOut, struct timeval *tp) /* switch file if too many lines */ if (iLineCount >= MAXLOG) { - fprintf(fLogFile,"%s: <<>>\n", timestamp(NULL)); + fprintf(fLogFile, "%s: <<>>\n", timestamp(NULL)); fclose(fLogFile); fLogFile = NULL; iFile++; @@ -321,205 +321,210 @@ static void SICSLogWriteFile(char *pText, OutCode eOut, struct timeval *tp) iLogUsable = OpenVerifyLogFile(); } - if(1 == iLogUsable) - { + if (1 == iLogUsable) { if (iLineCount == 0) - fprintf(fLogFile,"%s: <<>>\n", timestamp(NULL)); - fprintf(fLogFile,"%s: ", timestamp(tp)); - fprintf(fLogFile,"%s", pText); + fprintf(fLogFile, "%s: <<>>\n", timestamp(NULL)); + fprintf(fLogFile, "%s: ", timestamp(tp)); + fprintf(fLogFile, "%s", pText); if (text_len < 1 || pText[text_len - 1] != '\n') - fprintf(fLogFile,"\n"); + fprintf(fLogFile, "\n"); fflush(fLogFile); iLineCount++; } } - void SICSLogWriteTime(char *pText, OutCode eOut, struct timeval *tp) { - char buf[200]; - const char *cp = pText; - int idx = 0; - struct timeval tv; +void SICSLogWriteTime(char *pText, OutCode eOut, struct timeval *tp) +{ + char buf[200]; + const char *cp = pText; + int idx = 0; + struct timeval tv; - if (tp == NULL) { - gettimeofday(&tv, NULL); - tp = &tv; - } - while (*cp) { - if (*cp == '\n') { - buf[idx++] = '\n'; - buf[idx++] = '\0'; - SICSLogWriteFile(buf, eOut, tp); - idx = 0; - } - else if (*cp == '\r') { - buf[idx++] = '\\'; - buf[idx++] = 'r'; - } - else if (*cp == '\t') { - buf[idx++] = '\\'; - buf[idx++] = 't'; - } - else if (*cp < ' ' || *cp > '~') { - const char hex[] = "0123456789ABCDEF"; - buf[idx++] = '<'; - buf[idx++] = hex[(*cp >> 4) & 0xF]; - buf[idx++] = hex[(*cp) & 0xF]; - buf[idx++] = '>'; - } - else { - buf[idx++] = *cp; - } - cp++; - if (idx > 132) { - buf[idx++] = '\n'; - buf[idx++] = '\0'; - SICSLogWriteFile(buf, eOut, tp); - idx = 0; - } - } - if (idx > 0) { + if (tp == NULL) { + gettimeofday(&tv, NULL); + tp = &tv; + } + while (*cp) { + if (*cp == '\n') { buf[idx++] = '\n'; buf[idx++] = '\0'; SICSLogWriteFile(buf, eOut, tp); + idx = 0; + } else if (*cp == '\r') { + buf[idx++] = '\\'; + buf[idx++] = 'r'; + } else if (*cp == '\t') { + buf[idx++] = '\\'; + buf[idx++] = 't'; + } else if (*cp < ' ' || *cp > '~') { + const char hex[] = "0123456789ABCDEF"; + buf[idx++] = '<'; + buf[idx++] = hex[(*cp >> 4) & 0xF]; + buf[idx++] = hex[(*cp) & 0xF]; + buf[idx++] = '>'; + } else { + buf[idx++] = *cp; + } + cp++; + if (idx > 132) { + buf[idx++] = '\n'; + buf[idx++] = '\0'; + SICSLogWriteFile(buf, eOut, tp); + idx = 0; } } - - void SICSLogWrite(char *pText, OutCode eOut) { - struct timeval tv; - gettimeofday(&tv, NULL); - SICSLogWriteTime(pText, eOut, &tv); + if (idx > 0) { + buf[idx++] = '\n'; + buf[idx++] = '\0'; + SICSLogWriteFile(buf, eOut, tp); } +} - void SICSLogWriteHexTime(const char* text, int count, OutCode eOut, struct timeval *tp) { - const char hex[] = "0123456789ABCDEF"; - char addr[20], left[80], right[80]; - char *lp = left; - char *rp = right; - int i; - int duplicates; - /* Limit the output */ - if (count > 1024) - count = 1024; - duplicates = 0; - for (i = 0; i < count; ++i) { - if ((i & 0xF) == 0) { - if (i > 0) { +void SICSLogWrite(char *pText, OutCode eOut) +{ + struct timeval tv; + gettimeofday(&tv, NULL); + SICSLogWriteTime(pText, eOut, &tv); +} + +void SICSLogWriteHexTime(const char *text, int count, OutCode eOut, + struct timeval *tp) +{ + const char hex[] = "0123456789ABCDEF"; + char addr[20], left[80], right[80]; + char *lp = left; + char *rp = right; + int i; + int duplicates; + /* Limit the output */ + if (count > 1024) + count = 1024; + duplicates = 0; + for (i = 0; i < count; ++i) { + if ((i & 0xF) == 0) { + if (i > 0) { + char line[132]; + snprintf(line, sizeof(line) - 1, "%-6s: %-49s | %-17s |", addr, + left, right); + SICSLogWriteTime(line, eOut, tp); + } + snprintf(addr, sizeof(addr) - 1, "0x%04X", i); + while (i >= 16 && i + 16 < count) { + if (memcmp(&text[i - 16], &text[i], 16) != 0) + break; + ++duplicates; + i += 16; + } + if (duplicates > 0) { + if (duplicates > 1) { char line[132]; - snprintf(line, sizeof(line)-1, "%-6s: %-49s | %-17s |", addr, left, right); + snprintf(line, sizeof(line) - 1, "%-6s: ... (%d duplicates)", + addr, duplicates); + SICSLogWriteTime(line, eOut, tp); + } else { + char line[132]; + snprintf(line, sizeof(line) - 1, "%-6s: %-49s | %-17s |", addr, + left, right); SICSLogWriteTime(line, eOut, tp); } - snprintf(addr, sizeof(addr)-1, "0x%04X", i); - while (i >= 16 && i + 16 < count) { - if (memcmp(&text[i-16], &text[i], 16) != 0) - break; - ++duplicates; - i += 16; - } - if (duplicates > 0) { - if (duplicates > 1) { - char line[132]; - snprintf(line, sizeof(line)-1, "%-6s: ... (%d duplicates)", addr, duplicates); - SICSLogWriteTime(line, eOut, tp); - } - else { - char line[132]; - snprintf(line, sizeof(line)-1, "%-6s: %-49s | %-17s |", addr, left, right); - SICSLogWriteTime(line, eOut, tp); - } - duplicates = 0; - } - snprintf(addr, sizeof(addr)-1, "0x%04X", i); - lp = left; - rp = right; + duplicates = 0; } - *lp++ = hex[(text[i] >> 4) & 0xF]; - *lp++ = hex[(text[i]) & 0xF]; + snprintf(addr, sizeof(addr) - 1, "0x%04X", i); + lp = left; + rp = right; + } + *lp++ = hex[(text[i] >> 4) & 0xF]; + *lp++ = hex[(text[i]) & 0xF]; + *lp++ = ' '; + if (text[i] >= ' ' && text[i] <= '~') + *rp++ = text[i]; + else + *rp++ = '.'; + /* if we just did slot 7, insert an extra space */ + if ((i & 0xF) == 7) { *lp++ = ' '; - if (text[i]>= ' ' && text[i] <= '~') - *rp++ = text[i]; - else - *rp++ = '.'; - /* if we just did slot 7, insert an extra space */ - if ((i & 0xF) == 7) { - *lp++ = ' '; - *rp++ = ' '; - } - *lp = *rp = '\0'; + *rp++ = ' '; } - if (i > 0) { - char line[132]; - snprintf(line, sizeof(line)-1, "%-6s: %-49s | %-17s |", addr, left, right); - SICSLogWriteTime(line, eOut, tp); + *lp = *rp = '\0'; + } + if (i > 0) { + char line[132]; + snprintf(line, sizeof(line) - 1, "%-6s: %-49s | %-17s |", addr, left, + right); + SICSLogWriteTime(line, eOut, tp); + } +} + +void SICSLogWriteHex(const char *text, int count, OutCode eOut) +{ + struct timeval tv; + gettimeofday(&tv, NULL); + SICSLogWriteHexTime(text, count, eOut, &tv); +} + +void SICSLogTimePrintf(OutCode eOut, struct timeval *tp, const char *fmt, + ...) +{ + va_list ap; + char buf[256]; + char *dyn; + unsigned int l; + int res; + + va_start(ap, fmt); + l = vsnprintf(buf, sizeof buf, fmt, ap); + va_end(ap); + if (l >= sizeof buf) { + /* we have probably a C99 conforming snprintf and + need a larger buffer + */ + dyn = malloc(l + 1); + if (dyn != NULL) { + va_start(ap, fmt); + vsnprintf(dyn, l + 1, fmt, ap); + va_end(ap); + SICSLogWriteTime(dyn, eOut, tp); + free(dyn); + return; } } + SICSLogWriteTime(buf, eOut, tp); + return; +} - void SICSLogWriteHex(const char* text, int count, OutCode eOut) { - struct timeval tv; - gettimeofday(&tv, NULL); - SICSLogWriteHexTime(text, count, eOut, &tv); - } +void SICSLogPrintf(OutCode eOut, const char *fmt, ...) +{ + va_list ap; + char buf[256]; + char *dyn; + unsigned int l; + int res; - void SICSLogTimePrintf(OutCode eOut, struct timeval *tp, const char *fmt, ...) - { - va_list ap; - char buf[256]; - char *dyn; - unsigned int l; - int res; - - va_start(ap, fmt); - l = vsnprintf(buf, sizeof buf, fmt, ap); - va_end(ap); - if (l >= sizeof buf) { - /* we have probably a C99 conforming snprintf and - need a larger buffer - */ - dyn = malloc(l+1); - if (dyn != NULL) { - va_start(ap, fmt); - vsnprintf(dyn, l+1, fmt, ap); - va_end(ap); - SICSLogWriteTime(dyn, eOut, tp); - free(dyn); - return; - } + va_start(ap, fmt); + l = vsnprintf(buf, sizeof buf, fmt, ap); + va_end(ap); + if (l >= sizeof buf) { + /* we have probably a C99 conforming snprintf and + need a larger buffer + */ + dyn = malloc(l + 1); + if (dyn != NULL) { + va_start(ap, fmt); + vsnprintf(dyn, l + 1, fmt, ap); + va_end(ap); + SICSLogWrite(dyn, eOut); + free(dyn); + return; } - SICSLogWriteTime(buf, eOut, tp); - return; - } - - void SICSLogPrintf(OutCode eOut, const char *fmt, ...) - { - va_list ap; - char buf[256]; - char *dyn; - unsigned int l; - int res; - - va_start(ap, fmt); - l = vsnprintf(buf, sizeof buf, fmt, ap); - va_end(ap); - if (l >= sizeof buf) { - /* we have probably a C99 conforming snprintf and - need a larger buffer - */ - dyn = malloc(l+1); - if (dyn != NULL) { - va_start(ap, fmt); - vsnprintf(dyn, l+1, fmt, ap); - va_end(ap); - SICSLogWrite(dyn, eOut); - free(dyn); - return; - } - } - SICSLogWrite(buf, eOut); - return; } + SICSLogWrite(buf, eOut); + return; +} /* Test of the logging facilities */ -int testLogCmd(SConnection *pCon, SicsInterp *pInter, void *pData, int argc, char *argv[]) { +int testLogCmd(SConnection *pCon, SicsInterp *pInter, void *pData, + int argc, char *argv[]) { char lbuf[2048]; char sbuf[1000]; int i; @@ -529,17 +534,16 @@ int testLogCmd(SConnection *pCon, SicsInterp *pInter, void *pData, int argc, cha SICSLogPrintf(eStatus, "Hexlog %d all zero bytes", sizeof(lbuf)); SICSLogWriteHex(lbuf, sizeof(lbuf), eStatus); for (i = 0; i <= 128; ++i) - sbuf[i] = sbuf[sizeof(sbuf)-1 - i] = i; - sbuf[sizeof(sbuf)/2] = '!'; + sbuf[i] = sbuf[sizeof(sbuf) - 1 - i] = i; + sbuf[sizeof(sbuf) / 2] = '!'; SICSLogPrintf(eStatus, "Hexlog %d mid space bytes", sizeof(sbuf)); SICSLogWriteHex(sbuf, sizeof(sbuf), eStatus); for (i = 0; i < 1000; ++i) sbuf[i] = ' ' + (i % 96); - sbuf[sizeof(sbuf)-1] = '\0'; + sbuf[sizeof(sbuf) - 1] = '\0'; SICSLogWrite("Very long line 1000 bytes", eStatus); SICSLogWrite(sbuf, eStatus); SCSendOK(pCon); return OKOK; } -