The OpenVPN manual currently only states:
This is a partial list of options which can currently be pushed: --route, --route-gateway, --route-delay, --redirect-gateway, --ip-win32, --dhcp-option, --inactive, --ping, --ping-exit, --ping-restart, --setenv, --persist-key, --persist-tun, --echo, --comp-lzo, --socket-flags, --sndbuf, --rcvbuf
But how do I get a complete list of options I can push to clients?
The generic way is to look through the code.
The method
pull_permission_mask
of init.c contains a list of valid flags (cited here for the current 2.3 release):If
--route-nopull
is not set on client-side, the following flags are currently accepted additionally:Now we have to match this against the options from options.c. Each option, that has one of the flags above in its
VERIFY_PERMISSION
can theoretically be pushed to the client. of course there could be issues as with comp-lzo.As an example see the following snippet from options.c:
Since
OPT_P_UP
is in the list of flags above, "topology" may be pushed to clients.