Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
(164) |
Oct
(104) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
|
Feb
|
Mar
|
Apr
(3) |
May
(17) |
Jun
|
Jul
(11) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2004 |
Jan
|
Feb
(8) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
(1) |
Nov
|
Dec
(6) |
2005 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
(13) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(7) |
Oct
(2) |
Nov
(6) |
Dec
|
2007 |
Jan
|
Feb
(3) |
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
(6) |
Aug
(36) |
Sep
(3) |
Oct
(1) |
Nov
|
Dec
(23) |
2008 |
Jan
(33) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
(13) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(32) |
Sep
|
Oct
|
Nov
(14) |
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(13) |
2011 |
Jan
(16) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
(1) |
22
|
23
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
31
|
|
|
|
From: chas williams <chas3@us...> - 2007-10-21 20:08:23
|
Update of /cvsroot/linux-atm/linux-atm/src/br2684 In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv12291/src/br2684 Modified Files: Tag: V2_5_0 br2684ctl.c Log Message: From: "seventh guardian" <seventhguardian@...> One of the problems of the current br2684ctl code is that "stuff" is done while parsing the options. This means that if some options are messed up, we end up with a mess (a daemon running for nothing, a dummy interface is created, etc). At the same time, this makes adding the "persist" option too difficult. So here are the changes for now: * there is now one struct br2684_ctl params for the command line parameters. * the "option parsing" switch now just fills this struct (except for one detail, later on that). * there is one new function, named "start_interface" (this name should probably be changed..) that calls "create_br", "assign_vcc". As a bonus, things like "br2684ctl -q 1" don't work anymore :) There is one caveat though: the "start_interface" function is also called on the "c" option to start the previously defined interface (to maintain the multi-interface ability). I'd like to see that "multi-interface" ability removed, as it obviously cripples the code, yet is not that useful. But that's another question. Index: br2684ctl.c =================================================================== RCS file: /cvsroot/linux-atm/linux-atm/src/br2684/Attic/br2684ctl.c,v retrieving revision 1.1.2.11 retrieving revision 1.1.2.12 diff -C2 -d -r1.1.2.11 -r1.1.2.12 *** br2684ctl.c 4 Sep 2007 14:16:11 -0000 1.1.2.11 --- br2684ctl.c 21 Oct 2007 20:08:12 -0000 1.1.2.12 *************** *** 29,32 **** --- 29,41 ---- #define LOG_FACILITY LOG_LOCAL2 + struct br2684_params { + int itfnum; + int encap; + int sndbuf; + int payload; + char *astr; /* temporary */ + struct atm_qos reqqos; + }; + int lastsock, lastitf; *************** *** 68,74 **** } ! int create_br(char *nstr, int payload) { ! int num, err; if(lastsock<0) { --- 77,83 ---- } ! int create_br(int itfnum, int payload) { ! int err; if(lastsock<0) { *************** *** 79,84 **** } else { /* create the device with ioctl: */ ! num=atoi(nstr); ! if( num>=0 && num<1234567890){ struct atm_newif_br2684 ni; ni.backend_num = ATM_BACKEND_BR2684; --- 88,92 ---- } else { /* create the device with ioctl: */ ! if( itfnum>=0 && itfnum<1234567890){ struct atm_newif_br2684 ni; ni.backend_num = ATM_BACKEND_BR2684; *************** *** 89,93 **** #endif ni.mtu = 1500; ! sprintf(ni.ifname, "nas%d", num); err=ioctl (lastsock, ATM_NEWBACKENDIF, &ni); --- 97,101 ---- #endif ni.mtu = 1500; ! sprintf(ni.ifname, "nas%d", itfnum); err=ioctl (lastsock, ATM_NEWBACKENDIF, &ni); *************** *** 98,105 **** ni.ifname, strerror(errno)); ! lastitf=num; /* even if we didn't create, because existed, assign_vcc wil want to know it! */ } else { ! syslog(LOG_ERR,"err: strange interface number %d", num ); } } --- 106,113 ---- ni.ifname, strerror(errno)); ! lastitf=itfnum; /* even if we didn't create, because existed, assign_vcc wil want to know it! */ } else { ! syslog(LOG_ERR,"err: strange interface number %d", itfnum ); } } *************** *** 172,175 **** --- 180,194 ---- } + void start_interface(struct br2684_params* params) + { + if (params->astr==NULL) { + syslog(LOG_ERR, "Required ATM parameters not specified."); + exit(1); + } + + create_br(params->itfnum, params->payload); + assign_vcc(params->astr, params->encap, params->payload, params->sndbuf, + params->reqqos); + } *************** *** 186,192 **** int main (int argc, char **argv) { ! int c, background=0, encap=0, sndbuf=8192, payload=1; ! int itfnum = 0; ! struct atm_qos reqqos; lastsock=-1; --- 205,217 ---- int main (int argc, char **argv) { ! int c, background=0; ! ! struct br2684_params params; ! params.itfnum=-1; ! params.encap=0; ! params.sndbuf=8192; ! params.payload=1; ! params.astr=NULL; ! memset(¶ms.reqqos, 0, sizeof(params.reqqos)); lastsock=-1; *************** *** 194,198 **** /* st qos to 0 */ - memset(&reqqos, 0, sizeof(reqqos)); openlog (LOG_NAME,LOG_OPTION,LOG_FACILITY); --- 219,222 ---- *************** *** 202,210 **** case 'q': printf ("optarg : %s",optarg); ! if (text2qos(optarg,&reqqos,0)) ! fprintf(stderr,"QOS parameter invalid"); break; case 'a': ! assign_vcc(optarg, encap, payload, sndbuf, reqqos); break; case 'b': --- 226,234 ---- case 'q': printf ("optarg : %s",optarg); ! if (text2qos(optarg,¶ms.reqqos,0)) ! fprintf(stderr,"QOS parameter invalid\n"); break; case 'a': ! params.astr=optarg; break; case 'b': *************** *** 212,236 **** break; case 'c': ! create_br(optarg, payload); ! itfnum = atoi(optarg); break; case 'e': ! encap=(atoi(optarg)); ! if(encap<0){ syslog (LOG_ERR, "invalid encapsulation: %s:",optarg); ! encap=0; } break; case 's': ! sndbuf=(atoi(optarg)); ! if(sndbuf<0){ syslog(LOG_ERR, "Invalid sndbuf: %s, using size of 8192 instead", optarg); ! sndbuf=8192; } break; case 'p': /* payload type: routed (0) or bridged (1) */ #ifdef BR2684_FLAG_ROUTED ! payload = atoi(optarg); break; #else --- 236,261 ---- break; case 'c': ! /* temporary, to make it work with multiple interfaces: */ ! if (params.itfnum>=0) start_interface(¶ms); ! params.itfnum= atoi(optarg); break; case 'e': ! params.encap=(atoi(optarg)); ! if(params.encap<0){ syslog (LOG_ERR, "invalid encapsulation: %s:",optarg); ! params.encap=0; } break; case 's': ! params.sndbuf=(atoi(optarg)); ! if(params.sndbuf<0){ syslog(LOG_ERR, "Invalid sndbuf: %s, using size of 8192 instead", optarg); ! params.sndbuf=8192; } break; case 'p': /* payload type: routed (0) or bridged (1) */ #ifdef BR2684_FLAG_ROUTED ! params.payload = atoi(optarg); break; #else *************** *** 247,250 **** --- 272,277 ---- if (argc != optind) usage(argv[0]); + start_interface(¶ms); + if(lastsock>=0) close(lastsock); *************** *** 284,288 **** } ! create_pidfile(itfnum); signal(SIGINT, int_signal); signal(SIGTERM, int_signal); --- 311,315 ---- } ! create_pidfile(params.itfnum); signal(SIGINT, int_signal); signal(SIGTERM, int_signal); |