Christian, Rather than put a lot of scripting language infrastructure into OpenVPN's config file parser, why not just use a shell script, i.e.:
openvpn --dev-name vpn_${CUSTNO} \ --port 5${CUSTNO} \ --ifconfig 10.0.0.1 10.0.${CUSTNO}.1 \ --dev-type tun \ [ ... ] After all, isn't this exactly the sort of problem that shell scripting languages were supposed to solve? James ZLS Software GmbH <510047448921-0...@t-online.de> said: > Hi, Jim, > > here is another one: > > I've added variable-expandion to config-values and the keywords "set" and "unset". > With this technique you can easily split configuration of one peer across two files: > one with the specific and one with the common config values in a way that can help to > minimize the number of "configuration-knobs". > > > An example: > > /etc/openvpn/customer_123.conf: > > # specific configuration for customer #123 > set CUSTNO 123 > config ./customers.common > > > /etc/openvpn/customer.common: > > # meta-configuration for all customers > dev-name vpn_$(CUSTNO) # vpn_001 to vpn_255 > port 5$(CUSTNO) # 5001 to 5255 > ifconfig 10.0.0.1 10.0.$(CUSTNO).1 # 10.0.001.1 to 10.0.255.1 > dev-type tun # other stuff ... > . > . > . > > These are the same variable-expansion routines I committed to the Snort-IDS some time ago. > > The syntax is follows: > > set name value define the variable "name" containing "value". > unset name undefine the variable "name". > > $(name) replace with the contents of variable "name". > > $(name:-default) replace with the contents of the variable "name" or with > "default" if "name" is undefined. > > $(name:?message) replace with the contents of variable "name" or print > out > the error message "message" and exit. > > > The next thing could be something like $(( expression or calculation )). > > As before, the patch is quite young and certanly needs more testing :-) > > > Regards, > > Christian Lademann <ladem...@zls.de> > > -- > * Christian A. Lademann, ZLS Software GmbH mailto:ladem...@zls.de > * ZLS Software GmbH > * Frankfurter Strasse 59 Postfach 1628 mailto:z...@zls.de > * D-65779 Kelkheim D-65766 Kelkheim http://www.zls.de > * Telefon +49-6195-9902-0 Telefax +49-6195-900600 > > > --