--- a/src/br2684/br2684ctl.c +++ b/src/br2684/br2684ctl.c @@ -45,6 +45,7 @@ struct br2684_params { int lastsock, lastitf; static char *up_script; +const char *itfname = "nas"; void fatal(const char *str, int err) @@ -73,7 +74,7 @@ int create_pidfile(int num) if (num < 0) return -1; - snprintf(name, 32, "/var/run/br2684ctl-nas%d.pid", num); + snprintf(name, 32, "/var/run/br2684ctl-%s%d.pid", itfname, num); pidfile = fopen(name, "w"); if (pidfile == NULL) return -1; fprintf(pidfile, "%d", getpid()); @@ -102,7 +103,7 @@ int create_br(int itfnum, int payload) ni.media |= BR2684_FLAG_ROUTED; #endif ni.mtu = 1500; - sprintf(ni.ifname, "nas%d", itfnum); + sprintf(ni.ifname, "%s%d", itfname, itfnum); err=ioctl (lastsock, ATM_NEWBACKENDIF, &ni); if (err == 0) @@ -167,7 +168,7 @@ int assign_vcc(char *astr, int encap, in be.backend_num = ATM_BACKEND_BR2684; be.ifspec.method = BR2684_FIND_BYIFNAME; - sprintf(be.ifspec.spec.ifname, "nas%d", lastitf); + sprintf(be.ifspec.spec.ifname, "%s%d", itfname, lastitf); be.fcs_in = BR2684_FCSIN_NO; be.fcs_out = BR2684_FCSOUT_NO; be.fcs_auto = 0; @@ -198,7 +199,7 @@ void start_interface(struct br2684_param assign_vcc(params->astr, params->encap, params->payload, params->sndbuf, params->reqqos); if (up_script) { - asprintf(&cmd, "%s nas%d", up_script, lastitf); + asprintf(&cmd, "%s %s%d", up_script, itfname, lastitf); system(cmd); free(cmd); } @@ -207,7 +208,7 @@ void start_interface(struct br2684_param void usage(char *s) { - printf("usage: %s [-b] [[-c number] [-e 0|1] [-s sndbuf] [-q qos] [-p 0|1] " + printf("usage: %s [-b] [-n name] [[-c number] [-e 0|1] [-s sndbuf] [-q qos] [-p 0|1] " "[-a [itf.]vpi.vci]*]* [-S script]\n", s); printf(" encapsulations: 0=llc, 1=vcmux\n payloads: 0=routed, 1=bridged\n"); exit(1); @@ -234,7 +235,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:S:p:?h")) !=EOF) + while ((c = getopt(argc, argv,"q:a:bn:c:e:s:S:p:?h")) !=EOF) switch (c) { case 'q': printf ("optarg : %s",optarg); @@ -247,6 +248,9 @@ int main (int argc, char **argv) case 'b': background=1; break; + case 'n': + itfname = optarg; + break; case 'c': /* temporary, to make it work with multiple interfaces: */ if (params.itfnum>=0) start_interface(¶ms);