Commit graph

729 commits

Author SHA1 Message Date
Jo-Philipp Wich
5fdd1f4bd7 Add munin to /etc/services
The muninlite postinst fails to add munin to /etc/services.

This patch removes this broken postinst and add an entry for munin in
/etc/services. This should have been done when the rest of the
/etc/services postinsts were being removed (changesets 26142-26149).

Signed-off-by: Jonathan McCrohan <jmccrohan@gmail.com>

SVN-Revision: 30982
2012-03-18 19:41:57 +00:00
Felix Fietkau
5744d736f2 base-files: remove old coldplugging hacks that are no longer necessary since the new main hotplug2 instance calls udevtrigger as well
SVN-Revision: 30916
2012-03-13 09:18:30 +00:00
Jo-Philipp Wich
086cae30ce base-files: enable conntrack accounting in sysctl. It used to be a compile time option which got deprecated
SVN-Revision: 30805
2012-03-04 14:53:17 +00:00
Gabor Juhos
6c61d7cbf1 base-files: remove trailing whitespaces from lib/functions/boot.sh
SVN-Revision: 30776
2012-03-02 11:17:30 +00:00
Gabor Juhos
8ae051799a base-files: remove trailing whitespaces from lib/functions.sh
SVN-Revision: 30775
2012-03-02 11:17:29 +00:00
Jo-Philipp Wich
6b9bf71881 base-files: add a uci-defaults script which will migrate the root password to /etc/shadow if needed
SVN-Revision: 29865
2012-01-22 22:25:42 +00:00
Felix Fietkau
a963a80a38 base-files: the initial hotplug2 instance sometimes misses a few relevant events, e.g. during module load. rerun udevtrigger for the final hotplug2 instance to fix this
SVN-Revision: 29862
2012-01-22 21:14:22 +00:00
Jo-Philipp Wich
9fd3886365 base-files: do not pass --set-worker /lib/hotplug2/worker_fork.so to hotplug2 anymore, its statically linked - patch by Viktar Palstsiuk <viktar.palstsiuk@promwad.com>
SVN-Revision: 29806
2012-01-19 15:37:47 +00:00
Jo-Philipp Wich
4e88bcfb00 base-files: implement a --force option for sysupgrade to override image checks, useful to upgrade old ar71xx installations to current trunk ones
SVN-Revision: 29688
2012-01-08 15:30:37 +00:00
Gabor Juhos
ff89832fdb package/base-files: add support for the switch LED trigger
SVN-Revision: 29629
2011-12-31 15:02:35 +00:00
Gabor Juhos
3f85c52a3a package/base-files: use case statement in led init script
SVN-Revision: 29628
2011-12-31 15:02:32 +00:00
Jo-Philipp Wich
1c6821b42e base-files: add -b (--create-backup) option to sysupgrade, which generates a backup .tar.gz according to the user settings. This will also be reused by LuCI.
SVN-Revision: 29587
2011-12-20 17:25:15 +00:00
Gabor Juhos
561f4d2840 base-files: add lib/functions/uci-defaults.sh
SVN-Revision: 29384
2011-12-01 22:48:46 +00:00
Jo-Philipp Wich
d46e17548b base-files: kill remaining processes after running user hooks (#10461)
SVN-Revision: 29256
2011-11-19 16:50:25 +00:00
Jo-Philipp Wich
010e58d209 base-files: another empty password check fix (#10440)
SVN-Revision: 29208
2011-11-17 09:40:06 +00:00
Jo-Philipp Wich
33443d2a8c base-files: now that we have date -k, adjust the kernel timezone after setting up TZ and localtime
SVN-Revision: 29204
2011-11-17 01:18:22 +00:00
Jo-Philipp Wich
6d80ce78f1 base-files: rewrite killing of nonessential services to not rely on top, use the proc filesystem only
SVN-Revision: 29187
2011-11-16 15:01:18 +00:00
Jo-Philipp Wich
8b20bfafdf base-files: prime root password with "x" to notify programs that there is a shadow record, fix /bin/login.sh password detection accordingly. Solves broken key based dropbear login with empty password after r28935.
SVN-Revision: 29130
2011-11-14 19:02:01 +00:00
Nicolas Thill
b49aed1520 package/base-files: enhance service functions
* allow matching process by name (useful for processes changing it)
 * check if first argument is executable
 * fix function name used in error messages

SVN-Revision: 28991
2011-11-12 13:53:15 +00:00
Jo-Philipp Wich
20ff304ed9 base-files: now that the initial password is completely empty (and not primed with "!") adjust login.sh for it to make telnetd available again
SVN-Revision: 28943
2011-11-11 13:25:31 +00:00
Imre Kaloz
28039aea90 nuke another 2.4 skeleton
SVN-Revision: 28937
2011-11-10 13:39:06 +00:00
Imre Kaloz
7944b6fa32 enable and use shadow passwords by default
SVN-Revision: 28936
2011-11-10 12:55:01 +00:00
Imre Kaloz
55ac529951 the empty root password should be empty ;)
SVN-Revision: 28935
2011-11-10 12:47:50 +00:00
Jo-Philipp Wich
be49daffc8 base-files, target: assign name to system timeserver section, makes it easier to set servers on the cli
SVN-Revision: 28933
2011-11-10 12:16:41 +00:00
Nicolas Thill
f371d516bf package/base-files: /lib/functions.sh: add {group,user}_{add,exists} functions
SVN-Revision: 28871
2011-11-09 00:23:58 +00:00
Nicolas Thill
62a2827ea7 package/base-files: /lib/functions.sh: let service_stop exit early if no matching process to stop where found
SVN-Revision: 28870
2011-11-08 23:35:13 +00:00
Nicolas Thill
b7b56df707 package/base-files: enhance & cleanup service wrappers
* add service_check function for checking if a process is alive
 * add service_signal for sending arbitrary signals to a process
 * change service_stop to send a TERM signal first, wait for the process to die and send a KILL signal if it doen't
 * have service_kill print a warning on STDERR stating it has been deprecated

SVN-Revision: 28865
2011-11-08 22:47:49 +00:00
Nicolas Thill
d0659ce37e package/base-files: move service* functions from /etc/rc.common to /lib/functions.sh
SVN-Revision: 28864
2011-11-08 22:47:41 +00:00
Jo-Philipp Wich
7e3b6aa1f1 base-files: do not kill udhcpc on sysupgrade, it will tear down the interface if terminated
SVN-Revision: 28863
2011-11-08 19:14:55 +00:00
Jo-Philipp Wich
daca6a6a97 base-files: do not assume that "top" is busybox' top, but try to call the applet explicitely
SVN-Revision: 28862
2011-11-08 18:48:38 +00:00
Jo-Philipp Wich
a73fffe857 base-files: properly handle wifi ifaces with no network attached, useful for unmanaged interfaces like used for batman or monitoring
SVN-Revision: 28860
2011-11-08 14:42:58 +00:00
Nicolas Thill
b6aef59ea8 package/base-files: move /etc/functions.sh to /lib/functions.sh
SVN-Revision: 28857
2011-11-08 14:14:29 +00:00
Nicolas Thill
93886bc776 package/base-files: use new service wrapper
SVN-Revision: 28835
2011-11-07 22:58:34 +00:00
Nicolas Thill
10a03275bf package/base-files: /etc/rc.common: add service wrapper around start-stop-daemon
SVN-Revision: 28834
2011-11-07 22:58:27 +00:00
Nicolas Thill
8413e90418 package/base-files: /etc/passwd: fix uid number for user 'daemon' (conflicting with user 'nobody')
SVN-Revision: 28799
2011-11-07 11:02:55 +00:00
Felix Fietkau
248ab4ac2f base-files: process platform hotplug calls in the early launch of hotplug2 to avoid having crda calls get stuck at boot time (fixes #10350, #10354)
SVN-Revision: 28768
2011-11-05 17:16:01 +00:00
Felix Fietkau
dab5ebaa76 netifd: ensure that a bridge gets created before hostapd needs it, hostapd must not attempt to create the bridge by itself
SVN-Revision: 28745
2011-11-04 01:05:12 +00:00
Felix Fietkau
44ba13b578 base-files: load modules early, run wifi detect afterwards and only then process uci defaults
this allows uci-defaults scripts to override wifi settings

SVN-Revision: 28733
2011-11-03 20:02:25 +00:00
Jo-Philipp Wich
e3daeabda3 base-files: add some more protected services to sysupgrade kill blacklist
SVN-Revision: 28732
2011-11-03 19:25:25 +00:00
Jo-Philipp Wich
ef6d7a7e33 base-files: fix typo
SVN-Revision: 28681
2011-10-30 15:48:14 +00:00
Jo-Philipp Wich
52e93e54bc base-files: sysupgrade: kill all but essential processes before starting the update
SVN-Revision: 28626
2011-10-27 16:52:31 +00:00
Gabor Juhos
4cc48089c7 base-files/sysupgrade: add more busybox applet symlinks to ramdisk
Adds symlinks for printf and wc to make life happier in the sysupgrade ramdisk.
Also make code more readable by escaping that overly long line.

Signed-off-by: Daniel Golle <dgolle@allnet.de>

SVN-Revision: 28616
2011-10-27 07:54:49 +00:00
Jo-Philipp Wich
272d95f0f1 base-files: remove rdate integration, add busybox ntpd init script and server list in /etc/config/system The rdate applet proved to be too unreliable to obtain the current time on boot: - public time servers are rare and often unreachable or overloaded - rdate does not daemonize, it needs a network connection the moment it is started, leading to race conditions - the /etc/config/timeserver configuration is overly complex and there is no reliable way to disable rdate invocations - the time protocol as specified in RFC 868 is considered obsolete This commit adds an init script /etc/init.d/sysntpd which starts and stops the busybox ntpd accordingly. The builtin ntpd can be disabled by either disabling the init script, removing the symlink to busybox or by clearing the timeserver list in /etc/config/system.
SVN-Revision: 28612
2011-10-27 00:21:53 +00:00
Felix Fietkau
55aeabae10 add an initial (experimental) version of netifd, disabled by default
SVN-Revision: 28499
2011-10-21 01:47:49 +00:00
Felix Fietkau
c2b5767572 base-files: move network related scripts to a separate package to make the transition to netifd easier
SVN-Revision: 28495
2011-10-20 15:01:06 +00:00
Jo-Philipp Wich
59c13202e0 base-files: introduce "igmp_snooping" option to toggle IGMP snooping on bridge interfaces
SVN-Revision: 28412
2011-10-11 13:43:08 +00:00
Jo-Philipp Wich
bfbbe5893f base-files: use "zonename" system option to symlink /etc/localtime via /tmp/localtime to /usr/share/zoneinfo for glibc and eglibc
SVN-Revision: 28306
2011-09-26 02:28:04 +00:00
Felix Fietkau
4246c6a6b5 base-files: apply network interface settings such as macaddr, mtu and txqueuelen in prepare_interface instead of setup_interface. setting the mtu after the interface is up is unreliable on some drivers such as gianfar
SVN-Revision: 28297
2011-09-24 20:34:17 +00:00
Jo-Philipp Wich
41838f4585 base-files: make ip matching in dns add/remove functions more explicit, avoids overmatching pairs like 1.2.3.35 and 1.2.3.3
SVN-Revision: 28291
2011-09-23 08:35:50 +00:00
Vasilis Tsiligiannis
98372a8eb5 base-files: Fix IPv6 address and route adding on aliases with no IPv4 address configured
SVN-Revision: 28241
2011-09-14 13:37:44 +00:00
Vasilis Tsiligiannis
200fd7bce1 Revert "[package] base-files: Add support for assigning multiple IPv6 addresses on an interface"
Multiple IPv6 addresses should be handled with alias sections

SVN-Revision: 28240
2011-09-14 13:37:40 +00:00
Vasilis Tsiligiannis
718c8ab940 base-files: Add support for assigning multiple IPv6 addresses on an interface
SVN-Revision: 28222
2011-09-12 21:07:00 +00:00
Felix Fietkau
dea36724a4 base-files: remove an old network tunable tweak which is messing up network stack performance on modern systems
SVN-Revision: 28126
2011-08-29 23:34:11 +00:00
Jo-Philipp Wich
aab33e2e9a base-files: fix arp() procedure to properly detect /usr/bin/arp
SVN-Revision: 27965
2011-08-12 14:34:39 +00:00
Felix Fietkau
8ff7756e82 base-files: warn when calling /etc/init.d/<script> enable and neither START nor STOP is defined
SVN-Revision: 27797
2011-07-27 09:02:10 +00:00
Jo-Philipp Wich
94c728dc39 base-files: use "reboot -f" after sysupgrade to prevent executing deleted init scripts
SVN-Revision: 27776
2011-07-25 22:19:55 +00:00
Jo-Philipp Wich
365f76551a base-files: attempt bring up related wifi devices when calling ifup If a user invoked /sbin/ifup to bring up an interface, the setup used to fail in case of wireless networks tied to a non-bridged interface definition. Likewise, the bringup of "lan" in the default configuration will reinitialize the bridge but do not re-join the wireless network to it, requiring an extra call to /sbin/wifi (which might not be possible anymore due to a severed link if connected wirelessly).
The changeset modifies the "ifup" command to search for related wireless
devices and call "wifi up" on them if applicable. This way the commands for
wireless and non-wireless interfaces are unified from a cli point of view.

The "ifup -a" case has not been changed to keep the logic of the
/etc/init.d/network boot sequence. This might be changed later.

Solves #9763.

SVN-Revision: 27720
2011-07-22 00:21:20 +00:00
Jo-Philipp Wich
0de28706ca base-files: implement a generic mechanism to map per-interface sysctls to uci. - option ipv4_xyz is mapped to /proc/sys/net/ipv4/{conf,neigh}/xyz - option ipv6_xyz is mapped to /proc/sys/net/ipv6/{conf,neigh}/xyz This allows e.g. "option ipv6_proxy_ndp 1" to enable NDP proxying on wan. Fixes ticket #8699.
SVN-Revision: 27653
2011-07-17 17:10:30 +00:00
Jo-Philipp Wich
1e34c02e3e base-files: add -h and --help options to sysupgrade (#9728)
SVN-Revision: 27630
2011-07-17 09:27:14 +00:00
Jo-Philipp Wich
e0e6d1029e base-files: use uci_toggle_state() to prevent unwanted aggregation of state vars (#9711)
SVN-Revision: 27616
2011-07-15 14:57:44 +00:00
Daniel Dickinson
1f69f4cf64 base-files: preinit: Fixed sourcing of diag.sh in /etc/preinit. This caused errors due to frequent use of /proc/cpuinfo to determine board name to pick led layout. Now diag.sh (which only defines set_state and any helper functions) is sourced by a proper preinit function during preinit_main, which is after /proc has been brought up, unlike in /etc/preinit
SVN-Revision: 27501
2011-07-07 02:52:02 +00:00
Jo-Philipp Wich
32731a72c2 base-files: pass conloglevel to syslogd (#9463, #9647)
SVN-Revision: 27400
2011-07-03 15:11:58 +00:00
Felix Fietkau
0a7a73261a base-files: do not use the relinked libgcc, fixes c++ exception handling issues (#9185)
SVN-Revision: 27347
2011-07-02 06:50:15 +00:00
Jo-Philipp Wich
28fbd7470d add gfortran compiler support (#9600, patch from Xiangfu Liu via Qi hardware)
SVN-Revision: 27262
2011-06-23 11:46:24 +00:00
Jo-Philipp Wich
344445715a base-files: assume a default ipv6 prefix size of /64, thats what the majority of users mean when they just specify an ip address
SVN-Revision: 27147
2011-06-09 12:36:30 +00:00
Jo-Philipp Wich
fd8ec24187 base-files: if an ip6addr without a prefix is given, assume /128 - otherwise the busybox utilities will interpret it as /0 and create an invalid default route
SVN-Revision: 27145
2011-06-09 12:25:48 +00:00
Jo-Philipp Wich
97ee10d691 base-files: fix error reporting for unsupported protocols on virtual interfaces
SVN-Revision: 27132
2011-06-07 23:25:43 +00:00
Felix Fietkau
9a227d88dd base-files: do not write to /etc/config/wireless at boot time unless a new interface was found
eliminates unnecessary flash write cycles at every boot

patch by Peter Wagner (tripolar)

SVN-Revision: 27127
2011-06-07 17:00:43 +00:00
Felix Fietkau
60f66ded72 base-files: make the MAC address of bridge interfaces sticky to avoid ARP issues on wifi re-configuration
SVN-Revision: 26990
2011-05-24 09:31:37 +00:00
Jo-Philipp Wich
9b8a5e604a base-files: mark /etc/crontabs/ as config directory
SVN-Revision: 26986
2011-05-24 09:27:23 +00:00
Jo-Philipp Wich
ed8f726dab ipcalc.sh CIDR notation Hi,
the attached patch makes ipcalc.sh accept IP/Netmask combinations in
CIDR notation. Before you could only do:

# sh ipcalc.sh 192.168.0.0 255.255.255.0 1 10
IP=192.168.0.0
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
NETWORK=192.168.0.0
PREFIX=24
START=192.168.0.1
END=192.168.0.11

with this patch you can also execute it with:

sh ipcalc.sh 192.168.0.0/24 1 10
IP=192.168.0.0
NETMASK=255.255.255.0
BROADCAST=192.168.0.255
NETWORK=192.168.0.0
PREFIX=24
START=192.168.0.1
END=192.168.0.11

The patch is based on #1260 [1], i just changed one line to calculate
the START end END ips right. I wonder why that never got included. If
there is no reason not to do i would like to ask you to commit that
patch, because its a functionality i (and probably others) miss quite often.

Btw, i also fixed 4 useless tabs, that might look a bit strange in the
patch.

Regards, Manuel

SVN-Revision: 26930
2011-05-18 09:50:06 +00:00
Jo-Philipp Wich
ba1c1e9016 base-files: retrigger usb coldplug after module loading, solves usb_modeswitch on boot and possibly others (#9352)
SVN-Revision: 26848
2011-05-08 10:25:58 +00:00
Gabor Juhos
3b1b49a49b base-files: fix a typo in etc/banner
SVN-Revision: 26841
2011-05-07 09:23:33 +00:00
Jo-Philipp Wich
ff4203b9bd base-files: cleanup permissions of device files in common hotplug rules (#9211)
SVN-Revision: 26808
2011-05-03 19:37:59 +00:00
Jo-Philipp Wich
144bee2090 base-files: fix stale space in eglibc library install section (#9270)
SVN-Revision: 26720
2011-04-19 13:18:39 +00:00
Jo-Philipp Wich
2f6361832e base-files: return success on lib-copying with external toolchain when using an external toolchain the base-files package copies libc, libgcc and others from the library directory.
The file list is given as following in the .config:
CONFIG_LIBC_FILE_SPEC="./lib/ld{-*.so,-linux*.so.*} ./lib/lib{anl,c,cidn,crypt,dl,m,nsl,nss_dns,nss_files,resolv,util}{-*.so,.so.*}"

Because the filenames are composed with different endings, not all files exist
and will be skipped. Currently, this works only if the last composed file
(util.so.*) really exists. At the moment this works - but only if you don't add
a new file like 'uClibc'.

Adding it at the end '...resolv,util,uClibc}{-*.so,.so.*}' will lead to this
message, because the combination 'libuClibc.so.*' doesn't exist and Make will
evaluate the last copy statement of the for loop.
2011-04-12 20:37:43 +00:00
Vasilis Tsiligiannis
980190367c base-files: Use -h instead of deprecated -L for symlink check
SVN-Revision: 26485
2011-04-05 15:09:43 +00:00
Vasilis Tsiligiannis
48465d3d63 base-files: fix minor problem in init.d/boot
The script tests for the existance of /dev/root with test -e which fails if
/dev/root is a dangling symlink making the call to ln fail.

Signed-off-by: Justus Winter <4winter@informatik.uni-hamburg.de>

SVN-Revision: 26483
2011-04-05 15:09:32 +00:00
Daniel Dickinson
d5542b4f59 block-mount base-files: Added additional check to pi_include to ensure that a directory used with pi_include actually contains files matching the souring pattern because if not the shell dies due to an empty string in for statement. Added /lib/functions/fsck as an empty dir to block-mount. This combination fixes a warning which generates a lot of bug reports, without panicking the kernel like the last attempt.
SVN-Revision: 26479
2011-04-05 12:12:57 +00:00
Felix Fietkau
e4e63b9c1b base-files: bridge config, avoid having a random ipv6 ll address
So far, we are setting the bridge interface up before having added any
bridge interface ports. This results in the bridge assigning a random
mac address to its bridge interface and therefore IPv6 assigning a
matching link local address to the bridge interface as soon as the
bridge interface is up. After adding the first bridge port interface,
the bridge's mac address is reset correctly, however the IPv6 link
local address stays the same.

This commit ensures that we are at least having the IPv6 link local
address of the first interface added to the bridge instead of a random
one.

Signed-off-by: Linus Lüssing <linus.luessing@web.de>

SVN-Revision: 26426
2011-04-03 01:23:45 +00:00
Jo-Philipp Wich
fe8b9d5232 base-files: properly handle vlans on top of wireless interfaces
SVN-Revision: 26230
2011-03-18 18:24:51 +00:00
Felix Fietkau
a3b9971d84 base-files: overlayfs whiteouts depend on a specific xattr entry, which does not get preserved by the tmpfs->overlay copy. work around this by cleaning all copied "(overlay-whiteout)" symlinks after the switch to jffs2
SVN-Revision: 26208
2011-03-17 19:09:43 +00:00
Felix Fietkau
66bcd1d049 base-files: add initial support for mounting overlayfs
SVN-Revision: 26207
2011-03-17 19:09:39 +00:00
Jo-Philipp Wich
629e73938e base-files: update sysctl.conf for modern kernels
SVN-Revision: 26204
2011-03-17 15:35:41 +00:00
Vasilis Tsiligiannis
1b66204ccd base-files: Autodetect newly added wireless hardware
SVN-Revision: 26166
2011-03-15 00:44:15 +00:00
Felix Fietkau
4bcca969dc base-files: link libpthread against libc
SVN-Revision: 26161
2011-03-14 19:27:45 +00:00
Felix Fietkau
71e83bd2e1 base-files: add a default /etc/services files
SVN-Revision: 26142
2011-03-13 19:47:42 +00:00
Felix Fietkau
c33f2efbb2 base-files: add users ftp (for ftp servers), network (network related daemons such as tor, quagga, ...)
SVN-Revision: 26138
2011-03-13 19:10:28 +00:00
Felix Fietkau
f5c130cfda base-files: add an ftp group as well
SVN-Revision: 26136
2011-03-13 19:04:32 +00:00
Felix Fietkau
554cbe7f18 base-files: add a few default groups to /etc/group so that we can get rid of a few postinst scripts
SVN-Revision: 26133
2011-03-13 18:56:34 +00:00
Felix Fietkau
e8491ab2a5 base-files: make library relinking uclibc specific and fix libpthread installation for the non-relinked variant
SVN-Revision: 26003
2011-03-10 12:27:46 +00:00
Felix Fietkau
32d8fac477 base-files: only relink libraries if the linaro toolchain is selected
SVN-Revision: 25983
2011-03-09 20:36:29 +00:00
Felix Fietkau
e52b720870 gcc: move the optimized assembler helpers back into the static libgcc and skip relinking for this arch. due to relocation constraints, the assembler functions cannot be in the shared libgcc and must always be linked in statically
SVN-Revision: 25952
2011-03-08 13:10:11 +00:00
Felix Fietkau
357018e7e5 base-files: the relinked libpthread needs to be linked against libdl, otherwise calls to dlopen() fail (fixes #8978)
SVN-Revision: 25950
2011-03-08 12:48:36 +00:00
Felix Fietkau
0b9cfab2a2 base-files: fix Build/Compile override handling, fixes ar7 compile
SVN-Revision: 25911
2011-03-06 22:36:42 +00:00
Felix Fietkau
4e155b5283 base-files: do not build or use libgcc on m68k and avr32
SVN-Revision: 25852
2011-03-03 14:50:00 +00:00
Felix Fietkau
1cc0bcfffc base-files: relink uclibc and libgcc libraries to remove leftovers of the statically linked initial libgcc saves a few kb and gets rid of unused not exported functions as well should also improve the reliability of mklibs
SVN-Revision: 25800
2011-03-01 05:40:38 +00:00
Jo-Philipp Wich
73468de8d1 base-files: fix sysctl handling, do not react on fake ifaces in route hotplug handler
SVN-Revision: 25713
2011-02-25 22:44:37 +00:00
Michael Büsch
e6100a161b boot.sh: Tabs are used for indent. Also use tabs in jffs2_ready()
SVN-Revision: 25635
2011-02-20 22:40:47 +00:00
Michael Büsch
16a300ea66 base-files: Add "-o noatime" to mount wrapper
noatime is cheaper than default relatime.

SVN-Revision: 25634
2011-02-20 22:39:08 +00:00