]> git.ipfire.org Git - people/pmueller/ipfire-3.x.git/blame - net-tools/patches/net-tools-1.60-cycle.patch
Move all packages to root.
[people/pmueller/ipfire-3.x.git] / net-tools / patches / net-tools-1.60-cycle.patch
CommitLineData
236898d6
MT
1--- net-tools-1.60/lib/interface.c.cycle 2003-02-11 14:29:29.000000000 +0100
2+++ net-tools-1.60/lib/interface.c 2003-02-11 14:29:29.000000000 +0100
3@@ -90,6 +90,7 @@
4 static struct interface *int_list, *int_last;
5
6 static int if_readlist_proc(char *);
7+static int if_readlist_rep(char *, struct interface *);
8
9 static struct interface *add_interface(char *name)
10 {
11@@ -128,11 +129,13 @@
12 int for_all_interfaces(int (*doit) (struct interface *, void *), void *cookie)
13 {
14 struct interface *ife;
15+ int err;
16
17 if (!int_list && (if_readlist() < 0))
18 return -1;
19 for (ife = int_list; ife; ife = ife->next) {
20- int err = doit(ife, cookie);
21+ if_readlist_rep(ife->name, ife);
22+ err = doit(ife, cookie);
23 if (err)
24 return err;
25 }
26@@ -369,6 +372,42 @@
27 return err;
28 }
29
30+
31+static int if_readlist_rep(char *target, struct interface *ife)
32+{
33+ FILE *fh;
34+ char buf[512];
35+ int err;
36+
37+ fh = fopen(_PATH_PROCNET_DEV, "r");
38+ if (!fh) {
39+ fprintf(stderr, _("Warning: cannot open %s (%s). Limited output.\n"),
40+ _PATH_PROCNET_DEV, strerror(errno));
41+ return if_readconf();
42+ }
43+ fgets(buf, sizeof buf, fh); /* eat line */
44+ fgets(buf, sizeof buf, fh);
45+
46+ procnetdev_vsn = procnetdev_version(buf);
47+
48+ err = 0;
49+ while (fgets(buf, sizeof buf, fh)) {
50+ char *s, name[IFNAMSIZ];
51+ s = get_name(name, buf);
52+ get_dev_fields(s, ife);
53+ ife->statistics_valid = 1;
54+ if (target && !strcmp(target,name))
55+ break;
56+ }
57+ if (ferror(fh)) {
58+ perror(_PATH_PROCNET_DEV);
59+ err = -1;
60+ }
61+
62+ fclose(fh);
63+ return err;
64+}
65+
66 int if_readlist(void)
67 {
68 int err = if_readlist_proc(NULL);
69--- net-tools-1.60/man/en_US/netstat.8.cycle 2001-01-07 13:43:57.000000000 +0100
70+++ net-tools-1.60/man/en_US/netstat.8 2003-02-11 14:29:29.000000000 +0100
71@@ -30,6 +30,7 @@
72 .RB [ \-\-program | \-p ]
73 .RB [ \-\-verbose | \-v ]
74 .RB [ \-\-continuous | \-c]
75+.RB [delay]
76 .P
77 .B netstat
78 .RB { \-\-route | \-r }
79@@ -39,6 +40,7 @@
80 .RB [ \-\-numeric | \-n ]
81 .RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
82 .RB [ \-\-continuous | \-c]
83+.RB [delay]
84 .P
85 .B netstat
86 .RB { \-\-interfaces | \-i }
87@@ -50,12 +52,14 @@
88 .RB [ \-\-numeric | \-n ]
89 .RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
90 .RB [ \-\-continuous | \-c]
91+.RB [delay]
92 .P
93 .B netstat
94 .RB { \-\-groups | \-g }
95 .RB [ \-\-numeric | \-n ]
96 .RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
97 .RB [ \-\-continuous | \-c]
98+.RB [delay]
99 .P
100 .B netstat
101 .RB { \-\-masquerade | \-M }
102@@ -63,12 +67,14 @@
103 .RB [ \-\-numeric | \-n ]
104 .RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
105 .RB [ \-\-continuous | \-c]
106+.RB [delay]
107 .P
108 .B netstat
109 .RB { \-\-statistics | -s }
110 .RB [ \-\-tcp | \-t ]
111 .RB [ \-\-udp | \-u ]
112 .RB [ \-\-raw | \-w ]
113+.RB [delay]
114 .P
115 .B netstat
116 .RB { \-\-version | \-V }
117@@ -170,6 +176,10 @@
118 Print routing information from the FIB. (This is the default.)
119 .SS "\-C"
120 Print routing information from the route cache.
121+.SS delay
122+Netstat will cycle printing through statistics every
123+.B delay
124+seconds.
125 .IR UP .
126 .P
127 .SH OUTPUT
128--- net-tools-1.60/netstat.c.cycle 2003-02-11 14:29:29.000000000 +0100
129+++ net-tools-1.60/netstat.c 2003-02-11 15:07:26.000000000 +0100
130@@ -102,7 +102,7 @@
131 #endif
132
133 /* prototypes for statistics.c */
134-void parsesnmp(int, int, int);
135+int parsesnmp(int, int, int);
136 void inittab(void);
137
138 typedef enum {
139@@ -1440,6 +1440,8 @@
140
141 static int iface_info(void)
142 {
143+ static int count=0;
144+
145 if (skfd < 0) {
146 if ((skfd = sockets_open(0)) < 0) {
147 perror("socket");
148@@ -1449,20 +1451,21 @@
149 }
150 if (flag_exp < 2) {
151 ife_short = 1;
152- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
153+ if(!(count % 8))
154+ printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
155 }
156
157 if (for_all_interfaces(do_if_print, &flag_all) < 0) {
158 perror(_("missing interface information"));
159 exit(1);
160 }
161- if (flag_cnt)
162+ if (!flag_cnt) {
163 free_interface_list();
164- else {
165 close(skfd);
166 skfd = -1;
167 }
168
169+ count++;
170 return 0;
171 }
172
173@@ -1478,7 +1481,7 @@
174 {
175 fprintf(stderr, _("usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}\n"));
176 fprintf(stderr, _(" netstat [-vnNcaeol] [<Socket> ...]\n"));
177- fprintf(stderr, _(" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n\n"));
178+ fprintf(stderr, _(" netstat { [-veenNac] -i | [-cnNe] -M | -s } [delay]\n\n"));
179
180 fprintf(stderr, _(" -r, --route display routing table\n"));
181 fprintf(stderr, _(" -i, --interfaces display interface table\n"));
182@@ -1514,6 +1517,7 @@
183 (int argc, char *argv[]) {
184 int i;
185 int lop;
186+ int reptimer = 1;
187 struct option longopts[] =
188 {
189 AFTRANS_OPTS,
190@@ -1655,6 +1659,12 @@
191 flag_sta++;
192 }
193
194+ if(argc == optind + 1) {
195+ if((reptimer = atoi(argv[optind])) <= 0)
196+ usage();
197+ flag_cnt++;
198+ }
199+
200 if (flag_int + flag_rou + flag_mas + flag_sta > 1)
201 usage();
202
203@@ -1666,7 +1676,7 @@
204
205 flag_arg = flag_tcp + flag_udp + flag_raw + flag_unx + flag_ipx
206 + flag_ax25 + flag_netrom + flag_igmp + flag_x25;
207-
208+
209 if (flag_mas) {
210 #if HAVE_FW_MASQUERADE && HAVE_AFINET
211 #if MORE_THAN_ONE_MASQ_AF
212@@ -1678,7 +1688,7 @@
213 flag_not & FLAG_NUM_PORT, flag_exp);
214 if (i || !flag_cnt)
215 break;
216- sleep(1);
217+ sleep(reptimer);
218 }
219 #else
220 ENOSUPP("netstat.c", "FW_MASQUERADE");
221@@ -1688,9 +1698,15 @@
222 }
223
224 if (flag_sta) {
225+ for(;;) {
226 inittab();
227- parsesnmp(flag_raw, flag_tcp, flag_udp);
228- exit(0);
229+ i = parsesnmp(flag_raw, flag_tcp, flag_udp);
230+
231+ if(i || !flag_cnt)
232+ break;
233+ sleep(reptimer);
234+ }
235+ return(i);
236 }
237
238 if (flag_rou) {
239@@ -1712,7 +1728,7 @@
240 i = route_info(afname, options);
241 if (i || !flag_cnt)
242 break;
243- sleep(1);
244+ sleep(reptimer);
245 }
246 return (i);
247 }
248@@ -1721,7 +1737,7 @@
249 i = iface_info();
250 if (!flag_cnt || i)
251 break;
252- sleep(1);
253+ sleep(reptimer);
254 }
255 return (i);
256 }
257@@ -1847,7 +1863,7 @@
258 }
259 if (!flag_cnt || i)
260 break;
261- sleep(1);
262+ sleep(reptimer);
263 prg_cache_clear();
264 }
265 return (i);
266--- net-tools-1.60/statistics.c.cycle 2001-02-02 19:01:23.000000000 +0100
267+++ net-tools-1.60/statistics.c 2003-02-11 14:29:29.000000000 +0100
268@@ -338,7 +338,7 @@
269 }
270
271
272-void parsesnmp(int flag_raw, int flag_tcp, int flag_udp)
273+int parsesnmp(int flag_raw, int flag_tcp, int flag_udp)
274 {
275 FILE *f;
276
277@@ -347,12 +347,14 @@
278 f = fopen("/proc/net/snmp", "r");
279 if (!f) {
280 perror(_("cannot open /proc/net/snmp"));
281- return;
282+ return(1);
283 }
284 process_fd(f);
285
286- if (ferror(f))
287+ if (ferror(f)) {
288 perror("/proc/net/snmp");
289+ return(1);
290+ }
291
292 fclose(f);
293
294@@ -361,12 +363,14 @@
295 if (f) {
296 process_fd(f);
297
298- if (ferror(f))
299- perror("/proc/net/netstat");
300+ if (ferror(f)) {
301+ perror("/proc/net/netstat");
302+ return(1);
303+ }
304
305 fclose(f);
306 }
307- return;
308+ return(0);
309 }
310
311