Software /
code /
prosody
File
util-src/time.c @ 13497:da9be0ad4bbc 0.12
net.server_event: Add 'wrapserver' API
This enables accepting admin stream socket (UNIX) connections trough the
same procedures as any other (TCP) socket, which avoids problems caused
by using the wrapclient API, which ends up discarding early data due to
only expecting early connection failure.
Fixes #1867
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 07 Jul 2024 18:28:17 +0200 |
parent | 10480:94cacf9fd0ae |
child | 12976:a187600ec7d6 |
line wrap: on
line source
#ifndef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 200809L #endif #include <time.h> #include <lua.h> static lua_Number tv2number(struct timespec *tv) { return tv->tv_sec + tv->tv_nsec * 1e-9; } static int lc_time_realtime(lua_State *L) { struct timespec t; clock_gettime(CLOCK_REALTIME, &t); lua_pushnumber(L, tv2number(&t)); return 1; } static int lc_time_monotonic(lua_State *L) { struct timespec t; clock_gettime(CLOCK_MONOTONIC, &t); lua_pushnumber(L, tv2number(&t)); return 1; } int luaopen_util_time(lua_State *L) { lua_createtable(L, 0, 2); { lua_pushcfunction(L, lc_time_realtime); lua_setfield(L, -2, "now"); lua_pushcfunction(L, lc_time_monotonic); lua_setfield(L, -2, "monotonic"); } return 1; }