source: trunk/package/busybox/patches/300-netmsg.patch @ 22659

Last change on this file since 22659 was 22659, checked in by acoul, 6 years ago

package/busybox: update to busybox-1.7.1, include upstream patches

  • Property svn:eol-style set to native
File size: 2.8 KB
  • include/applets.src.h

    a b IF_MT(APPLET(mt, _BB_DIR_BIN, _BB_SUID_D 
    282282IF_MV(APPLET(mv, _BB_DIR_BIN, _BB_SUID_DROP)) 
    283283IF_NAMEIF(APPLET(nameif, _BB_DIR_SBIN, _BB_SUID_DROP)) 
    284284IF_NC(APPLET(nc, _BB_DIR_USR_BIN, _BB_SUID_DROP)) 
     285IF_NETMSG(APPLET(netmsg, _BB_DIR_BIN, _BB_SUID_REQUIRE)) 
    285286IF_NETSTAT(APPLET(netstat, _BB_DIR_BIN, _BB_SUID_DROP)) 
    286287IF_NICE(APPLET(nice, _BB_DIR_BIN, _BB_SUID_DROP)) 
    287288IF_NMETER(APPLET(nmeter, _BB_DIR_USR_BIN, _BB_SUID_DROP)) 
  • include/usage.src.h

    a b  
    31663166 
    31673167#endif 
    31683168 
     3169#define netmsg_trivial_usage NOUSAGE_STR 
     3170#define netmsg_full_usage "" 
     3171 
    31693172#define netstat_trivial_usage \ 
    31703173       "[-laentuwxr"IF_FEATURE_NETSTAT_WIDE("W")IF_FEATURE_NETSTAT_PRG("p")"]" 
    31713174#define netstat_full_usage "\n\n" \ 
  • networking/Config.src

    a b config FEATURE_NAMEIF_EXTENDED 
    623623            new_interface_name  mac=00:80:C8:38:91:B5 
    624624            new_interface_name  00:80:C8:38:91:B5 
    625625 
     626config NETMSG 
     627        bool "netmsg" 
     628        default n 
     629        help 
     630         simple program for sending udp broadcast messages 
     631 
    626632config NETSTAT 
    627633        bool "netstat" 
    628634        default y 
  • networking/Kbuild.src

    a b lib-$(CONFIG_IP) += ip.o 
    2525lib-$(CONFIG_IPCALC)       += ipcalc.o 
    2626lib-$(CONFIG_NAMEIF)       += nameif.o 
    2727lib-$(CONFIG_NC)           += nc.o 
     28lib-$(CONFIG_NETMSG)       += netmsg.o 
    2829lib-$(CONFIG_NETSTAT)      += netstat.o 
    2930lib-$(CONFIG_NSLOOKUP)     += nslookup.o 
    3031lib-$(CONFIG_NTPD)         += ntpd.o 
  • new file networking/netmsg.c

    - +  
     1/* 
     2 * Copyright (C) 2006 Felix Fietkau <nbd@openwrt.org> 
     3 * 
     4 * This is free software, licensed under the GNU General Public License v2. 
     5 */ 
     6#include <sys/types.h> 
     7#include <sys/socket.h> 
     8#include <netinet/in.h> 
     9#include <netdb.h> 
     10#include <stdio.h> 
     11#include <stdlib.h> 
     12#include <string.h> 
     13#include "busybox.h" 
     14 
     15 
     16#ifndef CONFIG_NETMSG 
     17int main(int argc, char **argv) 
     18#else 
     19int netmsg_main(int argc, char **argv) 
     20#endif 
     21{ 
     22        int s; 
     23        struct sockaddr_in addr; 
     24        int optval = 1; 
     25        unsigned char buf[1001]; 
     26 
     27        if (argc != 3) { 
     28                fprintf(stderr, "usage: %s <ip> \"<message>\"\n", argv[0]); 
     29                exit(1); 
     30        } 
     31 
     32        if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) { 
     33                perror("Opening socket"); 
     34                exit(1); 
     35        } 
     36 
     37        memset(&addr, 0, sizeof(addr)); 
     38        addr.sin_family = AF_INET; 
     39        addr.sin_addr.s_addr = inet_addr(argv[1]); 
     40        addr.sin_port = htons(0x1337); 
     41 
     42        memset(buf, 0, 1001); 
     43        buf[0] = 0xde; 
     44        buf[1] = 0xad; 
     45 
     46        strncpy(buf + 2, argv[2], 998); 
     47 
     48        if (setsockopt (s, SOL_SOCKET, SO_BROADCAST, (caddr_t) &optval, sizeof (optval)) < 0) { 
     49                perror("setsockopt()"); 
     50                goto fail; 
     51        } 
     52 
     53        if (sendto(s, buf, 1001, 0, (struct sockaddr *) &addr, sizeof(addr)) < 0) { 
     54                perror("sendto()"); 
     55                goto fail; 
     56        } 
     57 
     58        return 0; 
     59         
     60fail: 
     61        close(s); 
     62        exit(1); 
     63} 
Note: See TracBrowser for help on using the repository browser.