| | 368 | | | | | | vpvmlogprintf(fmt, ap) | | | 369 | | | | | | char *fmt; | | | 370 | | | | | | va_list ap; | | | 371 | | | | | | { | | | 372 | | | | | | char vtmp[1024]; | | | 373 | | | | | | char *truncated; | | | 374 | | | | | | int cnt = 0; | | | 375 | | | | | | int cc; | | | 376 | | | | | | | | | 377 | | | | | | #ifdef TIMESTAMPLOG | | | 378 | | | | | | time_t now; | | | 379 | | | | | | struct tm *tmp; | | | 380 | | | | | | | | | 381 | | | | | | time(&now); | | | 382 | | | | | | tmp = localtime(&now); | | | 383 | | | | | | #endif | | | 384 | | | | | | | | | 385 | | | | | | | | | 386 | | | | | | | | | 387 | | | | | | | | | 388 | | | | | | | | | 389 | | | | | | | | | 390 | | | | | | cc = vsnprintf(vtmp, sizeof(vtmp), fmt, ap); | | | 391 | | | | | | truncated = ( cc >= 0 && cc < sizeof(vtmp) ) | | | 392 | | | | | | ? "" : "[...]\n"; | | | 393 | | | | | | | | | 394 | | | | | | if (log_how & 1) { | | | 395 | | | | | | if (atnewline) { | | | 396 | | | | | | if (pvmmytid) | | | 397 | | | | | | fprintf(stderr, "[t%x] ", pvmmytid); | | | 398 | | | | | | else | | | 399 | | | | | | fprintf(stderr, "[pvmd pid%d] ", pvmmyupid); | | | 400 | | | | | | | | | 401 | | | | | | #ifdef TIMESTAMPLOG | | | 402 | | | | | | fprintf(stderr, "%02d/%02d %02d:%02d:%02d ", | | | 403 | | | | | | tmp->tm_mon + 1, | | | 404 | | | | | | tmp->tm_mday, | | | | | | | | | ... | | | 406 | | | | | | tmp->tm_min, | | | 407 | | | | | | tmp->tm_sec); | | | 408 | | | | | | #endif | | | 409 | | | | | | } | | | 410 | | | | | | | | | 411 | | | | | | cc = fprintf(stderr, "%s%s", vtmp, truncated); | | | 412 | | | | | | cnt = ( cc >= 0 ) ? cnt + cc : cc; | | | 413 | | | | | | fflush(stderr); | | | 414 | | | | | | } | | | 415 | | | | | | | | | 416 | | | | | | if (log_how & 2) { | | | 417 | | | | | | if (log_alrdy < pvmdlogmax) { | | | 418 | | | | | | if (atnewline) { | | | 419 | | | | | | if (pvmmytid) | | | 420 | | | | | | fprintf(log_ff, "[t%x] ", pvmmytid); | | | 421 | | | | | | else | | | 422 | | | | | | fprintf(log_ff, "[pvmd pid%d] ", pvmmyupid); | | | 423 | | | | | | | | | 424 | | | | | | #ifdef TIMESTAMPLOG | | | 425 | | | | | | fprintf(log_ff, "%02d/%02d %02d:%02d:%02d ", | | | 426 | | | | | | tmp->tm_mon + 1, | | | | | | | | | ... | | | 434 | | | | | | | | | 435 | | | | | | cc = fprintf(log_ff, "%s%s", vtmp, truncated); | | | 436 | | | | | | cnt = ( cnt >= 0 ) ? ( ( cc >= 0 ) ? cnt + cc : cc ) : cnt; | | | 437 | | | | | | fflush(log_ff); | | | 438 | | | | | | | | | 439 | | | | | | if ((log_alrdy += cnt) >= pvmdlogmax) | | | 440 | | | | | | (void)write(log_fd, toomuch, strlen(toomuch)); | | | 441 | | | | | | } | | | 442 | | | | | | } | | | 443 | | | | | | | | strlen(fmt) < -1 * bytes_before(fmt) + 1 | 444 | | | | | | atnewline = (fmt[strlen(fmt) - 1] == '\n') ? 1 : 0; | Problem | | strlen(fmt) < -1 * bytes_before(fmt) + 1 |
|
|