mirror of
https://gitlab.com/openconnect/ocserv.git
synced 2026-10-14 02:22:03 +08:00
deprecated ipv6_netmask
This commit is contained in:
@@ -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
@@ -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
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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 =
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user