projects
/
project
/
odhcpd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
treewide: rework code to get rid of fixed IPv6 address arrays
[project/odhcpd.git]
/
src
/
odhcpd.h
diff --git
a/src/odhcpd.h
b/src/odhcpd.h
index
a88eb08
..
8a196ea
100644
(file)
--- a/
src/odhcpd.h
+++ b/
src/odhcpd.h
@@
-16,11
+16,10
@@
#include <netinet/in.h>
#include <netinet/icmp6.h>
#include <netinet/ether.h>
#include <netinet/in.h>
#include <netinet/icmp6.h>
#include <netinet/ether.h>
-#include <net/if.h>
#include <stdbool.h>
#include <syslog.h>
#include <stdbool.h>
#include <syslog.h>
-#include
"libubox/blobmsg.h"
+#include
<libubox/blobmsg.h>
#ifndef typeof
#define typeof __typeof
#ifndef typeof
#define typeof __typeof
@@
-31,8
+30,8
@@
(type *)( (char *)ptr - offsetof(type,member) ))
#endif
(type *)( (char *)ptr - offsetof(type,member) ))
#endif
-#include
"libubox/list.h"
-#include
"libubox/uloop.h"
+#include
<libubox/list.h>
+#include
<libubox/uloop.h>
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
@@
-42,8
+41,6
@@
#define ND_OPT_DNS_SEARCH 31
#define RELAYD_BUFFER_SIZE 8192
#define ND_OPT_DNS_SEARCH 31
#define RELAYD_BUFFER_SIZE 8192
-#define RELAYD_MAX_PREFIXES 8
-#define RELAYD_MAX_ADDRS 8
#define INFINITE_VALID(x) ((x) == 0)
#define INFINITE_VALID(x) ((x) == 0)
@@
-95,6
+92,7
@@
enum odhcpd_assignment_flags {
struct config {
bool legacy;
struct config {
bool legacy;
+ bool main_dhcpv4;
char *dhcp_cb;
char *dhcp_statefile;
int log_level;
char *dhcp_cb;
char *dhcp_statefile;
int log_level;
@@
-117,13
+115,13
@@
struct interface {
struct list_head head;
int ifindex;
struct list_head head;
int ifindex;
- char
ifname[IF_NAMESIZE]
;
- c
har name[IF_NAMESIZE]
;
+ char
*ifname
;
+ c
onst char *name
;
// Runtime data
struct uloop_timeout timer_rs;
struct list_head ia_assignments;
// Runtime data
struct uloop_timeout timer_rs;
struct list_head ia_assignments;
- struct odhcpd_ipaddr
ia_addr[RELAYD_MAX_ADDRS]
;
+ struct odhcpd_ipaddr
*ia_addr
;
size_t ia_addr_len;
// DHCPv4
size_t ia_addr_len;
// DHCPv4
@@
-150,6
+148,7
@@
struct interface {
bool always_rewrite_dns;
bool ra_not_onlink;
bool ra_advrouter;
bool always_rewrite_dns;
bool ra_not_onlink;
bool ra_advrouter;
+ bool ra_useleasetime;
bool no_dynamic_dhcp;
// RA
bool no_dynamic_dhcp;
// RA
@@
-160,6
+159,10
@@
struct interface {
int ra_maxinterval;
int ra_mininterval;
int ra_lifetime;
int ra_maxinterval;
int ra_mininterval;
int ra_lifetime;
+ uint32_t ra_reachabletime;
+ uint32_t ra_retranstime;
+ uint32_t ra_hoplimit;
+ int ra_mtu;
// DHCPv4
struct in_addr dhcpv4_start;
// DHCPv4
struct in_addr dhcpv4_start;
@@
-201,8
+204,9
@@
ssize_t odhcpd_send(int socket, struct sockaddr_in6 *dest,
struct iovec *iov, size_t iov_len,
const struct interface *iface);
ssize_t odhcpd_get_interface_addresses(int ifindex,
struct iovec *iov, size_t iov_len,
const struct interface *iface);
ssize_t odhcpd_get_interface_addresses(int ifindex,
- struct odhcpd_ipaddr *addrs, size_t cnt);
-int odhcpd_get_linklocal_interface_address(int ifindex, struct in6_addr *lladdr);
+ struct odhcpd_ipaddr **addrs);
+int odhcpd_get_interface_dns_addr(const struct interface *iface,
+ struct in6_addr *addr);
struct interface* odhcpd_get_interface_by_name(const char *name);
int odhcpd_get_interface_config(const char *ifname, const char *what);
int odhcpd_get_mac(const struct interface *iface, uint8_t mac[6]);
struct interface* odhcpd_get_interface_by_name(const char *name);
int odhcpd_get_interface_config(const char *ifname, const char *what);
int odhcpd_get_mac(const struct interface *iface, uint8_t mac[6]);
@@
-225,6
+229,9
@@
void odhcpd_bmemcpy(void *av, const void *bv, size_t bits);
int config_parse_interface(void *data, size_t len, const char *iname, bool overwrite);
int config_parse_interface(void *data, size_t len, const char *iname, bool overwrite);
+void ndp_handle_addr6_dump(void);
+void ndp_rqs_addr6_dump(void);
+
#ifdef WITH_UBUS
int init_ubus(void);
const char* ubus_get_ifname(const char *name);
#ifdef WITH_UBUS
int init_ubus(void);
const char* ubus_get_ifname(const char *name);