Lines 37-42
Link Here
|
37 |
#include <stdio.h> |
37 |
#include <stdio.h> |
38 |
#include <string.h> |
38 |
#include <string.h> |
39 |
#include <stdarg.h> |
39 |
#include <stdarg.h> |
|
|
40 |
#include <stdlib.h> |
41 |
#include <stddef.h> |
40 |
|
42 |
|
41 |
#ifdef UNIX |
43 |
#ifdef UNIX |
42 |
#include <sys/time.h> |
44 |
#include <sys/time.h> |
Lines 194-261
done:
Link Here
|
194 |
|
196 |
|
195 |
|
197 |
|
196 |
// Fill a tpStats structure with the contents from a STATS line |
198 |
// Fill a tpStats structure with the contents from a STATS line |
197 |
int GetStatsFromLine(char *line, TPStats *s) |
199 |
int GetStatsFromLine(const char *line, TPStats *s) |
198 |
{ |
200 |
{ |
199 |
char valBuf[30]; |
201 |
char valBuf[30]; |
|
|
202 |
char * stats_ptr = NULL; |
200 |
|
203 |
|
201 |
if (strncmp(line, "STATS ", 6) != 0) |
204 |
if (strncmp(line, "STATS ", 6) != 0) |
202 |
return -1; |
205 |
return -1; |
203 |
memset(valBuf, 0, 30); |
206 |
memset(valBuf, 0, sizeof(valBuf)); |
|
|
207 |
stats_ptr = ((char *)line)+6; |
204 |
|
208 |
|
205 |
if (CopyTagField(valBuf, 29, line+6, "majorv")) |
209 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "majorv")) |
206 |
s->MajorVersion = atoi(valBuf); |
210 |
s->MajorVersion = (USHORT) strtoul(valBuf,NULL,10); |
207 |
if (CopyTagField(valBuf, 29, line+6, "minorv")) |
211 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "minorv")) |
208 |
s->MinorVersion = atoi(valBuf); |
212 |
s->MinorVersion = (USHORT) strtoul(valBuf,NULL,10); |
209 |
if (CopyTagField(valBuf, 29, line+6, "pktssent")) |
213 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pktssent")) |
210 |
s->PktsSent = atoi(valBuf); |
214 |
s->PktsSent = (UINT32) strtoul(valBuf,NULL,10); |
211 |
if (CopyTagField(valBuf, 29, line+6, "pktsunsent")) |
215 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pktsunsent")) |
212 |
s->PktsUnSent = atoi(valBuf); |
216 |
s->PktsUnSent = (UINT32) strtoul(valBuf,NULL,10); |
213 |
if (CopyTagField(valBuf, 29, line+6, "pktsrcvd")) |
217 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pktsrcvd")) |
214 |
s->PktsRecvd = atoi(valBuf); |
218 |
s->PktsRecvd = (UINT32) strtoul(valBuf,NULL,10); |
215 |
if (CopyTagField(valBuf, 29, line+6, "bytessent")) |
219 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "bytessent")) |
216 |
sscanf(valBuf, "%" LONG_LONG_PREFIX "d", &(s->BytesSent)); |
220 |
sscanf(valBuf, "%" LONG_LONG_PREFIX "d", &(s->BytesSent)); |
217 |
if (CopyTagField(valBuf, 29, line+6, "bytesrcvd")) |
221 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "bytesrcvd")) |
218 |
sscanf(valBuf, "%" LONG_LONG_PREFIX "d", &(s->BytesRecvd)); |
222 |
sscanf(valBuf, "%" LONG_LONG_PREFIX "d", &(s->BytesRecvd)); |
219 |
if (CopyTagField(valBuf, 29, line+6, "maxrtt")) |
223 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "maxrtt")) |
220 |
s->MaxRoundtrip = atoi(valBuf); |
224 |
s->MaxRoundtrip = (UINT32) strtoul(valBuf,NULL,10); |
221 |
if (CopyTagField(valBuf, 29, line+6, "minrtt")) |
225 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "minrtt")) |
222 |
s->MinRoundtrip = atoi(valBuf); |
226 |
s->MinRoundtrip = (UINT32) strtoul(valBuf,NULL,10); |
223 |
if (CopyTagField(valBuf, 29, line+6, "oocount")) |
227 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "oocount")) |
224 |
s->ooCount = atoi(valBuf); |
228 |
s->ooCount = (UINT32) strtoul(valBuf,NULL,10); |
225 |
|
229 |
|
226 |
if (CopyTagField(valBuf, 29, line+6, "txstart_s")) |
230 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstart_s")) |
227 |
s->StartSend.tv_sec = atoi(valBuf); |
231 |
s->StartSend.tv_sec = strtol(valBuf,NULL,10); |
228 |
if (CopyTagField(valBuf, 29, line+6, "txstart_us")) |
232 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstart_us")) |
229 |
s->StartSend.tv_usec = atoi(valBuf); |
233 |
s->StartSend.tv_usec = strtol(valBuf,NULL,10); |
230 |
|
234 |
|
231 |
if (CopyTagField(valBuf, 29, line+6, "txstop_s")) |
235 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstop_s")) |
232 |
s->StopSend.tv_sec = atoi(valBuf); |
236 |
s->StopSend.tv_sec = strtol(valBuf,NULL,10); |
233 |
if (CopyTagField(valBuf, 29, line+6, "txstop_us")) |
237 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstop_us")) |
234 |
s->StopSend.tv_usec = atoi(valBuf); |
238 |
s->StopSend.tv_usec = strtol(valBuf,NULL,10); |
235 |
|
239 |
|
236 |
if (CopyTagField(valBuf, 29, line+6, "rxstart_s")) |
240 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstart_s")) |
237 |
s->StartRecv.tv_sec = atoi(valBuf); |
241 |
s->StartRecv.tv_sec = strtol(valBuf,NULL,10); |
238 |
if (CopyTagField(valBuf, 29, line+6, "rxstart_us")) |
242 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstart_us")) |
239 |
s->StartRecv.tv_usec = atoi(valBuf); |
243 |
s->StartRecv.tv_usec = strtol(valBuf,NULL,10); |
240 |
|
244 |
|
241 |
if (CopyTagField(valBuf, 29, line+6, "rxstop_s")) |
245 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstop_s")) |
242 |
s->StopRecv.tv_sec = atoi(valBuf); |
246 |
s->StopRecv.tv_sec = strtol(valBuf,NULL,10); |
243 |
if (CopyTagField(valBuf, 29, line+6, "rxstop_us")) |
247 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstop_us")) |
244 |
s->StopRecv.tv_usec = atoi(valBuf); |
248 |
s->StopRecv.tv_usec = strtol(valBuf,NULL,10); |
245 |
|
249 |
|
246 |
if (CopyTagField(valBuf, 29, line+6, "totrtt")) |
250 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "totrtt")) |
247 |
s->TotalRoundtrip = atoi(valBuf); |
251 |
s->TotalRoundtrip = (UINT32) strtoul(valBuf,NULL,10); |
248 |
if (CopyTagField(valBuf, 29, line+6, "nortt")) |
252 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "nortt")) |
249 |
s->nRoundtrips = atoi(valBuf); |
253 |
s->nRoundtrips = (UINT32) strtoul(valBuf,NULL,10); |
250 |
|
254 |
|
251 |
if (CopyTagField(valBuf, 101, line + 6, "email")) |
255 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "email")) |
252 |
strcpy(s->email, valBuf); |
256 |
{ |
|
|
257 |
strncpy(s->email, valBuf, sizeof(s->email)); |
258 |
s->email[sizeof(s->email)-1] = '\0'; |
259 |
} |
253 |
|
260 |
|
254 |
if (CopyTagField(valBuf, 101, line + 6, "pwd")) |
261 |
if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pwd")) |
255 |
strcpy(s->pwd, valBuf); |
262 |
{ |
|
|
263 |
strncpy(s->pwd, valBuf, sizeof(s->pwd)); |
264 |
s->pwd[sizeof(s->pwd)-1] = '\0'; |
265 |
} |
256 |
|
266 |
|
|
|
267 |
stats_ptr = NULL; |
257 |
return 0; |
268 |
return 0; |
258 |
|
|
|
259 |
} |
269 |
} |
260 |
|
270 |
|
261 |
|
271 |
|