deprecated ipv6_netmask

This commit is contained in:
Nikos Mavrogiannopoulos
2014-12-08 10:48:25 +01:00
parent 7abfb3e800
commit 8365449e9b
8 changed files with 26 additions and 22 deletions

View File

@@ -42,6 +42,22 @@ ssize_t force_read_timeout(int sockfd, void *buf, size_t len, unsigned sec);
ssize_t recv_timeout(int sockfd, void *buf, size_t len, unsigned sec);
int ip_cmp(const struct sockaddr_storage *s1, const struct sockaddr_storage *s2, size_t n);
char* ipv6_prefix_to_mask(void *pool, unsigned prefix);
inline static int valid_ipv6_prefix(unsigned prefix)
{
switch (prefix) {
case 16:
case 32:
case 48:
case 64:
case 80:
case 96:
case 112:
case 128:
return 1;
default:
return 0;
}
}
typedef size_t (*pack_func)(const void*, uint8_t *);
typedef size_t (*pack_size_func)(const void*);

View File

@@ -561,10 +561,9 @@ unsigned force_cert_auth;
READ_NUMERIC("ipv6-prefix", prefix);
if (prefix > 0) {
config->network.ipv6_netmask = ipv6_prefix_to_mask(config, prefix);
config->network.ipv6_prefix = prefix;
if (config->network.ipv6_netmask == NULL) {
if (valid_ipv6_prefix(prefix) == 0) {
fprintf(stderr, "invalid IPv6 prefix: %u\n", prefix);
exit(1);
}
@@ -642,8 +641,8 @@ static void check_cfg(struct cfg_st *config)
exit(1);
}
if (config->network.ipv6 != NULL && config->network.ipv6_netmask == NULL) {
fprintf(stderr, "No mask found for IPv6 network.\n");
if (config->network.ipv6 != NULL && config->network.ipv6_prefix == 0) {
fprintf(stderr, "No prefix found for IPv6 network.\n");
exit(1);
}
@@ -775,7 +774,6 @@ unsigned i;
DEL(config->network.ipv4);
DEL(config->network.ipv4_netmask);
DEL(config->network.ipv6);
DEL(config->network.ipv6_netmask);
for (i=0;i<config->network.routes_size;i++)
DEL(config->network.routes[i]);
DEL(config->network.routes);

View File

@@ -273,15 +273,16 @@ int get_ipv6_lease(main_server_st* s, struct proc_st* proc)
struct sockaddr_storage tmp, mask, network, rnd;
unsigned i, max_loops = MAX_IP_TRIES;
int ret;
const char* c_network, *c_netmask;
const char* c_network;
char *c_netmask = NULL;
char buf[64];
if (proc->config.ipv6_network && proc->config.ipv6_netmask) {
if (proc->config.ipv6_network && proc->config.ipv6_prefix) {
c_network = proc->config.ipv6_network;
c_netmask = proc->config.ipv6_netmask;
c_netmask = ipv6_prefix_to_mask(proc, proc->config.ipv6_prefix);
} else {
c_network = s->config->network.ipv6;
c_netmask = s->config->network.ipv6_netmask;
c_netmask = ipv6_prefix_to_mask(proc, proc->config.ipv6_prefix);
}
if (c_network && c_netmask) {
@@ -392,6 +393,7 @@ int get_ipv6_lease(main_server_st* s, struct proc_st* proc)
return 0;
fail:
talloc_free(proc->ipv6);
talloc_free(c_netmask);
proc->ipv6 = NULL;
return ret;

View File

@@ -85,7 +85,6 @@ int send_cookie_auth_reply(main_server_st* s, struct proc_st* proc,
}
msg.ipv4_netmask = proc->config.ipv4_netmask;
msg.ipv6_netmask = proc->config.ipv6_netmask;
msg.ipv4_network = proc->config.ipv4_network;
msg.ipv6_network = proc->config.ipv6_network;

View File

@@ -199,10 +199,9 @@ struct group_cfg_st *sconfig = &proc->config;
READ_RAW_NUMERIC("ipv6-prefix", prefix);
if (prefix > 0) {
sconfig->ipv6_netmask = ipv6_prefix_to_mask(proc, prefix);
sconfig->ipv6_prefix = prefix;
if (sconfig->ipv6_netmask == NULL) {
if (valid_ipv6_prefix(prefix) == 0) {
syslog(LOG_ERR, "unknown ipv6-prefix '%u' in %s", prefix, file);
}
}
@@ -307,7 +306,6 @@ unsigned i;
talloc_free(config->ipv4_network);
talloc_free(config->ipv6_network);
talloc_free(config->ipv4_netmask);
talloc_free(config->ipv6_netmask);
safe_memset(config, 0, sizeof(*config));
}

View File

@@ -145,7 +145,6 @@ struct group_cfg_st {
char *ipv6_network;
unsigned ipv6_prefix;
char *ipv4_netmask;
char *ipv6_netmask;
char *cgroup;
@@ -166,7 +165,6 @@ struct vpn_st {
char *ipv4_network;
char *ipv4;
char *ipv4_local; /* local IPv4 address */
char *ipv6_netmask;
char *ipv6_network;
unsigned ipv6_prefix;

View File

@@ -548,12 +548,6 @@ static int recv_cookie_auth_reply(worker_st * ws)
talloc_strdup(ws, msg->ipv4_netmask);
}
if (msg->ipv6_netmask != NULL) {
talloc_free(ws->config->network.ipv6_netmask);
ws->config->network.ipv6_netmask =
talloc_strdup(ws, msg->ipv6_netmask);
}
if (msg->ipv4_network != NULL) {
talloc_free(ws->config->network.ipv4_network);
ws->config->network.ipv4_network =

View File

@@ -227,7 +227,6 @@ int complete_vpn_info(worker_st * ws, struct vpn_st *vinfo)
vinfo->ipv6_network = ws->config->network.ipv6_network;
vinfo->ipv4_netmask = ws->config->network.ipv4_netmask;
vinfo->ipv6_netmask = ws->config->network.ipv6_netmask;
vinfo->ipv6_prefix = ws->config->network.ipv6_prefix;
if (ws->config->network.mtu != 0) {