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=$( +#include + +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 \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; +}