mirror of https://github.com/hak5/openwrt.git
64 lines
1.7 KiB
Diff
64 lines
1.7 KiB
Diff
--- a/src/br2684/br2684ctl.c
|
|
+++ b/src/br2684/br2684ctl.c
|
|
@@ -1,3 +1,4 @@
|
|
+#define _GNU_SOURCE
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
@@ -43,6 +44,7 @@ struct br2684_params {
|
|
|
|
|
|
int lastsock, lastitf;
|
|
+static char *up_script;
|
|
|
|
|
|
void fatal(const char *str, int err)
|
|
@@ -185,6 +187,8 @@ int assign_vcc(char *astr, int encap, in
|
|
|
|
void start_interface(struct br2684_params* params)
|
|
{
|
|
+ char *cmd;
|
|
+
|
|
if (params->astr==NULL) {
|
|
syslog(LOG_ERR, "Required ATM parameters not specified.");
|
|
exit(1);
|
|
@@ -193,13 +197,18 @@ void start_interface(struct br2684_param
|
|
create_br(params->itfnum, params->payload);
|
|
assign_vcc(params->astr, params->encap, params->payload, params->sndbuf,
|
|
params->reqqos);
|
|
+ if (up_script) {
|
|
+ asprintf(&cmd, "%s nas%d", up_script, lastitf);
|
|
+ system(cmd);
|
|
+ free(cmd);
|
|
+ }
|
|
}
|
|
|
|
|
|
void usage(char *s)
|
|
{
|
|
printf("usage: %s [-b] [[-c number] [-e 0|1] [-s sndbuf] [-q qos] [-p 0|1] "
|
|
- "[-a [itf.]vpi.vci]*]*\n", s);
|
|
+ "[-a [itf.]vpi.vci]*]* [-S script]\n", s);
|
|
printf(" encapsulations: 0=llc, 1=vcmux\n payloads: 0=routed, 1=bridged\n");
|
|
exit(1);
|
|
}
|
|
@@ -225,7 +234,7 @@ int main (int argc, char **argv)
|
|
|
|
openlog (LOG_NAME,LOG_OPTION,LOG_FACILITY);
|
|
if (argc>1)
|
|
- while ((c = getopt(argc, argv,"q:a:bc:e:s:p:?h")) !=EOF)
|
|
+ while ((c = getopt(argc, argv,"q:a:bc:e:s:S:p:?h")) !=EOF)
|
|
switch (c) {
|
|
case 'q':
|
|
printf ("optarg : %s",optarg);
|
|
@@ -258,6 +267,9 @@ int main (int argc, char **argv)
|
|
params.sndbuf=8192;
|
|
}
|
|
break;
|
|
+ case 'S':
|
|
+ up_script = optarg;
|
|
+ break;
|
|
case 'p': /* payload type: routed (0) or bridged (1) */
|
|
#ifdef BR2684_FLAG_ROUTED
|
|
params.payload = atoi(optarg);
|