removed Makefile from svn
support for scenario switching
This commit is contained in:
@@ -1,532 +0,0 @@
|
|||||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
|
||||||
# src/dumm/Makefile. Generated from Makefile.in by configure.
|
|
||||||
|
|
||||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
|
||||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
|
||||||
# This Makefile.in is free software; the Free Software Foundation
|
|
||||||
# gives unlimited permission to copy and/or distribute it,
|
|
||||||
# with or without modifications, as long as this notice is preserved.
|
|
||||||
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
|
||||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
||||||
# PARTICULAR PURPOSE.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pkgdatadir = $(datadir)/strongswan
|
|
||||||
pkglibdir = $(libdir)/strongswan
|
|
||||||
pkgincludedir = $(includedir)/strongswan
|
|
||||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
|
||||||
install_sh_DATA = $(install_sh) -c -m 644
|
|
||||||
install_sh_PROGRAM = $(install_sh) -c
|
|
||||||
install_sh_SCRIPT = $(install_sh) -c
|
|
||||||
INSTALL_HEADER = $(INSTALL_DATA)
|
|
||||||
transform = $(program_transform_name)
|
|
||||||
NORMAL_INSTALL = :
|
|
||||||
PRE_INSTALL = :
|
|
||||||
POST_INSTALL = :
|
|
||||||
NORMAL_UNINSTALL = :
|
|
||||||
PRE_UNINSTALL = :
|
|
||||||
POST_UNINSTALL = :
|
|
||||||
build_triplet = i686-pc-linux-gnu
|
|
||||||
host_triplet = i686-pc-linux-gnu
|
|
||||||
ipsec_PROGRAMS = dumm$(EXEEXT)
|
|
||||||
subdir = src/dumm
|
|
||||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
|
||||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
|
||||||
am__aclocal_m4_deps = $(top_srcdir)/configure.in
|
|
||||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|
||||||
$(ACLOCAL_M4)
|
|
||||||
mkinstalldirs = $(install_sh) -d
|
|
||||||
CONFIG_CLEAN_FILES =
|
|
||||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
|
||||||
am__vpath_adj = case $$p in \
|
|
||||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
|
||||||
*) f=$$p;; \
|
|
||||||
esac;
|
|
||||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
|
||||||
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(ipsecdir)"
|
|
||||||
libLTLIBRARIES_INSTALL = $(INSTALL)
|
|
||||||
LTLIBRARIES = $(lib_LTLIBRARIES)
|
|
||||||
libdumm_la_DEPENDENCIES =
|
|
||||||
am_libdumm_la_OBJECTS = dumm.lo guest.lo iface.lo bridge.lo \
|
|
||||||
mconsole.lo cowfs.lo
|
|
||||||
libdumm_la_OBJECTS = $(am_libdumm_la_OBJECTS)
|
|
||||||
ipsecPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
|
||||||
PROGRAMS = $(ipsec_PROGRAMS)
|
|
||||||
am_dumm_OBJECTS = main.$(OBJEXT)
|
|
||||||
dumm_OBJECTS = $(am_dumm_OBJECTS)
|
|
||||||
dumm_DEPENDENCIES =
|
|
||||||
DEFAULT_INCLUDES = -I.
|
|
||||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
|
||||||
am__depfiles_maybe = depfiles
|
|
||||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
|
||||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
|
||||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
|
||||||
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
|
||||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
|
||||||
CCLD = $(CC)
|
|
||||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
|
||||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
|
||||||
$(LDFLAGS) -o $@
|
|
||||||
SOURCES = $(libdumm_la_SOURCES) $(dumm_SOURCES)
|
|
||||||
DIST_SOURCES = $(libdumm_la_SOURCES) $(dumm_SOURCES)
|
|
||||||
ETAGS = etags
|
|
||||||
CTAGS = ctags
|
|
||||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
|
||||||
ACLOCAL = ${SHELL} /home/martin/strongswan/trunk/missing --run aclocal-1.10
|
|
||||||
AMTAR = ${SHELL} /home/martin/strongswan/trunk/missing --run tar
|
|
||||||
AR = ar
|
|
||||||
AUTOCONF = ${SHELL} /home/martin/strongswan/trunk/missing --run autoconf
|
|
||||||
AUTOHEADER = ${SHELL} /home/martin/strongswan/trunk/missing --run autoheader
|
|
||||||
AUTOMAKE = ${SHELL} /home/martin/strongswan/trunk/missing --run automake-1.10
|
|
||||||
AWK = mawk
|
|
||||||
CC = gcc
|
|
||||||
CCDEPMODE = depmode=gcc3
|
|
||||||
CFLAGS = -Wall -Wno-format -Wno-pointer-sign -Wno-strict-aliasing -g -O2
|
|
||||||
CPP = gcc -E
|
|
||||||
CPPFLAGS =
|
|
||||||
CXX = g++
|
|
||||||
CXXCPP = g++ -E
|
|
||||||
CXXDEPMODE = depmode=gcc3
|
|
||||||
CXXFLAGS = -g -O2
|
|
||||||
CYGPATH_W = echo
|
|
||||||
DEFS = -DPACKAGE_NAME=\"strongSwan\" -DPACKAGE_TARNAME=\"strongswan\" -DPACKAGE_VERSION=\"4.1.5\" -DPACKAGE_STRING=\"strongSwan\ 4.1.5\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"strongswan\" -DVERSION=\"4.1.5\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DPKCS11_DEFAULT_LIB=\"/usr/lib/opensc-pkcs11.so\" -DDEV_RANDOM=\"/dev/urandom\" -DRESOLV_CONF=\"/etc/resolv.conf\" -DDEV_URANDOM=\"/dev/urandom\" -DIPSEC_UID=0 -DIPSEC_GID=0 -DHAVE_DLFCN_H=1 -DYYTEXT_POINTER=1 -DHAVE_BACKTRACE=1 -DHAVE_GETIFADDRS=1 -DNO_CAPSET_DEFINED=1
|
|
||||||
DEPDIR = .deps
|
|
||||||
ECHO = echo
|
|
||||||
ECHO_C =
|
|
||||||
ECHO_N = -n
|
|
||||||
ECHO_T =
|
|
||||||
EGREP = /bin/grep -E
|
|
||||||
EXEEXT =
|
|
||||||
F77 =
|
|
||||||
FFLAGS =
|
|
||||||
GPERF = /usr/bin/gperf
|
|
||||||
GREP = /bin/grep
|
|
||||||
INSTALL = /usr/bin/install -c
|
|
||||||
INSTALL_DATA = ${INSTALL} -m 644
|
|
||||||
INSTALL_PROGRAM = ${INSTALL}
|
|
||||||
INSTALL_SCRIPT = ${INSTALL}
|
|
||||||
INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
|
|
||||||
LDFLAGS =
|
|
||||||
LEX = flex
|
|
||||||
LEXLIB = -lfl
|
|
||||||
LEX_OUTPUT_ROOT = lex.yy
|
|
||||||
LIBOBJS =
|
|
||||||
LIBS =
|
|
||||||
LIBTOOL = $(SHELL) $(top_builddir)/libtool
|
|
||||||
LINUX_HEADERS =
|
|
||||||
LN_S = ln -s
|
|
||||||
LTLIBOBJS =
|
|
||||||
MAKEINFO = ${SHELL} /home/martin/strongswan/trunk/missing --run makeinfo
|
|
||||||
MKDIR_P = /bin/mkdir -p
|
|
||||||
OBJEXT = o
|
|
||||||
PACKAGE = strongswan
|
|
||||||
PACKAGE_BUGREPORT =
|
|
||||||
PACKAGE_NAME = strongSwan
|
|
||||||
PACKAGE_STRING = strongSwan 4.1.5
|
|
||||||
PACKAGE_TARNAME = strongswan
|
|
||||||
PACKAGE_VERSION = 4.1.5
|
|
||||||
PATH_SEPARATOR = :
|
|
||||||
PERL = /usr/bin/perl
|
|
||||||
PKG_CONFIG =
|
|
||||||
RANLIB = ranlib
|
|
||||||
SET_MAKE =
|
|
||||||
SHELL = /bin/bash
|
|
||||||
STRIP = strip
|
|
||||||
VERSION = 4.1.5
|
|
||||||
YACC = bison -y
|
|
||||||
YFLAGS =
|
|
||||||
abs_builddir = /home/martin/strongswan/trunk/src/dumm
|
|
||||||
abs_srcdir = /home/martin/strongswan/trunk/src/dumm
|
|
||||||
abs_top_builddir = /home/martin/strongswan/trunk
|
|
||||||
abs_top_srcdir = /home/martin/strongswan/trunk
|
|
||||||
ac_ct_CC = gcc
|
|
||||||
ac_ct_CXX = g++
|
|
||||||
ac_ct_F77 =
|
|
||||||
am__include = include
|
|
||||||
am__leading_dot = .
|
|
||||||
am__quote =
|
|
||||||
am__tar = tar --format=ustar -chf - "$$tardir"
|
|
||||||
am__untar = tar -xf -
|
|
||||||
backenddir = ${exec_prefix}/libexec/ipsec/plugins/backends
|
|
||||||
bindir = ${exec_prefix}/bin
|
|
||||||
build = i686-pc-linux-gnu
|
|
||||||
build_alias =
|
|
||||||
build_cpu = i686
|
|
||||||
build_os = linux-gnu
|
|
||||||
build_vendor = pc
|
|
||||||
builddir = .
|
|
||||||
confdir = ${sysconfdir}
|
|
||||||
datadir = ${datarootdir}
|
|
||||||
datarootdir = ${prefix}/share
|
|
||||||
dbus_CFLAGS =
|
|
||||||
dbus_LIBS =
|
|
||||||
docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
|
|
||||||
dvidir = ${docdir}
|
|
||||||
eapdir = ${exec_prefix}/libexec/ipsec/plugins/eap
|
|
||||||
exec_prefix = ${prefix}
|
|
||||||
host = i686-pc-linux-gnu
|
|
||||||
host_alias =
|
|
||||||
host_cpu = i686
|
|
||||||
host_os = linux-gnu
|
|
||||||
host_vendor = pc
|
|
||||||
htmldir = ${docdir}
|
|
||||||
includedir = ${prefix}/include
|
|
||||||
infodir = ${datarootdir}/info
|
|
||||||
install_sh = $(SHELL) /home/martin/strongswan/trunk/install-sh
|
|
||||||
interfacedir = ${exec_prefix}/libexec/ipsec/plugins/interfaces
|
|
||||||
ipsecdir = ${exec_prefix}/libexec/ipsec
|
|
||||||
ipsecgid = 0
|
|
||||||
ipsecuid = 0
|
|
||||||
libdir = ${exec_prefix}/lib
|
|
||||||
libexecdir = ${exec_prefix}/libexec
|
|
||||||
linuxdir = ../include
|
|
||||||
localedir = ${datarootdir}/locale
|
|
||||||
localstatedir = ${prefix}/var
|
|
||||||
mandir = ${datarootdir}/man
|
|
||||||
mkdir_p = /bin/mkdir -p
|
|
||||||
oldincludedir = /usr/include
|
|
||||||
pdfdir = ${docdir}
|
|
||||||
piddir = /var/run
|
|
||||||
prefix = /usr/local
|
|
||||||
program_transform_name = s,x,x,
|
|
||||||
psdir = ${docdir}
|
|
||||||
sbindir = ${exec_prefix}/sbin
|
|
||||||
sharedstatedir = ${prefix}/com
|
|
||||||
srcdir = .
|
|
||||||
sysconfdir = /etc
|
|
||||||
target_alias =
|
|
||||||
top_builddir = ../..
|
|
||||||
top_srcdir = ../..
|
|
||||||
xml_CFLAGS =
|
|
||||||
xml_LIBS =
|
|
||||||
lib_LTLIBRARIES = libdumm.la
|
|
||||||
libdumm_la_SOURCES = dumm.c dumm.h guest.c guest.h iface.c iface.h bridge.c bridge.h mconsole.c mconsole.h cowfs.h cowfs.c
|
|
||||||
dumm_SOURCES = main.c
|
|
||||||
libdumm_la_LIBADD = -lstrongswan -lpthread -lbridge -lfuse
|
|
||||||
dumm_LDADD = -ldumm -lreadline
|
|
||||||
INCLUDES = -I$(top_srcdir)/src/libstrongswan
|
|
||||||
AM_CFLAGS = -D_FILE_OFFSET_BITS=64
|
|
||||||
all: all-am
|
|
||||||
|
|
||||||
.SUFFIXES:
|
|
||||||
.SUFFIXES: .c .lo .o .obj
|
|
||||||
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
|
||||||
@for dep in $?; do \
|
|
||||||
case '$(am__configure_deps)' in \
|
|
||||||
*$$dep*) \
|
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
|
||||||
&& exit 0; \
|
|
||||||
exit 1;; \
|
|
||||||
esac; \
|
|
||||||
done; \
|
|
||||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/dumm/Makefile'; \
|
|
||||||
cd $(top_srcdir) && \
|
|
||||||
$(AUTOMAKE) --gnu src/dumm/Makefile
|
|
||||||
.PRECIOUS: Makefile
|
|
||||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
|
||||||
@case '$?' in \
|
|
||||||
*config.status*) \
|
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
|
||||||
*) \
|
|
||||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
|
||||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
|
||||||
esac;
|
|
||||||
|
|
||||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
|
||||||
|
|
||||||
$(top_srcdir)/configure: $(am__configure_deps)
|
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
|
||||||
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
|
||||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
|
||||||
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
|
|
||||||
@$(NORMAL_INSTALL)
|
|
||||||
test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
|
|
||||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
|
||||||
if test -f $$p; then \
|
|
||||||
f=$(am__strip_dir) \
|
|
||||||
echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
|
|
||||||
$(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
|
|
||||||
else :; fi; \
|
|
||||||
done
|
|
||||||
|
|
||||||
uninstall-libLTLIBRARIES:
|
|
||||||
@$(NORMAL_UNINSTALL)
|
|
||||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
|
||||||
p=$(am__strip_dir) \
|
|
||||||
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
|
|
||||||
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
|
|
||||||
done
|
|
||||||
|
|
||||||
clean-libLTLIBRARIES:
|
|
||||||
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
|
|
||||||
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
|
|
||||||
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
|
||||||
test "$$dir" != "$$p" || dir=.; \
|
|
||||||
echo "rm -f \"$${dir}/so_locations\""; \
|
|
||||||
rm -f "$${dir}/so_locations"; \
|
|
||||||
done
|
|
||||||
libdumm.la: $(libdumm_la_OBJECTS) $(libdumm_la_DEPENDENCIES)
|
|
||||||
$(LINK) -rpath $(libdir) $(libdumm_la_OBJECTS) $(libdumm_la_LIBADD) $(LIBS)
|
|
||||||
install-ipsecPROGRAMS: $(ipsec_PROGRAMS)
|
|
||||||
@$(NORMAL_INSTALL)
|
|
||||||
test -z "$(ipsecdir)" || $(MKDIR_P) "$(DESTDIR)$(ipsecdir)"
|
|
||||||
@list='$(ipsec_PROGRAMS)'; for p in $$list; do \
|
|
||||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
|
||||||
if test -f $$p \
|
|
||||||
|| test -f $$p1 \
|
|
||||||
; then \
|
|
||||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
|
||||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(ipsecPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(ipsecdir)/$$f'"; \
|
|
||||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(ipsecPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(ipsecdir)/$$f" || exit 1; \
|
|
||||||
else :; fi; \
|
|
||||||
done
|
|
||||||
|
|
||||||
uninstall-ipsecPROGRAMS:
|
|
||||||
@$(NORMAL_UNINSTALL)
|
|
||||||
@list='$(ipsec_PROGRAMS)'; for p in $$list; do \
|
|
||||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
|
||||||
echo " rm -f '$(DESTDIR)$(ipsecdir)/$$f'"; \
|
|
||||||
rm -f "$(DESTDIR)$(ipsecdir)/$$f"; \
|
|
||||||
done
|
|
||||||
|
|
||||||
clean-ipsecPROGRAMS:
|
|
||||||
@list='$(ipsec_PROGRAMS)'; for p in $$list; do \
|
|
||||||
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
|
||||||
echo " rm -f $$p $$f"; \
|
|
||||||
rm -f $$p $$f ; \
|
|
||||||
done
|
|
||||||
dumm$(EXEEXT): $(dumm_OBJECTS) $(dumm_DEPENDENCIES)
|
|
||||||
@rm -f dumm$(EXEEXT)
|
|
||||||
$(LINK) $(dumm_OBJECTS) $(dumm_LDADD) $(LIBS)
|
|
||||||
|
|
||||||
mostlyclean-compile:
|
|
||||||
-rm -f *.$(OBJEXT)
|
|
||||||
|
|
||||||
distclean-compile:
|
|
||||||
-rm -f *.tab.c
|
|
||||||
|
|
||||||
include ./$(DEPDIR)/bridge.Plo
|
|
||||||
include ./$(DEPDIR)/cowfs.Plo
|
|
||||||
include ./$(DEPDIR)/dumm.Plo
|
|
||||||
include ./$(DEPDIR)/guest.Plo
|
|
||||||
include ./$(DEPDIR)/iface.Plo
|
|
||||||
include ./$(DEPDIR)/main.Po
|
|
||||||
include ./$(DEPDIR)/mconsole.Plo
|
|
||||||
|
|
||||||
.c.o:
|
|
||||||
$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
|
||||||
mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
|
||||||
# source='$<' object='$@' libtool=no \
|
|
||||||
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
|
|
||||||
# $(COMPILE) -c $<
|
|
||||||
|
|
||||||
.c.obj:
|
|
||||||
$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
|
||||||
mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
|
||||||
# source='$<' object='$@' libtool=no \
|
|
||||||
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
|
|
||||||
# $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
|
||||||
|
|
||||||
.c.lo:
|
|
||||||
$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
|
||||||
mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
|
||||||
# source='$<' object='$@' libtool=yes \
|
|
||||||
# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \
|
|
||||||
# $(LTCOMPILE) -c -o $@ $<
|
|
||||||
|
|
||||||
mostlyclean-libtool:
|
|
||||||
-rm -f *.lo
|
|
||||||
|
|
||||||
clean-libtool:
|
|
||||||
-rm -rf .libs _libs
|
|
||||||
|
|
||||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
|
||||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
||||||
unique=`for i in $$list; do \
|
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
||||||
done | \
|
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
|
||||||
END { for (i in files) print i; }'`; \
|
|
||||||
mkid -fID $$unique
|
|
||||||
tags: TAGS
|
|
||||||
|
|
||||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|
||||||
$(TAGS_FILES) $(LISP)
|
|
||||||
tags=; \
|
|
||||||
here=`pwd`; \
|
|
||||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
||||||
unique=`for i in $$list; do \
|
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
||||||
done | \
|
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
|
||||||
END { for (i in files) print i; }'`; \
|
|
||||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
|
||||||
test -n "$$unique" || unique=$$empty_fix; \
|
|
||||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
|
||||||
$$tags $$unique; \
|
|
||||||
fi
|
|
||||||
ctags: CTAGS
|
|
||||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
|
||||||
$(TAGS_FILES) $(LISP)
|
|
||||||
tags=; \
|
|
||||||
here=`pwd`; \
|
|
||||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
|
||||||
unique=`for i in $$list; do \
|
|
||||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
|
||||||
done | \
|
|
||||||
$(AWK) ' { files[$$0] = 1; } \
|
|
||||||
END { for (i in files) print i; }'`; \
|
|
||||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
|
||||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
|
||||||
$$tags $$unique
|
|
||||||
|
|
||||||
GTAGS:
|
|
||||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
|
||||||
&& cd $(top_srcdir) \
|
|
||||||
&& gtags -i $(GTAGS_ARGS) $$here
|
|
||||||
|
|
||||||
distclean-tags:
|
|
||||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
|
||||||
|
|
||||||
distdir: $(DISTFILES)
|
|
||||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|
||||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
|
||||||
list='$(DISTFILES)'; \
|
|
||||||
dist_files=`for file in $$list; do echo $$file; done | \
|
|
||||||
sed -e "s|^$$srcdirstrip/||;t" \
|
|
||||||
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
|
|
||||||
case $$dist_files in \
|
|
||||||
*/*) $(MKDIR_P) `echo "$$dist_files" | \
|
|
||||||
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
|
|
||||||
sort -u` ;; \
|
|
||||||
esac; \
|
|
||||||
for file in $$dist_files; do \
|
|
||||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
|
||||||
if test -d $$d/$$file; then \
|
|
||||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
|
||||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
|
||||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
|
||||||
fi; \
|
|
||||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
|
||||||
else \
|
|
||||||
test -f $(distdir)/$$file \
|
|
||||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
|
||||||
|| exit 1; \
|
|
||||||
fi; \
|
|
||||||
done
|
|
||||||
check-am: all-am
|
|
||||||
check: check-am
|
|
||||||
all-am: Makefile $(LTLIBRARIES) $(PROGRAMS)
|
|
||||||
installdirs:
|
|
||||||
for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(ipsecdir)"; do \
|
|
||||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
|
||||||
done
|
|
||||||
install: install-am
|
|
||||||
install-exec: install-exec-am
|
|
||||||
install-data: install-data-am
|
|
||||||
uninstall: uninstall-am
|
|
||||||
|
|
||||||
install-am: all-am
|
|
||||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
|
||||||
|
|
||||||
installcheck: installcheck-am
|
|
||||||
install-strip:
|
|
||||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
|
||||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
|
||||||
`test -z '$(STRIP)' || \
|
|
||||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
|
||||||
mostlyclean-generic:
|
|
||||||
|
|
||||||
clean-generic:
|
|
||||||
|
|
||||||
distclean-generic:
|
|
||||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
|
||||||
|
|
||||||
maintainer-clean-generic:
|
|
||||||
@echo "This command is intended for maintainers to use"
|
|
||||||
@echo "it deletes files that may require special tools to rebuild."
|
|
||||||
clean: clean-am
|
|
||||||
|
|
||||||
clean-am: clean-generic clean-ipsecPROGRAMS clean-libLTLIBRARIES \
|
|
||||||
clean-libtool mostlyclean-am
|
|
||||||
|
|
||||||
distclean: distclean-am
|
|
||||||
-rm -rf ./$(DEPDIR)
|
|
||||||
-rm -f Makefile
|
|
||||||
distclean-am: clean-am distclean-compile distclean-generic \
|
|
||||||
distclean-tags
|
|
||||||
|
|
||||||
dvi: dvi-am
|
|
||||||
|
|
||||||
dvi-am:
|
|
||||||
|
|
||||||
html: html-am
|
|
||||||
|
|
||||||
info: info-am
|
|
||||||
|
|
||||||
info-am:
|
|
||||||
|
|
||||||
install-data-am: install-ipsecPROGRAMS
|
|
||||||
|
|
||||||
install-dvi: install-dvi-am
|
|
||||||
|
|
||||||
install-exec-am: install-libLTLIBRARIES
|
|
||||||
|
|
||||||
install-html: install-html-am
|
|
||||||
|
|
||||||
install-info: install-info-am
|
|
||||||
|
|
||||||
install-man:
|
|
||||||
|
|
||||||
install-pdf: install-pdf-am
|
|
||||||
|
|
||||||
install-ps: install-ps-am
|
|
||||||
|
|
||||||
installcheck-am:
|
|
||||||
|
|
||||||
maintainer-clean: maintainer-clean-am
|
|
||||||
-rm -rf ./$(DEPDIR)
|
|
||||||
-rm -f Makefile
|
|
||||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
|
||||||
|
|
||||||
mostlyclean: mostlyclean-am
|
|
||||||
|
|
||||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
|
||||||
mostlyclean-libtool
|
|
||||||
|
|
||||||
pdf: pdf-am
|
|
||||||
|
|
||||||
pdf-am:
|
|
||||||
|
|
||||||
ps: ps-am
|
|
||||||
|
|
||||||
ps-am:
|
|
||||||
|
|
||||||
uninstall-am: uninstall-ipsecPROGRAMS uninstall-libLTLIBRARIES
|
|
||||||
|
|
||||||
.MAKE: install-am install-strip
|
|
||||||
|
|
||||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
|
||||||
clean-ipsecPROGRAMS clean-libLTLIBRARIES clean-libtool ctags \
|
|
||||||
distclean distclean-compile distclean-generic \
|
|
||||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
|
||||||
html-am info info-am install install-am install-data \
|
|
||||||
install-data-am install-dvi install-dvi-am install-exec \
|
|
||||||
install-exec-am install-html install-html-am install-info \
|
|
||||||
install-info-am install-ipsecPROGRAMS install-libLTLIBRARIES \
|
|
||||||
install-man install-pdf install-pdf-am install-ps \
|
|
||||||
install-ps-am install-strip installcheck installcheck-am \
|
|
||||||
installdirs maintainer-clean maintainer-clean-generic \
|
|
||||||
mostlyclean mostlyclean-compile mostlyclean-generic \
|
|
||||||
mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
|
|
||||||
uninstall-am uninstall-ipsecPROGRAMS uninstall-libLTLIBRARIES
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
||||||
.NOEXPORT:
|
|
||||||
+15
-4
@@ -795,18 +795,29 @@ static struct fuse_operations cowfs_operations = {
|
|||||||
/**
|
/**
|
||||||
* Implementation of cowfs_t.set_scenario.
|
* Implementation of cowfs_t.set_scenario.
|
||||||
*/
|
*/
|
||||||
static void set_scenario(private_cowfs_t *this, char *path)
|
static bool set_scenario(private_cowfs_t *this, char *path)
|
||||||
{
|
{
|
||||||
if (this->scen)
|
if (this->scen)
|
||||||
{
|
{
|
||||||
free(this->scen);
|
free(this->scen);
|
||||||
|
this->scen = NULL;
|
||||||
}
|
}
|
||||||
if (this->scen_fd > 0)
|
if (this->scen_fd > 0)
|
||||||
{
|
{
|
||||||
close(this->scen_fd);
|
close(this->scen_fd);
|
||||||
|
this->scen_fd = -1;
|
||||||
}
|
}
|
||||||
this->scen = strdup(path);
|
if (path)
|
||||||
this->scen_fd = open(path, O_RDONLY | O_DIRECTORY);
|
{
|
||||||
|
this->scen_fd = open(path, O_RDONLY | O_DIRECTORY);
|
||||||
|
if (this->scen_fd < 0)
|
||||||
|
{
|
||||||
|
DBG1("failed to open scenario overlay directory '%s': %m", path);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
this->scen = strdup(path);
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -839,7 +850,7 @@ cowfs_t *cowfs_create(char *master, char *host, char *mount)
|
|||||||
struct fuse_args args = {0, NULL, 0};
|
struct fuse_args args = {0, NULL, 0};
|
||||||
private_cowfs_t *this = malloc_thing(private_cowfs_t);
|
private_cowfs_t *this = malloc_thing(private_cowfs_t);
|
||||||
|
|
||||||
this->public.set_scenario = (void(*)(cowfs_t*, char *path))set_scenario;
|
this->public.set_scenario = (bool(*)(cowfs_t*, char *path))set_scenario;
|
||||||
this->public.destroy = (void(*)(cowfs_t*))destroy;
|
this->public.destroy = (void(*)(cowfs_t*))destroy;
|
||||||
|
|
||||||
this->master_fd = open(master, O_RDONLY | O_DIRECTORY);
|
this->master_fd = open(master, O_RDONLY | O_DIRECTORY);
|
||||||
|
|||||||
+3
-1
@@ -16,6 +16,7 @@
|
|||||||
#ifndef COWFS_H
|
#ifndef COWFS_H
|
||||||
#define COWFS_H
|
#define COWFS_H
|
||||||
|
|
||||||
|
#include <library.h>
|
||||||
|
|
||||||
typedef struct cowfs_t cowfs_t;
|
typedef struct cowfs_t cowfs_t;
|
||||||
|
|
||||||
@@ -29,8 +30,9 @@ struct cowfs_t {
|
|||||||
* @brief Set the scenario copy on write overlay.
|
* @brief Set the scenario copy on write overlay.
|
||||||
*
|
*
|
||||||
* @param path path of the overlay
|
* @param path path of the overlay
|
||||||
|
* @return FALSE if failed
|
||||||
*/
|
*/
|
||||||
void (*set_scenario)(cowfs_t *this, char *path);
|
bool (*set_scenario)(cowfs_t *this, char *path);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Stop, umount and destroy a cowfs FUSE filesystem.
|
* @brief Stop, umount and destroy a cowfs FUSE filesystem.
|
||||||
|
|||||||
+30
-20
@@ -104,7 +104,9 @@ static iterator_t* create_bridge_iterator(private_dumm_t *this)
|
|||||||
return this->bridges->create_iterator(this->bridges, TRUE);
|
return this->bridges->create_iterator(this->bridges, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* disable the currently enabled scenario
|
||||||
|
*/
|
||||||
static void clear_scenario(private_dumm_t *this)
|
static void clear_scenario(private_dumm_t *this)
|
||||||
{
|
{
|
||||||
iterator_t *iterator;
|
iterator_t *iterator;
|
||||||
@@ -130,42 +132,50 @@ static bool load_scenario(private_dumm_t *this, char *name)
|
|||||||
guest_t *guest;
|
guest_t *guest;
|
||||||
char dir[PATH_MAX];
|
char dir[PATH_MAX];
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
|
if (name == NULL)
|
||||||
|
{
|
||||||
|
clear_scenario(this);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
free(this->scenario);
|
free(this->scenario);
|
||||||
asprintf(&this->scenario, "%s/%s", this->scenario_dir, name);
|
asprintf(&this->scenario, "%s/%s", this->scenario_dir, name);
|
||||||
|
mkdir(this->scenario_dir, PERME);
|
||||||
|
|
||||||
if (access(this->scenario, F_OK) == 0)
|
len = snprintf(dir, sizeof(dir), "%s/%s", this->scenario, SCENARIO_DIFF_DIR);
|
||||||
{ /* exists, load scenario */
|
if (len < 0 || len >= sizeof(dir))
|
||||||
DBG1("scenario loading unimplemented.");
|
{
|
||||||
|
clear_scenario(this);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
if (access(this->scenario, F_OK) != 0)
|
||||||
{ /* does not exist, create scenario */
|
{ /* does not exist, create scenario */
|
||||||
if (mkdir(this->scenario, PERME) != 0)
|
if (mkdir(this->scenario, PERME) != 0)
|
||||||
{
|
{
|
||||||
DBG1("creating scenario directory '%s' failed: %m", this->scenario);
|
DBG1("creating scenario directory '%s' failed: %m", this->scenario);
|
||||||
clear_scenario(this);
|
clear_scenario(this);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
len = snprintf(dir, sizeof(dir), "%s/%s/%s", this->scenario,
|
if (mkdir(dir, PERME) != 0)
|
||||||
SCENARIO_DIR, SCENARIO_DIFF_DIR);
|
|
||||||
if (len < 0 || len >= sizeof(dir))
|
|
||||||
{
|
{
|
||||||
|
DBG1("creating scenario overlay directory '%s' failed: %m", dir);
|
||||||
clear_scenario(this);
|
clear_scenario(this);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
iterator = this->guests->create_iterator(this->guests, TRUE);
|
|
||||||
while (iterator->iterate(iterator, (void**)&guest))
|
|
||||||
{
|
|
||||||
if (!guest->set_scenario(guest, dir))
|
|
||||||
{
|
|
||||||
iterator->destroy(iterator);
|
|
||||||
clear_scenario(this);
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
iterator->destroy(iterator);
|
|
||||||
}
|
}
|
||||||
|
iterator = this->guests->create_iterator(this->guests, TRUE);
|
||||||
|
while (iterator->iterate(iterator, (void**)&guest))
|
||||||
|
{
|
||||||
|
if (!guest->set_scenario(guest, dir))
|
||||||
|
{
|
||||||
|
iterator->destroy(iterator);
|
||||||
|
clear_scenario(this);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
iterator->destroy(iterator);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+6
-2
@@ -259,6 +259,11 @@ static bool set_scenario(private_guest_t *this, char *path)
|
|||||||
char dir[PATH_MAX];
|
char dir[PATH_MAX];
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
|
if (path == NULL)
|
||||||
|
{
|
||||||
|
return this->cowfs->set_scenario(this->cowfs, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
len = snprintf(dir, sizeof(dir), "%s/%s", path, this->name);
|
len = snprintf(dir, sizeof(dir), "%s/%s", path, this->name);
|
||||||
if (len < 0 || len >= sizeof(dir))
|
if (len < 0 || len >= sizeof(dir))
|
||||||
{
|
{
|
||||||
@@ -272,8 +277,7 @@ static bool set_scenario(private_guest_t *this, char *path)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->cowfs->set_scenario(this->cowfs, dir);
|
return this->cowfs->set_scenario(this->cowfs, dir);
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
+27
-1
@@ -158,6 +158,7 @@ static void guest_addif_menu(guest_t *guest)
|
|||||||
{
|
{
|
||||||
printf("creating interface failed\n");
|
printf("creating interface failed\n");
|
||||||
}
|
}
|
||||||
|
free(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void guest_delif_menu(guest_t *guest)
|
static void guest_delif_menu(guest_t *guest)
|
||||||
@@ -186,6 +187,7 @@ static void guest_delif_menu(guest_t *guest)
|
|||||||
{
|
{
|
||||||
printf("interface '%s' not found\n");
|
printf("interface '%s' not found\n");
|
||||||
}
|
}
|
||||||
|
free(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void guest_menu(guest_t *guest)
|
static void guest_menu(guest_t *guest)
|
||||||
@@ -252,6 +254,10 @@ static void guest_create_menu()
|
|||||||
{
|
{
|
||||||
printf("failed to create guest '%s'\n", name);
|
printf("failed to create guest '%s'\n", name);
|
||||||
}
|
}
|
||||||
|
free(name);
|
||||||
|
free(kernel);
|
||||||
|
free(master);
|
||||||
|
free(mem);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void guest_list_menu()
|
static void guest_list_menu()
|
||||||
@@ -314,6 +320,8 @@ static void bridge_addif_menu(bridge_t *bridge)
|
|||||||
printf("failed to add interface '%s' to bridge '%s'\n", ifname,
|
printf("failed to add interface '%s' to bridge '%s'\n", ifname,
|
||||||
bridge->get_name(bridge));
|
bridge->get_name(bridge));
|
||||||
}
|
}
|
||||||
|
free(name);
|
||||||
|
free(ifname);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bridge_delif_menu(bridge_t *bridge)
|
static void bridge_delif_menu(bridge_t *bridge)
|
||||||
@@ -334,6 +342,8 @@ static void bridge_delif_menu(bridge_t *bridge)
|
|||||||
printf("failed to remove interface '%s' from bridge '%s'\n", ifname,
|
printf("failed to remove interface '%s' from bridge '%s'\n", ifname,
|
||||||
bridge->get_name(bridge));
|
bridge->get_name(bridge));
|
||||||
}
|
}
|
||||||
|
free(name);
|
||||||
|
free(ifname);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bridge_menu(bridge_t *bridge)
|
static void bridge_menu(bridge_t *bridge)
|
||||||
@@ -392,6 +402,7 @@ static void bridge_create_menu()
|
|||||||
{
|
{
|
||||||
printf("failed to create bridge '%s'\n", name);
|
printf("failed to create bridge '%s'\n", name);
|
||||||
}
|
}
|
||||||
|
free(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bridge_list_menu()
|
static void bridge_list_menu()
|
||||||
@@ -436,6 +447,17 @@ static void bridge_list_menu()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void scenario_menu()
|
||||||
|
{
|
||||||
|
char *name;
|
||||||
|
|
||||||
|
name = get_line("scenario name (or 'none'): ");
|
||||||
|
|
||||||
|
dumm->load_scenario(dumm, streq(name, "none") ? NULL : name);
|
||||||
|
|
||||||
|
free(name);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Signal handler
|
* Signal handler
|
||||||
*/
|
*/
|
||||||
@@ -508,9 +530,13 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
bridge_list_menu();
|
bridge_list_menu();
|
||||||
}
|
}
|
||||||
|
else if (streq(line, "scenario"))
|
||||||
|
{
|
||||||
|
scenario_menu();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
printf("quit|guest|bridge\n");
|
printf("quit|guest|bridge|scenario\n");
|
||||||
}
|
}
|
||||||
free(line);
|
free(line);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user