s4/torture: reproducer for bug 14375
[bbaumbach/samba-autobuild/.git] / selftest / SocketWrapper.pm
1 #!/usr/bin/perl
2 # Bootstrap Samba and run a number of tests against it.
3 # Copyright (C) 2005-2007 Jelmer Vernooij <jelmer@samba.org>
4
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14
15 # You should have received a copy of the GNU General Public License
16 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
18
19
20 package SocketWrapper;
21
22 use Exporter;
23 @ISA = qw(Exporter);
24 @EXPORT_OK = qw(setup_dir setup_pcap set_default_iface);
25
26 use strict;
27 use warnings;
28 use FindBin qw($RealBin);
29
30 sub setup_dir($$)
31 {
32         my ($dir, $pcap) = @_;
33         my $pcap_dir = undef;
34
35         if (defined($dir)) {
36                 if ( -d $dir ) {
37                         unlink <$dir/*>;
38                 } else {
39                         mkdir($dir, 0777);
40                 }
41
42                 if ($pcap) {
43                         $pcap_dir = $dir."/pcap";
44
45                         if ( -d $pcap_dir ) {
46                                 unlink <$pcap_dir/*>;
47                         } else {
48                                 mkdir($pcap_dir, 0777);
49                         }
50                 }
51         }
52
53         if (defined($pcap_dir)) {
54                 $ENV{SOCKET_WRAPPER_PCAP_DIR} = $pcap_dir;
55         } else {
56                 delete $ENV{SOCKET_WRAPPER_PCAP_DIR};
57         }
58
59         if (defined($dir)) {
60                 $ENV{SOCKET_WRAPPER_DIR} = $dir;
61         } else {
62                 delete $ENV{SOCKET_WRAPPER_DIR};
63         }
64
65         return $dir;
66 }
67
68 sub setup_pcap($)
69 {
70         my ($pcap_file) = @_;
71
72         $ENV{SOCKET_WRAPPER_PCAP_FILE} = $pcap_file;
73 }
74
75 sub set_default_iface($)
76 {
77         my ($i) = @_;
78         $ENV{SOCKET_WRAPPER_DEFAULT_IFACE} = $i;
79 }
80
81 1;