Fix timestamp generation
parent
55d82a3548
commit
bc6d4f6c7d
|
@ -28,6 +28,9 @@ context* allocate_context() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void free_context(context* ctx) {
|
void free_context(context* ctx) {
|
||||||
|
//Close replay
|
||||||
|
replay_free_context(ctx);
|
||||||
|
|
||||||
//Free memory
|
//Free memory
|
||||||
if(ctx->serveraddr)
|
if(ctx->serveraddr)
|
||||||
free(ctx->serveraddr);
|
free(ctx->serveraddr);
|
||||||
|
|
|
@ -40,6 +40,7 @@ void replay_init_context(struct context *ctx, const char *restrict version/*, co
|
||||||
}
|
}
|
||||||
|
|
||||||
gettimeofday(&ctx->replay.startTime, NULL);//Can fail on linux with EFAULT
|
gettimeofday(&ctx->replay.startTime, NULL);//Can fail on linux with EFAULT
|
||||||
|
ctx->replay.startTime.tv_usec/=1000;
|
||||||
|
|
||||||
// uint32_t buf32[2] = {0, htobe32(len)};
|
// uint32_t buf32[2] = {0, htobe32(len)};
|
||||||
// write(ctx->replay.replayfileFD, buf32, 2*4);
|
// write(ctx->replay.replayfileFD, buf32, 2*4);
|
||||||
|
@ -51,8 +52,10 @@ void replay_free_context(struct context *ctx) {
|
||||||
if(ctx->replay.replayfileFD == -1)
|
if(ctx->replay.replayfileFD == -1)
|
||||||
return;
|
return;
|
||||||
close(ctx->replay.replayfileFD);
|
close(ctx->replay.replayfileFD);
|
||||||
|
ctx->replay.replayfileFD = -1;
|
||||||
if(ctx->replay.replayinfoFD != -1) {
|
if(ctx->replay.replayinfoFD != -1) {
|
||||||
close(ctx->replay.replayinfoFD);
|
close(ctx->replay.replayinfoFD);
|
||||||
|
ctx->replay.replayinfoFD = -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,7 +67,7 @@ void replay_write_packet(struct context *ctx, const uint8_t *restrict buffer, ui
|
||||||
gettimeofday(&now, NULL);
|
gettimeofday(&now, NULL);
|
||||||
|
|
||||||
time_t seconddiff = now.tv_sec - ctx->replay.startTime.tv_sec;
|
time_t seconddiff = now.tv_sec - ctx->replay.startTime.tv_sec;
|
||||||
suseconds_t diff = now.tv_usec - ctx->replay.startTime.tv_usec;
|
long diff = now.tv_usec/1000 - ctx->replay.startTime.tv_usec;//msecs in tv_usec
|
||||||
if(diff < 0) {
|
if(diff < 0) {
|
||||||
seconddiff--;
|
seconddiff--;
|
||||||
diff+=1000;
|
diff+=1000;
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
struct replay_context {
|
struct replay_context {
|
||||||
int replayfileFD;
|
int replayfileFD;
|
||||||
int replayinfoFD;
|
int replayinfoFD;
|
||||||
struct timeval startTime;
|
struct timeval startTime;//msecs in tv_usec
|
||||||
};
|
};
|
||||||
|
|
||||||
struct context;
|
struct context;
|
||||||
|
|
Loading…
Reference in New Issue