From ad974a9905523ab5f64605556da0a65458a57d23 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 11 Jan 2006 00:27:56 +0000 Subject: [PATCH] add small 'netmsg' utility to send udp broadcast messages SVN-Revision: 2892 --- .../busybox/config/networking/Config.in | 6 ++ .../package/busybox/patches/300-netmsg.patch | 102 ++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 openwrt/package/busybox/patches/300-netmsg.patch diff --git a/openwrt/package/busybox/config/networking/Config.in b/openwrt/package/busybox/config/networking/Config.in index 3699db9fc2..996afb4473 100644 --- a/openwrt/package/busybox/config/networking/Config.in +++ b/openwrt/package/busybox/config/networking/Config.in @@ -414,6 +414,12 @@ config BUSYBOX_CONFIG_NC help A simple Unix utility which reads and writes data across network connections. + +config BUSYBOX_CONFIG_NETMSG + bool "netmsg" + default y + help + simple program for sending udp broadcast messages config BUSYBOX_CONFIG_NETSTAT bool "netstat" diff --git a/openwrt/package/busybox/patches/300-netmsg.patch b/openwrt/package/busybox/patches/300-netmsg.patch new file mode 100644 index 0000000000..826e5b3216 --- /dev/null +++ b/openwrt/package/busybox/patches/300-netmsg.patch @@ -0,0 +1,102 @@ +diff -urN busybox.old/include/applets.h busybox.dev/include/applets.h +--- busybox.old/include/applets.h 2006-01-11 01:03:11.734796500 +0100 ++++ busybox.dev/include/applets.h 2006-01-11 01:14:32.218352750 +0100 +@@ -412,6 +412,9 @@ + #ifdef CONFIG_NC + APPLET(nc, nc_main, _BB_DIR_USR_BIN, _BB_SUID_NEVER) + #endif ++#ifdef CONFIG_NETMSG ++ APPLET_NOUSAGE("netmsg", netmsg_main, _BB_DIR_BIN, _BB_SUID_ALWAYS) ++#endif + #ifdef CONFIG_NETSTAT + APPLET(netstat, netstat_main, _BB_DIR_BIN, _BB_SUID_NEVER) + #endif +diff -urN busybox.old/networking/Config.in busybox.dev/networking/Config.in +--- busybox.old/networking/Config.in 2006-01-11 01:03:11.746797250 +0100 ++++ busybox.dev/networking/Config.in 2006-01-11 01:02:37.656666750 +0100 +@@ -414,6 +414,12 @@ + help + A simple Unix utility which reads and writes data across network + connections. ++ ++config CONFIG_NETMSG ++ bool "netmsg" ++ default n ++ help ++ simple program for sending udp broadcast messages + + config CONFIG_NETSTAT + bool "netstat" +diff -urN busybox.old/networking/Makefile.in busybox.dev/networking/Makefile.in +--- busybox.old/networking/Makefile.in 2004-10-08 09:45:43.000000000 +0200 ++++ busybox.dev/networking/Makefile.in 2006-01-11 01:01:35.824802500 +0100 +@@ -39,6 +39,7 @@ + NETWORKING-$(CONFIG_IPTUNNEL) += iptunnel.o + NETWORKING-$(CONFIG_NAMEIF) += nameif.o + NETWORKING-$(CONFIG_NC) += nc.o ++NETWORKING-$(CONFIG_NETMSG) += netmsg.o + NETWORKING-$(CONFIG_NETSTAT) += netstat.o + NETWORKING-$(CONFIG_NSLOOKUP) += nslookup.o + NETWORKING-$(CONFIG_PING) += ping.o +diff -urN busybox.old/networking/netmsg.c busybox.dev/networking/netmsg.c +--- busybox.old/networking/netmsg.c 1970-01-01 01:00:00.000000000 +0100 ++++ busybox.dev/networking/netmsg.c 2006-01-11 01:12:21.274169250 +0100 +@@ -0,0 +1,58 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "busybox.h" ++ ++ ++#ifndef CONFIG_NETMSG ++int main(int argc, char **argv) ++#else ++int netmsg_main(int argc, char **argv) ++#endif ++{ ++ int s, i; ++ struct sockaddr_in addr; ++ int optval = 1; ++ unsigned char buf[1001]; ++ ++ if (argc != 2) { ++ fprintf(stderr, "usage: %s \"message\"\n", argv[0]); ++ exit(1); ++ } ++ ++ if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { ++ perror("Opening socket"); ++ exit(1); ++ } ++ ++ memset(&addr, 0, sizeof(addr)); ++ addr.sin_family = AF_INET; ++ addr.sin_addr.s_addr = htonl(0xffffffff); ++ addr.sin_port = htons(0x1337); ++ ++ memset(buf, 0, 1001); ++ buf[0] = 0xde; ++ buf[1] = 0xad; ++ ++ strncpy(buf + 2, argv[1], 998); ++ ++ if (setsockopt (s, SOL_SOCKET, SO_BROADCAST, (caddr_t) &optval, sizeof (optval)) < 0) { ++ perror("setsockopt()"); ++ goto fail; ++ } ++ ++ if (sendto(s, buf, 1001, 0, (struct sockaddr *) &addr, sizeof(addr)) < 0) { ++ perror("sendto()"); ++ goto fail; ++ } ++ ++ return 0; ++ ++fail: ++ close(s); ++ exit(1); ++} -- 2.30.2