Message ID | 1499596290-28692-1-git-send-email-tim@tn-x.org |
---|---|
State | Accepted |
Headers | show |
diff --git a/src/packages/fff/fff-random/Makefile b/src/packages/fff/fff-random/Makefile index 95e5786..066adc3 100644 --- a/src/packages/fff/fff-random/Makefile +++ b/src/packages/fff/fff-random/Makefile @@ -1,40 +1,41 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-random -PKG_VERSION:=0.0.1 +PKG_VERSION:=2 PKG_RELEASE:=1 -PKG_BUILD_DIR:=$(BUILD_DIR)/fff-random +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) include $(INCLUDE_DIR)/package.mk define Package/fff-random - SECTION:=base - CATEGORY:=Freifunk - TITLE:=Freifunk-Franken Random - URL:=http://www.freifunk-franken.de - DEPENDS:=+@BUSYBOX_CONFIG_ASH + SECTION:=base + CATEGORY:=Freifunk + TITLE:=Freifunk-Franken Random + URL:=http://www.freifunk-franken.de endef define Package/fff-random/description - This is the Freifunk Franken Firmware Random package - This packages provides a random function. + This is the Freifunk Franken Firmware Random package + This packages provides a random function. endef define Build/Prepare - echo "all: " > $(PKG_BUILD_DIR)/Makefile + mkdir -p $(PKG_BUILD_DIR) + $(CP) ./src/* $(PKG_BUILD_DIR)/ endef define Build/Configure - # nothing + # nothing endef define Build/Compile - # nothing + CFLAGS="$(TARGET_CFLAGS)" CPPFLAGS="$(TARGET_CPPFLAGS)" $(MAKE) -C $(PKG_BUILD_DIR) $(TARGET_CONFIGURE_OPTS) endef define Package/fff-random/install - $(CP) ./files/* $(1)/ + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/random $(1)/usr/bin/ endef $(eval $(call BuildPackage,fff-random)) diff --git a/src/packages/fff/fff-random/files/usr/bin/random b/src/packages/fff/fff-random/files/usr/bin/random deleted file mode 100755 index 8f11470..0000000 --- a/src/packages/fff/fff-random/files/usr/bin/random +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh -# Freifunk Franken Random Number Script -# Tim Niemeyer -# 29.11.2015 -# License GPLv2 - -FROM=${1:-0} -UNTIL=${2:-100} - -diff=$(( UNTIL - FROM )) -numbers=$(( $(echo $diff | wc -c) -1 )) - -rand=$(</dev/urandom tr -dc 0-9 | head -c $numbers | sed -e 's/^0*//g') - -echo $(( (rand % diff) + FROM )) - diff --git a/src/packages/fff/fff-random/src/Makefile b/src/packages/fff/fff-random/src/Makefile new file mode 100644 index 0000000..ab181d5 --- /dev/null +++ b/src/packages/fff/fff-random/src/Makefile @@ -0,0 +1,4 @@ +all: random + +random: random.c + $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -Wall -o $@ $^ $(LDLIBS) diff --git a/src/packages/fff/fff-random/src/random.c b/src/packages/fff/fff-random/src/random.c new file mode 100644 index 0000000..5d38d16 --- /dev/null +++ b/src/packages/fff/fff-random/src/random.c @@ -0,0 +1,53 @@ +/* + * Simple random tool, used to get a random value + * 2017-07-02 + * Tim Niemeyer + * GPLv2 + */ +#include <stdio.h> +#include <stdlib.h> + +int main(int argc, char **argv) +{ + int from = 0; + int to = 100; + int diff = 1; + FILE *f = 0; + unsigned int r = 0; + + if (argc != 1 && argc != 3) + { + fprintf(stderr, "%s <from> <to>\n", argv[0]); + return -1; + } + else if (argc == 3) + { + from = atoi(argv[1]); + to = atoi(argv[2]); + } + + diff = to - from; + if (diff <= 0) + { + fprintf(stderr, "Bad from/to\n"); + return -1; + } + + f = fopen("/dev/urandom", "r"); + if (!f) + { + fprintf(stderr, "Can't open /dev/urandom\n"); + return -1; + } + + if (1U != fread(&r, sizeof(unsigned int), 1U, f)) + { + fprintf(stderr, "Can't read /dev/urandom\n"); + fclose(f); + return -1; + } + + printf("%u\n", (r % (diff +1 )) + from); + fclose(f); + return 0; +}
Hallo, Am Sonntag, 9. Juli 2017, 12:31:30 CEST schrieb Tim Niemeyer: > Fixes: #51 > > Signed-off-by: Tim Niemeyer <tim@tn-x.org> > --- > +/* > + * Simple random tool, used to get a random value > + * 2017-07-02 > + * Tim Niemeyer > + * GPLv2 > + */ > +#include <stdio.h> > +#include <stdlib.h> > + > +int main(int argc, char **argv) > +{ > + int from = 0; > + int to = 100; > + int diff = 1; > + FILE *f = 0; > + unsigned int r = 0; > + > + if (argc != 1 && argc != 3) > + { > + fprintf(stderr, "%s <from> <to>\n", argv[0]); > + return -1; > + } > + else if (argc == 3) > + { > + from = atoi(argv[1]); > + to = atoi(argv[2]); so wie wir das Programm gerade verwenden, ist das es nicht besonders wichtig aber ich würde die Parameter mit strtol in int konvertieren, damit kann man Fehler erkennen und wir könnten bei falschen Parametern eine entsprechende Fehlermeldung ausgeben. VG Tobias
Hallo, läuft seit zwei Wochen auf ca. 60 Geräten. Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Grüße Adrian > -----Original Message----- > From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf > Of Tobias Klaus > Sent: Dienstag, 1. August 2017 00:12 > To: franken-dev@freifunk.net; Tim Niemeyer <tim@tn-x.org> > Subject: Re: [PATCH v3] fff-random: rewrite in C > > Hallo, > > Am Sonntag, 9. Juli 2017, 12:31:30 CEST schrieb Tim Niemeyer: > > Fixes: #51 > > > > Signed-off-by: Tim Niemeyer <tim@tn-x.org> > > --- > > +/* > > + * Simple random tool, used to get a random value > > + * 2017-07-02 > > + * Tim Niemeyer > > + * GPLv2 > > + */ > > +#include <stdio.h> > > +#include <stdlib.h> > > + > > +int main(int argc, char **argv) > > +{ > > + int from = 0; > > + int to = 100; > > + int diff = 1; > > + FILE *f = 0; > > + unsigned int r = 0; > > + > > + if (argc != 1 && argc != 3) > > + { > > + fprintf(stderr, "%s <from> <to>\n", argv[0]); > > + return -1; > > + } > > + else if (argc == 3) > > + { > > + from = atoi(argv[1]); > > + to = atoi(argv[2]); > so wie wir das Programm gerade verwenden, ist das es nicht besonders > wichtig aber ich würde die Parameter mit strtol in int konvertieren, damit > kann man Fehler erkennen und wir könnten bei falschen Parametern eine > entsprechende Fehlermeldung ausgeben. > > VG Tobias > -- > franken-dev mailing list > franken-dev@freifunk.net > http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net
Hi Am Sonntag, den 17.09.2017, 16:33 +0200 schrieb mail@adrianschmutzler.de: > Hallo, > > läuft seit zwei Wochen auf ca. 60 Geräten. > > Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de> Yay, cool. Und applied. [..] > > > + from = atoi(argv[1]); > > > + to = atoi(argv[2]); > > > > so wie wir das Programm gerade verwenden, ist das es nicht > > besonders > > wichtig aber ich würde die Parameter mit strtol in int > > konvertieren, damit > > kann man Fehler erkennen und wir könnten bei falschen Parametern > > eine > > entsprechende Fehlermeldung ausgeben. Hast schon Recht, wäre schön. Aber ich hab grad wenig Zeit. Vielleicht demnächst mal n Patch drauf kippen. Damit es nicht untergeht habe ich ein Ticket angelegt: #57 Tim > > VG Tobias > > -- > > franken-dev mailing list > > franken-dev@freifunk.net > > http://lists.freifunk.net/mailman/listinfo/franken-dev-freifunk.net > >
Fixes: #51 Signed-off-by: Tim Niemeyer <tim@tn-x.org> --- Changes in v3: - print on stderr on advice or error Changes in v2: - added fclose - use %u instead of %d src/packages/fff/fff-random/Makefile | 27 ++++++------ src/packages/fff/fff-random/files/usr/bin/random | 16 ------- src/packages/fff/fff-random/src/Makefile | 4 ++ src/packages/fff/fff-random/src/random.c | 53 ++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 29 deletions(-) delete mode 100755 src/packages/fff/fff-random/files/usr/bin/random create mode 100644 src/packages/fff/fff-random/src/Makefile create mode 100644 src/packages/fff/fff-random/src/random.c