Commit graph

565 commits

Author SHA1 Message Date
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
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
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
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
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
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
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
Michael Büsch
3a12229c1d Fix whitespace
SVN-Revision: 25632
2011-02-20 21:25:45 +00:00
Felix Fietkau
9f7f8110e7 base-files: remove a stale reference to /usr/lib/common.awk (thx, swalker)
SVN-Revision: 25528
2011-02-13 19:06:20 +00:00
Imre Kaloz
e4589a2e5f it's time for some attitude adjustment ;)
SVN-Revision: 25514
2011-02-13 11:20:09 +00:00
Felix Fietkau
803e9ceb90 base-files: /usr/lib/common.awk is only used by /bin/ipcalc.sh, move the code there
SVN-Revision: 25495
2011-02-13 01:44:57 +00:00
Jo-Philipp Wich
74ab5be3d7 base-files: remove ptbtime3 rdate server, its dead
SVN-Revision: 25479
2011-02-12 17:54:01 +00:00
Jo-Philipp Wich
8b1b99ba73 base-files: update rdate server list
SVN-Revision: 25478
2011-02-12 17:46:36 +00:00
Jo-Philipp Wich
ee3a4c2ee9 base-file: cleanup ipv6 enabling in unbridge
SVN-Revision: 25473
2011-02-12 16:14:15 +00:00
Jo-Philipp Wich
875ff44592 base-files: - properly disable IPv6 on bridge ports - introduce accept_ra option, defaults to true for dhcp interfaces, false for others - introduce send_rs option, defaults to true for static interfaces, false for others
SVN-Revision: 25454
2011-02-11 00:39:11 +00:00
Jo-Philipp Wich
4e34fc521c base-files: derive lease_acquired dhcp state var from /proc/uptime
SVN-Revision: 25452
2011-02-10 20:05:05 +00:00
Vasilis Tsiligiannis
d063af3fcf base-files: Add include for target specific hotplug rules
SVN-Revision: 25415
2011-02-07 22:28:09 +00:00
Michael Büsch
99c66237f0 hotplug2 rules: Run /etc/hotplug.d/firmware/ scripts (if any) on firmware load events
SVN-Revision: 25383
2011-02-06 14:35:07 +00:00
Jo-Philipp Wich
3d82109add base-files: don't stop hotplug events for ppp interfaces, similar fix like the earlier one for tun/tap interfaces
SVN-Revision: 25355
2011-02-03 22:43:11 +00:00
Jo-Philipp Wich
79b22b246b base-files: make the skipping of ppp interfaces in 10-net hotplug more explicit, this allows users to rely on hotplug events for ppp0 .. ppp9 interfaces spawned by other programs
SVN-Revision: 25354
2011-02-03 22:34:30 +00:00
Vasilis Tsiligiannis
bd8a1549eb base-files: Fix alsa raw audio device hotplug rule
SVN-Revision: 25301
2011-02-02 01:23:34 +00:00
Vasilis Tsiligiannis
824331a594 hotplug2: Use stricter matching for rule regular expressions
SVN-Revision: 25282
2011-02-01 16:37:53 +00:00
Vasilis Tsiligiannis
3a3d95b191 base-files: Remove deprecated hotplug2 commands, update old commands to new
SVN-Revision: 25268
2011-01-31 22:29:31 +00:00
Jo-Philipp Wich
a0b2eba08c base-files: fix a typo in processing of additional dhcp request opts
SVN-Revision: 25239
2011-01-29 17:06:07 +00:00
Jo-Philipp Wich
a8edd9d50e base-files: fix handling of dhcp "reqopts" option
SVN-Revision: 25237
2011-01-29 13:45:16 +00:00
Florian Fainelli
d7fe921089 base-files: support port_state in led config (#6763)
Signed-off-by: Alexey Torkhov <atorkhov@gmail.com>

SVN-Revision: 25172
2011-01-27 21:49:46 +00:00
Gabor Juhos
25feec0c9c package/base-files: add get_magic_long() to common upgrade script
Patch-by: Mark Mentovai <mark@moxienet.com>

SVN-Revision: 25117
2011-01-26 20:35:37 +00:00
Jo-Philipp Wich
3b6851aa82 base-files: implement "reqopts" parameter for dhcp interfaces to specify additional dhcp options to request
SVN-Revision: 24780
2010-12-22 07:20:24 +00:00
Jo-Philipp Wich
3bd7985a0b base-files: the busybox update to v1.15.3 completely broke udhcpc route option handling, repair default.script to work with the new format (#6435)
SVN-Revision: 24778
2010-12-22 07:07:15 +00:00
Jo-Philipp Wich
deb9661785 Âbase-files: don't mark /etc/banner as conffile
SVN-Revision: 24742
2010-12-20 19:51:05 +00:00
Gabor Juhos
63c786dde7 base-files: add support for the usbdev LED trigger
SVN-Revision: 24647
2010-12-17 17:10:14 +00:00
Felix Fietkau
5a351509aa base-files: use shutdown instead of stop when the system goes down (patch by tripolar)
SVN-Revision: 24540
2010-12-13 08:01:21 +00:00
Florian Fainelli
ebe7bdba88 adds a --help option to /sbin/wifi
Signed-off-by: Sebastian Philipp <sebastian@spawnhost.de>

SVN-Revision: 24258
2010-12-05 11:22:56 +00:00
Jo-Philipp Wich
9a996248d4 base-files: derive connect_time from uptime as local system time may warp due to rdate, ntp and other means
SVN-Revision: 24212
2010-12-01 19:55:24 +00:00
Jo-Philipp Wich
a8c3d1ab6d base-files: save the connect time of interfaces in uci state
SVN-Revision: 24206
2010-12-01 17:37:32 +00:00
Jo-Philipp Wich
ca829e805b base-files: disable ipv6 on bridge ports, this prevents stray RA assigned and link local addresses on bridge member devices
SVN-Revision: 24194
2010-11-30 00:46:21 +00:00
Jo-Philipp Wich
d0ab35c115 base-file: add metric option for static and dhcp protos, this simplifies the management of multiple default routes
SVN-Revision: 24020
2010-11-17 19:11:50 +00:00
Jo-Philipp Wich
c5711cadd3 base-files: change /dev permissions to 0755 when hotplug2 is used (#6039)
SVN-Revision: 23908
2010-11-07 00:28:15 +00:00
Jo-Philipp Wich
a8efa34da3 Fix permissions for /etc and other dirs after clean flash (#6039)
During the first OpenWrt boot after a clean flash (when the jffs2
partition is not yet initialized) tmpfs is used instead of the usual
jffs2 overlay filesystem.  If this tmpfs is mounted with default
options, all directories created there (/etc, /etc/config, other
subdirectories in /etc) get permissions 1777 by default, and these
permissions then persist in the created jffs2 at least until
subsequent sysupgrade.  Mounting tmpfs with mode=0755 fixes the
permission problem.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>

SVN-Revision: 23906
2010-11-07 00:26:00 +00:00
Jo-Philipp Wich
d856ed78ad base-files: add udhcpc vendorid option (#7744)
SVN-Revision: 23279
2010-10-06 21:21:28 +00:00
Jo-Philipp Wich
d80f82d7a4 base-files: - add sysupgrade support for keepfile hints * introduces /lib/upgrade/keep.d/ for per-package keepfile lists * introduces /etc/sysupgrade.conf for user defined keepfile hints - prime /lib/upgrade/keep.d/base-files-essential to keep sysupgrade usable for images without opkg - change sysupgrade to build the keepfile list from /lib/upgrade/keep.d/, /etc/sysupgrade.conf and opkg list-changed-conffiles
SVN-Revision: 23258
2010-10-05 19:24:12 +00:00
Jo-Philipp Wich
978ecae685 base-files: sysupgrade: merge info from "opkg list-changed-conffiles" to backup file list
SVN-Revision: 23233
2010-10-05 07:40:25 +00:00
Jo-Philipp Wich
0fda5f7507 base-files: utilize uci_get_state to read the previous dhcp router address in udhcpc default script. The setup_switch() procedure provided by swconfig calls config_load() during network restart and thus confuses udhcpc's uci state keeping resulting in a missing default route on each second network restart. Bypass the cached state vars and query uci directly to make the script immune against unwanted runtime changes.
SVN-Revision: 23211
2010-10-04 00:07:07 +00:00
Jo-Philipp Wich
6bcdab79b6 base-files: prevent possible sourcing of JFFS2 meta files when merging overlay hooks
SVN-Revision: 23114
2010-09-23 17:32:58 +00:00
Daniel Dickinson
b125e3f68e Fixed duplicated content in file in commit 23111
SVN-Revision: 23112
2010-09-23 14:06:47 +00:00