Eui48.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 1996-2022 The Squid Software Foundation and contributors
3 *
4 * Squid software is distributed under GPLv2+ license and includes
5 * contributions from numerous individuals and organizations.
6 * Please see the COPYING and CONTRIBUTORS files for details.
7 */
8
9#ifndef _SQUID_EUI_EUI48_H
10#define _SQUID_EUI_EUI48_H
11
12#if USE_SQUID_EUI
13
14/* EUI-48 is 6 bytes. */
15#define SZ_EUI48_BUF 6
16
17namespace Ip
18{
19class Address;
20};
21
22#include <cstring>
23
24namespace Eui
25{
26
27class Eui48
28{
29
30public:
31 Eui48() { clear(); }
32 bool operator== (const Eui48 &t) const { return memcmp(eui, t.eui, SZ_EUI48_BUF) == 0; }
33 bool operator< (const Eui48 &t) const { return memcmp(eui, t.eui, SZ_EUI48_BUF) < 0; }
34
35 const unsigned char *get(void);
36
37 bool set(const char *src, const int len) {
38 if (len > SZ_EUI48_BUF) return false;
39 if (len < SZ_EUI48_BUF) clear();
40 memcpy(eui, src, len);
41 return true;
42 }
43
44 void clear() { memset(eui, 0, SZ_EUI48_BUF); }
45
54 bool decode(const char *asc);
55
65 bool encode(char *buf, const int len) const;
66
67 // lookup an EUI-48 / MAC address via ARP
68 bool lookup(const Ip::Address &c);
69
70private:
71 unsigned char eui[SZ_EUI48_BUF];
72};
73
74} // namespace Eui
75
76#endif /* USE_SQUID_EUI */
77#endif /* _SQUID_EUI_EUI48_H */
78
#define SZ_EUI48_BUF
Definition: Eui48.h:15
Eui48()
Definition: Eui48.h:31
bool set(const char *src, const int len)
Definition: Eui48.h:37
unsigned char eui[SZ_EUI48_BUF]
Definition: Eui48.h:71
bool operator==(const Eui48 &t) const
Definition: Eui48.h:32
void clear()
Definition: Eui48.h:44
bool lookup(const Ip::Address &c)
Definition: Eui48.cc:135
bool operator<(const Eui48 &t) const
Definition: Eui48.h:33
bool encode(char *buf, const int len) const
Definition: Eui48.cc:119
const unsigned char * get(void)
bool decode(const char *asc)
Definition: Eui48.cc:97
Definition: Arp.h:17
Definition: client_db.h:23

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors