mirror of
https://github.com/OpenVPN/openvpn.git
synced 2024-12-19 22:43:43 +08:00
186f9a76fd
Run from "make check" if "t_client.rc" is found in workdir or srcdir (copy t_client.rc-sample, fill in specifics for your test server) How does it work? - you run "sudo make check" (needs root access to configure tun if!) - t_client.sh reads t_client.rc from current dir or ${srcdir} - t_client.rc defines a number of "test suffixes" to run (could be "1" "2" "3" or "p2m", "p2p", "special" or whatever you like), and for each suffix, there's config variables to specify - how to call OpenVPN - which hosts to ping for IPv4 and IPv6 when OpenVPN is up (and actually before starting OpenVPN - to make the test more meaningful, I have decided that the test hosts must not ping before the tests starts) - which addresses must show up in the output of "ifconfig" after OpenVPN has started - all variables except OPENVPN_CONF_<x> are optional (this should all be fairly obvious from looking at t_client.rc-sample) - the script wants to connect to a well-defined OpenVPN server that will assign well-known IPv4 (and IPv6) addresses, have well-defined pingable addresse, etc. - so you need to setup the test server before the script is useful for you. (Whether you use certificates or username/password is up to you, you could even mix and match - run one test with certs, and one with user/pass against different target ports... :-) ) [we *could* run a "reference server" somewhere and ship a sample t_client.rc + cert so that users could use this right away, but I do not currently have the resources to run such a public server] - whatever the script does is logged to a newly created directory below the current directory (openvpn output, ifconfig+route before starting OpenVPN, while running it, after ending it) - important: at least on NetBSD and OpenBSD, the script will print one failure, because the tun0 interface created is not destroyed after openvpn ends. For OpenBSD, I have changed close_tun() to do so ("ifconfig tun0 destroy"), for NetBSD I have not yet changed anything - but I strongly believe that the output of "ifconfig+route" should be reverted to exactly how it looked like before OpenVPN was started, so I consider this a bug in the NetBSD-specific bits of OpenVPN (and will look into this). - the test framework has been tested on Linux, NetBSD and OpenBSD. It *should* work fine on FreeBSD and Solaris. It works on MacOS X (but the output looks funny, because /bin/sh does not implement "echo -e" - need to add configure trickery) It will *not* work on Windows yet - I haven't looked into what's needed to make it work (background processes and signals in mingw bash?), maybe it's as easy as adding the necessary "ipconfig" and "netsh" commands to print interface + routing config... - I have only tested "connect via IPv4 transport, use IPv4+IPv6 payload", but the framework is generic enough that "connect via IPv6 transport" should work just fine (just setup OPENVPN_CONF_x accordingly in the t_client.rc). - this is neither finished nor pretty, but it helps me a *lot* in quickly testing whether I broke anything when fiddling system-dependent code (tun.c, route.c) across multiple build hosts - so I hope this is going to be fairly useful to Samuli and the buildbot :-) Signed-off-by: Gert Doering <gert@greenie.muc.de> Acked-by: David Sommerseth <dazo@users.sourceforge.net> Signed-off-by: David Sommerseth <dazo@users.sourceforge.net>
156 lines
3.7 KiB
Makefile
156 lines
3.7 KiB
Makefile
#
|
|
# OpenVPN -- An application to securely tunnel IP networks
|
|
# over a single UDP port, with support for SSL/TLS-based
|
|
# session authentication and key exchange,
|
|
# packet encryption, packet authentication, and
|
|
# packet compression.
|
|
#
|
|
# Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License version 2
|
|
# as published by the Free Software Foundation.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program (see the file COPYING included with this
|
|
# distribution); if not, write to the Free Software Foundation, Inc.,
|
|
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
#
|
|
|
|
LDADD = @LIBOBJS@
|
|
.PHONY: plugin
|
|
|
|
# This option prevents autoreconf from overriding our COPYING and
|
|
# INSTALL targets:
|
|
AUTOMAKE_OPTIONS = foreign
|
|
|
|
MAINTAINERCLEANFILES = \
|
|
config.log config.status \
|
|
$(srcdir)/Makefile.in \
|
|
$(srcdir)/config.h.in $(srcdir)/config.h.in~ $(srcdir)/configure \
|
|
$(srcdir)/install-sh $(srcdir)/ltmain.sh $(srcdir)/missing \
|
|
$(srcdir)/depcomp $(srcdir)/aclocal.m4 \
|
|
$(srcdir)/config.guess $(srcdir)/config.sub \
|
|
$(srcdir)/openvpn.spec
|
|
CLEANFILES = openvpn.8.html
|
|
|
|
EXTRA_DIST = \
|
|
easy-rsa \
|
|
sample-config-files \
|
|
sample-keys \
|
|
sample-scripts \
|
|
suse \
|
|
tap-win32 \
|
|
contrib \
|
|
debug \
|
|
plugin \
|
|
win
|
|
|
|
SUBDIRS = \
|
|
images \
|
|
service-win32 \
|
|
install-win32
|
|
|
|
TESTS = t_client.sh t_lpback.sh t_cltsrv.sh
|
|
sbin_PROGRAMS = openvpn
|
|
|
|
dist_noinst_HEADERS =
|
|
|
|
dist_noinst_SCRIPTS = \
|
|
$(TESTS) \
|
|
doclean \
|
|
domake-win \
|
|
t_cltsrv-down.sh
|
|
|
|
dist_noinst_DATA = \
|
|
openvpn.spec \
|
|
COPYRIGHT.GPL \
|
|
PORTS \
|
|
INSTALL-win32.txt
|
|
|
|
openvpn_SOURCES = \
|
|
base64.c base64.h \
|
|
basic.h \
|
|
buffer.c buffer.h \
|
|
circ_list.h \
|
|
common.h \
|
|
crypto.c crypto.h \
|
|
dhcp.c dhcp.h \
|
|
errlevel.h \
|
|
error.c error.h \
|
|
event.c event.h \
|
|
fdmisc.c fdmisc.h \
|
|
forward.c forward.h forward-inline.h \
|
|
fragment.c fragment.h \
|
|
gremlin.c gremlin.h \
|
|
helper.c helper.h \
|
|
httpdigest.c httpdigest.h \
|
|
lladdr.c lladdr.h \
|
|
init.c init.h \
|
|
integer.h \
|
|
interval.c interval.h \
|
|
list.c list.h \
|
|
lzo.c lzo.h \
|
|
manage.c manage.h \
|
|
mbuf.c mbuf.h \
|
|
memdbg.h \
|
|
misc.c misc.h \
|
|
mroute.c mroute.h \
|
|
mss.c mss.h \
|
|
mtcp.c mtcp.h \
|
|
mtu.c mtu.h \
|
|
mudp.c mudp.h \
|
|
multi.c multi.h \
|
|
ntlm.c ntlm.h \
|
|
occ.c occ.h occ-inline.h \
|
|
pkcs11.c pkcs11.h \
|
|
openvpn.c openvpn.h \
|
|
openvpn-plugin.h \
|
|
options.c options.h \
|
|
otime.c otime.h \
|
|
packet_id.c packet_id.h \
|
|
perf.c perf.h \
|
|
pf.c pf.h pf-inline.h \
|
|
ping.c ping.h ping-inline.h \
|
|
plugin.c plugin.h \
|
|
pool.c pool.h \
|
|
proto.c proto.h \
|
|
proxy.c proxy.h \
|
|
ieproxy.h ieproxy.c \
|
|
ps.c ps.h \
|
|
push.c push.h \
|
|
pushlist.h \
|
|
reliable.c reliable.h \
|
|
route.c route.h \
|
|
schedule.c schedule.h \
|
|
session_id.c session_id.h \
|
|
shaper.c shaper.h \
|
|
sig.c sig.h \
|
|
socket.c socket.h \
|
|
socks.c socks.h \
|
|
ssl.c ssl.h \
|
|
status.c status.h \
|
|
syshead.h \
|
|
thread.c thread.h \
|
|
tun.c tun.h \
|
|
win32.h win32.c \
|
|
cryptoapi.h cryptoapi.c
|
|
|
|
|
|
dist-hook:
|
|
cd $(distdir) && for i in $(EXTRA_DIST) $(SUBDIRS) ; do find $$i -name .svn -type d -prune -exec rm -rf '{}' ';' ; rm -f `find $$i -type f | grep -E '(^|\/)\.?\#|\~$$|\.s?o$$'` ; done
|
|
|
|
if WIN32
|
|
dist_noinst_DATA += openvpn.8
|
|
nodist_html_DATA = openvpn.8.html
|
|
openvpn.8.html: $(srcdir)/openvpn.8
|
|
$(MAN2HTML) < $(srcdir)/openvpn.8 > openvpn.8.html
|
|
else
|
|
dist_man_MANS = openvpn.8
|
|
endif
|