Mercurial > prosody-hg
annotate util-src/time.c @ 11864:fceebfb28d86
mod_http_file_share: Clean up incomplete uploads
If the request fails in the middle then the file~ could be left behind
because no code was invoked to delete it then. This gets rid of it when
the request is removed. It may still be left in case of an unclean
shutdown.
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sat, 23 Oct 2021 01:53:07 +0200 |
| parents | 94cacf9fd0ae |
| children | a187600ec7d6 |
| 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 | |
|
10480
94cacf9fd0ae
util.*.c: Add static qualifiers everywhere
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
9680
diff
changeset
|
8 static lua_Number tv2number(struct timespec *tv) { |
| 9162 | 9 return tv->tv_sec + tv->tv_nsec * 1e-9; |
| 10 } | |
| 11 | |
|
10480
94cacf9fd0ae
util.*.c: Add static qualifiers everywhere
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
9680
diff
changeset
|
12 static int lc_time_realtime(lua_State *L) { |
| 9162 | 13 struct timespec t; |
| 14 clock_gettime(CLOCK_REALTIME, &t); | |
| 15 lua_pushnumber(L, tv2number(&t)); | |
| 16 return 1; | |
| 17 } | |
| 18 | |
|
10480
94cacf9fd0ae
util.*.c: Add static qualifiers everywhere
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents:
9680
diff
changeset
|
19 static int lc_time_monotonic(lua_State *L) { |
| 9163 | 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 } |
