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
+16
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); 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); 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); 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_func)(const void*, uint8_t *);
typedef size_t (*pack_size_func)(const void*); typedef size_t (*pack_size_func)(const void*);
+3 -5
View File
@@ -561,10 +561,9 @@ unsigned force_cert_auth;
READ_NUMERIC("ipv6-prefix", prefix); READ_NUMERIC("ipv6-prefix", prefix);
if (prefix > 0) { if (prefix > 0) {
config->network.ipv6_netmask = ipv6_prefix_to_mask(config, prefix);
config->network.ipv6_prefix = 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); fprintf(stderr, "invalid IPv6 prefix: %u\n", prefix);
exit(1); exit(1);
} }
@@ -642,8 +641,8 @@ static void check_cfg(struct cfg_st *config)
exit(1); exit(1);
} }
if (config->network.ipv6 != NULL && config->network.ipv6_netmask == NULL) { if (config->network.ipv6 != NULL && config->network.ipv6_prefix == 0) {
fprintf(stderr, "No mask found for IPv6 network.\n"); fprintf(stderr, "No prefix found for IPv6 network.\n");
exit(1); exit(1);
} }
@@ -775,7 +774,6 @@ unsigned i;
DEL(config->network.ipv4); DEL(config->network.ipv4);
DEL(config->network.ipv4_netmask); DEL(config->network.ipv4_netmask);
DEL(config->network.ipv6); DEL(config->network.ipv6);
DEL(config->network.ipv6_netmask);
for (i=0;i<config->network.routes_size;i++) for (i=0;i<config->network.routes_size;i++)
DEL(config->network.routes[i]); DEL(config->network.routes[i]);
DEL(config->network.routes); DEL(config->network.routes);
+6 -4
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; struct sockaddr_storage tmp, mask, network, rnd;
unsigned i, max_loops = MAX_IP_TRIES; unsigned i, max_loops = MAX_IP_TRIES;
int ret; int ret;
const char* c_network, *c_netmask; const char* c_network;
char *c_netmask = NULL;
char buf[64]; 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_network = proc->config.ipv6_network;
c_netmask = proc->config.ipv6_netmask; c_netmask = ipv6_prefix_to_mask(proc, proc->config.ipv6_prefix);
} else { } else {
c_network = s->config->network.ipv6; 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) { if (c_network && c_netmask) {
@@ -392,6 +393,7 @@ int get_ipv6_lease(main_server_st* s, struct proc_st* proc)
return 0; return 0;
fail: fail:
talloc_free(proc->ipv6); talloc_free(proc->ipv6);
talloc_free(c_netmask);
proc->ipv6 = NULL; proc->ipv6 = NULL;
return ret; return ret;
-1
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.ipv4_netmask = proc->config.ipv4_netmask;
msg.ipv6_netmask = proc->config.ipv6_netmask;
msg.ipv4_network = proc->config.ipv4_network; msg.ipv4_network = proc->config.ipv4_network;
msg.ipv6_network = proc->config.ipv6_network; msg.ipv6_network = proc->config.ipv6_network;
+1 -3
View File
@@ -199,10 +199,9 @@ struct group_cfg_st *sconfig = &proc->config;
READ_RAW_NUMERIC("ipv6-prefix", prefix); READ_RAW_NUMERIC("ipv6-prefix", prefix);
if (prefix > 0) { if (prefix > 0) {
sconfig->ipv6_netmask = ipv6_prefix_to_mask(proc, prefix);
sconfig->ipv6_prefix = 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); 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->ipv4_network);
talloc_free(config->ipv6_network); talloc_free(config->ipv6_network);
talloc_free(config->ipv4_netmask); talloc_free(config->ipv4_netmask);
talloc_free(config->ipv6_netmask);
safe_memset(config, 0, sizeof(*config)); safe_memset(config, 0, sizeof(*config));
} }
-2
View File
@@ -145,7 +145,6 @@ struct group_cfg_st {
char *ipv6_network; char *ipv6_network;
unsigned ipv6_prefix; unsigned ipv6_prefix;
char *ipv4_netmask; char *ipv4_netmask;
char *ipv6_netmask;
char *cgroup; char *cgroup;
@@ -166,7 +165,6 @@ struct vpn_st {
char *ipv4_network; char *ipv4_network;
char *ipv4; char *ipv4;
char *ipv4_local; /* local IPv4 address */ char *ipv4_local; /* local IPv4 address */
char *ipv6_netmask;
char *ipv6_network; char *ipv6_network;
unsigned ipv6_prefix; unsigned ipv6_prefix;
-6
View File
@@ -548,12 +548,6 @@ static int recv_cookie_auth_reply(worker_st * ws)
talloc_strdup(ws, msg->ipv4_netmask); 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) { if (msg->ipv4_network != NULL) {
talloc_free(ws->config->network.ipv4_network); talloc_free(ws->config->network.ipv4_network);
ws->config->network.ipv4_network = ws->config->network.ipv4_network =
-1
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->ipv6_network = ws->config->network.ipv6_network;
vinfo->ipv4_netmask = ws->config->network.ipv4_netmask; vinfo->ipv4_netmask = ws->config->network.ipv4_netmask;
vinfo->ipv6_netmask = ws->config->network.ipv6_netmask;
vinfo->ipv6_prefix = ws->config->network.ipv6_prefix; vinfo->ipv6_prefix = ws->config->network.ipv6_prefix;
if (ws->config->network.mtu != 0) { if (ws->config->network.mtu != 0) {