diff --git a/src/detection/uptime/uptime_bsd.c b/src/detection/uptime/uptime_bsd.c index 47202544a..446a95e25 100644 --- a/src/detection/uptime/uptime_bsd.c +++ b/src/detection/uptime/uptime_bsd.c @@ -6,7 +6,11 @@ const char* ffDetectUptime(FFUptimeResult* result) { + #if __NetBSD__ + struct timespec bootTime; + #else struct timeval bootTime; + #endif size_t bootTimeSize = sizeof(bootTime); if(sysctl( (int[]) {CTL_KERN, KERN_BOOTTIME}, 2, @@ -15,7 +19,11 @@ const char* ffDetectUptime(FFUptimeResult* result) ) != 0) return "sysctl({CTL_KERN, KERN_BOOTTIME}) failed"; + #if __NetBSD__ + result->bootTime = (uint64_t) bootTime.tv_sec * 1000 + (uint64_t) bootTime.tv_nsec / 10000000; + #else result->bootTime = (uint64_t) bootTime.tv_sec * 1000 + (uint64_t) bootTime.tv_usec / 1000; + #endif result->uptime = ffTimeGetNow() - result->bootTime; return NULL;