itojun
8e1ca1a351
fix fatal typo, which misused luser/ruser (PR 9543).
2000-03-05 09:40:57 +00:00
shin
e68fefb855
remove unused files (MIPS SOFTFLOAT).
2000-03-05 05:45:46 +00:00
shin
ac9896415f
remove MIPS SOFTFLOAT.
2000-03-05 05:41:03 +00:00
itojun
2dc247fc34
make CMSG_ALIGN always synchronize with kernel's idea of ALIGNBYTES.
...
ancillary data alignment will be ALIGNBYTES, not sizeof(long) - 1, from now.
CMSG_xx will NOT resolve into constant. if you use CMSG_xx to allocate
arrays, you'll lose.
bump shlib minor for libc.
NOTE: if you are on top of arch with ALIGNBYTES != sizeof(long) - 1,
you need to recompile IPv6-related binaries. there is no way to guarantee
backward compat in this aspect. sorry for this. this should be the last
backward compat breakage for IPv6-related ancillary data manipulation.
(we still have PR 9516 for unix-domain sockets...)
2000-03-02 07:41:49 +00:00
itojun
fe31f96aea
fix alignment constraint in IPv6 routing header manipulation (ancillary data).
...
documented in RFC2292.
from: shin@kame.net
2000-02-29 18:24:31 +00:00
enami
f8796b1a66
Remove reference to config(8) from SEE ALSO list.
2000-02-28 14:32:53 +00:00
enami
61b07296fe
With SEE ALSO list, add swapctl(2) and swapctl(8) and remove config(8).
2000-02-28 14:30:54 +00:00
enami
354b4bc5c1
Sync wi/ reality.
2000-02-28 14:21:46 +00:00
itojun
959ca07b4b
add hw.alignbytes sysctl mib. this gives you the value of ALIGNBYTES
...
at the kernel compilation time (ALIGNBYTES that the kernel uses).
2000-02-27 06:13:35 +00:00
itojun
6a433be509
remove net.inet6.ip6.nd6_proxyall sysctl.
...
support "ndp -s <ip6> <mac> proxy" for proxy NDP.
2000-02-26 08:48:21 +00:00
mycroft
19b51e87a9
Remove pointless #ifdef.
2000-02-25 17:40:30 +00:00
kleink
7b61131dba
Missed in end -> _end cleanup.
2000-02-24 15:37:34 +00:00
itojun
7b48263c7b
(rcmd.c) to make Zoularis happier, pass sa_len separately from sockaddrs.
...
this changes function prototype for __ivalid*.
This commit breaks binary compatibility for __ivalid*. I believe this can be
forgiven due to the following:
- this is not really exported function. no function prototype is in headers.
function name starts with underbars. No third-party applications are
expected to use it.
- the function was introduced very recently, when rcmd.c was made IPv6-ready.
- the only customer in NetBSD tree is lpd.
(lpd.c) sync with rcmd.c change.
2000-02-24 06:33:47 +00:00
kleink
a379081935
For consistency with all other ports, clear errno in the prologue to the
...
syscall here as well - while the manual page advises applications to clear
errno themselves their actual behaviour may be questionable, especially in
light of the other ports' implementations.
2000-02-23 20:16:57 +00:00
itojun
73f8a2b760
add freeifaddrs.3 as MLINKS.
2000-02-23 15:44:00 +00:00
itojun
4b9363d8e4
add freeifaddrs(), which reclaims region allocated by getifaddrs().
...
in sync with kame and bsdi.
2000-02-23 15:29:18 +00:00
itojun
2397ac761e
increase shlib minor of libc, for addition of getifaddrs(3).
2000-02-23 07:00:54 +00:00
itojun
6037c7862b
add getifaddrs(3) from bsdi4, as mentioned in tech-net (in SIOCGIFCONF
...
related thread).
this will save future apps from complexity of SIOCGIFCONF.
getifaddrs(3) does not use SIOCGIFCONF internally, it uses sysctl.
2000-02-23 06:57:46 +00:00
itojun
b2da836f1e
avoid memory leak on valid FQDN + invalid port name.
2000-02-22 05:47:15 +00:00
mycroft
9ff0891c83
Fix bogons.
2000-02-22 03:28:04 +00:00
mycroft
5256a370bf
Do the minimum work to make this compile with -Werror.
2000-02-22 03:14:20 +00:00
mycroft
32d50d3388
Do the minimum work to make this compile with -Werror.
2000-02-22 01:18:28 +00:00
itojun
08f1ee0d30
query NIS hosts.byname only when necessary (= PF_UNSPEC of PF_INET queries).
2000-02-20 17:07:01 +00:00
itojun
503ce101c1
getaddrinfo(3) now obeys nsswitch.conf correctly.
2000-02-20 14:45:34 +00:00
itojun
40e69da142
to honor the search order defined by nsswitch.conf,
...
getaddrinfo(3) now calls lower-layer resolver functions directly.
XXX code duplicate with gethnamaddr.c/res_search.c - future code
maintenance issue? Since BIND[89] does not address this issue either at
this moment, switching to BIND[89] does not help.
2000-02-20 14:44:30 +00:00
mycroft
d018facbbf
A better fix for the stub-in-other-module problem:
...
Load the address of cerror through the GOT, so we can do a PIC_EPILOGUE and
leave the stack clean.
2000-02-19 21:04:58 +00:00
itojun
1ae287d8f9
fix alignment issue with 64bit arch (packed struct/SIOCGIFCONF).
...
From: =?iso-8859-1?Q?G=F6ran_Bengtson?= <goeran@cdg.chalmers.se>
2000-02-18 08:26:01 +00:00
itojun
5b36a9108a
do not perform sleep() every time we get ECONNREFUSED.
...
try all the set of addresses before go to sleep() and retry.
not sure if we still need sleep() - retry logic. why is it so persistent
in connecting?
From: SHIMIZU Ryo <ryo@misakimix.org>
2000-02-18 04:16:54 +00:00
kleink
2a62a2c565
Back out previous: when statically linking executables a warning will be
...
displayed for the reference through __errno(), which is really wrong.
2000-02-17 21:34:21 +00:00
itojun
823d2a5d81
to synchronize with progress of discussion for post
...
draft-ietf-ipngwg-scopedaddr-format-00.txt (will be 01),
use "address%interface" notation for extended scoped IPv6 address.
NOTE: the change affects link-local addresses only. I hope it to be
the final change on it.....
2000-02-17 17:06:17 +00:00
itojun
8829e73e38
preparation to flip extended scoped address syntax.
...
the specification is still under debate; there is high possibility that
"fe80::1%de0" will be the finalist but i'm not sure yet.
2000-02-16 04:50:23 +00:00
thorpej
25ab915071
Note net.inet.icmp.errratelimit and net.inet.tcp.rstratelimit.
2000-02-15 19:59:02 +00:00
itojun
9d735055cd
make it possible to compile it without -DINET6
...
From: "Castor Fu" <castor@geocast.com>
2000-02-15 18:55:55 +00:00
itojun
f126f47f70
in BUGS section, document that it can behave differently from nsswitch.conf(5)
...
suggests.
NetBSD PR: 9413
2000-02-14 13:06:57 +00:00
kleink
1d34d289cf
Arrange for a linker warning to be displayed when the errno datum is accessed
...
directly; inspired by a conversation with Havard Eidnes.
2000-02-13 21:13:01 +00:00
itojun
b3092550ea
sa_len was not properly set due to autoconf #ifdef.
...
(mistake in yesterday's upgrade)
2000-02-10 03:06:53 +00:00
itojun
34a6354b59
revise extended scoped address format support. delimiter and the order
...
is changed, based on discussion in ipngwg scoped address cabal.
past code: fe80::1@de0
now: de0%fe80::1
this will be in sync with next extended address format proposal
(which should be final - I don't want to make this kind of change again).
2000-02-09 12:25:06 +00:00
itojun
ed74ec1491
add missing manpage, gethostbyname2(3).
2000-02-09 12:23:55 +00:00
itojun
cf02e1f1ce
fix behavior of inet_pton() to be RFC2553/XNS compliant.
...
inet_pton() takes decimal dot-quads only. inet_pton() does not
take hexadecimal, octal nor classful (short) representation.
2000-02-07 18:51:02 +00:00
jdolecek
a7986a820b
change the German translation of SIGPWR description, as per lib/9277
2000-02-07 13:33:04 +00:00
kleink
b94df6841c
(Re-)use the assembly version for labs() as well.
2000-02-06 13:14:51 +00:00
fair
bf004f04e9
Document KERN_LOGSIGEXIT.
...
sort sysctl variable list in sysctl.8
2000-02-06 07:31:23 +00:00
kleink
b9d73b3129
Implement *__errno() redirection, with help from Matt Thomas.
2000-02-05 21:02:51 +00:00
kleink
c54d3e28e2
Go via *__errno() here, too.
2000-02-05 19:53:54 +00:00
kleink
c3ed25e892
Implement *__errno() indirection.
2000-02-05 19:20:53 +00:00
thorpej
62c7591543
Back out the previous 2 revs. The delint'ing of this file caused
...
something to break horribly on the Alpha.
2000-01-31 22:56:14 +00:00
christos
f9be3e6b20
Explain why we don't want to pass structs and unions to syscalls, and
...
how to find the proper args for a syscall.
2000-01-31 15:15:07 +00:00
christos
618e1b5628
Add a userland stub to do the union semun -> union semun * redirection.
2000-01-31 15:14:19 +00:00
itojun
0affd7a994
visit next addrinfo struct on socket failure.
...
this should fix the behavior of rcmd() on ipv4-only node, trying to
connect to dual stack node (AAAA and A record on DNS/hostname databaes)
2000-01-31 10:23:03 +00:00
itojun
e0df61eefa
increase libc's shlib minor for rcmd_* changes. sorry to be late.
...
Suggested by: Klaus Klein
2000-01-28 17:40:41 +00:00
itojun
59b810d3a5
backout previous commit - freeaddrinfo(NULL) issue.
2000-01-28 08:09:48 +00:00
kleink
fb2f23e243
Oops, need to save r2 and r3 as well.
2000-01-27 15:11:17 +00:00
kleink
9d7ea6523c
Support *__errno() indirection.
2000-01-27 14:58:48 +00:00
itojun
e4dc489b2c
allow freeaddrinfo(NULL). nothing is talked in RFC2553 (maybe in X/Open?).
...
however, since NRL freeaddrinfo permits it, we need to.
2000-01-27 08:25:51 +00:00
itojun
5b1aaa939e
add IPv6 support to rcmd() and friends.
...
rcmd() and iruserok(): unchanged
ruserok(): became address family independent
rcmd_af(), iruesrok_sa(): address family independent
2000-01-27 05:33:06 +00:00
itojun
5a38b81b42
implement bindresvport_sa(), which is necessary for IPv6 support in certain
...
programs (like rshd or rlogind).
bindresvport() and bindresvport_sa() exhibits exactly the same functionality,
with different function prototype (sockaddr_in * and sockaddr *).
The behavior and prototype was discussed and agreed among shin@kame.net
(who is doing freebsd-current kame merge), deraadt@openbsd.org , and
Jean-Luc.Richier@imag.fr (INRIA IPv6/IPv6 RPC support). so it will be
portable across *bsd.
2000-01-26 13:20:24 +00:00
itojun
e5a959ce39
EINVAL may be returned when address family mismatches. (from openbsd)
2000-01-26 10:43:36 +00:00
itojun
e5aaa3fce0
fix include file. bindresvport() is declared in rpc/rpc.h, not netinet/in.h.
2000-01-26 07:06:03 +00:00
itojun
541dde0213
fix RFC2553 conformance. AI_CANONNAME does not mean reverse query.
2000-01-26 06:51:29 +00:00
itojun
ed15f9831a
move -DINET6 upwards, into lib/libc/Makefile.
...
- we need it for lib/libc/rpc soon
- this is not clear to add CPPFLAGS in subdir/Makefile.inc (as it affect other
subdirs as well)
2000-01-26 02:46:36 +00:00
elric
e0b171cf6d
Added a tab before a '}' to put the brace in the right place.
2000-01-25 23:22:49 +00:00
enami
6e75e4cb47
- Don't update the size of allocated storage until realloc successes.
...
- KNF left over.
2000-01-25 16:24:40 +00:00
enami
086a35e065
Use tab to indent.
2000-01-25 15:43:43 +00:00
kleink
1a3fa11c95
Support *__errno() indirection.
2000-01-24 21:57:39 +00:00
itojun
324dad9e89
fix comment.
...
better sync with kame tree.
2000-01-24 03:08:12 +00:00
mycroft
5888ab27bd
Make cerror() work correctly for stubs in other shlibs -- e.g. libposix.
2000-01-23 23:38:32 +00:00
ad
398257cba8
Change how the purpose of net.inet.tcp.log_refused is expressed so that it's
...
consistant with its neighbours.
2000-01-23 17:12:11 +00:00
jdolecek
6ff6ac75be
Formatting nit: in SIGPWR discription, use slasl instead of 'eller -', to be
...
consistent with other translations (suggested by Johan)
2000-01-23 10:12:12 +00:00
mycroft
8c2a748a3c
Doh. Remove the __weak_alias() as well...
2000-01-23 07:37:47 +00:00
mycroft
44ea18f69f
Fix the tags build.
2000-01-23 07:10:13 +00:00
itojun
bd6de83f9b
remove #if 0'ed portion (AF filtering in normal name resolution)
...
add comment to the fragment which confused mycroft
2000-01-23 04:03:21 +00:00
mycroft
0b92a50dc3
Delint some more.
2000-01-23 01:55:17 +00:00
mycroft
82267feccd
Doh. I'm a dork.
2000-01-23 01:37:19 +00:00
mycroft
1c86155f3b
Ditto for nlist().
2000-01-23 01:35:49 +00:00
mycroft
8102096d08
Delint.
2000-01-23 00:49:41 +00:00
mycroft
03ec2c38fe
Partially delint, and a few microoptimizations.
2000-01-23 00:38:43 +00:00
mycroft
45f1263b98
Partially delint.
2000-01-23 00:10:56 +00:00
mycroft
5865c81535
Partially delint.
2000-01-23 00:09:19 +00:00
mycroft
af7317bb6b
Delint.
2000-01-23 00:01:35 +00:00
mycroft
c72eee355c
Partially delint.
2000-01-22 23:54:20 +00:00
mycroft
0463795134
Delint.
2000-01-22 23:37:14 +00:00
mycroft
967cbc5131
Use a better type in previous.
2000-01-22 23:36:17 +00:00
mycroft
c6a0f46b4f
Delint.
2000-01-22 22:53:59 +00:00
mycroft
c26054b799
Delint.
2000-01-22 22:40:58 +00:00
mycroft
e6076182eb
Delint.
2000-01-22 22:30:08 +00:00
mycroft
605490369c
Delint.
...
Remove trailing ; from uses of __weak_alias(). The macro inserts this if
needed.
2000-01-22 22:19:07 +00:00
mycroft
fb345096b7
Don't do the namespace hack for timezone() here; it causes lint, and we don't
...
need it anyway.
2000-01-22 21:43:15 +00:00
mycroft
e568b4cf30
Delint.
2000-01-22 21:19:29 +00:00
jdolecek
95e5ddf0c5
Add SIGPWR description (from Johan Danielsson)
2000-01-22 00:34:30 +00:00
wrstuden
9c658d828e
Need to include "reentrant.h" for FLOCKFILE macros.
2000-01-21 23:12:33 +00:00
fvdl
da026ad067
Add SIGPWR description. Clean up some messages.
2000-01-21 22:57:54 +00:00
jdolecek
0c02a34772
Add SIGPWR entry (from Aymeric Vincent <Aymeric.Vincent@crans.ens-cachan.fr>)
2000-01-21 22:53:22 +00:00
jdolecek
b4f09231f2
Add entry for SIGPWR (translation by Ignatios Souvatzis)
2000-01-21 22:24:12 +00:00
mycroft
e70f76146b
Do file locking.
2000-01-21 19:56:07 +00:00
mycroft
b714bb5102
Just call fflush() from _cleanup(), since it does the right locking.
2000-01-21 19:55:02 +00:00
mycroft
f9b319ca18
Call __sclearerr(), nor clearerr(), so we don\`t try to double lock.
2000-01-21 19:54:13 +00:00
mycroft
0b24b6555f
Do the lock *after* checking that the fp is valid.
2000-01-21 19:53:02 +00:00
mycroft
442e96d230
Initialize f._file for locking primitives.
2000-01-21 19:51:36 +00:00
jdolecek
d409b19eb6
Add SIGPWR entry (from Pooka)
2000-01-21 16:18:05 +00:00
jdolecek
de5a194e8c
Improve rpc error translation (from Linux catalogs)
2000-01-21 11:04:05 +00:00
jdolecek
1c089347e1
Add entry for SIGPWR
...
Extensive changes (mostly taken from Linux czech catalogs), to improve
gramatics and semantic corectness
2000-01-21 10:46:47 +00:00
jdolecek
320ccac4d9
add SIGPWR entry
2000-01-21 10:01:49 +00:00
kleink
02867b49c9
Nuke the assembly version, which has been unused for > 2 years and is actually
...
identical to GCC's output from processing abs.c.
2000-01-20 18:28:33 +00:00
enami
10749faeb1
- To detect realloc failure, need to check the value just returned by it.
...
- Free storage on realloc failure.
- Some cosmetic changes.
2000-01-20 03:15:04 +00:00
mycroft
66aa5b00fe
Use strtol() to check validity of numeric values, rather than
...
hand-coding it.
2000-01-20 02:53:46 +00:00
itojun
293e2f2a8c
warning about net.inet6.ip6.forwarding.
2000-01-19 12:30:12 +00:00
itojun
692c04487f
cosmetic (last dot in SEE ALSO section)
2000-01-19 07:03:35 +00:00
kleink
6910891781
Add NAN constant glue for sh3.
2000-01-17 16:27:53 +00:00
kleink
34c7685f30
Adjust for little endian environments (confirmed by msaitoh).
2000-01-17 16:21:36 +00:00
itojun
2705db0080
do not filter address families that are not supported by kernel.
...
the behavior was introduced in 1.8 -> 1.9, by itojun, and it was
not a correct behavior.
even if we may be able to connect to the the returned addresses,
filtering them out is not a correct thing to do. for example, even if
you have partial unreachablility in IPv4, gethostbyname(3) will return
IPv4 addresses in the unreachable network nonetheless.
2000-01-17 15:57:29 +00:00
itojun
79641939e0
remove #if 0'ed sections.
2000-01-17 08:34:04 +00:00
itojun
88d175cdc4
sync with latest KAME tree.
...
add example section to get{addr,name}info.
s/\.Os KAME/.Os/.
2000-01-17 08:33:45 +00:00
kleink
5d03e70658
(Re-)use the assembly version for labs(), too.
2000-01-16 00:32:32 +00:00
kleink
cc34c654dc
Add the C99 %F conversion.
2000-01-15 16:59:05 +00:00
christos
fc1a83184b
add and "f" flag to fopen that makes sure we are opening a plain file,
...
so that there is no chance to block.
2000-01-15 01:11:45 +00:00
msaitoh
df208e8ae8
sync with libkern
2000-01-14 22:55:46 +00:00
ad
902637d2e4
swapctl(SWAP_OFF, ...) now works.
2000-01-13 12:11:30 +00:00
scw
2a8d425699
After writing a page out to disk, run the page back through the user's
...
input filter to ensure we don't end up with a cached copy of the page
in the wrong byte-order for the host cpu.
This fixes a fatal bug which bites when the DB 'lorder' is different
to the cpu's, and a cached page is accessed soon after it was flushed
to disk.
2000-01-09 19:56:15 +00:00
hubertf
959b8807ca
Document that errno is set to ENOMEM if no memory can be allocated.
2000-01-09 16:14:04 +00:00
itojun
0e776c76b4
need sys/types.h before sys/socket.h
2000-01-07 01:49:42 +00:00
itojun
2e904aec57
make IPV6_BINDV6ONLY setsockopt available. it controls behavior of
...
AF_INET6 wildcard listening socket. heavily documented in ip6(4).
net.inet6.ip6.bindv6only defines default value. default is 1.
"options INET6_BINDV6ONLY" removes any code fragment that supports
IPV6_BINDV6ONLY == 0 case (not defopt'ed as use of this is rare).
2000-01-06 06:41:18 +00:00
itojun
97998ce539
wording fix in net.inet6.icmp6.errratelim.
2000-01-06 03:43:03 +00:00
itojun
9695855746
add missing variables under net.inet6.ip6.
2000-01-06 02:56:44 +00:00
drochner
65bf8c30e2
fix use of uninitialized "buflen" (botched in 1.18), closes PR lib/9104
...
by bgrayson@ece.utexas.edu
2000-01-05 18:40:06 +00:00
msaitoh
95d875fb90
libc for SH3.
...
TODO: fplib
2000-01-05 14:07:29 +00:00
itojun
2cd2ee94b9
allow reverse query for v4 loopbacknet (127.0.0.0/8).
2000-01-05 04:54:54 +00:00
itojun
9ffbadc055
clarify text for RES_USE_INET6. this is almost always unnecessary.
2000-01-03 11:56:05 +00:00
msaitoh
40732a4308
nlist for COFF
2000-01-03 02:13:32 +00:00
itojun
07c2fe1cd9
add net.inet6.icmp6.nodeinfo sysctl.
...
this allows you to disable/enable ICMPv6 node information query/reply
processing (which tells remote end the gethostname(3) setting, interface
addresses on the node, and some other things - documented in
draft-ietf-ipngwg-icmp-name-lookup* or something alike).
to test it, try ping6 -w ::1 with nodeinfo=0 and nodeinfo=1.
(sync with kame change)
2000-01-02 16:31:17 +00:00
itojun
062c67829f
typo fix
2000-01-02 13:34:25 +00:00
itojun
14719f6549
document PF_INET6 items (net.inet6.*).
2000-01-01 18:00:56 +00:00
eeh
0ba088f0a3
New bzero() using block store insns.
1999-12-30 15:31:39 +00:00
eeh
d1b815fe32
Sample code to implement ffs() using the popc insn (if it's ever implemented).
1999-12-30 15:30:26 +00:00
tron
eec7b963e1
Correct typo reported by Jens Nilsson in PR misc/9069.
1999-12-29 21:19:36 +00:00
assar
8f5685ec6b
ignore KEY and SIG records when matching responses to the query. we
...
get those as extras from DNSsec-enabled name servers.
1999-12-28 15:47:41 +00:00
mjl
67b9836fda
Fix typo.
1999-12-28 02:51:17 +00:00
itojun
1f9eba958f
properly check the error result from if_nametoindex(), to disallow
...
bogus interface index specification like fe80::1@bogus.
(sync with kame)
1999-12-27 10:20:59 +00:00
shin
509e885e3b
fix name space pollution by adding prefix '_mips_'.
...
closes PR 8770.
1999-12-26 00:22:31 +00:00
kleink
c28a7d70bf
Bump minor.
1999-12-23 10:16:36 +00:00
kleink
11e6c54cfc
C99: Define a NAN macro in <math.h> which evaulates to a constant expression of
...
a single-precision quiet NaN; only to be defined on platforms that do support
this value.
1999-12-23 10:15:05 +00:00
itojun
72e7091f16
more complete solution for gethostby*() buffer overwrite issue.
...
(we need thread-safe gethostby*...)
1999-12-13 17:05:45 +00:00
itojun
58481c1c06
fix getaddrinfo(3) and getnameinfo(3).
...
getaddrinfo(3): result from gethostby* will be broken if we call it again.
deep-copy them. we have sa_len so configure them.
getnameinfo(3): we have sa_len so configure them.
1999-12-13 16:22:56 +00:00
itojun
1501f61891
bring in latest KAME get{addr,name}info(3).
...
getnameinfo(3) globs ai_socktype and ai_protocol correctly.
KAME scopeid extension is implemented.
(draft-ietf-ipngwg-scopedaddr-format-00.txt)
bump up shlib minor
(may not be necessary, but rather big difference in behavior - especially
ai_flags)
1999-12-13 14:18:31 +00:00
itojun
0b3c3042e6
inet6_rthdr_reverse() is not implemented yet.
1999-12-12 14:59:09 +00:00
itojun
c3f65850fd
wording fixes (from openbsd camp -> kame)
1999-12-12 11:21:04 +00:00
itojun
a57d497906
add manpage for inet6_{option,rthdr}_*.
1999-12-12 11:20:03 +00:00
msaitoh
3b476f4adb
use .Er
1999-12-11 19:35:48 +00:00
explorer
cda5601f3c
revert this file, the changes I made were quite unnecessary.
1999-12-10 17:27:28 +00:00
wennmach
19e89641c1
Back out last change; now vis takes care not to produce ambigous
...
encodings.
1999-12-07 18:26:27 +00:00
wennmach
12c643233f
In SVIS, encode all characters on the extra list either in C-style
...
fashion (if possible) or as octal representation (else).
1999-12-07 18:20:28 +00:00