Mercurial > prosody-hg
annotate util-src/time.c @ 10367:649acbfbf7fe
util.prosodyctl: Enforce strict JID validation on user creation
This is where 64ddcbc9a328 should have started. By preventing creation
of users with invalid JIDs, it will slowly become safer to enforce
strict validation on everything.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 01 Nov 2019 22:53:14 +0100 |
| parents | a374905e99ff |
| children | 94cacf9fd0ae |
| rev | line source |
|---|---|
|
9164
35807f02bdc7
util.time: Allow for already set constant
Kim Alvefur <zash@zash.se>
parents:
9163
diff
changeset
|
1 #ifndef _POSIX_C_SOURCE |
|
9680
a374905e99ff
util.time: Bump POSIX_C_SOURCE to ensure visibility of CLOCK_MONOTONIC on FreeBSD (fixes #1253)
Matthew Wild <mwild1@gmail.com>
parents:
9164
diff
changeset
|
2 #define _POSIX_C_SOURCE 200809L |
|
9164
35807f02bdc7
util.time: Allow for already set constant
Kim Alvefur <zash@zash.se>
parents:
9163
diff
changeset
|
3 #endif |
| 9162 | 4 |
| 5 #include <time.h> | |
| 6 #include <lua.h> | |
| 7 | |
| 8 lua_Number tv2number(struct timespec *tv) { | |
| 9 return tv->tv_sec + tv->tv_nsec * 1e-9; | |
| 10 } | |
| 11 | |
| 12 int lc_time_realtime(lua_State *L) { | |
| 13 struct timespec t; | |
| 14 clock_gettime(CLOCK_REALTIME, &t); | |
| 15 lua_pushnumber(L, tv2number(&t)); | |
| 16 return 1; | |
| 17 } | |
| 18 | |
| 9163 | 19 int lc_time_monotonic(lua_State *L) { |
| 20 struct timespec t; | |
| 21 clock_gettime(CLOCK_MONOTONIC, &t); | |
| 22 lua_pushnumber(L, tv2number(&t)); | |
| 23 return 1; | |
| 24 } | |
| 25 | |
| 9162 | 26 int luaopen_util_time(lua_State *L) { |
| 27 lua_createtable(L, 0, 2); | |
| 28 { | |
| 29 lua_pushcfunction(L, lc_time_realtime); | |
| 30 lua_setfield(L, -2, "now"); | |
| 9163 | 31 lua_pushcfunction(L, lc_time_monotonic); |
| 32 lua_setfield(L, -2, "monotonic"); | |
| 9162 | 33 } |
| 34 return 1; | |
| 35 } |
