diff options
author | james <james@e7ae566f-a301-0410-adde-c780ea21d3b5> | 2009-09-17 23:43:37 +0000 |
---|---|---|
committer | james <james@e7ae566f-a301-0410-adde-c780ea21d3b5> | 2009-09-17 23:43:37 +0000 |
commit | 673f583f76358b57e7f610084d3cb28bb2a9c4a2 (patch) | |
tree | 6d9c8bdd75055e42049937f69bdbcf9368eaab89 /route.h | |
parent | Modified client to send a PUSH_REQUEST message to server 1 second (diff) | |
download | openvpn-673f583f76358b57e7f610084d3cb28bb2a9c4a2.tar.xz |
The maximum number of "route" directives (specified in the config
file or pulled from a server) can now be configured via the new
"max-routes" directive.
Previously, the limit was set to 100 and fixed by a compile-time
constant. Now the limit is dynamic and can be modified by the
"max-routes" directive. If max-routes is not specified, the default
limit is 100.
Note that this change does not address the maximum size of the
pushed options string sent from server to client, which is still
controlled by the TLS_CHANNEL_BUF_SIZE compile-time constant.
git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@4967 e7ae566f-a301-0410-adde-c780ea21d3b5
Diffstat (limited to 'route.h')
-rw-r--r-- | route.h | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -32,7 +32,7 @@ #include "tun.h" #include "misc.h" -#define MAX_ROUTES 100 +#define MAX_ROUTES_DEFAULT 100 #ifdef WIN32 /* @@ -86,9 +86,10 @@ struct route_option { #define RG_AUTO_LOCAL (1<<6) struct route_option_list { - int n; unsigned int flags; - struct route_option routes[MAX_ROUTES]; + int capacity; + int n; + struct route_option routes[EMPTY_ARRAY_SIZE]; }; struct route { @@ -107,8 +108,9 @@ struct route_list { unsigned int flags; bool did_redirect_default_gateway; bool did_local; + int capacity; int n; - struct route routes[MAX_ROUTES]; + struct route routes[EMPTY_ARRAY_SIZE]; }; #if P2MP @@ -120,9 +122,11 @@ struct iroute { }; #endif -struct route_option_list *new_route_option_list (struct gc_arena *a); +struct route_option_list *new_route_option_list (const int max_routes, struct gc_arena *a); +struct route_option_list *clone_route_option_list (const struct route_option_list *src, struct gc_arena *a); +void copy_route_option_list (struct route_option_list *dest, const struct route_option_list *src); -struct route_list *new_route_list (struct gc_arena *a); +struct route_list *new_route_list (const int max_routes, struct gc_arena *a); void add_route (struct route *r, const struct tuntap *tt, unsigned int flags, const struct env_set *es); @@ -132,8 +136,6 @@ void add_route_to_option_list (struct route_option_list *l, const char *gateway, const char *metric); -void clear_route_list (struct route_list *rl); - bool init_route_list (struct route_list *rl, const struct route_option_list *opt, const char *remote_endpoint, |