Merge pull request #1137 from esnet/issue-1134
Этот коммит содержится в:
Коммит
670a596f57
@ -4512,13 +4512,14 @@ iperf_clearaffinity(struct iperf_test *test)
|
|||||||
#endif /* neither HAVE_SCHED_SETAFFINITY nor HAVE_CPUSET_SETAFFINITY nor HAVE_SETPROCESSAFFINITYMASK */
|
#endif /* neither HAVE_SCHED_SETAFFINITY nor HAVE_CPUSET_SETAFFINITY nor HAVE_SETPROCESSAFFINITYMASK */
|
||||||
}
|
}
|
||||||
|
|
||||||
char iperf_timestr[100];
|
static char iperf_timestr[100];
|
||||||
|
static char linebuffer[1024];
|
||||||
|
|
||||||
int
|
int
|
||||||
iperf_printf(struct iperf_test *test, const char* format, ...)
|
iperf_printf(struct iperf_test *test, const char* format, ...)
|
||||||
{
|
{
|
||||||
va_list argp;
|
va_list argp;
|
||||||
int r = -1;
|
int r = 0, r0;
|
||||||
time_t now;
|
time_t now;
|
||||||
struct tm *ltm = NULL;
|
struct tm *ltm = NULL;
|
||||||
char *ct = NULL;
|
char *ct = NULL;
|
||||||
@ -4545,23 +4546,40 @@ iperf_printf(struct iperf_test *test, const char* format, ...)
|
|||||||
*/
|
*/
|
||||||
if (test->role == 'c') {
|
if (test->role == 'c') {
|
||||||
if (ct) {
|
if (ct) {
|
||||||
fprintf(test->outfile, "%s", ct);
|
r0 = fprintf(test->outfile, "%s", ct);
|
||||||
|
if (r0 < 0)
|
||||||
|
return r0;
|
||||||
|
r += r0;
|
||||||
|
}
|
||||||
|
if (test->title) {
|
||||||
|
r0 = fprintf(test->outfile, "%s: ", test->title);
|
||||||
|
if (r0 < 0)
|
||||||
|
return r0;
|
||||||
|
r += r0;
|
||||||
}
|
}
|
||||||
if (test->title)
|
|
||||||
fprintf(test->outfile, "%s: ", test->title);
|
|
||||||
va_start(argp, format);
|
va_start(argp, format);
|
||||||
r = vfprintf(test->outfile, format, argp);
|
r0 = vfprintf(test->outfile, format, argp);
|
||||||
va_end(argp);
|
va_end(argp);
|
||||||
|
if (r0 < 0)
|
||||||
|
return r0;
|
||||||
|
r += r0;
|
||||||
}
|
}
|
||||||
else if (test->role == 's') {
|
else if (test->role == 's') {
|
||||||
char linebuffer[1024];
|
|
||||||
int i = 0;
|
|
||||||
if (ct) {
|
if (ct) {
|
||||||
i = sprintf(linebuffer, "%s", ct);
|
r0 = snprintf(linebuffer, sizeof(linebuffer), "%s", ct);
|
||||||
|
if (r0 < 0)
|
||||||
|
return r0;
|
||||||
|
r += r0;
|
||||||
}
|
}
|
||||||
|
/* Should always be true as long as sizeof(ct) < sizeof(linebuffer) */
|
||||||
|
if (r < sizeof(linebuffer)) {
|
||||||
va_start(argp, format);
|
va_start(argp, format);
|
||||||
r = vsnprintf(linebuffer + i, sizeof(linebuffer), format, argp);
|
r0 = vsnprintf(linebuffer + r, sizeof(linebuffer) - r, format, argp);
|
||||||
va_end(argp);
|
va_end(argp);
|
||||||
|
if (r0 < 0)
|
||||||
|
return r0;
|
||||||
|
r += r0;
|
||||||
|
}
|
||||||
fprintf(test->outfile, "%s", linebuffer);
|
fprintf(test->outfile, "%s", linebuffer);
|
||||||
|
|
||||||
if (test->role == 's' && iperf_get_test_get_server_output(test)) {
|
if (test->role == 's' && iperf_get_test_get_server_output(test)) {
|
||||||
|
Загрузка…
Ссылка в новой задаче
Block a user