mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-18 06:47:30 +02:00
allow the ead client to override the broadcast address
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@13849 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
a4087cd37a
commit
db3cdd7448
@ -16,6 +16,7 @@
|
|||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
#include <arpa/inet.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
@ -293,12 +294,13 @@ send_command(const char *command)
|
|||||||
static int
|
static int
|
||||||
usage(const char *prog)
|
usage(const char *prog)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "Usage: %s <node> <username>[:<password>]\n"
|
fprintf(stderr, "Usage: %s [-b <addr>] <node> <username>[:<password>] <command>\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\n<node>: Node ID (4 digits hex)\n"
|
"\t-b <addr>: Set the broadcast address to <addr>\n"
|
||||||
"\n<username>: Username to authenticate with\n"
|
"\t<node>: Node ID (4 digits hex)\n"
|
||||||
|
"\t<username>: Username to authenticate with\n"
|
||||||
"\n"
|
"\n"
|
||||||
"\nPassing no arguments shows a list of active nodes on the network\n"
|
"\tPassing no arguments shows a list of active nodes on the network\n"
|
||||||
"\n", prog);
|
"\n", prog);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -309,6 +311,8 @@ int main(int argc, char **argv)
|
|||||||
int val = 1;
|
int val = 1;
|
||||||
char *st = NULL;
|
char *st = NULL;
|
||||||
const char *command = NULL;
|
const char *command = NULL;
|
||||||
|
const char *prog = argv[0];
|
||||||
|
int ch;
|
||||||
|
|
||||||
msg->magic = htonl(EAD_MAGIC);
|
msg->magic = htonl(EAD_MAGIC);
|
||||||
msg->tid = 0;
|
msg->tid = 0;
|
||||||
@ -324,12 +328,22 @@ int main(int argc, char **argv)
|
|||||||
local.sin_addr.s_addr = INADDR_ANY;
|
local.sin_addr.s_addr = INADDR_ANY;
|
||||||
local.sin_port = 0;
|
local.sin_port = 0;
|
||||||
|
|
||||||
|
while ((ch = getopt(argc, argv, "b:")) != -1) {
|
||||||
|
switch(ch) {
|
||||||
|
case 'b':
|
||||||
|
inet_aton(optarg, &remote.sin_addr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
argv += optind;
|
||||||
|
argc -= optind;
|
||||||
|
|
||||||
switch(argc) {
|
switch(argc) {
|
||||||
case 4:
|
|
||||||
command = argv[3];
|
|
||||||
/* fall through */
|
|
||||||
case 3:
|
case 3:
|
||||||
username = argv[2];
|
command = argv[2];
|
||||||
|
/* fall through */
|
||||||
|
case 2:
|
||||||
|
username = argv[1];
|
||||||
st = strchr(username, ':');
|
st = strchr(username, ':');
|
||||||
if (st) {
|
if (st) {
|
||||||
*st = 0;
|
*st = 0;
|
||||||
@ -340,15 +354,15 @@ int main(int argc, char **argv)
|
|||||||
memset(st, 0, strlen(st));
|
memset(st, 0, strlen(st));
|
||||||
}
|
}
|
||||||
/* fall through */
|
/* fall through */
|
||||||
case 2:
|
|
||||||
nid = strtoul(argv[1], &st, 16);
|
|
||||||
if (st && st[0] != 0)
|
|
||||||
return usage(argv[0]);
|
|
||||||
/* fall through */
|
|
||||||
case 1:
|
case 1:
|
||||||
|
nid = strtoul(argv[0], &st, 16);
|
||||||
|
if (st && st[0] != 0)
|
||||||
|
return usage(prog);
|
||||||
|
/* fall through */
|
||||||
|
case 0:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return usage(argv[0]);
|
return usage(prog);
|
||||||
}
|
}
|
||||||
|
|
||||||
msg->nid = htons(nid);
|
msg->nid = htons(nid);
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
#ifndef __EAD_H
|
#ifndef __EAD_H
|
||||||
#define __EAD_H
|
#define __EAD_H
|
||||||
|
|
||||||
#define EAD_DEBUGLEVEL 1
|
#define EAD_DEBUGLEVEL 2
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
/* precompiled expression: udp and dst host 255.255.255.255 and dst port 56026 */
|
/* precompiled expression: udp and dst port 56026 */
|
||||||
|
|
||||||
static struct bpf_insn pktfilter_insns[] = {
|
static struct bpf_insn pktfilter_insns[] = {
|
||||||
{ .code = 0x0028, .jt = 0x00, .jf = 0x00, .k = 0x0000000c },
|
{ .code = 0x0028, .jt = 0x00, .jf = 0x00, .k = 0x0000000c },
|
||||||
{ .code = 0x0015, .jt = 0x0b, .jf = 0x00, .k = 0x000086dd },
|
{ .code = 0x0015, .jt = 0x00, .jf = 0x04, .k = 0x000086dd },
|
||||||
{ .code = 0x0015, .jt = 0x00, .jf = 0x0a, .k = 0x00000800 },
|
{ .code = 0x0030, .jt = 0x00, .jf = 0x00, .k = 0x00000014 },
|
||||||
|
{ .code = 0x0015, .jt = 0x00, .jf = 0x0b, .k = 0x00000011 },
|
||||||
|
{ .code = 0x0028, .jt = 0x00, .jf = 0x00, .k = 0x00000038 },
|
||||||
|
{ .code = 0x0015, .jt = 0x08, .jf = 0x09, .k = 0x0000dada },
|
||||||
|
{ .code = 0x0015, .jt = 0x00, .jf = 0x08, .k = 0x00000800 },
|
||||||
{ .code = 0x0030, .jt = 0x00, .jf = 0x00, .k = 0x00000017 },
|
{ .code = 0x0030, .jt = 0x00, .jf = 0x00, .k = 0x00000017 },
|
||||||
{ .code = 0x0015, .jt = 0x00, .jf = 0x08, .k = 0x00000011 },
|
{ .code = 0x0015, .jt = 0x00, .jf = 0x06, .k = 0x00000011 },
|
||||||
{ .code = 0x0020, .jt = 0x00, .jf = 0x00, .k = 0x0000001e },
|
|
||||||
{ .code = 0x0015, .jt = 0x00, .jf = 0x06, .k = 0xffffffff },
|
|
||||||
{ .code = 0x0028, .jt = 0x00, .jf = 0x00, .k = 0x00000014 },
|
{ .code = 0x0028, .jt = 0x00, .jf = 0x00, .k = 0x00000014 },
|
||||||
{ .code = 0x0045, .jt = 0x04, .jf = 0x00, .k = 0x00001fff },
|
{ .code = 0x0045, .jt = 0x04, .jf = 0x00, .k = 0x00001fff },
|
||||||
{ .code = 0x00b1, .jt = 0x00, .jf = 0x00, .k = 0x0000000e },
|
{ .code = 0x00b1, .jt = 0x00, .jf = 0x00, .k = 0x0000000e },
|
||||||
@ -18,6 +20,6 @@ static struct bpf_insn pktfilter_insns[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static struct bpf_program pktfilter = {
|
static struct bpf_program pktfilter = {
|
||||||
.bf_len = 14,
|
.bf_len = 16,
|
||||||
.bf_insns = pktfilter_insns,
|
.bf_insns = pktfilter_insns,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user