245 lines
5.3 KiB
Diff
245 lines
5.3 KiB
Diff
From abe15ba10ddc3548c528ccb088097d7abf5be48b Mon Sep 17 00:00:00 2001
|
|
From: Li xin <lixin.fnst@cn.fujitsu.com>
|
|
Date: Tue, 18 Nov 2014 18:14:07 +0900
|
|
Subject: [PATCH 5/5] ethernet.c : remove it
|
|
|
|
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
|
|
---
|
|
ethernet.c | 224 -------------------------------------------------------------
|
|
1 file changed, 224 deletions(-)
|
|
delete mode 100644 ethernet.c
|
|
|
|
diff --git a/ethernet.c b/ethernet.c
|
|
deleted file mode 100644
|
|
index d682b63..0000000
|
|
--- a/ethernet.c
|
|
+++ /dev/null
|
|
@@ -1,224 +0,0 @@
|
|
-/*
|
|
- * Copyright (c) 1990, 1993 The Regents of the University of California.
|
|
- * All rights reserved.
|
|
- *
|
|
- * Redistribution and use in source and binary forms, with or without
|
|
- * modification, are permitted provided that: (1) source code distributions
|
|
- * retain the above copyright notice and this paragraph in its entirety, (2)
|
|
- * distributions including binary code include the above copyright notice and
|
|
- * this paragraph in its entirety in the documentation or other materials
|
|
- * provided with the distribution, and (3) all advertising materials mentioning
|
|
- * features or use of this software display the following acknowledgement:
|
|
- * ``This product includes software developed by the University of California,
|
|
- * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
|
|
- * the University nor the names of its contributors may be used to endorse
|
|
- * or promote products derived from this software without specific prior
|
|
- * written permission.
|
|
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
|
|
- * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
|
|
- * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
- */
|
|
-#ifndef lint
|
|
-static char rcsid[] =
|
|
- "@(#) $Header: etherent.c,v 1.4 96/06/14 20:34:25 leres Exp $ (LBL)";
|
|
-#endif
|
|
-
|
|
-#include <sys/types.h>
|
|
-#include <sys/stat.h>
|
|
-#include <sys/time.h>
|
|
-
|
|
-#include <ctype.h>
|
|
-#include <stdio.h>
|
|
-#include <string.h>
|
|
-
|
|
-#ifndef ETHERS_FILE
|
|
-#define ETHERS_FILE "/etc/ethers"
|
|
-#endif
|
|
-
|
|
-struct etherent {
|
|
- u_char addr[6];
|
|
- char name[122];
|
|
-};
|
|
-
|
|
-static FILE *ether_fp = NULL;
|
|
-
|
|
-
|
|
-/* Hex digit to integer. */
|
|
-static inline int
|
|
-xdtoi(c)
|
|
- int c;
|
|
-{
|
|
-
|
|
- if (isdigit(c))
|
|
- return c - '0';
|
|
- else if (islower(c))
|
|
- return c - 'a' + 10;
|
|
- else
|
|
- return c - 'A' + 10;
|
|
-}
|
|
-
|
|
-static inline int
|
|
-skip_space(f)
|
|
- FILE *f;
|
|
-{
|
|
- int c;
|
|
-
|
|
- do {
|
|
- c = getc(f);
|
|
- } while (isspace(c) && c != '\n');
|
|
-
|
|
- return c;
|
|
-}
|
|
-
|
|
-static inline int
|
|
-skip_line(f)
|
|
- FILE *f;
|
|
-{
|
|
- int c;
|
|
-
|
|
- do
|
|
- c = getc(f);
|
|
- while (c != '\n' && c != EOF);
|
|
-
|
|
- return c;
|
|
-}
|
|
-
|
|
-static struct etherent *
|
|
-next_etherent(fp)
|
|
- FILE *fp;
|
|
-{
|
|
- register int c, d, i;
|
|
- char *bp;
|
|
- static struct etherent e;
|
|
- static int nline = 1;
|
|
- top:
|
|
- while (nline) {
|
|
- /* Find addr */
|
|
- c = skip_space(fp);
|
|
- if (c == '\n')
|
|
- continue;
|
|
- /* If this is a comment, or first thing on line
|
|
- cannot be etehrnet address, skip the line. */
|
|
- else if (!isxdigit(c))
|
|
- c = skip_line(fp);
|
|
- else {
|
|
- /* must be the start of an address */
|
|
- for (i = 0; i < 6; i += 1) {
|
|
- d = xdtoi(c);
|
|
- c = getc(fp);
|
|
- if (c != ':') {
|
|
- d <<= 4;
|
|
- d |= xdtoi(c);
|
|
- c = getc(fp);
|
|
- }
|
|
- e.addr[i] = d;
|
|
- if (c != ':')
|
|
- break;
|
|
- c = getc(fp);
|
|
- }
|
|
- nline = 0;
|
|
- }
|
|
- if (c == EOF)
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- /* If we started a new line, 'c' holds the char past the ether addr,
|
|
- which we assume is white space. If we are continuing a line,
|
|
- 'c' is garbage. In either case, we can throw it away. */
|
|
-
|
|
- c = skip_space(fp);
|
|
- if (c == '\n') {
|
|
- nline = 1;
|
|
- goto top;
|
|
- }
|
|
- else if (c == '#') {
|
|
- (void)skip_line(fp);
|
|
- nline = 1;
|
|
- goto top;
|
|
- }
|
|
- else if (c == EOF)
|
|
- return NULL;
|
|
-
|
|
- /* Must be a name. */
|
|
- bp = e.name;
|
|
- /* Use 'd' to prevent buffer overflow. */
|
|
- d = sizeof(e.name) - 1;
|
|
- do {
|
|
- *bp++ = c;
|
|
- c = getc(fp);
|
|
- } while (!isspace(c) && c != EOF && --d > 0);
|
|
- *bp = '\0';
|
|
- if (c == '\n')
|
|
- nline = 1;
|
|
-
|
|
- return &e;
|
|
-}
|
|
-
|
|
-/* Open/rewind the ethers files; returns 1 if file was reopened */
|
|
-int
|
|
-ether_rewind()
|
|
-{
|
|
- struct stat st;
|
|
- static long mtime = 0, ctime = 0;
|
|
-
|
|
- if (ether_fp != NULL) {
|
|
- if (fstat(fileno(ether_fp), &st) < 0 ||
|
|
- mtime != st.st_mtime || ctime != st.st_ctime ||
|
|
- fseek(ether_fp, 0L, SEEK_SET) < 0) {
|
|
- fclose(ether_fp);
|
|
- ether_fp = NULL;
|
|
- }
|
|
- }
|
|
- if (ether_fp == NULL) {
|
|
- ether_fp = fopen(ETHERS_FILE, "r");
|
|
- if (ether_fp == NULL)
|
|
- return (-1);
|
|
- if (fstat(fileno(ether_fp), &st) < 0) {
|
|
- fclose(ether_fp);
|
|
- ether_fp = NULL;
|
|
- return (-1);
|
|
- }
|
|
- mtime = st.st_mtime;
|
|
- ctime = st.st_ctime;
|
|
- return (1);
|
|
- }
|
|
- return (0);
|
|
-}
|
|
-
|
|
-/* Map an ethernet address to a name; returns 0 on success, else 1. */
|
|
-int
|
|
-ether_ntohost(name, ea)
|
|
- register char *name;
|
|
- register u_char *ea;
|
|
-{
|
|
- register struct etherent *ep;
|
|
-
|
|
- if (ether_rewind() < 0)
|
|
- return (1);
|
|
-
|
|
- while ((ep = next_etherent(ether_fp)) != NULL)
|
|
- if (bcmp(ep->addr, ea, 6) == 0) {
|
|
- strcpy(name, ep->name);
|
|
- return (0);
|
|
- }
|
|
- return (1);
|
|
-}
|
|
-
|
|
-/* Map an ethernet name to an address; returns 0 on success, else 1. */
|
|
-int
|
|
-ether_hostton(name, ea)
|
|
- register char *name;
|
|
- register u_char *ea;
|
|
-{
|
|
- register struct etherent *ep;
|
|
-
|
|
- if (ether_rewind() < 0)
|
|
- return (1);
|
|
-
|
|
- while ((ep = next_etherent(ether_fp)) != NULL)
|
|
- if (strcmp(ep->name, name) == 0) {
|
|
- bcopy(ep->addr, ea, 6);
|
|
- return (0);
|
|
- }
|
|
- return (1);
|
|
-}
|
|
--
|
|
1.8.4.2
|
|
|