2022-12-05 00:50 cheloha * inetd.c: userspace: remove vestigial '?' cases from top-level getopt(3) loops getopt(3) returns '?' when it encounters a flag not present in the in the optstring or if a flag is missing its option argument. We can handle this case with the "default" failure case with no loss of legibility. Hence, remove all the redundant "case '?':" lines. Prompted by dlg@. With help from dlg@ and millert@. Link: https://marc.info/?l=openbsd-tech&m=167011979726449&w=2 ok naddy@ millert@ dlg@ 2020-12-30 19:41 benno * inetd.c: getifaddrs() can return entries where ifa_addr is NULL. Check for this before accessing anything in ifa_addr. ok claudio@ 2020-02-10 14:18 schwarze * inetd.8: briefly mention /etc/examples/ in the FILES section of all the manual pages that document the corresponding configuration files; OK jmc@, and general direction discussed with many 2019-06-28 15:32 deraadt * inetd.c: When system calls indicate an error they return -1, not some arbitrary value < 0. errno is only updated in this case. Change all (most?) callers of syscalls to follow this better, and let's see if this strictness helps us in the future. 2018-10-15 13:29 florian * inetd.c: struct sockaddr_storage is guaranteed to be large enough, no need to check the size. OK kn, deraadt 2018-04-26 14:42 guenther * inetd.c: Use <fcntl.h> instead of <sys/file.h> for open() and friends. Delete a bunch of unnecessary #includes and sort to match style(9) while doing the above cleanup. ok deraadt@ krw@ 2017-10-05 01:56 jca * inetd.c: Fix pledge(2) usage We should not try to tighten pledge promises in the master inetd process, since those are needed to reload the configuration. Only tighten down if 1) we have forked 2) we're running one of the builtin routines, which are dealing with network input. Pointed out by and ok benno@ 2017-10-04 22:15 jca * inetd.c: Don't try to handle IPv4-compatible IPv6 addresses ok florian@ millert@ 2017-10-04 21:52 jca * inetd.8, inetd.c: inetd actually supports stream and datagram sockets only ok deraadt@ 2017-10-04 20:08 benno * inetd.c: inetd needs cpath pledge to unlink unix socket at program termination. From Anthony Coulter - thanks! ok jca@ 2016-08-25 07:23 tedu * inetd.c: remove lint comments 2016-03-30 08:38 jmc * Makefile: for some time now mandoc has not required MLINKS to function correctly - logically complete that now by removing MLINKS from base; authors need only to ensure there is an entry in NAME for any function/ util being added. MLINKS will still work, and remain for perl to ease upgrades; ok nicm (curses) bcook (ssl) ok schwarze, who provided a lot of feedback and assistance ok tb natano jung 2016-03-16 21:16 mestre * inetd.c: Remove a (now) obsolete comment about shortened IPv4 syntax OK deraadt@ jca@ 2016-03-16 21:15 mestre * inetd.c: Replace strncpy(3) calls for safer strlcpy(3) OK deraadt@ jca@ 2016-03-16 21:09 mestre * inetd.c: Replace atoi(3) calls for safer strtonum(3) OK deeradt@ jca@ 2015-12-22 20:44 mmcc * inetd.c: remove a NULL-check before free() 2015-11-14 02:22 jmc * inetd.8: these files document their config files too: adjust NAME accordingly; ok schwarze 2015-11-01 20:59 deraadt * inetd.c: needs pledge "cpath" to allow unlink of AF_UNIX sockets eventually 2015-11-01 01:31 deraadt * inetd.c: inetd needs pledge "unix" to bind AF_UNIX sockets 2015-10-22 14:34 deraadt * inetd.c: pledge "abort" left behind accidentally 2015-10-19 13:52 jca * inetd.c: optarg and optind are declared by unistd.h 2015-10-19 13:51 jca * inetd.c: Add err.h, missing after pledge() introduction. 2015-10-18 18:11 jca * inetd.c: Make use of pledge(2); initial diff from deraadt@ As Theo says, there's probably room for stricter pledge requests, but this would involve refactoring. 2015-10-18 17:28 deraadt * inetd.8: actually, it uses getaddrinfo 2015-09-10 17:16 schwarze * inetd.8: reduce .Nd to one line and kill .Tn while here 2015-01-16 07:40 deraadt * inetd.c: Replace <sys/param.h> with <limits.h> and other less dirty headers where possible. Annotate <sys/param.h> lines with their current reasons. Switch to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where sensible to avoid pulling in the pollution. These are the files confirmed through binary verification. ok guenther, millert, doug (helped with the verification protocol) 2014-10-29 04:33 dlg * Makefile, inetd.c: replace the use of select and hand rolled deferral of signal handling with libevent. this has been in snaps for a while without any negative (or positive) feedback. review and tweaks by bluhm@ nicm@ ok bluhm@ deraadt@ 2014-10-13 03:56 dlg * inetd.8: jmc@ told me i broke the documentation. inetd doesnt write a pidfile so we shouldnt say it does. 2014-10-13 03:53 dlg * inetd.c: dont need to store the same debug flag in two separate variables. ok millert@ deraadt@ 2014-10-12 11:36 dlg * inetd.c: ansi function declarations. ok gcc+sha256 2014-10-12 10:55 dlg * inetd.c, pathnames.h: cut out writing a pidfile. rc.d doesnt rely on it, and nor should you. both bcook@ and schwartz@ suggested removing the pidfil unlink and path ok sthen@ schwartz@ 2014-06-17 05:12 lteo * inetd.c: Convert malloc/memset to calloc, and remove pointless casts while here. From Benjamin Baier. 2014-04-19 00:04 jmc * inetd.8: remove references to rshd; 2013-11-23 18:24 deraadt * inetd.c: obvious unsigned char casts for ctype 2013-11-12 20:44 deraadt * inetd.c: missing protos 2013-04-19 20:03 deraadt * inetd.c: for datagrams, assume other protocols should fail ok millert 2013-03-11 18:40 deraadt * inetd.c: handle ECONNABORTED errors from accept(). In many code blocks they can be ignored silently and without aborting, much like EINTR and EWOULDBLOCK are. ok's from various maintainers of these directories... 2012-04-19 16:33 gsoares * inetd.c: small cleanup(%hd -> %d) yes deraadt@ 2012-03-06 02:25 dlg * inetd.8: clean up some newly created lies now that tftpd doesnt run out of inetd. poke by deraadt@ 2009-12-29 11:25 sobrado * inetd.8: replace a few remaining UNIX terms with .Ux macros; this diff completes the changes from Oct 22. 2009-11-02 21:03 otto * inetd.c: we have closefrom(2), so use it; ok deraadt@ tedu@ 2009-10-28 00:59 deraadt * inetd.c: rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and unmaintainable). these days, people use source. these id's do not provide any benefit, and do hurt the small install media (the 33,000 line diff is essentially mechanical) ok with the idea millert, ok dms 2008-07-28 17:42 claudio * inetd.c: Do not use __progname in inetd as it is not portable. Instead hardcode it to "inetd" in the few locations that print out the program name. requested and OK deraadt@ 2008-07-27 12:06 claudio * inetd.c: Use __progname instead of hand rolled version using argv[0]. Diff from Gleydson Soares gsoares at gmail dot com OK millert@ 2008-06-28 12:54 sobrado * inetd.8, inetd.c: add an underscore to argument name. 2008-06-04 20:11 miod * inetd.c: adderss -> address 2008-01-25 14:52 espie * inetd.c: validate argv, okay otto@, henning@ 2008-01-06 17:04 jmc * inetd.8: remove out of date/irrelevant section of BUGS dealing with ip6; ok deraadt 2008-01-06 14:49 jmc * inetd.8: - document what happens when a service exceeds its max spawn rate. this is based on a diff from reed@netbsd, but i chose a different fix - whilst here, make the descriptions of -R and .max more consistent ok sthen sobrado(in part, at least) 2008-01-05 10:53 jmc * inetd.c: sync usage() w/ SYNOPSIS; 2007-09-11 18:30 gilles * inetd.c: use strcspn to properly overwrite '\n' in fgets returned buffer ok pyr@, ray@, millert@, moritz@, chl@ 2007-05-31 21:20 jmc * inetd.8: convert to new .Dd format; 2005-06-02 09:56 jmc * inetd.8: fix some displays; 2005-06-02 09:51 jmc * inetd.8: remove references to telnetd(8); ok deraadt@ 2005-04-02 20:10 otto * inetd.c: Create unix domain sockets with permissions 0666, so clients can actually access it. If you want unix domain sockets that are access restricted, create them in a dir with restrictive permissions. PR 4141. ok deraadt@ 2004-09-15 10:46 otto * inetd.c: if (signalflag) { dowork(); signalflag = 0; } is a race. First clear flag, then call work(). ok deraadt@ 2004-09-15 00:28 deraadt * inetd.c: remove gcc specific extensions, and ARGSUSED where useful 2004-09-06 09:03 otto * inetd.c: Reset signal mask in the rate limiting case; check for interrupted waits. Fixes zombies getting reaped late and other ignored signals. Reported by mpech@; fix by millert@ with help from me. Commit requested by deraadt@. ok mpech@ 2004-07-28 15:08 millert * inetd.c: Should set user and group on unix domain sockets as reported by Juan Vera. 2004-06-30 09:58 otto * inetd.8, inetd.c: Unbreak unix domain sockets and properly detect and report truncation of the socket path name. Based on a diff from Juan Vera, with changes by me and millert@. ok millert@ djm@; man page ok jmc@ 2004-04-24 23:40 millert * inetd.8, inetd.c: Don't return NULL in getconfigent() when an unresolvable hostname or unsupported address family is specified. This simplifies the hostname/address lookup loops and gets rid of the skip label. Found by mpech@. OK deraadt@ and otto@ 2004-03-31 21:12 millert * inetd.c: For non-internal services, if no program arguments are specified use the program's basename as argv[0]. Problem found by mpech@. OK deraadt@ beck@ 2004-01-06 20:45 millert * inetd.c: Fix signal handling when there is an error in inetd.conf. Found by mpech@. OK mpech@ and deraadt@ 2003-12-23 16:24 mpech * inetd.c: Remove unnecessary casts (char *). millert@ ok. 2003-10-24 22:30 avsm * inetd.c: dont compare int to NULL, millert@ ok 2003-10-04 00:43 deraadt * inetd.c: exit if no config file; jeffi@rcn.com 2003-06-26 21:47 deraadt * inetd.c: strict proto cleanups 2003-06-12 14:59 jmc * inetd.8: - section reorder - macro fixes - kill whitespace at EOL - new sentence, new line 2003-06-03 01:36 millert * inetd.8, inetd.c, pathnames.h: Remove the advertising clause in the UCB license which Berkeley rescinded 22 July 1999. Proofed by myself and Theo. 2003-04-28 04:58 itojun * inetd.c: advocate posix ":" for user:group. deraadt ok 2003-04-08 03:26 david * inetd.8: identd has been nowait for 5 years now reported by Brad Ely <elyb328@apk.net> ok tedu@ 2003-02-03 18:46 jmc * inetd.8: typos; ipsecadm(8): examples ho@ help and ok markus@ 2003-01-19 00:40 deraadt * inetd.8: more typos; jmc@prioris.mini.pw.edu.pl 2002-11-12 00:46 millert * inetd.c: Pass gcc -ansi -pedantic; Chad Loder 2002-09-06 21:46 deraadt * inetd.c: use more socklen_t; pvalchev 2002-07-20 20:01 deraadt * inetd.c: abort on setusercontext failure; millert ok 2002-07-16 01:05 deraadt * inetd.c: minor tweaks 2002-07-16 00:26 deraadt * inetd.c: ansi 2002-07-04 14:36 itojun * inetd.c: correct udp-from-broadcast check. from <andre@ae-35.com> 2002-06-29 00:41 deraadt * inetd.c: minor KNF 2002-06-21 09:30 deraadt * inetd.c: kill gratuitous hex; millert ok 2002-06-21 08:20 millert * inetd.c: o change some 0-2 to *_FILENO o don't #ifdef RLIMIT_NOFILE o dup2() safety o some NULL vs. 0 changes deraadt@ OK 2002-06-07 09:37 itojun * inetd.c: do not respond to udp service if ip_src matches broadcast addr. theo ok 2002-06-01 05:42 itojun * inetd.c: machtime() is 32bit quantity. 2002-06-01 03:57 deraadt * inetd.c: i find more: a stderr print that makes no sense, and a part that was used by the fake setproctitle. itojun -- your turn. 2002-06-01 01:48 itojun * inetd.c: cleanup socklen_t 2002-06-01 00:20 deraadt * inetd.c: split out two major function blocks which made the indentation horrible 2002-05-31 22:20 itojun * inetd.c: use setproctitle(3). check for IPv6 ftp bounce attack. deraadt ok 2002-05-30 21:09 deraadt * inetd.c: minor KNF 2002-05-29 21:23 deraadt * inetd.c: more strlcat 2002-05-26 11:25 deraadt * inetd.c: pid_t cleanup 2002-05-22 11:09 deraadt * inetd.c: more strcpy/sprintf death; mpech ok 2002-05-07 00:24 millert * inetd.8: Kill rlogind and rexecd Xr's and add Xr's for things we actually use. 2002-03-14 17:44 mpech * inetd.c: kill more registers. millert@ ok 2002-02-16 22:28 millert * inetd.c: Part one of userland __P removal. Done with a simple regexp with some minor hand editing to make comments line up correctly. Another pass is forthcoming that handles the cases that could not be done automatically. 2002-02-10 02:19 millert * inetd.c: Fix SIGTERM handling; deraadt@ ok 2001-11-05 10:43 deraadt * inetd.c: remove last signal race 2001-09-05 01:35 millert * inetd.c: Replace the deprecated BSD sigsetmask/sigblock/sigpause functions with their POSIX counterparts. 2001-09-03 23:22 pjanzen * inetd.c: doreap() needn't preserve errno, since it's not a signal handler. 2001-08-22 19:44 beck * inetd.8: ftp-proxy 2001-07-17 06:13 jason * inetd.c: Pull in patch from current: Fix (deraadt): cleanup; itojun & jasoni (adds checking of IPv6 udp source port) 2001-07-04 08:46 deraadt * inetd.c: cleanup; itojun & jasoni 2001-03-15 19:28 danh * inetd.c: break out of loop if a flag is set; ok deraadt@ 2001-03-15 19:07 deraadt * inetd.c: spin even cheaper 2001-03-15 18:53 deraadt * inetd.c: check all flags before looping 2001-01-30 09:30 deraadt * inetd.c: check for invalid [.max] fields 2001-01-29 22:08 deraadt * inetd.c: mark signal races 2001-01-29 22:07 deraadt * inetd.c: do not _exit() in fork()'d child 2001-01-29 22:06 deraadt * inetd.c: do not exit(-1) 2001-01-29 12:38 deraadt * inetd.8: max actually defaults to 256, not 40 2001-01-29 12:23 deraadt * inetd.c: use _exit() in signal handler 2001-01-17 20:30 deraadt * inetd.c: use sig_atomic_t 2001-01-17 00:57 deraadt * inetd.c: check flags every loop, not just on EINTR 2001-01-12 17:34 deraadt * inetd.c: un-race three signal handlers, and fix the fd_set overflow gunk 2000-11-21 08:23 deraadt * inetd.c: bye bye MULOG. code that is easy to read, is code that is easy to audit 2000-11-09 03:55 deraadt * inetd.c: typo 2000-10-23 16:44 aaron * inetd.8: Use the standard option descriptions introduction. 2000-08-22 16:47 millert * inetd.c: If a user is specified in inetd.conf, set the LOGIN_SETGROUP flag too since setting user implies setting default groups for that user. Porblem noted by sigh@kuzirabekon.econ.nagasaki-u.ac.jp. 2000-08-20 20:42 millert * inetd.c: Add calls to setusercontext() and login_get*(). We basically call setusercontext() in most places where previously we did a setlogin(). Add default login.conf file and put root in the "daemon" login class. 2000-08-03 13:33 itojun * inetd.c: udp source validation: drop v4 mapped altogether. 2000-08-01 21:05 itojun * inetd.c: unused variable 2000-08-01 21:02 itojun * inetd.c: be more paranoid about UDP-based echo services validation. namely, reject the following sources: 0.0.0.0/8 127.0.0.0/8 240.0.0.0/4 255.0.0.0/8 ff00::/8 ::/128 ::ffff:0.0.0.0/96 and ::0.0.0.0/96 obeys IPv4 rule. reserved port, or NFS port. hint from deraadt. 2000-08-01 20:52 itojun * inetd.c: for datagram services, support IPv6. 2000-07-08 03:57 itojun * inetd.c: handle IPv6 address in first element. permit square bracket notation in first element of inetd.conf, like RFC2732. otherwise colon is slightly ambiguous. sync with kame. [::1]:ftp stream tcp6 nowait root /usr/libexec/ftpd ftpd -US -h 2000-06-19 03:28 itojun * inetd.c: honor scopeid when compare ipv6 addrs 2000-06-14 18:06 itojun * inetd.8: clarify tcp4/tcp6 interaction. 2000-04-15 04:15 aaron * inetd.8: Mostly punctuation fixes. 2000-04-12 23:47 aaron * inetd.8: Trailing whitespace begone! 2000-03-31 03:00 deraadt * Makefile: install inetd.conf(5) here instead 2000-03-19 18:57 aaron * inetd.8: Remove hard sentence breaks. Add $OpenBSD$ tags where appropriate. Some other cleanup along the way. 2000-03-04 02:10 deraadt * inetd.c: handle corrupt inetd.conf files better; sdb@ssr.com 2000-02-01 04:23 deraadt * inetd.c: no need to extern int errno if errno.h is included 1999-12-10 17:19 deraadt * inetd.c: indent 1999-12-10 11:28 deraadt * inetd.c: repair various bugs in -d mode 1999-12-08 14:21 itojun * inetd.8, inetd.c: IPv6/v4 inetd(8) from KAME. now you can test ftp over IPv6. 1999-09-23 06:12 alex * inetd.8: Typo fixes. 1999-06-06 00:17 aaron * inetd.8: remove trailing whitespace, some Nm cleanup 1999-05-23 16:11 aaron * inetd.8: remove argument from .Os macros so value in /usr/share/tmac/mdoc/doc-common is used instead; kwesterback@home.com 1999-02-24 13:31 deraadt * inetd.c: fix -R option; hugh 1999-01-04 13:03 niklas * inetd.c: PIDs does not always fit in short 1998-12-04 08:52 deraadt * inetd.8, inetd.c: support user.group or user:group, per chown(8) 1998-11-21 01:15 deraadt * inetd.c: missing \n 1998-11-19 07:34 deraadt * inetd.c: catch extra junk at the end of the numbers 1998-11-19 00:25 deraadt * inetd.c: correct strtol() mess around rpc version numbers 1998-11-08 01:21 aaron * inetd.8: usr.sbin/ man page repairs, a-i 1998-10-28 19:01 deraadt * inetd.c: fix ? usage handling; route@resentment.infonexus.com 1998-07-15 19:51 deraadt * inetd.c: close fd leak; jeff@FORYS.CRANBURY.NJ.US 1998-07-13 04:11 millert * inetd.c: ftpd: sleep for an indeterminate amount for non-existant logins to simulate a crypt, like login does. Use SEEK_* not L_* and kill some 0L's used in lseek while we're there. 1998-06-03 10:06 deraadt * inetd.c: use sigsetops, and do cross-block signal handlers 1998-03-12 01:19 deraadt * inetd.c: unblock SIGPIPE before execv(); chuck. convert to sigaction(); deraadt. 1998-02-24 21:21 deraadt * inetd.c: udp time may be contacted at dynamic reserved 1997-12-24 00:46 deraadt * inetd.c: make it more obvious why pmap_set syslogs happen 1997-12-04 22:35 art * inetd.c: Fixed a sysadmin-dos. 1997-11-14 04:46 deraadt * inetd.8, inetd.c: clone freebsd "-R rate"; default to 256 invocations/minute 1997-11-14 04:40 deraadt * inetd.c: crank TOOMANY to 160 for now 1997-09-21 13:43 deraadt * Makefile: $OpenBSD$ 1997-09-19 14:21 deraadt * inetd.c: ignore SIGPIPE; not nearly as much of a problem as linux though 1997-08-31 20:04 deraadt * inetd.c: only check for ftp bounce in tcp, duh. for nonreserved ports, do not close for looping mode. kill an fd leak. 1997-08-29 19:07 deraadt * inetd.c: very weird sleep; dholland@eecs.harvard.edu 1997-08-04 21:26 deraadt * inetd.c: save errno in sigchld handlers 1997-07-22 23:12 deraadt * inetd.c: cleanup 1997-07-08 22:37 kstailey * inetd.c: print child exit status in debug mode. 1997-07-08 22:31 kstailey * inetd.c: NULL 1997-06-26 19:31 deraadt * inetd.c: mem* cleanup 1997-06-26 08:27 denny * inetd.8: Document inetd's allowing mutliple comma-separated hostnames in inetd.conf. 1997-06-26 08:26 denny * inetd.c: Better support for specific instance binding in inetd: - Allow comma delimited list of hostnames, create a socket for each - Allow a hostname which resolves to multiple addrs, create a socket for each - Make sure kill -HUP handles specific instance services correctly. 1997-06-23 11:37 deraadt * inetd.c: return 32-bits worth of time for time service 1997-06-23 11:35 deraadt * inetd.c: sigblock plays with ints 1997-06-18 05:01 denny * inetd.8: Document inetd.conf's per-interface binding (new verbage from der Mouse's netbsd mods). 1997-06-17 07:41 deraadt * inetd.c: do not test for a bug which does not exist 1997-06-17 07:26 denny * inetd.c: Add per-interface binding, based on der Mouse's code in netbsd. 1997-06-04 13:07 deraadt * inetd.c: toast extra \n; ficus 1997-06-04 13:03 deraadt * inetd.c: do not exceed bounds of fd_set 1997-05-30 09:56 deraadt * inetd.8: wait wrks on tcp; rickb@iaw.on.ca 1997-02-24 13:48 deraadt * inetd.c: irc thing is dumb, and do not bother wasting effort screaming about ftp bounce attempts, just slaughter them 1997-01-16 00:43 millert * inetd.c: getopt(3) returns -1 when out of args, not EOF, whee! 1997-01-13 21:45 deraadt * inetd.8: correct; kleink@layla.inka.de 1996-12-14 20:19 deraadt * inetd.c: be more careful with setgroups() 1996-12-11 10:05 deraadt * inetd.c: proto & column cleanup 1996-08-31 19:31 deraadt * inetd.c: rpc is not an option anymore 1996-08-28 11:55 deraadt * inetd.c: closer towards useable by generic joe 1996-08-16 10:32 deraadt * inetd.c: do not do bindresvport if user runs own inetd 1996-08-12 01:24 deraadt * inetd.c: fix doc order of setgid/initgroups/setuid 1996-08-02 09:18 deraadt * inetd.c: merge freebsd setlogin/setsid changes 1996-08-02 08:47 deraadt * inetd.c: indent 1996-08-02 08:13 deraadt * inetd.c: after rpc bind, getpeername() to update sin_port 1996-07-31 13:01 deraadt * inetd.c: proto throughout 1996-07-30 01:45 deraadt * inetd.c: udp spam on 6667 1996-07-29 11:14 deraadt * inetd.c: careful of bad addr/port in dgram services 1996-07-29 11:13 deraadt * inetd.c: -Wall clean; careful buffer usage 1996-07-29 09:53 downsj * inetd.c: Zero out the port for RPC services; let bind() find one. 1996-07-29 05:43 deraadt * inetd.c: from port 20, do not leak an fd 1996-07-28 07:54 deraadt * inetd.c: arthur (in)dent 1996-07-28 07:13 joshd * inetd.c: Do not allow hosts to connect to servers from source ports < IPPORT_RESERVED/2. This is for ftp bounce attacks, 1996-06-29 03:02 deraadt * inetd.c: bindresvport() called incorrectly; we need a proto somewhere guys 1996-06-28 19:50 deraadt * inetd.c: closelog() before we trash the syslog descriptor; suggestion from alan@parsys.co.uk 1996-06-12 09:23 deraadt * inetd.c: use resv port only for root processes 1996-05-13 18:00 deraadt * inetd.c: bindresvport() for rpc ports 1996-03-25 16:55 niklas * inetd.c: From NetBSD: merge of 960317 1995-10-18 09:47 deraadt * Makefile, inetd.8, inetd.c, pathnames.h: Initial revision 1995-10-18 09:47 deraadt * Makefile, inetd.8, inetd.c, pathnames.h: initial import of NetBSD tree
Generated by dwww version 1.15 on Sun Jun 23 05:13:12 CEST 2024.