Changeset 13849


Ignore:
Timestamp:
2009-01-04T02:24:00+01:00 (8 years ago)
Author:
nbd
Message:

allow the ead client to override the broadcast address

Location:
trunk/package/ead/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/ead/src/ead-client.c

    r13828 r13849  
    1717#include <sys/time.h> 
    1818#include <netinet/in.h> 
     19#include <arpa/inet.h> 
    1920#include <stdio.h> 
    2021#include <stddef.h> 
     
    294295usage(const char *prog) 
    295296{ 
    296         fprintf(stderr, "Usage: %s <node> <username>[:<password>]\n" 
     297        fprintf(stderr, "Usage: %s [-b <addr>] <node> <username>[:<password>] <command>\n" 
    297298                "\n" 
    298                 "\n<node>:     Node ID (4 digits hex)\n" 
    299                 "\n<username>: Username to authenticate with\n" 
     299                "\t-b <addr>:  Set the broadcast address to <addr>\n" 
     300                "\t<node>:     Node ID (4 digits hex)\n" 
     301                "\t<username>: Username to authenticate with\n" 
    300302                "\n" 
    301                 "\nPassing no arguments shows a list of active nodes on the network\n" 
     303                "\tPassing no arguments shows a list of active nodes on the network\n" 
    302304                "\n", prog); 
    303305        return -1; 
     
    310312        char *st = NULL; 
    311313        const char *command = NULL; 
     314        const char *prog = argv[0]; 
     315        int ch; 
    312316 
    313317        msg->magic = htonl(EAD_MAGIC); 
     
    325329        local.sin_port = 0; 
    326330 
     331        while ((ch = getopt(argc, argv, "b:")) != -1) { 
     332                switch(ch) { 
     333                case 'b': 
     334                        inet_aton(optarg, &remote.sin_addr); 
     335                        break; 
     336                } 
     337        } 
     338        argv += optind; 
     339        argc -= optind; 
     340 
    327341        switch(argc) { 
    328         case 4: 
    329                 command = argv[3]; 
     342        case 3: 
     343                command = argv[2]; 
    330344                /* fall through */ 
    331         case 3: 
    332                 username = argv[2]; 
     345        case 2: 
     346                username = argv[1]; 
    333347                st = strchr(username, ':'); 
    334348                if (st) { 
     
    341355                } 
    342356                /* fall through */ 
    343         case 2: 
    344                 nid = strtoul(argv[1], &st, 16); 
     357        case 1: 
     358                nid = strtoul(argv[0], &st, 16); 
    345359                if (st && st[0] != 0) 
    346                         return usage(argv[0]); 
     360                        return usage(prog); 
    347361                /* fall through */ 
    348         case 1: 
     362        case 0: 
    349363                break; 
    350364        default: 
    351                 return usage(argv[0]); 
     365                return usage(prog); 
    352366        } 
    353367 
  • trunk/package/ead/src/ead.h

    r13738 r13849  
    1515#define __EAD_H 
    1616 
    17 #define EAD_DEBUGLEVEL  1 
     17#define EAD_DEBUGLEVEL  2 
    1818 
    1919#include <stdint.h> 
  • trunk/package/ead/src/filter.c

    r13738 r13849  
    1 /* precompiled expression: udp and dst host 255.255.255.255 and dst port 56026 */ 
     1/* precompiled expression: udp and dst port 56026 */ 
    22 
    33static struct bpf_insn pktfilter_insns[] = { 
    44        { .code = 0x0028, .jt = 0x00, .jf = 0x00, .k = 0x0000000c }, 
    5         { .code = 0x0015, .jt = 0x0b, .jf = 0x00, .k = 0x000086dd }, 
    6         { .code = 0x0015, .jt = 0x00, .jf = 0x0a, .k = 0x00000800 }, 
     5        { .code = 0x0015, .jt = 0x00, .jf = 0x04, .k = 0x000086dd }, 
     6        { .code = 0x0030, .jt = 0x00, .jf = 0x00, .k = 0x00000014 }, 
     7        { .code = 0x0015, .jt = 0x00, .jf = 0x0b, .k = 0x00000011 }, 
     8        { .code = 0x0028, .jt = 0x00, .jf = 0x00, .k = 0x00000038 }, 
     9        { .code = 0x0015, .jt = 0x08, .jf = 0x09, .k = 0x0000dada }, 
     10        { .code = 0x0015, .jt = 0x00, .jf = 0x08, .k = 0x00000800 }, 
    711        { .code = 0x0030, .jt = 0x00, .jf = 0x00, .k = 0x00000017 }, 
    8         { .code = 0x0015, .jt = 0x00, .jf = 0x08, .k = 0x00000011 }, 
    9         { .code = 0x0020, .jt = 0x00, .jf = 0x00, .k = 0x0000001e }, 
    10         { .code = 0x0015, .jt = 0x00, .jf = 0x06, .k = 0xffffffff }, 
     12        { .code = 0x0015, .jt = 0x00, .jf = 0x06, .k = 0x00000011 }, 
    1113        { .code = 0x0028, .jt = 0x00, .jf = 0x00, .k = 0x00000014 }, 
    1214        { .code = 0x0045, .jt = 0x04, .jf = 0x00, .k = 0x00001fff }, 
     
    1921 
    2022static struct bpf_program pktfilter = { 
    21         .bf_len = 14, 
     23        .bf_len = 16, 
    2224        .bf_insns = pktfilter_insns, 
    2325}; 
Note: See TracChangeset for help on using the changeset viewer.