mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-25 11:04:28 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			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);
 |