blob: c77c806127eba622a45c947fb4468f49d560d11f [file] [log] [blame]
Patrick Williamsb48b7b42016-08-17 15:04:38 -05001From abe15ba10ddc3548c528ccb088097d7abf5be48b Mon Sep 17 00:00:00 2001
2From: Li xin <lixin.fnst@cn.fujitsu.com>
3Date: Tue, 18 Nov 2014 18:14:07 +0900
4Subject: [PATCH 5/5] ethernet.c : remove it
5
6Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
7---
8 ethernet.c | 224 -------------------------------------------------------------
9 1 file changed, 224 deletions(-)
10 delete mode 100644 ethernet.c
11
12diff --git a/ethernet.c b/ethernet.c
13deleted file mode 100644
14index d682b63..0000000
15--- a/ethernet.c
16+++ /dev/null
17@@ -1,224 +0,0 @@
18-/*
19- * Copyright (c) 1990, 1993 The Regents of the University of California.
20- * All rights reserved.
21- *
22- * Redistribution and use in source and binary forms, with or without
23- * modification, are permitted provided that: (1) source code distributions
24- * retain the above copyright notice and this paragraph in its entirety, (2)
25- * distributions including binary code include the above copyright notice and
26- * this paragraph in its entirety in the documentation or other materials
27- * provided with the distribution, and (3) all advertising materials mentioning
28- * features or use of this software display the following acknowledgement:
29- * ``This product includes software developed by the University of California,
30- * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
31- * the University nor the names of its contributors may be used to endorse
32- * or promote products derived from this software without specific prior
33- * written permission.
34- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
35- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
36- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
37- */
38-#ifndef lint
39-static char rcsid[] =
40- "@(#) $Header: etherent.c,v 1.4 96/06/14 20:34:25 leres Exp $ (LBL)";
41-#endif
42-
43-#include <sys/types.h>
44-#include <sys/stat.h>
45-#include <sys/time.h>
46-
47-#include <ctype.h>
48-#include <stdio.h>
49-#include <string.h>
50-
51-#ifndef ETHERS_FILE
52-#define ETHERS_FILE "/etc/ethers"
53-#endif
54-
55-struct etherent {
56- u_char addr[6];
57- char name[122];
58-};
59-
60-static FILE *ether_fp = NULL;
61-
62-
63-/* Hex digit to integer. */
64-static inline int
65-xdtoi(c)
66- int c;
67-{
68-
69- if (isdigit(c))
70- return c - '0';
71- else if (islower(c))
72- return c - 'a' + 10;
73- else
74- return c - 'A' + 10;
75-}
76-
77-static inline int
78-skip_space(f)
79- FILE *f;
80-{
81- int c;
82-
83- do {
84- c = getc(f);
85- } while (isspace(c) && c != '\n');
86-
87- return c;
88-}
89-
90-static inline int
91-skip_line(f)
92- FILE *f;
93-{
94- int c;
95-
96- do
97- c = getc(f);
98- while (c != '\n' && c != EOF);
99-
100- return c;
101-}
102-
103-static struct etherent *
104-next_etherent(fp)
105- FILE *fp;
106-{
107- register int c, d, i;
108- char *bp;
109- static struct etherent e;
110- static int nline = 1;
111- top:
112- while (nline) {
113- /* Find addr */
114- c = skip_space(fp);
115- if (c == '\n')
116- continue;
117- /* If this is a comment, or first thing on line
118- cannot be etehrnet address, skip the line. */
119- else if (!isxdigit(c))
120- c = skip_line(fp);
121- else {
122- /* must be the start of an address */
123- for (i = 0; i < 6; i += 1) {
124- d = xdtoi(c);
125- c = getc(fp);
126- if (c != ':') {
127- d <<= 4;
128- d |= xdtoi(c);
129- c = getc(fp);
130- }
131- e.addr[i] = d;
132- if (c != ':')
133- break;
134- c = getc(fp);
135- }
136- nline = 0;
137- }
138- if (c == EOF)
139- return NULL;
140- }
141-
142- /* If we started a new line, 'c' holds the char past the ether addr,
143- which we assume is white space. If we are continuing a line,
144- 'c' is garbage. In either case, we can throw it away. */
145-
146- c = skip_space(fp);
147- if (c == '\n') {
148- nline = 1;
149- goto top;
150- }
151- else if (c == '#') {
152- (void)skip_line(fp);
153- nline = 1;
154- goto top;
155- }
156- else if (c == EOF)
157- return NULL;
158-
159- /* Must be a name. */
160- bp = e.name;
161- /* Use 'd' to prevent buffer overflow. */
162- d = sizeof(e.name) - 1;
163- do {
164- *bp++ = c;
165- c = getc(fp);
166- } while (!isspace(c) && c != EOF && --d > 0);
167- *bp = '\0';
168- if (c == '\n')
169- nline = 1;
170-
171- return &e;
172-}
173-
174-/* Open/rewind the ethers files; returns 1 if file was reopened */
175-int
176-ether_rewind()
177-{
178- struct stat st;
179- static long mtime = 0, ctime = 0;
180-
181- if (ether_fp != NULL) {
182- if (fstat(fileno(ether_fp), &st) < 0 ||
183- mtime != st.st_mtime || ctime != st.st_ctime ||
184- fseek(ether_fp, 0L, SEEK_SET) < 0) {
185- fclose(ether_fp);
186- ether_fp = NULL;
187- }
188- }
189- if (ether_fp == NULL) {
190- ether_fp = fopen(ETHERS_FILE, "r");
191- if (ether_fp == NULL)
192- return (-1);
193- if (fstat(fileno(ether_fp), &st) < 0) {
194- fclose(ether_fp);
195- ether_fp = NULL;
196- return (-1);
197- }
198- mtime = st.st_mtime;
199- ctime = st.st_ctime;
200- return (1);
201- }
202- return (0);
203-}
204-
205-/* Map an ethernet address to a name; returns 0 on success, else 1. */
206-int
207-ether_ntohost(name, ea)
208- register char *name;
209- register u_char *ea;
210-{
211- register struct etherent *ep;
212-
213- if (ether_rewind() < 0)
214- return (1);
215-
216- while ((ep = next_etherent(ether_fp)) != NULL)
217- if (bcmp(ep->addr, ea, 6) == 0) {
218- strcpy(name, ep->name);
219- return (0);
220- }
221- return (1);
222-}
223-
224-/* Map an ethernet name to an address; returns 0 on success, else 1. */
225-int
226-ether_hostton(name, ea)
227- register char *name;
228- register u_char *ea;
229-{
230- register struct etherent *ep;
231-
232- if (ether_rewind() < 0)
233- return (1);
234-
235- while ((ep = next_etherent(ether_fp)) != NULL)
236- if (strcmp(ep->name, name) == 0) {
237- bcopy(ep->addr, ea, 6);
238- return (0);
239- }
240- return (1);
241-}
242--
2431.8.4.2
244