123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- --- 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);
|