meta-digi-del: add 'busybox-ntpd' package

Use busybox' ntpd applet as basic ntp client.

https://jira.digi.com/browse/DEL-144 #resolve

Signed-off-by: Javier Viguera <javier.viguera@digi.com>
This commit is contained in:
Javier Viguera 2013-01-24 19:04:08 +01:00
parent 9292ff3e4d
commit de86402042
4 changed files with 131 additions and 0 deletions

View File

@ -0,0 +1,65 @@
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Tue, 25 Sep 2012 14:06:13 +0200
Subject: [PATCH] ntpd: indefinitely try to resolve peer addresses
Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
(cherry picked from commit c5daea7ba5200158fae2e68714725c6bf7ee6dbb)
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
Conflicts:
networking/ntpd.c
---
networking/ntpd.c | 25 +++++++++++++++++++++++--
1 file changed, 23 insertions(+), 2 deletions(-)
diff --git a/networking/ntpd.c b/networking/ntpd.c
index 34b649f..49fb58b 100644
--- a/networking/ntpd.c
+++ b/networking/ntpd.c
@@ -221,6 +221,7 @@ typedef struct {
typedef struct {
len_and_sockaddr *p_lsa;
char *p_dotted;
+ char *p_hostname;
/* when to send new query (if p_fd == -1)
* or when receive times out (if p_fd >= 0): */
int p_fd;
@@ -708,8 +709,9 @@ add_peers(char *s)
peer_t *p;
p = xzalloc(sizeof(*p));
- p->p_lsa = xhost2sockaddr(s, 123);
- p->p_dotted = xmalloc_sockaddr2dotted_noport(&p->p_lsa->u.sa);
+ p->p_hostname = s;
+ p->p_lsa = NULL;
+ p->p_dotted = NULL;
p->p_fd = -1;
p->p_xmt_msg.m_status = MODE_CLIENT | (NTP_VERSION << 3);
p->next_action_time = G.cur_time; /* = set_next(p, 0); */
@@ -758,6 +760,25 @@ send_query_to_peer(peer_t *p)
*
* Uncomment this and use strace to see it in action:
*/
+
+ /* See if the peer hostname already resolved yet, if not, retry to resolv and return on failure */
+ if (!p->p_lsa)
+ {
+ p->p_lsa = host2sockaddr(p->p_hostname, 123);
+
+ if (p->p_lsa)
+ {
+ p->p_dotted = xmalloc_sockaddr2dotted_noport(&p->p_lsa->u.sa);
+ VERB1 bb_error_msg("resolved peer %s to %s", p->p_hostname, p->p_dotted);
+ }
+ else
+ {
+ set_next(p, RETRY_INTERVAL);
+ VERB1 bb_error_msg("could not resolve peer %s, skipping", p->p_hostname);
+ return;
+ }
+ }
+
#define PROBE_LOCAL_ADDR /* { len_and_sockaddr lsa; lsa.len = LSA_SIZEOF_SA; getsockname(p->query.fd, &lsa.u.sa, &lsa.len); } */
if (p->p_fd == -1) {

View File

@ -0,0 +1,54 @@
#!/bin/sh
#===============================================================================
#
# busybox-ntpd
#
# Copyright (C) 2013 by Digi International Inc.
# All rights reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 as published by
# the Free Software Foundation.
#
# !Description: Busybox NTP bootscript
#
#===============================================================================
set -e
DAEMON="/usr/sbin/ntpd"
NAME="ntpd"
DESC="Busybox NTP client/server"
ARGS="-n -p pool.ntp.org"
[ -x "${DAEMON}" ] || exit 0
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon -S -b -n $NAME -a $DAEMON -- $ARGS
echo "done"
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon -K -n $NAME
echo "done"
;;
restart)
echo -n "Restarting $DESC: "
$0 stop
$0 start
echo "done"
;;
reload)
echo -n "Reloading $DESC: "
killall -HUP $(basename ${DAEMON})
echo "done"
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
;;
esac
exit 0

View File

@ -6,11 +6,13 @@ DEPENDS += "libdigi"
SRC_URI += "file://0001-del-baudrates.patch \
file://0002-del-mdev_regulatory.patch \
file://0003-del-flash_eraseall.patch \
file://0004-ntpd-indefinitely-try-to-resolve-peer-addresses.patch \
file://adc \
file://mmc \
file://sd \
file://ts \
file://suspend \
file://busybox-ntpd \
"
# Add device handlers to 'mdev' package
@ -19,6 +21,12 @@ FILES_${PN}-mdev += "${base_libdir}/mdev/adc ${base_libdir}/mdev/mmc ${base_libd
# hwclock bootscript init parameters
INITSCRIPT_PARAMS_${PN}-hwclock = "start 20 S . stop 20 0 6 ."
# NTPD package
PACKAGES =+ "${PN}-ntpd"
FILES_${PN}-ntpd = "${sysconfdir}/init.d/busybox-ntpd"
INITSCRIPT_PACKAGES =+ "${PN}-ntpd"
INITSCRIPT_NAME_${PN}-ntpd = "busybox-ntpd"
do_install_append() {
if grep "CONFIG_MDEV=y" ${WORKDIR}/defconfig; then
if grep "CONFIG_FEATURE_MDEV_CONF=y" ${WORKDIR}/defconfig; then
@ -33,6 +41,9 @@ do_install_append() {
ln -s ../lib/mdev/sd ${D}${base_bindir}/usbumount
fi
fi
if grep "CONFIG_NTPD=y" ${WORKDIR}/defconfig; then
install -m 0755 ${WORKDIR}/busybox-ntpd ${D}${sysconfdir}/init.d/
fi
# Install 'suspend' script
install -m 0755 ${WORKDIR}/suspend ${D}${base_bindir}
}

View File

@ -29,6 +29,7 @@ RDEPENDS_${PN} = "\
base-files \
base-passwd \
busybox \
busybox-ntpd \
${VIRTUAL-RUNTIME_passwd_manager} \
${VIRTUAL-RUNTIME_initscripts} \
${@base_contains("MACHINE_FEATURES", "rtc", "busybox-hwclock", "", d)} \