first commit

This commit is contained in:
2020-01-11 09:50:39 -05:00
commit dab8d58edb
620 changed files with 355397 additions and 0 deletions
View File
+246
View File
@@ -0,0 +1,246 @@
srcdir = /home/oameye/coregrade/coregrade/src
builddir = /home/oameye/coregrade/coregrade/src
top_srcdir = /home/oameye/coregrade/coregrade/src
top_builddir = /home/oameye/coregrade/coregrade/src
EGREP = /bin/grep -E
SED = /bin/sed
CONFIGURE_COMMAND = './configure' '--enable-coregrade_api'
CONFIGURE_OPTIONS = '--enable-coregrade_api'
SHLIB_SUFFIX_NAME = so
SHLIB_DL_SUFFIX_NAME = so
ZEND_EXT_TYPE = zend_extension
RE2C = exit 0;
AWK = gawk
COREGRADE_API_SHARED_LIBADD = -Wl,-rpath,/usr/lib64 -L/usr/lib64 -lpq -lstdc++ -lcurl -lconfig++ -lgsoapssl++ -lssl -lz
shared_objects_coregrade_api = core/XmlElements.lo core/XmlParser.lo core/cfg.lo core/cgi.lo core/clog.lo core/coregrade.lo core/coregrade_api.lo core/cvariables.lo core/exceptions.lo core/hmac_sha2.lo core/input.lo core/list.lo core/pgsql.lo core/pgsql_wrapper.lo core/safestring.lo core/sha2.lo core/sha512.lo core/smtp.lo core/timer.lo core/util.lo core/vars.lo shared_tool/account.lo shared_tool/coregrade_api_main.lo shared_tool/email.lo shared_tool/envC.lo shared_tool/groups.lo shared_tool/interswitch.lo shared_tool/interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy.lo shared_tool/interswitchC.lo shared_tool/interswitch_sendmoney.lo shared_tool/namespaces.lo shared_tool/paylid.lo shared_tool/paylidC.lo shared_tool/paylidpaylidwsdlBindingProxy.lo shared_tool/storeface.lo shared_tool/topups.lo
PHP_PECL_EXTENSION = coregrade_api
PHP_MODULES = $(phplibdir)/coregrade_api.la
PHP_ZEND_EX =
all_targets = $(PHP_MODULES) $(PHP_ZEND_EX)
install_targets = install-modules install-headers
prefix = /usr
exec_prefix = $(prefix)
libdir = ${exec_prefix}/lib
prefix = /usr
phplibdir = /home/oameye/coregrade/coregrade/src/modules
phpincludedir = /usr/include/php
CC = cc
CFLAGS = -g -O2
CFLAGS_CLEAN = $(CFLAGS)
CPP = cc -E
CPPFLAGS = -DHAVE_CONFIG_H
CXX = g++
CXXFLAGS = -g -O2
CXXFLAGS_CLEAN = $(CXXFLAGS)
EXTENSION_DIR = /usr/lib64/php/modules
PHP_EXECUTABLE = /usr/bin/php
EXTRA_LDFLAGS =
EXTRA_LIBS =
INCLUDES = -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -I/usr/include/pgsql
LFLAGS =
LDFLAGS = -Wl,-rpath,/home/oameye/coregrade/coregrade/src/libconfig-1.3.1/.libs/ -L/home/oameye/coregrade/coregrade/src/libconfig-1.3.1/.libs/
SHARED_LIBTOOL =
LIBTOOL = $(SHELL) $(top_builddir)/libtool
SHELL = /bin/sh
INSTALL_HEADERS =
mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
INSTALL = $(top_srcdir)/build/shtool install -c
INSTALL_DATA = $(INSTALL) -m 644
DEFS = -DPHP_ATOM_INC -I$(top_builddir)/include -I$(top_builddir)/main -I$(top_srcdir)
COMMON_FLAGS = $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(PHP_FRAMEWORKPATH)
all: $(all_targets)
@echo
@echo "Build complete."
@echo "Don't forget to run 'make test'."
@echo
build-modules: $(PHP_MODULES) $(PHP_ZEND_EX)
build-binaries: $(PHP_BINARIES)
libphp$(PHP_MAJOR_VERSION).la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
-@$(LIBTOOL) --silent --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1
libs/libphp$(PHP_MAJOR_VERSION).bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp$(PHP_MAJOR_VERSION).so
install: $(all_targets) $(install_targets)
install-sapi: $(OVERALL_TARGET)
@echo "Installing PHP SAPI module: $(PHP_SAPI)"
-@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
-@if test ! -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); then \
for i in 0.0.0 0.0 0; do \
if test -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i; then \
$(LN_S) $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); \
break; \
fi; \
done; \
fi
@$(INSTALL_IT)
install-binaries: build-binaries $(install_binary_targets)
install-modules: build-modules
@test -d modules && \
$(mkinstalldirs) $(INSTALL_ROOT)$(EXTENSION_DIR)
@echo "Installing shared extensions: $(INSTALL_ROOT)$(EXTENSION_DIR)/"
@rm -f modules/*.la >/dev/null 2>&1
@$(INSTALL) modules/* $(INSTALL_ROOT)$(EXTENSION_DIR)
install-headers:
-@if test "$(INSTALL_HEADERS)"; then \
for i in `echo $(INSTALL_HEADERS)`; do \
i=`$(top_srcdir)/build/shtool path -d $$i`; \
paths="$$paths $(INSTALL_ROOT)$(phpincludedir)/$$i"; \
done; \
$(mkinstalldirs) $$paths && \
echo "Installing header files: $(INSTALL_ROOT)$(phpincludedir)/" && \
for i in `echo $(INSTALL_HEADERS)`; do \
if test "$(PHP_PECL_EXTENSION)"; then \
src=`echo $$i | $(SED) -e "s#ext/$(PHP_PECL_EXTENSION)/##g"`; \
else \
src=$$i; \
fi; \
if test -f "$(top_srcdir)/$$src"; then \
$(INSTALL_DATA) $(top_srcdir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
elif test -f "$(top_builddir)/$$src"; then \
$(INSTALL_DATA) $(top_builddir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
else \
(cd $(top_srcdir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i; \
cd $(top_builddir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i) 2>/dev/null || true; \
fi \
done; \
fi
PHP_TEST_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1'
PHP_TEST_SHARED_EXTENSIONS = ` \
if test "x$(PHP_MODULES)" != "x"; then \
for i in $(PHP_MODULES)""; do \
. $$i; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
done; \
fi; \
if test "x$(PHP_ZEND_EX)" != "x"; then \
for i in $(PHP_ZEND_EX)""; do \
. $$i; $(top_srcdir)/build/shtool echo -n -- " -d $(ZEND_EXT_TYPE)=$(top_builddir)/modules/$$dlname"; \
done; \
fi`
PHP_DEPRECATED_DIRECTIVES_REGEX = '^(magic_quotes_(gpc|runtime|sybase)?|(zend_)?extension(_debug)?(_ts)?)[\t\ ]*='
test: all
-@if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \
INI_FILE=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r 'echo php_ini_loaded_file();' 2> /dev/null`; \
if test "$$INI_FILE"; then \
$(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
else \
echo > $(top_builddir)/tmp-php.ini; \
fi; \
INI_SCANNED_PATH=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r '$$a = explode(",\n", trim(php_ini_scanned_files())); echo $$a[0];' 2> /dev/null`; \
if test "$$INI_SCANNED_PATH"; then \
INI_SCANNED_PATH=`$(top_srcdir)/build/shtool path -d $$INI_SCANNED_PATH`; \
$(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_SCANNED_PATH"/*.ini >> $(top_builddir)/tmp-php.ini; \
fi; \
TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
$(PHP_EXECUTABLE) -n -c $(top_builddir)/tmp-php.ini $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
rm $(top_builddir)/tmp-php.ini; \
else \
echo "ERROR: Cannot run tests without CLI sapi."; \
fi
clean:
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(OVERALL_TARGET) modules/* libs/*
distclean: clean
rm -f Makefile config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h stamp-h sapi/apache/libphp$(PHP_MAJOR_VERSION).module buildmk.stamp
$(EGREP) define'.*include/php' $(top_srcdir)/configure | $(SED) 's/.*>//'|xargs rm -f
.PHONY: all clean install distclean test
.NOEXPORT:
core/XmlElements.lo: /home/oameye/coregrade/coregrade/src/core/XmlElements.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/XmlElements.cc -o core/XmlElements.lo
core/XmlParser.lo: /home/oameye/coregrade/coregrade/src/core/XmlParser.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/XmlParser.cc -o core/XmlParser.lo
core/cfg.lo: /home/oameye/coregrade/coregrade/src/core/cfg.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/cfg.cc -o core/cfg.lo
core/cgi.lo: /home/oameye/coregrade/coregrade/src/core/cgi.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/cgi.cc -o core/cgi.lo
core/clog.lo: /home/oameye/coregrade/coregrade/src/core/clog.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/clog.cc -o core/clog.lo
core/coregrade.lo: /home/oameye/coregrade/coregrade/src/core/coregrade.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/coregrade.cc -o core/coregrade.lo
core/coregrade_api.lo: /home/oameye/coregrade/coregrade/src/core/coregrade_api.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/coregrade_api.cc -o core/coregrade_api.lo
core/cvariables.lo: /home/oameye/coregrade/coregrade/src/core/cvariables.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/cvariables.cc -o core/cvariables.lo
core/exceptions.lo: /home/oameye/coregrade/coregrade/src/core/exceptions.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/exceptions.cc -o core/exceptions.lo
core/hmac_sha2.lo: /home/oameye/coregrade/coregrade/src/core/hmac_sha2.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/hmac_sha2.cc -o core/hmac_sha2.lo
core/input.lo: /home/oameye/coregrade/coregrade/src/core/input.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/input.cc -o core/input.lo
core/list.lo: /home/oameye/coregrade/coregrade/src/core/list.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/list.cc -o core/list.lo
core/pgsql.lo: /home/oameye/coregrade/coregrade/src/core/pgsql.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/pgsql.cc -o core/pgsql.lo
core/pgsql_wrapper.lo: /home/oameye/coregrade/coregrade/src/core/pgsql_wrapper.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/pgsql_wrapper.cc -o core/pgsql_wrapper.lo
core/safestring.lo: /home/oameye/coregrade/coregrade/src/core/safestring.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/safestring.cc -o core/safestring.lo
core/sha2.lo: /home/oameye/coregrade/coregrade/src/core/sha2.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/sha2.cc -o core/sha2.lo
core/sha512.lo: /home/oameye/coregrade/coregrade/src/core/sha512.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/sha512.cc -o core/sha512.lo
core/smtp.lo: /home/oameye/coregrade/coregrade/src/core/smtp.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/smtp.cc -o core/smtp.lo
core/timer.lo: /home/oameye/coregrade/coregrade/src/core/timer.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/timer.cc -o core/timer.lo
core/util.lo: /home/oameye/coregrade/coregrade/src/core/util.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/util.cc -o core/util.lo
core/vars.lo: /home/oameye/coregrade/coregrade/src/core/vars.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/vars.cc -o core/vars.lo
shared_tool/account.lo: /home/oameye/coregrade/coregrade/src/shared_tool/account.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/account.cc -o shared_tool/account.lo
shared_tool/coregrade_api_main.lo: /home/oameye/coregrade/coregrade/src/shared_tool/coregrade_api_main.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/coregrade_api_main.cc -o shared_tool/coregrade_api_main.lo
shared_tool/email.lo: /home/oameye/coregrade/coregrade/src/shared_tool/email.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/email.cc -o shared_tool/email.lo
shared_tool/envC.lo: /home/oameye/coregrade/coregrade/src/shared_tool/envC.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/envC.cc -o shared_tool/envC.lo
shared_tool/groups.lo: /home/oameye/coregrade/coregrade/src/shared_tool/groups.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/groups.cc -o shared_tool/groups.lo
shared_tool/interswitch.lo: /home/oameye/coregrade/coregrade/src/shared_tool/interswitch.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/interswitch.cc -o shared_tool/interswitch.lo
shared_tool/interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy.lo: /home/oameye/coregrade/coregrade/src/shared_tool/interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy.cc -o shared_tool/interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy.lo
shared_tool/interswitchC.lo: /home/oameye/coregrade/coregrade/src/shared_tool/interswitchC.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/interswitchC.cc -o shared_tool/interswitchC.lo
shared_tool/interswitch_sendmoney.lo: /home/oameye/coregrade/coregrade/src/shared_tool/interswitch_sendmoney.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/interswitch_sendmoney.cc -o shared_tool/interswitch_sendmoney.lo
shared_tool/namespaces.lo: /home/oameye/coregrade/coregrade/src/shared_tool/namespaces.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/namespaces.cc -o shared_tool/namespaces.lo
shared_tool/paylid.lo: /home/oameye/coregrade/coregrade/src/shared_tool/paylid.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/paylid.cc -o shared_tool/paylid.lo
shared_tool/paylidC.lo: /home/oameye/coregrade/coregrade/src/shared_tool/paylidC.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/paylidC.cc -o shared_tool/paylidC.lo
shared_tool/paylidpaylidwsdlBindingProxy.lo: /home/oameye/coregrade/coregrade/src/shared_tool/paylidpaylidwsdlBindingProxy.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/paylidpaylidwsdlBindingProxy.cc -o shared_tool/paylidpaylidwsdlBindingProxy.lo
shared_tool/storeface.lo: /home/oameye/coregrade/coregrade/src/shared_tool/storeface.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/storeface.cc -o shared_tool/storeface.lo
shared_tool/topups.lo: /home/oameye/coregrade/coregrade/src/shared_tool/topups.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/topups.cc -o shared_tool/topups.lo
$(phplibdir)/coregrade_api.la: ./coregrade_api.la
$(LIBTOOL) --mode=install cp ./coregrade_api.la $(phplibdir)
./coregrade_api.la: $(shared_objects_coregrade_api) $(COREGRADE_API_SHARED_DEPENDENCIES)
$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) -o $@ -export-dynamic -avoid-version -prefer-pic -module -rpath $(phplibdir) $(EXTRA_LDFLAGS) $(shared_objects_coregrade_api) $(COREGRADE_API_SHARED_LIBADD)
View File
+123
View File
@@ -0,0 +1,123 @@
mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
INSTALL = $(top_srcdir)/build/shtool install -c
INSTALL_DATA = $(INSTALL) -m 644
DEFS = -DPHP_ATOM_INC -I$(top_builddir)/include -I$(top_builddir)/main -I$(top_srcdir)
COMMON_FLAGS = $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(PHP_FRAMEWORKPATH)
all: $(all_targets)
@echo
@echo "Build complete."
@echo "Don't forget to run 'make test'."
@echo
build-modules: $(PHP_MODULES) $(PHP_ZEND_EX)
build-binaries: $(PHP_BINARIES)
libphp$(PHP_MAJOR_VERSION).la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
-@$(LIBTOOL) --silent --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1
libs/libphp$(PHP_MAJOR_VERSION).bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp$(PHP_MAJOR_VERSION).so
install: $(all_targets) $(install_targets)
install-sapi: $(OVERALL_TARGET)
@echo "Installing PHP SAPI module: $(PHP_SAPI)"
-@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
-@if test ! -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); then \
for i in 0.0.0 0.0 0; do \
if test -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i; then \
$(LN_S) $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); \
break; \
fi; \
done; \
fi
@$(INSTALL_IT)
install-binaries: build-binaries $(install_binary_targets)
install-modules: build-modules
@test -d modules && \
$(mkinstalldirs) $(INSTALL_ROOT)$(EXTENSION_DIR)
@echo "Installing shared extensions: $(INSTALL_ROOT)$(EXTENSION_DIR)/"
@rm -f modules/*.la >/dev/null 2>&1
@$(INSTALL) modules/* $(INSTALL_ROOT)$(EXTENSION_DIR)
install-headers:
-@if test "$(INSTALL_HEADERS)"; then \
for i in `echo $(INSTALL_HEADERS)`; do \
i=`$(top_srcdir)/build/shtool path -d $$i`; \
paths="$$paths $(INSTALL_ROOT)$(phpincludedir)/$$i"; \
done; \
$(mkinstalldirs) $$paths && \
echo "Installing header files: $(INSTALL_ROOT)$(phpincludedir)/" && \
for i in `echo $(INSTALL_HEADERS)`; do \
if test "$(PHP_PECL_EXTENSION)"; then \
src=`echo $$i | $(SED) -e "s#ext/$(PHP_PECL_EXTENSION)/##g"`; \
else \
src=$$i; \
fi; \
if test -f "$(top_srcdir)/$$src"; then \
$(INSTALL_DATA) $(top_srcdir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
elif test -f "$(top_builddir)/$$src"; then \
$(INSTALL_DATA) $(top_builddir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
else \
(cd $(top_srcdir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i; \
cd $(top_builddir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i) 2>/dev/null || true; \
fi \
done; \
fi
PHP_TEST_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1'
PHP_TEST_SHARED_EXTENSIONS = ` \
if test "x$(PHP_MODULES)" != "x"; then \
for i in $(PHP_MODULES)""; do \
. $$i; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
done; \
fi; \
if test "x$(PHP_ZEND_EX)" != "x"; then \
for i in $(PHP_ZEND_EX)""; do \
. $$i; $(top_srcdir)/build/shtool echo -n -- " -d $(ZEND_EXT_TYPE)=$(top_builddir)/modules/$$dlname"; \
done; \
fi`
PHP_DEPRECATED_DIRECTIVES_REGEX = '^(magic_quotes_(gpc|runtime|sybase)?|(zend_)?extension(_debug)?(_ts)?)[\t\ ]*='
test: all
-@if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \
INI_FILE=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r 'echo php_ini_loaded_file();' 2> /dev/null`; \
if test "$$INI_FILE"; then \
$(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
else \
echo > $(top_builddir)/tmp-php.ini; \
fi; \
INI_SCANNED_PATH=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r '$$a = explode(",\n", trim(php_ini_scanned_files())); echo $$a[0];' 2> /dev/null`; \
if test "$$INI_SCANNED_PATH"; then \
INI_SCANNED_PATH=`$(top_srcdir)/build/shtool path -d $$INI_SCANNED_PATH`; \
$(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_SCANNED_PATH"/*.ini >> $(top_builddir)/tmp-php.ini; \
fi; \
TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
$(PHP_EXECUTABLE) -n -c $(top_builddir)/tmp-php.ini $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
rm $(top_builddir)/tmp-php.ini; \
else \
echo "ERROR: Cannot run tests without CLI sapi."; \
fi
clean:
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(OVERALL_TARGET) modules/* libs/*
distclean: clean
rm -f Makefile config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h stamp-h sapi/apache/libphp$(PHP_MAJOR_VERSION).module buildmk.stamp
$(EGREP) define'.*include/php' $(top_srcdir)/configure | $(SED) 's/.*>//'|xargs rm -f
.PHONY: all clean install distclean test
.NOEXPORT:
+78
View File
@@ -0,0 +1,78 @@
core/XmlElements.lo: /home/oameye/coregrade/coregrade/src/core/XmlElements.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/XmlElements.cc -o core/XmlElements.lo
core/XmlParser.lo: /home/oameye/coregrade/coregrade/src/core/XmlParser.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/XmlParser.cc -o core/XmlParser.lo
core/cfg.lo: /home/oameye/coregrade/coregrade/src/core/cfg.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/cfg.cc -o core/cfg.lo
core/cgi.lo: /home/oameye/coregrade/coregrade/src/core/cgi.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/cgi.cc -o core/cgi.lo
core/clog.lo: /home/oameye/coregrade/coregrade/src/core/clog.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/clog.cc -o core/clog.lo
core/coregrade.lo: /home/oameye/coregrade/coregrade/src/core/coregrade.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/coregrade.cc -o core/coregrade.lo
core/coregrade_api.lo: /home/oameye/coregrade/coregrade/src/core/coregrade_api.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/coregrade_api.cc -o core/coregrade_api.lo
core/cvariables.lo: /home/oameye/coregrade/coregrade/src/core/cvariables.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/cvariables.cc -o core/cvariables.lo
core/exceptions.lo: /home/oameye/coregrade/coregrade/src/core/exceptions.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/exceptions.cc -o core/exceptions.lo
core/hmac_sha2.lo: /home/oameye/coregrade/coregrade/src/core/hmac_sha2.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/hmac_sha2.cc -o core/hmac_sha2.lo
core/input.lo: /home/oameye/coregrade/coregrade/src/core/input.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/input.cc -o core/input.lo
core/list.lo: /home/oameye/coregrade/coregrade/src/core/list.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/list.cc -o core/list.lo
core/pgsql.lo: /home/oameye/coregrade/coregrade/src/core/pgsql.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/pgsql.cc -o core/pgsql.lo
core/pgsql_wrapper.lo: /home/oameye/coregrade/coregrade/src/core/pgsql_wrapper.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/pgsql_wrapper.cc -o core/pgsql_wrapper.lo
core/safestring.lo: /home/oameye/coregrade/coregrade/src/core/safestring.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/safestring.cc -o core/safestring.lo
core/sha2.lo: /home/oameye/coregrade/coregrade/src/core/sha2.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/sha2.cc -o core/sha2.lo
core/sha512.lo: /home/oameye/coregrade/coregrade/src/core/sha512.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/sha512.cc -o core/sha512.lo
core/smtp.lo: /home/oameye/coregrade/coregrade/src/core/smtp.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/smtp.cc -o core/smtp.lo
core/timer.lo: /home/oameye/coregrade/coregrade/src/core/timer.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/timer.cc -o core/timer.lo
core/util.lo: /home/oameye/coregrade/coregrade/src/core/util.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/util.cc -o core/util.lo
core/vars.lo: /home/oameye/coregrade/coregrade/src/core/vars.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/core/vars.cc -o core/vars.lo
shared_tool/account.lo: /home/oameye/coregrade/coregrade/src/shared_tool/account.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/account.cc -o shared_tool/account.lo
shared_tool/coregrade_api_main.lo: /home/oameye/coregrade/coregrade/src/shared_tool/coregrade_api_main.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/coregrade_api_main.cc -o shared_tool/coregrade_api_main.lo
shared_tool/email.lo: /home/oameye/coregrade/coregrade/src/shared_tool/email.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/email.cc -o shared_tool/email.lo
shared_tool/envC.lo: /home/oameye/coregrade/coregrade/src/shared_tool/envC.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/envC.cc -o shared_tool/envC.lo
shared_tool/groups.lo: /home/oameye/coregrade/coregrade/src/shared_tool/groups.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/groups.cc -o shared_tool/groups.lo
shared_tool/interswitch.lo: /home/oameye/coregrade/coregrade/src/shared_tool/interswitch.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/interswitch.cc -o shared_tool/interswitch.lo
shared_tool/interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy.lo: /home/oameye/coregrade/coregrade/src/shared_tool/interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy.cc -o shared_tool/interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy.lo
shared_tool/interswitchC.lo: /home/oameye/coregrade/coregrade/src/shared_tool/interswitchC.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/interswitchC.cc -o shared_tool/interswitchC.lo
shared_tool/interswitch_sendmoney.lo: /home/oameye/coregrade/coregrade/src/shared_tool/interswitch_sendmoney.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/interswitch_sendmoney.cc -o shared_tool/interswitch_sendmoney.lo
shared_tool/namespaces.lo: /home/oameye/coregrade/coregrade/src/shared_tool/namespaces.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/namespaces.cc -o shared_tool/namespaces.lo
shared_tool/paylid.lo: /home/oameye/coregrade/coregrade/src/shared_tool/paylid.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/paylid.cc -o shared_tool/paylid.lo
shared_tool/paylidC.lo: /home/oameye/coregrade/coregrade/src/shared_tool/paylidC.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/paylidC.cc -o shared_tool/paylidC.lo
shared_tool/paylidpaylidwsdlBindingProxy.lo: /home/oameye/coregrade/coregrade/src/shared_tool/paylidpaylidwsdlBindingProxy.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/paylidpaylidwsdlBindingProxy.cc -o shared_tool/paylidpaylidwsdlBindingProxy.lo
shared_tool/storeface.lo: /home/oameye/coregrade/coregrade/src/shared_tool/storeface.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/storeface.cc -o shared_tool/storeface.lo
shared_tool/topups.lo: /home/oameye/coregrade/coregrade/src/shared_tool/topups.cc
$(LIBTOOL) --mode=compile $(CXX) -I/home/oameye/coregrade/coregrade/src/libconfig-1.3.1 -I. -I/home/oameye/coregrade/coregrade/src $(COMMON_FLAGS) $(CXXFLAGS_CLEAN) $(EXTRA_CXXFLAGS) -c /home/oameye/coregrade/coregrade/src/shared_tool/topups.cc -o shared_tool/topups.lo
$(phplibdir)/coregrade_api.la: ./coregrade_api.la
$(LIBTOOL) --mode=install cp ./coregrade_api.la $(phplibdir)
./coregrade_api.la: $(shared_objects_coregrade_api) $(COREGRADE_API_SHARED_DEPENDENCIES)
$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) -o $@ -export-dynamic -avoid-version -prefer-pic -module -rpath $(phplibdir) $(EXTRA_LDFLAGS) $(shared_objects_coregrade_api) $(COREGRADE_API_SHARED_LIBADD)
File diff suppressed because it is too large Load Diff
+11587
View File
File diff suppressed because it is too large Load Diff
+8614
View File
File diff suppressed because it is too large Load Diff
+75
View File
@@ -0,0 +1,75 @@
# +----------------------------------------------------------------------+
# | PHP Version 5 |
# +----------------------------------------------------------------------+
# | Copyright (c) 2000-2006 The PHP Group |
# +----------------------------------------------------------------------+
# | This source file is subject to version 3.01 of the PHP license, |
# | that is bundled with this package in the file LICENSE, and is |
# | available through the world-wide-web at the following url: |
# | http://www.php.net/license/3_01.txt |
# | If you did not receive a copy of the PHP license and are unable to |
# | obtain it through the world-wide-web, please send a note to |
# | license@php.net so we can mail you a copy immediately. |
# +----------------------------------------------------------------------+
# | Author: Sascha Schumann <sascha@schumann.cx> |
# +----------------------------------------------------------------------+
#
# $Id$
#
# Usage:
#
# echo top_srcdir top_builddir srcdir CPP [CPP-ARGS] filenames | \
# awk -f mkdep.awk > dependencies
{
top_srcdir=$1
top_builddir=$2
srcdir=$3
cmd=$4
for (i = 5; i <= NF; i++) {
if (match($i, "^-[A-Z]") == 0)
break;
cmd=cmd " " $i
}
dif=i-1
for (; i <= NF; i++)
filenames[i-dif]=$i
no_files=NF-dif
for(i = 1; i <= no_files; i++) {
if (system("test -r " filenames[i]) != 0)
continue
target=filenames[i]
sub(srcdir "/", "", target)
target2=target
sub("\.(c|cpp)$", ".lo", target);
sub("\.(c|cpp)$", ".slo", target2);
for (e in used)
delete used[e]
cmdx=cmd " " filenames[i]
done=0
while ((cmdx | getline) > 0) {
if (match($0, "^# [0-9]* \".*\.h\"") != 0) {
if (sub(top_srcdir, "$(top_srcdir)", $3) == 0)
sub(top_builddir, "$(top_builddir)", $3)
if (substr($3,2,1) != "/" && used[$3] != 1) {
if (done == 0)
printf(target " " target2 ":")
done=1
printf(" \\\n\t" substr($3,2,length($3)-2))
used[$3] = 1;
}
}
}
if (done == 1)
print "\n"
}
}
+32
View File
@@ -0,0 +1,32 @@
BEGIN {
mode=0
sources=""
}
mode == 0 && /^LTLIBRARY_SOURCES.*\\$/ {
if (match($0, "[^=]*$")) {
sources=substr($0, RSTART, RLENGTH-1)
}
mode=1
next
}
mode == 0 && /^LTLIBRARY_SOURCES.*/ {
if (match($0, "[^=]*$")) {
sources=substr($0, RSTART, RLENGTH)
}
}
mode == 1 && /.*\\$/ {
sources=sources substr($0, 0, length - 1)
next
}
mode == 1 {
sources=sources $0
mode=0
}
END {
print sources
}
+1807
View File
File diff suppressed because it is too large Load Diff
+20
View File
@@ -0,0 +1,20 @@
/* confdefs.h */
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#define COMPILE_DL_COREGRADE_API 1
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
Vendored Executable
+1558
View File
File diff suppressed because it is too large Load Diff
+63
View File
@@ -0,0 +1,63 @@
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.in by autoheader. */
/* Whether to build coregrade_api as dynamic module */
#define COMPILE_DL_COREGRADE_API 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#define LT_OBJDIR ".libs/"
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
/* #undef NO_MINUS_C_MINUS_O */
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""
/* Define to the full name of this package. */
#define PACKAGE_NAME ""
/* Define to the full name and version of this package. */
#define PACKAGE_STRING ""
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME ""
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION ""
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
+62
View File
@@ -0,0 +1,62 @@
/* config.h.in. Generated from configure.in by autoheader. */
/* Whether to build coregrade_api as dynamic module */
#undef COMPILE_DL_COREGRADE_API
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
#undef NO_MINUS_C_MINUS_O
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the home page for this package. */
#undef PACKAGE_URL
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
+761
View File
@@ -0,0 +1,761 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by configure, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ ./configure --enable-coregrade_api
## --------- ##
## Platform. ##
## --------- ##
hostname = localhost.localdomain
uname -m = x86_64
uname -r = 3.10.0-1062.9.1.el7.x86_64
uname -s = Linux
uname -v = #1 SMP Fri Dec 6 15:49:49 UTC 2019
/usr/bin/uname -p = x86_64
/bin/uname -X = unknown
/bin/arch = x86_64
/usr/bin/arch -k = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo = unknown
/bin/machine = unknown
/usr/bin/oslevel = unknown
/bin/universe = unknown
PATH: /usr/local/bin
PATH: /bin
PATH: /usr/bin
PATH: /usr/local/sbin
PATH: /usr/sbin
PATH: /home/oameye/.local/bin
PATH: /home/oameye/bin
## ----------- ##
## Core tests. ##
## ----------- ##
configure:2209: checking for grep that handles long lines and -e
configure:2267: result: /bin/grep
configure:2272: checking for egrep
configure:2334: result: /bin/grep -E
configure:2339: checking for a sed that does not truncate output
configure:2403: result: /bin/sed
configure:2537: checking for cc
configure:2553: found /bin/cc
configure:2564: result: cc
configure:2595: checking for C compiler version
configure:2604: cc --version >&5
cc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:2615: $? = 0
configure:2604: cc -v >&5
Using built-in specs.
COLLECT_GCC=cc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
configure:2615: $? = 0
configure:2604: cc -V >&5
cc: error: unrecognized command line option '-V'
cc: fatal error: no input files
compilation terminated.
configure:2615: $? = 4
configure:2604: cc -qversion >&5
cc: error: unrecognized command line option '-qversion'
cc: fatal error: no input files
compilation terminated.
configure:2615: $? = 4
configure:2635: checking whether the C compiler works
configure:2657: cc conftest.c >&5
configure:2661: $? = 0
configure:2709: result: yes
configure:2712: checking for C compiler default output file name
configure:2714: result: a.out
configure:2720: checking for suffix of executables
configure:2727: cc -o conftest conftest.c >&5
configure:2731: $? = 0
configure:2753: result:
configure:2775: checking whether we are cross compiling
configure:2783: cc -o conftest conftest.c >&5
configure:2787: $? = 0
configure:2794: ./conftest
configure:2798: $? = 0
configure:2813: result: no
configure:2818: checking for suffix of object files
configure:2840: cc -c conftest.c >&5
configure:2844: $? = 0
configure:2865: result: o
configure:2869: checking whether we are using the GNU C compiler
configure:2888: cc -c conftest.c >&5
configure:2888: $? = 0
configure:2897: result: yes
configure:2906: checking whether cc accepts -g
configure:2926: cc -c -g conftest.c >&5
configure:2926: $? = 0
configure:2967: result: yes
configure:2984: checking for cc option to accept ISO C89
configure:3047: cc -c -g -O2 conftest.c >&5
configure:3047: $? = 0
configure:3060: result: none needed
configure:3086: checking how to run the C preprocessor
configure:3117: cc -E conftest.c
configure:3117: $? = 0
configure:3131: cc -E conftest.c
conftest.c:9:28: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^
compilation terminated.
configure:3131: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:3156: result: cc -E
configure:3176: cc -E conftest.c
configure:3176: $? = 0
configure:3190: cc -E conftest.c
conftest.c:9:28: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^
compilation terminated.
configure:3190: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:3221: checking for icc
configure:3230: result: no
configure:3244: checking for suncc
configure:3253: result: no
configure:3271: checking whether cc understands -c and -o together
configure:3299: cc -c conftest.c -o conftest2.o >&5
configure:3303: $? = 0
configure:3309: cc -c conftest.c -o conftest2.o >&5
configure:3313: $? = 0
configure:3368: result: yes
configure:3382: checking for system library directory
configure:3397: result: lib
configure:3404: checking if compiler supports -R
configure:3423: cc -o conftest -g -O2 conftest.c -R /usr/lib >&5
cc: error: unrecognized command line option '-R'
configure:3423: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:3433: result: no
configure:3438: checking if compiler supports -Wl,-rpath,
configure:3457: cc -o conftest -g -O2 conftest.c -Wl,-rpath,/usr/lib >&5
configure:3457: $? = 0
configure:3467: result: yes
configure:3512: checking build system type
configure:3526: result: x86_64-unknown-linux-gnu
configure:3546: checking host system type
configure:3559: result: x86_64-unknown-linux-gnu
configure:3579: checking target system type
configure:3592: result: x86_64-unknown-linux-gnu
configure:3695: checking for PHP prefix
configure:3697: result: /usr
configure:3699: checking for PHP includes
configure:3701: result: -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib
configure:3703: checking for PHP extension directory
configure:3705: result: /usr/lib64/php/modules
configure:3707: checking for PHP installed headers prefix
configure:3709: result: /usr/include/php
configure:3712: checking if debug is enabled
configure:3738: result: no
configure:3741: checking if zts is enabled
configure:3767: result: no
configure:3838: checking for re2c
configure:3868: result: no
configure:3893: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.
configure:3907: checking for gawk
configure:3924: found /bin/gawk
configure:3935: result: gawk
configure:3978: checking Whether to enable the "coregrade_api" extension
configure:4017: result: yes, shared
configure:4084: checking for g++
configure:4100: found /bin/g++
configure:4111: result: g++
configure:4138: checking for C++ compiler version
configure:4147: g++ --version >&5
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
configure:4158: $? = 0
configure:4147: g++ -v >&5
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
configure:4158: $? = 0
configure:4147: g++ -V >&5
g++: error: unrecognized command line option '-V'
g++: fatal error: no input files
compilation terminated.
configure:4158: $? = 4
configure:4147: g++ -qversion >&5
g++: error: unrecognized command line option '-qversion'
g++: fatal error: no input files
compilation terminated.
configure:4158: $? = 4
configure:4162: checking whether we are using the GNU C++ compiler
configure:4181: g++ -c conftest.cpp >&5
configure:4181: $? = 0
configure:4190: result: yes
configure:4199: checking whether g++ accepts -g
configure:4219: g++ -c -g conftest.cpp >&5
configure:4219: $? = 0
configure:4260: result: yes
configure:4288: checking how to run the C++ preprocessor
configure:4315: g++ -E conftest.cpp
configure:4315: $? = 0
configure:4329: g++ -E conftest.cpp
conftest.cpp:9:28: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^
compilation terminated.
configure:4329: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:4354: result: g++ -E
configure:4374: g++ -E conftest.cpp
configure:4374: $? = 0
configure:4388: g++ -E conftest.cpp
conftest.cpp:9:28: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^
compilation terminated.
configure:4388: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:5112: checking how to print strings
configure:5139: result: printf
configure:5160: checking for a sed that does not truncate output
configure:5224: result: /bin/sed
configure:5242: checking for fgrep
configure:5304: result: /bin/grep -F
configure:5339: checking for ld used by cc
configure:5406: result: /bin/ld
configure:5413: checking if the linker (/bin/ld) is GNU ld
configure:5428: result: yes
configure:5440: checking for BSD- or MS-compatible name lister (nm)
configure:5489: result: /bin/nm -B
configure:5619: checking the name lister (/bin/nm -B) interface
configure:5626: cc -c -g -O2 conftest.c >&5
configure:5629: /bin/nm -B "conftest.o"
configure:5632: output
0000000000000000 B some_variable
configure:5639: result: BSD nm
configure:5642: checking whether ln -s works
configure:5646: result: yes
configure:5654: checking the maximum length of command line arguments
configure:5784: result: 1572864
configure:5801: checking whether the shell understands some XSI constructs
configure:5811: result: yes
configure:5815: checking whether the shell understands "+="
configure:5821: result: yes
configure:5856: checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format
configure:5896: result: func_convert_file_noop
configure:5903: checking how to convert x86_64-unknown-linux-gnu file names to toolchain format
configure:5923: result: func_convert_file_noop
configure:5930: checking for /bin/ld option to reload object files
configure:5937: result: -r
configure:6011: checking for objdump
configure:6027: found /bin/objdump
configure:6038: result: objdump
configure:6070: checking how to recognize dependent libraries
configure:6272: result: pass_all
configure:6357: checking for dlltool
configure:6387: result: no
configure:6417: checking how to associate runtime and link libraries
configure:6444: result: printf %s\n
configure:6504: checking for ar
configure:6520: found /bin/ar
configure:6531: result: ar
configure:6568: checking for archiver @FILE support
configure:6585: cc -c -g -O2 conftest.c >&5
configure:6585: $? = 0
configure:6588: ar cru libconftest.a @conftest.lst >&5
configure:6591: $? = 0
configure:6596: ar cru libconftest.a @conftest.lst >&5
ar: conftest.o: No such file or directory
configure:6599: $? = 1
configure:6611: result: @
configure:6669: checking for strip
configure:6685: found /bin/strip
configure:6696: result: strip
configure:6768: checking for ranlib
configure:6784: found /bin/ranlib
configure:6795: result: ranlib
configure:6872: checking for gawk
configure:6899: result: gawk
configure:6939: checking command to parse /bin/nm -B output from cc object
configure:7059: cc -c -g -O2 conftest.c >&5
configure:7062: $? = 0
configure:7066: /bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm
configure:7069: $? = 0
configure:7135: cc -o conftest -g -O2 -Wl,-rpath,/home/oameye/coregrade/coregrade/src/libconfig-1.3.1/.libs/ -L/home/oameye/coregrade/coregrade/src/libconfig-1.3.1/.libs/ conftest.c conftstm.o >&5
configure:7138: $? = 0
configure:7176: result: ok
configure:7213: checking for sysroot
configure:7243: result: no
configure:7320: cc -c -g -O2 conftest.c >&5
configure:7323: $? = 0
configure:7499: checking for mt
configure:7529: result: no
configure:7549: checking if : is a manifest tool
configure:7555: : '-?'
configure:7563: result: no
configure:8200: checking for ANSI C header files
configure:8220: cc -c -g -O2 conftest.c >&5
configure:8220: $? = 0
configure:8293: cc -o conftest -g -O2 -Wl,-rpath,/home/oameye/coregrade/coregrade/src/libconfig-1.3.1/.libs/ -L/home/oameye/coregrade/coregrade/src/libconfig-1.3.1/.libs/ conftest.c -lconfig++ -lstdc++ >&5
configure:8293: $? = 0
configure:8293: ./conftest
configure:8293: $? = 0
configure:8304: result: yes
configure:8317: checking for sys/types.h
configure:8317: cc -c -g -O2 conftest.c >&5
configure:8317: $? = 0
configure:8317: result: yes
configure:8317: checking for sys/stat.h
configure:8317: cc -c -g -O2 conftest.c >&5
configure:8317: $? = 0
configure:8317: result: yes
configure:8317: checking for stdlib.h
configure:8317: cc -c -g -O2 conftest.c >&5
configure:8317: $? = 0
configure:8317: result: yes
configure:8317: checking for string.h
configure:8317: cc -c -g -O2 conftest.c >&5
configure:8317: $? = 0
configure:8317: result: yes
configure:8317: checking for memory.h
configure:8317: cc -c -g -O2 conftest.c >&5
configure:8317: $? = 0
configure:8317: result: yes
configure:8317: checking for strings.h
configure:8317: cc -c -g -O2 conftest.c >&5
configure:8317: $? = 0
configure:8317: result: yes
configure:8317: checking for inttypes.h
configure:8317: cc -c -g -O2 conftest.c >&5
configure:8317: $? = 0
configure:8317: result: yes
configure:8317: checking for stdint.h
configure:8317: cc -c -g -O2 conftest.c >&5
configure:8317: $? = 0
configure:8317: result: yes
configure:8317: checking for unistd.h
configure:8317: cc -c -g -O2 conftest.c >&5
configure:8317: $? = 0
configure:8317: result: yes
configure:8331: checking for dlfcn.h
configure:8331: cc -c -g -O2 conftest.c >&5
configure:8331: $? = 0
configure:8331: result: yes
configure:8548: checking for objdir
configure:8563: result: .libs
configure:8834: checking if cc supports -fno-rtti -fno-exceptions
configure:8852: cc -c -g -O2 -fno-rtti -fno-exceptions conftest.c >&5
cc1: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C [enabled by default]
configure:8856: $? = 0
configure:8869: result: no
configure:9196: checking for cc option to produce PIC
configure:9203: result: -fPIC -DPIC
configure:9211: checking if cc PIC flag -fPIC -DPIC works
configure:9229: cc -c -g -O2 -fPIC -DPIC -DPIC conftest.c >&5
configure:9233: $? = 0
configure:9246: result: yes
configure:9275: checking if cc static flag -static works
configure:9303: result: no
configure:9318: checking if cc supports -c -o file.o
configure:9339: cc -c -g -O2 -o out/conftest2.o conftest.c >&5
configure:9343: $? = 0
configure:9365: result: yes
configure:9373: checking if cc supports -c -o file.o
configure:9420: result: yes
configure:9453: checking whether the cc linker (/bin/ld -m elf_x86_64) supports shared libraries
configure:10606: result: yes
configure:10643: checking whether -lc should be explicitly linked in
configure:10651: cc -c -g -O2 conftest.c >&5
configure:10654: $? = 0
configure:10669: cc -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep -lc \>/dev/null 2\>\&1
configure:10672: $? = 0
configure:10686: result: no
configure:10846: checking dynamic linker characteristics
configure:11357: cc -o conftest -g -O2 -Wl,-rpath,/home/oameye/coregrade/coregrade/src/libconfig-1.3.1/.libs/ -L/home/oameye/coregrade/coregrade/src/libconfig-1.3.1/.libs/ -Wl,-rpath -Wl,/foo conftest.c -lconfig++ -lstdc++ >&5
configure:11357: $? = 0
configure:11583: result: GNU/Linux ld.so
configure:11690: checking how to hardcode library paths into programs
configure:11715: result: immediate
configure:12255: checking whether stripping libraries is possible
configure:12260: result: yes
configure:12295: checking if libtool supports shared libraries
configure:12297: result: yes
configure:12300: checking whether to build shared libraries
configure:12321: result: yes
configure:12324: checking whether to build static libraries
configure:12328: result: no
configure:12351: checking how to run the C++ preprocessor
configure:12417: result: g++ -E
configure:12437: g++ -E conftest.cpp
configure:12437: $? = 0
configure:12451: g++ -E conftest.cpp
conftest.cpp:22:28: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^
compilation terminated.
configure:12451: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| #define COMPILE_DL_COREGRADE_API 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h. */
| #include <ac_nonexistent.h>
configure:12620: checking for ld used by g++
configure:12687: result: /bin/ld -m elf_x86_64
configure:12694: checking if the linker (/bin/ld -m elf_x86_64) is GNU ld
configure:12709: result: yes
configure:12764: checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries
configure:13769: result: yes
configure:13805: g++ -c -g -O2 conftest.cpp >&5
configure:13808: $? = 0
configure:14328: checking for g++ option to produce PIC
configure:14335: result: -fPIC -DPIC
configure:14343: checking if g++ PIC flag -fPIC -DPIC works
configure:14361: g++ -c -g -O2 -fPIC -DPIC -DPIC conftest.cpp >&5
configure:14365: $? = 0
configure:14378: result: yes
configure:14401: checking if g++ static flag -static works
configure:14429: result: no
configure:14441: checking if g++ supports -c -o file.o
configure:14462: g++ -c -g -O2 -o out/conftest2.o conftest.cpp >&5
configure:14466: $? = 0
configure:14488: result: yes
configure:14493: checking if g++ supports -c -o file.o
configure:14540: result: yes
configure:14570: checking whether the g++ linker (/bin/ld -m elf_x86_64) supports shared libraries
configure:14606: result: yes
configure:14747: checking dynamic linker characteristics
configure:15418: result: GNU/Linux ld.so
configure:15471: checking how to hardcode library paths into programs
configure:15496: result: immediate
configure:15796: creating ./config.status
## ---------------------- ##
## Running config.status. ##
## ---------------------- ##
This file was extended by config.status, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES =
CONFIG_HEADERS =
CONFIG_LINKS =
CONFIG_COMMANDS =
$ ./config.status
on localhost.localdomain
config.status:942: creating config.h
config.status:1032: config.h is unchanged
config.status:1046: executing libtool commands
## ---------------- ##
## Cache variables. ##
## ---------------- ##
ac_cv_build=x86_64-unknown-linux-gnu
ac_cv_c_compiler_gnu=yes
ac_cv_cxx_compiler_gnu=yes
ac_cv_env_CCC_set=
ac_cv_env_CCC_value=
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_CXXCPP_set=
ac_cv_env_CXXCPP_value=
ac_cv_env_CXXFLAGS_set=
ac_cv_env_CXXFLAGS_value=
ac_cv_env_CXX_set=
ac_cv_env_CXX_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_header_dlfcn_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_memory_h=yes
ac_cv_header_stdc=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=x86_64-unknown-linux-gnu
ac_cv_objext=o
ac_cv_path_EGREP='/bin/grep -E'
ac_cv_path_FGREP='/bin/grep -F'
ac_cv_path_GREP=/bin/grep
ac_cv_path_SED=/bin/sed
ac_cv_prog_AWK=gawk
ac_cv_prog_CPP='cc -E'
ac_cv_prog_CXXCPP='g++ -E'
ac_cv_prog_ac_ct_AR=ar
ac_cv_prog_ac_ct_CC=cc
ac_cv_prog_ac_ct_CXX=g++
ac_cv_prog_ac_ct_OBJDUMP=objdump
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_ac_ct_STRIP=strip
ac_cv_prog_cc_c89=
ac_cv_prog_cc_cc_c_o=yes
ac_cv_prog_cc_g=yes
ac_cv_prog_cxx_g=yes
ac_cv_target=x86_64-unknown-linux-gnu
lt_cv_ar_at_file=@
lt_cv_archive_cmds_need_lc=no
lt_cv_deplibs_check_method=pass_all
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_ld_reload_flag=-r
lt_cv_nm_interface='BSD nm'
lt_cv_objdir=.libs
lt_cv_path_LD=/bin/ld
lt_cv_path_LDCXX='/bin/ld -m elf_x86_64'
lt_cv_path_NM='/bin/nm -B'
lt_cv_path_mainfest_tool=no
lt_cv_prog_compiler_c_o=yes
lt_cv_prog_compiler_c_o_CXX=yes
lt_cv_prog_compiler_pic='-fPIC -DPIC'
lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC'
lt_cv_prog_compiler_pic_works=yes
lt_cv_prog_compiler_pic_works_CXX=yes
lt_cv_prog_compiler_rtti_exceptions=no
lt_cv_prog_compiler_static_works=no
lt_cv_prog_compiler_static_works_CXX=no
lt_cv_prog_gnu_ld=yes
lt_cv_prog_gnu_ldcxx=yes
lt_cv_sharedlib_from_linklib_cmd='printf %s\n'
lt_cv_shlibpath_overrides_runpath=no
lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\'''
lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \([^ ]*\)[ ]*$/ {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"\2", (void *) \&\2},/p'\'''
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \([^ ]*\)[ ]*$/ {\"\1\", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \(lib[^ ]*\)$/ {"\2", (void *) \&\2},/p'\'' -e '\''s/^[ABCDGIRSTW]* \([^ ]*\) \([^ ]*\)$/ {"lib\2", (void *) \&\2},/p'\'''
lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
lt_cv_sys_max_cmd_len=1572864
lt_cv_to_host_file_cmd=func_convert_file_noop
lt_cv_to_tool_file_cmd=func_convert_file_noop
php_cv_cc_dashr=no
php_cv_cc_rpath=yes
## ----------------- ##
## Output variables. ##
## ----------------- ##
AR='ar'
AWK='gawk'
CC='cc'
CFLAGS='-g -O2'
CONFIGURE_COMMAND=' '\''./configure'\'' '\''--enable-coregrade_api'\'''
CONFIGURE_OPTIONS=' '\''--enable-coregrade_api'\'''
CPP='cc -E'
CPPFLAGS=' -DHAVE_CONFIG_H'
CXX='g++'
CXXCPP='g++ -E'
CXXFLAGS='-g -O2'
DEFS='-DHAVE_CONFIG_H'
DLLTOOL='false'
DSYMUTIL=''
DUMPBIN=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/bin/grep -E'
EXEEXT=''
FGREP='/bin/grep -F'
GREP='/bin/grep'
LD='/bin/ld -m elf_x86_64'
LDFLAGS=' -Wl,-rpath,/home/oameye/coregrade/coregrade/src/libconfig-1.3.1/.libs/ -L/home/oameye/coregrade/coregrade/src/libconfig-1.3.1/.libs/'
LIBOBJS=''
LIBS='-lconfig++ -lstdc++ '
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
LIPO=''
LN_S='ln -s'
LTLIBOBJS=''
MANIFEST_TOOL=':'
NM='/bin/nm -B'
NMEDIT=''
OBJDUMP='objdump'
OBJEXT='o'
OTOOL64=''
OTOOL=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_URL=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
RANLIB='ranlib'
RE2C='exit 0;'
SED='/bin/sed'
SHELL='/bin/sh'
SHLIB_DL_SUFFIX_NAME='so'
SHLIB_SUFFIX_NAME='so'
STRIP='strip'
ac_ct_AR='ar'
ac_ct_CC='cc'
ac_ct_CXX='g++'
ac_ct_DUMPBIN=''
bindir='${exec_prefix}/bin'
build='x86_64-unknown-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='unknown'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE}'
dvidir='${docdir}'
exec_prefix='$(prefix)'
host='x86_64-unknown-linux-gnu'
host_alias='x86_64-unknown-linux-gnu'
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='unknown'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target='x86_64-unknown-linux-gnu'
target_alias=''
target_cpu='x86_64'
target_os='linux-gnu'
target_vendor='unknown'
## ----------- ##
## confdefs.h. ##
## ----------- ##
/* confdefs.h */
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#define COMPILE_DL_COREGRADE_API 1
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
configure: exit 0
+31
View File
@@ -0,0 +1,31 @@
PHP_ARG_ENABLE(coregrade_api,
[Whether to enable the "coregrade_api" extension],
[ --enable-coregrade_api Enable "coregrade_api" extension support])
if test $PHP_COREGRADE_API != "no"; then
PHP_REQUIRE_CXX()
PHP_SUBST(COREGRADE_API_SHARED_LIBADD)
PHP_ADD_LIBRARY(stdc++, 1, COREGRADE_API_SHARED_LIBADD)
PHP_ADD_INCLUDE(/usr/include/pgsql)
PHP_ADD_LIBRARY_WITH_PATH(pq, /usr/lib64, COREGRADE_API_SHARED_LIBADD)
PHP_ADD_LIBRARY(curl, 1, COREGRADE_API_SHARED_LIBADD)
PHP_ADD_LIBRARY(config++, 1, COREGRADE_API_SHARED_LIBADD)
PHP_ADD_LIBRARY(gsoapssl++, 1, COREGRADE_API_SHARED_LIBADD)
PHP_ADD_LIBRARY(ssl, 1, COREGRADE_API_SHARED_LIBADD)
PHP_ADD_LIBRARY(z, 1, COREGRADE_API_SHARED_LIBADD)
LIBCFG_DIR="`pwd`/libconfig-1.3.1"
PHP_ADD_LIBRARY_WITH_PATH(config++, "$LIBCFG_DIR/.libs/")
PHP_NEW_EXTENSION(
coregrade_api,
core/*.cc shared_tool/*.cc,
$ext_shared,
,-I@ext_srcdir@/libconfig-1.3.1)
PHP_DEFINE([COREGRADE_API_NS],[\"coregrade_api_`id -u -n`\"],[])
PHP_DEFINE([COREGRADE_CONFIG],[\"`pwd|sed s/src//`etc/\"],[])
PHP_DEFINE([COREGRADE_LOG],[\"`pwd|sed s/src//`logs/coregrade_api.log\"],[])
PHP_DEFINE([TMPL_PREFIX],[\"`pwd|sed s/src//`email/\"],[])
PHP_DEFINE([FILELOG_MAX_LEVEL],[9],[])
fi
+7
View File
@@ -0,0 +1,7 @@
#! /bin/sh
#
# Created by configure
'./configure' \
'--enable-coregrade_api' \
"$@"
+1855
View File
File diff suppressed because it is too large Load Diff
Vendored Executable
+1791
View File
File diff suppressed because it is too large Load Diff
Vendored Executable
+17887
View File
File diff suppressed because it is too large Load Diff
+202
View File
@@ -0,0 +1,202 @@
dnl This file becomes configure.in for self-contained extensions.
AC_PREREQ(2.59)
AC_INIT(config.m4)
ifdef([AC_PRESERVE_HELP_ORDER], [AC_PRESERVE_HELP_ORDER], [])
PHP_CONFIG_NICE(config.nice)
dnl
AC_DEFUN([PHP_EXT_BUILDDIR],[.])dnl
AC_DEFUN([PHP_EXT_DIR],[""])dnl
AC_DEFUN([PHP_EXT_SRCDIR],[$abs_srcdir])dnl
AC_DEFUN([PHP_ALWAYS_SHARED],[
ext_output="yes, shared"
ext_shared=yes
test "[$]$1" = "no" && $1=yes
])dnl
dnl
test -z "$CFLAGS" && auto_cflags=1
abs_srcdir=`(cd $srcdir && pwd)`
abs_builddir=`pwd`
AC_PROG_CC([cc gcc])
PHP_DETECT_ICC
PHP_DETECT_SUNCC
AC_PROG_CC_C_O
dnl Support systems with system libraries in e.g. /usr/lib64
PHP_ARG_WITH(libdir, for system library directory,
[ --with-libdir=NAME Look for libraries in .../NAME rather than .../lib], lib, no)
PHP_RUNPATH_SWITCH
PHP_SHLIB_SUFFIX_NAMES
dnl Find php-config script
PHP_ARG_WITH(php-config,,
[ --with-php-config=PATH Path to php-config [php-config]], php-config, no)
dnl For BC
PHP_CONFIG=$PHP_PHP_CONFIG
prefix=`$PHP_CONFIG --prefix 2>/dev/null`
phpincludedir=`$PHP_CONFIG --include-dir 2>/dev/null`
INCLUDES=`$PHP_CONFIG --includes 2>/dev/null`
EXTENSION_DIR=`$PHP_CONFIG --extension-dir 2>/dev/null`
PHP_EXECUTABLE=`$PHP_CONFIG --php-binary 2>/dev/null`
if test -z "$prefix"; then
AC_MSG_ERROR([Cannot find php-config. Please use --with-php-config=PATH])
fi
php_shtool=$srcdir/build/shtool
PHP_INIT_BUILD_SYSTEM
AC_MSG_CHECKING([for PHP prefix])
AC_MSG_RESULT([$prefix])
AC_MSG_CHECKING([for PHP includes])
AC_MSG_RESULT([$INCLUDES])
AC_MSG_CHECKING([for PHP extension directory])
AC_MSG_RESULT([$EXTENSION_DIR])
AC_MSG_CHECKING([for PHP installed headers prefix])
AC_MSG_RESULT([$phpincludedir])
dnl Checks for PHP_DEBUG / ZEND_DEBUG / ZTS
AC_MSG_CHECKING([if debug is enabled])
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS="-I$phpincludedir"
AC_EGREP_CPP(php_debug_is_enabled,[
#include <main/php_config.h>
#if ZEND_DEBUG
php_debug_is_enabled
#endif
],[
PHP_DEBUG=yes
],[
PHP_DEBUG=no
])
CPPFLAGS=$old_CPPFLAGS
AC_MSG_RESULT([$PHP_DEBUG])
AC_MSG_CHECKING([if zts is enabled])
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS="-I$phpincludedir"
AC_EGREP_CPP(php_zts_is_enabled,[
#include <main/php_config.h>
#if ZTS
php_zts_is_enabled
#endif
],[
PHP_THREAD_SAFETY=yes
],[
PHP_THREAD_SAFETY=no
])
CPPFLAGS=$old_CPPFLAGS
AC_MSG_RESULT([$PHP_DEBUG])
dnl Support for building and testing Zend extensions
ZEND_EXT_TYPE="zend_extension"
PHP_SUBST(ZEND_EXT_TYPE)
dnl Discard optimization flags when debugging is enabled
if test "$PHP_DEBUG" = "yes"; then
PHP_DEBUG=1
ZEND_DEBUG=yes
changequote({,})
CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'`
CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'`
changequote([,])
dnl add -O0 only if GCC or ICC is used
if test "$GCC" = "yes" || test "$ICC" = "yes"; then
CFLAGS="$CFLAGS -O0"
CXXFLAGS="$CXXFLAGS -g -O0"
fi
if test "$SUNCC" = "yes"; then
if test -n "$auto_cflags"; then
CFLAGS="-g"
CXXFLAGS="-g"
else
CFLAGS="$CFLAGS -g"
CXXFLAGS="$CFLAGS -g"
fi
fi
else
PHP_DEBUG=0
ZEND_DEBUG=no
fi
dnl Always shared
PHP_BUILD_SHARED
dnl Required programs
PHP_PROG_RE2C
PHP_PROG_AWK
sinclude(config.m4)
enable_static=no
enable_shared=yes
dnl Only allow AC_PROG_CXX and AC_PROG_CXXCPP if they are explicitly called (by PHP_REQUIRE_CXX).
dnl Otherwise AC_PROG_LIBTOOL fails if there is no working C++ compiler.
AC_PROVIDE_IFELSE([PHP_REQUIRE_CXX], [], [
undefine([AC_PROG_CXX])
AC_DEFUN([AC_PROG_CXX], [])
undefine([AC_PROG_CXXCPP])
AC_DEFUN([AC_PROG_CXXCPP], [php_prog_cxxcpp=disabled])
])
AC_PROG_LIBTOOL
all_targets='$(PHP_MODULES) $(PHP_ZEND_EX)'
install_targets="install-modules install-headers"
phplibdir="`pwd`/modules"
CPPFLAGS="$CPPFLAGS -DHAVE_CONFIG_H"
CFLAGS_CLEAN='$(CFLAGS)'
CXXFLAGS_CLEAN='$(CXXFLAGS)'
test "$prefix" = "NONE" && prefix="/usr/local"
test "$exec_prefix" = "NONE" && exec_prefix='$(prefix)'
PHP_SUBST(PHP_MODULES)
PHP_SUBST(PHP_ZEND_EX)
PHP_SUBST(all_targets)
PHP_SUBST(install_targets)
PHP_SUBST(prefix)
PHP_SUBST(exec_prefix)
PHP_SUBST(libdir)
PHP_SUBST(prefix)
PHP_SUBST(phplibdir)
PHP_SUBST(phpincludedir)
PHP_SUBST(CC)
PHP_SUBST(CFLAGS)
PHP_SUBST(CFLAGS_CLEAN)
PHP_SUBST(CPP)
PHP_SUBST(CPPFLAGS)
PHP_SUBST(CXX)
PHP_SUBST(CXXFLAGS)
PHP_SUBST(CXXFLAGS_CLEAN)
PHP_SUBST(EXTENSION_DIR)
PHP_SUBST(PHP_EXECUTABLE)
PHP_SUBST(EXTRA_LDFLAGS)
PHP_SUBST(EXTRA_LIBS)
PHP_SUBST(INCLUDES)
PHP_SUBST(LFLAGS)
PHP_SUBST(LDFLAGS)
PHP_SUBST(SHARED_LIBTOOL)
PHP_SUBST(LIBTOOL)
PHP_SUBST(SHELL)
PHP_SUBST(INSTALL_HEADERS)
PHP_GEN_BUILD_DIRS
PHP_GEN_GLOBAL_MAKEFILE
test -d modules || $php_shtool mkdir modules
touch .deps
AC_CONFIG_HEADER(config.h)
AC_OUTPUT()
+283
View File
@@ -0,0 +1,283 @@
//****************************************************************************
// Filename: SimpleXMLParser.h
// Copyright 1999 Daniel X. Pape. All rights reserved.
//
// Description: implementation of the Element classes.
//
//****************************************************************************
// Revision History:
// Thursday, July 08, 1999 - Original. Heavily based on "A Simple XML
// Parser" by Sebastien Andrivet. See Documentation.
//****************************************************************************
#include "XmlElements.h"
// Our namespace
namespace SimpleXMLParser
{
// Null element
static ElementNull s_nullElem;
ElementNull& Element::nullElem = s_nullElem;
// ***************************************************************************
// Function: Constructor
// Desc:
// ***************************************************************************
Attribute::Attribute(const std::string& name, const std::string& value)
: name_(name), value_(value)
{
}
// ***************************************************************************
// Function: Add
// Desc: Adds the string to the value
// ***************************************************************************
void
Value::Add(const std::string& strText)
{
value_ += strText;
}
// ***************************************************************************
// Function: Add
// Desc: Adds the character to the value
// ***************************************************************************
void
Value::Add(char c)
{
value_ += c;
}
// ***************************************************************************
// Function: string conversion operator
// Desc:
// ***************************************************************************
Value::operator const std::string&() const
{
return(value_);
}
// ***************************************************************************
// Function: Constructor
// Desc:
// ***************************************************************************
Element::Element(const std::string& strName)
: name_(strName)
{
}
// ***************************************************************************
// Function: IsNull
// Desc: All elements are not null except Element::nullElem
// ***************************************************************************
bool
Element::IsNull() const
{
return(false);
}
// ***************************************************************************
// Function: Constructor
// Desc:
// ***************************************************************************
ElementTag::ElementTag(const std::string& strName)
: Element(strName)
{
}
// ***************************************************************************
// Function: Destructor
// Desc:
// ***************************************************************************
ElementTag::~ElementTag()
{
// Destroy attributes
// for(Attributes::iterator itAttrib = attributes_.begin();
// itAttrib != attributes_.end(); ++itAttrib)
// delete *itAttrib;
// Destroy childs
for(Elements::iterator itElem = children_.begin();
itElem != children_.end(); ++itElem)
delete *itElem;
}
// ***************************************************************************
// Function: AddChild
// Desc:
// ***************************************************************************
bool
ElementTag::AddChild(Element* pChild)
{
children_.push_back(pChild);
return(true);
}
// ***************************************************************************
// Function: GetChildren
// Desc:
// ***************************************************************************
const Elements*
ElementTag::GetChildren() const
{
return(children_.empty() ? 0 : &children_);
}
// ***************************************************************************
// Function: FindChild
// Desc: Find a child called szName starting at it
// ***************************************************************************
bool
ElementTag::FindChild(const char * szName,
Elements::const_iterator& it) const
{
for(; it != children_.end(); ++it)
{
if((*it)->GetName() == szName)
return(true);
}
return(false);
}
// ***************************************************************************
// Function: GetChild
// Desc: Get the nth element called szName
// ***************************************************************************
const Element&
ElementTag::GetChild(const char * szName, int nIndex) const
{
Elements::const_iterator it = children_.begin();
// Count the number of match to skip (less 1)
// Bug#0001: was ++nIndex instead of ++nCount
for(int nCount = 0; nCount < nIndex; ++nCount)
{
if(!FindChild(szName, it))
return nullElem;
++it;
}
// Last search (we skip nIndex - 1)
if(!FindChild(szName, it))
return nullElem;
return(**it);
}
// ***************************************************************************
// Function: GetAttributes
// Desc: return 0 if no attributes
// ***************************************************************************
const Attributes*
ElementTag::GetAttributes() const
{
return(attributes_.empty() ? 0 : &attributes_);
}
// ***************************************************************************
// Function: GetAttributeValue
// Desc: return "" if attribute doesn't exist
// ***************************************************************************
const std::string
ElementTag::GetAttributeValue(const std::string& attr) const
{
Attributes::const_iterator a_it = attributes_.find(attr);
if(a_it != attributes_.end())
return (*a_it).second;
else
return "";
}
// ***************************************************************************
// Function: Constructor
// Desc:
// ***************************************************************************
ElementSimple::ElementSimple(const std::string& strName)
: Element(strName)
{
}
// ***************************************************************************
// Function: AddChild
// Desc: Do nothing for ElementSimple ... no children.
// ***************************************************************************
bool
ElementSimple::AddChild(Element* /*pChild*/)
{
return false;
}
// ***************************************************************************
// Function: Destructor
// Desc: No children.
// ***************************************************************************
const Elements*
ElementSimple::GetChildren() const
{
return 0;
}
// ***************************************************************************
// Function: GetChild
// Desc: Get the nth element called szName - return nullElem.
// ***************************************************************************
const Element&
ElementSimple::GetChild(const char * /*szName*/, int /*nIndex*/) const
{
return nullElem;
}
// ***************************************************************************
// Function: GetAttributes
// Desc: No attributes - return 0
// ***************************************************************************
const Attributes*
ElementSimple::GetAttributes() const
{
return 0;
}
// ***************************************************************************
// Function: GetAttributeValue
// Desc: No attributes - return ""
// ***************************************************************************
const std::string ElementSimple::GetAttributeValue(const std::string&) const
{
return "";
}
// ***************************************************************************
// Function: Constructor
// Desc:
// ***************************************************************************
ElementComment::ElementComment(const std::string& strComment)
: ElementSimple("!")
{
AddValue(strComment);
}
// ***************************************************************************
// Function: Constructor
// Desc:
// ***************************************************************************
ElementNull::ElementNull()
: ElementSimple("")
{
}
// ***************************************************************************
// Function: IsNull
// Desc:
// ***************************************************************************
bool ElementNull::IsNull() const
{
return true;
}
} // end namespace
+971
View File
@@ -0,0 +1,971 @@
//****************************************************************************
// Filename: XmlElements.h
// Copyright 1999 Daniel X. Pape. All rights reserved.
//
// Description: A set of classes for reading and parsing simple XML files.
//
//****************************************************************************
// Revision History:
// Thursday, July 08, 1999 - Original. Heavily based on "A Simple XML
// Parser" by Sebastien Andrivet. See Documentation.
//****************************************************************************
#include "XmlParser.h"
using std::string;
using std::auto_ptr;
// Macro to get the number of elements in a array
#ifndef elemof
#define elemof(array) (sizeof(array) / sizeof((array)[0]))
#endif
// Our namespace
namespace SimpleXMLParser
{
// ***************************************************************************
// Function: Constructor
// Desc:
// ***************************************************************************
XmlParser::XmlParser()
: source_(0), sourceCurrent_(0), sourceEnd_(0),
line_(1), column_(1), xmlVersion_("1.0")
{
}
// ***************************************************************************
// Function: SyntaxError
// Desc: Syntax error (throw exception)
// ***************************************************************************
void XmlParser::SyntaxError()
{
throw XmlException(line_, column_);
}
// ***************************************************************************
// Function: NextChar
// Desc: Next char (next position)
// ***************************************************************************
char XmlParser::NextChar()
{
if(sourceCurrent_ >= sourceEnd_) return(0);
char c = *sourceCurrent_++;
// Skip \r if any
if(c == '\r')
{
if(sourceCurrent_ >= sourceEnd_) return(0);
c = *sourceCurrent_++;
}
if(c == '\n')
++line_, column_ = 1;
else
++column_;
return(c);
}
// ***************************************************************************
// Function: PreviousChar
// Desc: Previous position
// ***************************************************************************
void XmlParser::PreviousChar()
{
if(sourceCurrent_ - 1 < source_)
sourceCurrent_ = source_;
else
sourceCurrent_ -= 1;
}
// ***************************************************************************
// Function: ParseString
// Desc:
// ***************************************************************************
bool XmlParser::ParseString(const char* str)
{
Bookmark bookmark(*this);
// not end of string ?
while(*str != 0)
{
// Next char
char c = NextChar();
// Same ?
if(c != *str)
{
// Not the same so revert back to
// the previous position
bookmark.Restore();
return(false);
}
// Next char of the string
++str;
}
return(true);
}
// ***************************************************************************
// Function: ParseStringNoCase
// Desc: Read the given string (not case sensitive)
// ***************************************************************************
bool XmlParser::ParseStringNoCase(const char* str)
{
Bookmark bookmark(*this);
// not end of string ?
while(*str != 0)
{
// Next char
char c = NextChar();
// Same (not case sensitive) ?
if(LowCase(c) != LowCase(*str))
{
// Not the same so revert back to
// the previous position
bookmark.Restore();
return(false);
}
// Next char of the string
++str;
}
return(true);
}
// ***************************************************************************
// Function: ParseNumber
// Desc: Read a (decimal) number
// ***************************************************************************
bool XmlParser::ParseNumber(int& n)
{
char c = NextChar();
if(!IsDigit(c))
return(false); // not a number
n = 0;
while(IsDigit(c))
{
// Compute new number
n = n * 10 + c - '0';
// Next char
c = NextChar();
}
// The current char if not part of the number
PreviousChar();
return(true);
}
// ***************************************************************************
// Function: ParseHexNumber
// Desc: Read an hexadecimal number
// ***************************************************************************
bool XmlParser::ParseHexNumber(int& n)
{
char c = NextChar();
if(!IsHexDigit(c))
return(false);
n = 0;
// Read all digits possible
while(IsHexDigit(c))
{
// Compute new number
n = n * 16 + HexDigitValue(c);
// Next char
c = NextChar();
}
// The current char if not part of the number
PreviousChar();
return(true);
}
// ***************************************************************************
// Function: ParseChar
// Desc:
// ***************************************************************************
bool XmlParser::ParseChar(char c)
{
if(NextChar() != c)
{
PreviousChar();
return(false);
}
return(true);
}
// ***************************************************************************
// Function: ParseSpaces
// Desc: Read One or more spaces
// S ::= (#x20 | #x9 | #xD | #xA)+
// ***************************************************************************
bool XmlParser::ParseSpaces()
{
char c = NextChar();
if(!IsSpace(c))
{
PreviousChar();
return(false);
}
do c = NextChar();
while(IsSpace(c));
PreviousChar();
return(true);
}
// ***************************************************************************
// Function: ParseDeclBegining
// Desc: Parse a declaration (like: version = )
// S <szString> Eq
// ***************************************************************************
bool XmlParser::ParseDeclBegining(const char * szString)
{
// Parse: S
char c = NextChar();
if(!IsSpace(c))
{
PreviousChar();
return(false);
}
ParseSpaces();
// Parse: <szString>
if(!ParseString(szString))
return(false);
// Parse: Eq
if(!ParseEq())
SyntaxError();
return(true);
}
// ***************************************************************************
// Function: ParseXMLDecl
// Desc: Parse XML declaration
// XMLDecl ::= '<?xml' VersionInfo EncodingDecl? S? '?>'
// Marker: '<?xml'
// ***************************************************************************
bool XmlParser::ParseXMLDecl()
{
// Parse: '<?xml'
if(!ParseStringNoCase("<?xml"))
return(false);
// Parse: VersionInfo EncodingDecl? SDDecl? S? '?>'
if(!ParseVersionInfo(xmlVersion_))
SyntaxError();
// Parse EncodingDecl (optional)
ParseEncodingDecl();
// Parse S (spaces) (optional)
ParseSpaces();
// Parse end of declaration '?>'
if(!ParseString("?>"))
SyntaxError();
return(true);
}
// ***************************************************************************
// Function: ParseEq
// Desc: Parse equal sign
// Eq ::= S? '=' S?
// Marker: '='
// ***************************************************************************
bool XmlParser::ParseEq()
{
// Record the current position
Bookmark bookmark(*this);
// Parse spaces (optional)
ParseSpaces();
// Is an equal sign ?
if(!ParseChar('='))
{
// No, so revert to the previous position
bookmark.Restore();
return(false);
}
// Skip spaces if any
ParseSpaces();
return(true);
}
// ***************************************************************************
// Function: ParseVersionInfo
// Desc: Parse XML version
// VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ")
// Marker: 'version'
// ***************************************************************************
bool XmlParser::ParseVersionInfo(string& version)
{
// Parse: S 'version' Eq
if(!ParseDeclBegining("version"))
return(false);
// Parse: (' VersionNum ' | " VersionNum ")
char c = NextChar();
if(c != '\'' && c != '\"')
SyntaxError();
// Parse version number and check the delimiter
if(!ParseVersionNum(version) || NextChar() != c)
SyntaxError();
return(true);
}
// ***************************************************************************
// Function: ParseVersionNum
// Desc: Parse XML version number
// VersionNum ::= ([a-zA-Z0-9_.:] | '-')+
// ***************************************************************************
bool XmlParser::ParseVersionNum(string& version)
{
// Record the current position
Bookmark bookmark(*this);
char c = NextChar();
// Is an allowed character ?
if(!IsAlphaDigitEx(c))
return(false);
c = NextChar();
// Get as more char as possible
while(IsAlphaDigitEx(c))
c = NextChar();
// Current character is not part of the version num.
PreviousChar();
// Get the version number
bookmark.GetSubString(version);
return(true);
}
// ***************************************************************************
// Function: ParseEncodingDecl
// Desc: Parse XML encoding declaration
// EncodingDecl ::= S 'encoding' Eq
// ('"' EncName '"' | "'" EncName "'")
// Marker: 'encoding'
// ***************************************************************************
bool XmlParser::ParseEncodingDecl()
{
// Parse: S 'encoding' Eq
if(!ParseDeclBegining("encoding"))
return(false);
// Parse: ('"' EncName '"' | "'" EncName "'")
char c = NextChar();
if(c != '\'' && c != '\"')
SyntaxError();
// Parse encoding name and check delimiter
// Bug#0002: Was ParseEncName() instead of !ParseEncName()
if(!ParseEncName() || NextChar() != c)
SyntaxError();
return(true);
}
// ***************************************************************************
// Function: ParseEncName
// Desc: Parse encoding name
// EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')*
// ***************************************************************************
bool XmlParser::ParseEncName()
{
char c = NextChar();
// Is an allowed character ?
if(!IsAlpha(c))
return(false);
c = NextChar();
// Get as more char as possible
while(IsAlphaDigitEx(c))
c = NextChar();
// Current character is not part of the version num.
PreviousChar();
// In this version, the encoding is not used
return(true);
}
// ***************************************************************************
// Function: ParseMiscs
// Desc: Parse Comments, spaces, etc.
// Misc*
// Misc ::= Comment | S
// ***************************************************************************
void XmlParser::ParseMiscs()
{
for(;;)
{
// Parse spaces if any
ParseSpaces();
// Parse comment if any
auto_ptr<ElementComment> pElem(ParseComment());
if(0 == pElem.get())
break;
}
}
// ***************************************************************************
// Function: ParseComment
// Desc: Parse comment and construct an element
// Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'
// ***************************************************************************
ElementComment* XmlParser::ParseComment()
{
// Check the start of the comment
if(!ParseString("<!--"))
return(0);
// Record the current position to extract later the
// content of the comment
Bookmark bookmark(*this);
for(;;)
{
// Look for the end of the comment
if(ParseString("--"))
{
// Really the end ?
if(!ParseChar('>'))
SyntaxError();
break;
}
// End of document ?
if(NextChar() == 0)
SyntaxError();
}
// Extract the content of the comment
string strComment;
bookmark.GetSubString(strComment, 3);
// Construct an element
return(new ElementComment(strComment));
}
// ***************************************************************************
// Function: ParseName
// Desc: Read a name (letters, digits and special chars)
// Name ::= (Letter | '_' | ':') (NameChar)*
// NameChar ::= Letter | Digit | '.' | '-' |
// '_' | ':' | CombiningChar | Extender
// ***************************************************************************
bool XmlParser::ParseName(string& name)
{
// Record the current position to extract later the name
Bookmark bookmark(*this);
char c = NextChar();
// Is allowed ?
if(!IsAlpha(c) && c != '_' && c != ':')
{
PreviousChar();
return(false);
}
// Get as more (allowed) char as possible
for(;;)
{
c = NextChar();
// Is allowed ?
if(!IsAlphaDigitEx(c))
break;
}
// Current character is not part of the version num.
PreviousChar();
// Extract the name
bookmark.GetSubString(name);
return(true);
}
// ***************************************************************************
// Function: ParseReference
// Desc: Parse reference
// Reference ::= EntityRef | CharRef
// EntityRef ::= '&' Name ';'
// CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'
// Marker: '&'
// ***************************************************************************
bool XmlParser::ParseReference(char& cRef)
{
// Begin like a reference ?
if(!ParseChar('&'))
return(false);
char c = NextChar();
// EntityRef ? (not a CharRef)
if(c != '#')
{
// It is an EntityRef
PreviousChar();
// Get the name of the reference and check the end (';')
string strReferenceName;
if(!ParseName(strReferenceName) || !ParseChar(';'))
SyntaxError();
// Look for the reference
if(!MapReferenceName(strReferenceName, cRef))
SyntaxError();
return(true);
}
// It is a CharRef
c = NextChar();
// Compute the value (character code)
int n = 0;
// Hexadecimal ?
if(c == 'x')
{
// Get the value
if(!ParseHexNumber(n))
SyntaxError();
}
else
{
PreviousChar();
// Get the value
if(!ParseNumber(n))
SyntaxError();
}
// Check the end of the reference
if(!ParseChar(';'))
SyntaxError();
// Return the character with the computed code
cRef = static_cast<char>(n);
return(true);
}
// ***************************************************************************
// Function: ParseAttValue
// Desc: Parse attribute value
// '"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'"
// Marker: '"' | "'"
// ***************************************************************************
bool XmlParser::ParseAttValue(string& value)
{
// Get the value delimiter (quote or apostrophe)
char cDelim = NextChar();
if(cDelim != '\'' && cDelim != '\"')
{
PreviousChar();
return(false);
}
// Record the current position to extract later the value
Bookmark bookmark(*this);
char c = NextChar();
// Search the end of the value
while(c != cDelim)
{
switch(c)
{
case 0: // end of document
SyntaxError();
case '<': // Tag
SyntaxError();
case '&': // Reference
{
PreviousChar();
// Put what we already have in the value
string before;
bookmark.GetSubString(before);
value += before;
char c;
// Get the reference
if(!ParseReference(c))
SyntaxError();
// Put the char in the value
value += c;
// Record the new position (after the reference)
bookmark.Reset();
}
//break;
// fall-though intentional -- DXP
default:
// Next character
c = NextChar();
break;
}
}
// Put the remaining of the value
string remaining;
bookmark.GetSubString(remaining, 1);
value += remaining;
return(true);
}
// ***************************************************************************
// Function: ParseAttribute
// Desc: Parse Attribute
// Attribute ::= Name Eq AttValue
// Marker: Name
// ***************************************************************************
bool XmlParser::ParseAttribute(ElementTag* elem)
{
// Get attribute name
string name;
if(!ParseName(name))
return(false);
// Get attribute value after the equal sign
string value;
if(!ParseEq() || !ParseAttValue(value))
SyntaxError();
// Construct an Attribute object and add it to the element
elem->AddAttribute(name, value);
return(true);
}
// ***************************************************************************
// Function: ParseCDATA
// Desc: Parse CDATA
// CDSect ::= '<![CDATA[' CData ']]>'
// CData ::= (Char* - (Char* ']]>' Char*))
// Marker: '<![CDATA['
// ***************************************************************************
bool XmlParser::ParseCDATA(Element& elem)
{
// Parse: <![CDATA[
if(!ParseString("<![CDATA["))
return(false);
Bookmark bookmark(*this);
// Parse: CData
for(;;)
{
// End of CDATA ?
if(ParseString("]]>"))
break;
// Is character allowed ?
if(!IsXmlChar(NextChar()))
SyntaxError();
}
// Get CDATA content and add it as-is to the value
string strCDATA;
bookmark.GetSubString(strCDATA, 3);
elem.AddValue(strCDATA);
return(true);
}
// ***************************************************************************
// Function: ParseTagBegining
// Desc: Parse start tag and construct an element
// '<' Name (S Attribute)* S?
// Marker: '<'
// ***************************************************************************
ElementTag* XmlParser::ParseTagBegining()
{
// Parse: '<'
if(!ParseChar('<'))
return(0);
// Get the name of the tag
string strName;
if(!ParseName(strName))
SyntaxError();
// Construct an element object
auto_ptr<ElementTag> pElem(new ElementTag(strName));
// Parse: (S Attribute)* S?
while(ParseSpaces() && ParseAttribute(pElem.get()))
;
// return the element to the caller
return(pElem.release());
}
// ***************************************************************************
// Function: ParseETag
// Desc: Parse end tag
// ETag ::= '</' Name S? '>'
// Marker: '</'
// ***************************************************************************
bool XmlParser::ParseETag(Element& elem)
{
// Is an End tag ?
if(!ParseString("</"))
return(false);
// Get the tag name
string endTagName;
if(!ParseName(endTagName))
SyntaxError();
// Start and end tag names must match
if(endTagName != elem.GetName())
SyntaxError();
// Skip spaces
ParseSpaces();
// End of the tag
if(!ParseChar('>'))
SyntaxError();
return(true);
}
// ***************************************************************************
// Function: ParseMarkup
// Desc: Parse markups like comments, CDATA, elements, etc.
// Comment begins with '<!--'
// CDSect begins with '<![CDATA['
// element begins with '<'
// ***************************************************************************
bool XmlParser::ParseMarkup(Element& elem)
{
// Try to read a comment
auto_ptr<ElementComment> comment(ParseComment());
if(0 != comment.get())
{
// Add it to the element
if(!elem.AddChild(comment.release()))
SyntaxError();
return(true);
}
// Try to read a CDATA
if(ParseCDATA(elem))
return(true);
// Try to read an element
auto_ptr<ElementTag> tag(ParseElement());
if(0 != tag.get())
{
if(!elem.AddChild(tag.release()))
SyntaxError();
return(true);
}
return(false);
}
// ***************************************************************************
// Function: ParseContentETag
// Desc: Parse element content and end tag
// content ::= (element | CharData | Reference | CDSect | Comment)*
// CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
// Reference begins with '&'
// ***************************************************************************
void XmlParser::ParseContentETag(ElementTag& elem)
{
// Record the current position to extract later the content
Bookmark bookmark(*this);
char c = NextChar();
for(;;)
{
// "]]>" not allowed in content
if(ParseString("]]>"))
SyntaxError();
switch(c)
{
case 0: // End of document
SyntaxError();
break;
case '&':
case '<':
{
PreviousChar();
// Put what we already have in the value
string value;
bookmark.GetSubString(value);
elem.AddValue(value);
// Tag or reference ?
if(c == '&')
{
// Get the reference
if(!ParseReference(c))
SyntaxError();
// Add it to the value
elem.AddValue(c);
}
else
{
// Is an end tag ?
if(ParseETag(elem))
return;
else if(!ParseMarkup(elem))
SyntaxError();
}
bookmark.Reset();
}
break;
default:
break;
}
// Next char
c = NextChar();
}
}
// ***************************************************************************
// Function: ParseElement
// Desc: Parse element and construct an object
// element ::= EmptyElemTag | STag content ETag
// EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'
// STag ::= '<' Name (S Attribute)* S? '>'
// Marker: '<'
// ***************************************************************************
ElementTag* XmlParser::ParseElement()
{
// Begining of element (start tag)
auto_ptr<ElementTag> tag(ParseTagBegining());
if(tag.get() == 0)
return(0);
char c = NextChar();
if(c == '/') // Empty tag ?
{
c = NextChar();
if(c != '>')
SyntaxError();
return(tag.release());
}
// End of the tag
if(c != '>')
SyntaxError();
// Parse the remaining of the element
ParseContentETag(*tag);
return(tag.release());
}
// ***************************************************************************
// Function: ParseDocument
// Desc: Parse document and construct a (root) element
// document ::= XMLDecl? Misc* element Misc*
// ***************************************************************************
Element* XmlParser::ParseDocument()
{
// XML declaration (optional)
ParseXMLDecl();
ParseMiscs();
// Get the root element
auto_ptr<Element> elem(ParseElement());
if(0 == elem.get())
SyntaxError();
ParseMiscs();
return(elem.release());
}
// ***************************************************************************
// Function: Parse
// Desc: parse document
// ***************************************************************************
Element& XmlParser::Parse(const char * szSource, int nSourceSize)
{
source_ = szSource;
sourceCurrent_ = source_;
sourceEnd_ = source_ + nSourceSize;
line_ = column_ = 1;
// Get the root eleement
#ifdef _MSC_VER
rootElem_ = std::auto_ptr<Element>(ParseDocument());
#else
rootElem_.reset(ParseDocument());
#endif
return(*rootElem_);
}
//////////////////////////////////////////////////////////////////////
// Entity references
//////////////////////////////////////////////////////////////////////
// Map a name to a character
struct MapReference
{
const char * szName;
char c;
};
// Predefined refererences
static const MapReference s_MapReference[] =
{
{ "lt", '<' },
{ "gt", '>' },
{ "amp", '&' },
// { "apos", '\"' },
// { "quot", '\'' } DXP
{ "apos", '\'' },
{ "quot", '\"' }
};
// ***************************************************************************
// Function: MapReferenceName
// Desc: Find the reference strName and return its equivalent
// ***************************************************************************
bool XmlParser::MapReferenceName(const string& strName, char& c)
{
for(unsigned int nIndex = 0; nIndex < elemof(s_MapReference); ++nIndex)
{
// Same name ?
if(strName == s_MapReference[nIndex].szName)
{
// return the equivalent
c = s_MapReference[nIndex].c;
return(true);
}
}
return(false);
}
}
+58
View File
@@ -0,0 +1,58 @@
#include "cfg.h"
#include "libconfig.h++"
#include <iostream>
using namespace libconfig;
Config cfg;
void CfgReadConfig() {
try {
/* Load the configuration.. */
cfg.readFile(COREGRADE_CONFIG\
"/coregrade_api.conf");
} catch (...) {
// failure
}
}
long CfgReadLong(const char* key) {
if (key!=NULL) {
try {
Setting& s = cfg.lookup(key);
long ret = s;
return ret;
} catch (...) {
// failure
std::cout << "missing: " << key << std::endl;
}
}
return -1;
}
/*
std::string CfgReadString(const char* key) {
if (key!=NULL) {
try {
return (std::string)cfg.lookup(key);
} catch (...) {
// failure
}
}
return NULL;
}
*/
const char* CfgReadChar(const char* key) {
if (key!=NULL) {
try {
return (const char*)cfg.lookup(key);
} catch (...) {
// failure
std::cout << "missing: " << key << std::endl;
}
}
return "";
}
/*
vi:ts=2
*/
File diff suppressed because it is too large Load Diff
+42
View File
@@ -0,0 +1,42 @@
#include "clog.h"
#include "php_coregrade_log.h"
void logfmt( TLogLevel level, const char * format, ... ) {
try {
//FILELog::ReportingLevel() = level;
va_list args;
va_start (args, format);
if (level > FILELOG_MAX_LEVEL) ;
else if (level > FILELog::ReportingLevel() || !Output2FILE::Stream()) ;
else {
FILE *f = Output2FILE::Stream();
fprintf(f, "- %s %s [%ld]: %c",
NowTime().c_str(),
FILELog::ToString(level).c_str(),
getpid(),
(level > logDEBUG ? level - logDEBUG : 0, '\t'));
vfprintf(f, format, args);
fprintf(f, "\n");
}
va_end (args);
} catch(const std::exception& e) {
FILE_LOG(logERROR) << e.what();
}
}
/*
void logfmt( TLogLevel level, const char * format, ... ) {
try {
//FILELog::ReportingLevel() = level;
char buffer[2048];
va_list args;
va_start (args, format);
vsprintf (buffer, format, args);
//perror (buffer);
va_end (args);
FILE_LOG(level) << buffer;
} catch(const std::exception& e) {
FILE_LOG(logERROR) << e.what();
}
}
*/
+75
View File
@@ -0,0 +1,75 @@
#include "coregrade.h"
#include "clog.h"
#include "cfg.h"
#include "exceptions.h"
#include "input.h"
#include "coregrade_api.h"
#include "pgsql.h"
#include "coregrade_api_main.h"
#include <iostream>
#include <libpq-fe.h>
CoreGrade::CoreGrade() {
// Open config
this->pFile = fopen(COREGRADE_LOG, "a");
Output2FILE::Stream() = pFile;
FILE_LOG(logINFO) << "COREGRADE is starting...";
CfgReadConfig();
logfmt(logINFO, "Version from config: %s", CfgReadChar("version"));
// Open database
FILE_LOG(logDEBUG) << "Connecting to database...";
FILE_LOG(logDEBUG) << "host=" << CfgReadChar("database.host") << ", name=" << CfgReadChar("database.name") << ", user=" << CfgReadChar("database.user") << ", pass=***hidden***, port=" << CfgReadLong("database.port");
this->db = 0;
try {
this->db = pgsql_db_connect(CfgReadChar("database.host"),
CfgReadChar("database.name"),
CfgReadChar("database.user"),
CfgReadChar("database.pass"),
CfgReadLong("database.port") );
} catch (...) {
logfmt(logDEBUG, "Exception!");
}
logfmt(logDEBUG, "Database connection %s", this->db>0?"successful":"failed");
}
long CoreGrade::coregrade_api(CVars in, CVars &out) {
long retval = PHP_API_BAD_PARAM;
try {
retval = coregrade_api_main(in, out);
} catch (bad_parameter) {
out["status"] = "Incorrect input parameter";
} catch (...) {
out["status"] = "Unhandled exception";
}
return retval;
}
const char* CoreGrade::cfgReadChar(const char *parameter) {
return CfgReadChar(parameter);
}
long CoreGrade::cfgReadLong(const char *parameter) {
return CfgReadLong(parameter);
}
void CoreGrade::logMessage(const char *message) {
FILE_LOG(logINFO) << message;
}
CoreGrade::~CoreGrade() {
FILE_LOG(logINFO) << "COREGRADE is stopping...";
if (db>0) {
FILE_LOG(logDEBUG) << "Closing database connection";
pgsql_close();
}
// Do we need it?
if (this->pFile) {
fclose(this->pFile);
}
}
+266
View File
@@ -0,0 +1,266 @@
#include "php_coregrade_api.h"
#include "php_coregrade_api_ns.h"
#include "coregrade.h"
#include "cfg.h"
#include "clog.h"
#include "vars.h"
#include "safestring.h"
#include <string.h>
#include <map>
#include <ext/standard/info.h>
using namespace std;
zend_object_handlers coregrade_object_handlers;
struct coregrade_object {
zend_object std;
CoreGrade *coregrade;
};
zend_class_entry *coregrade_ce;
void coregrade_free_storage(void *object TSRMLS_DC)
{
coregrade_object *obj = (coregrade_object *)object;
delete obj->coregrade;
zend_hash_destroy(obj->std.properties);
FREE_HASHTABLE(obj->std.properties);
efree(obj);
}
zend_object_value coregrade_create_handler(zend_class_entry *type TSRMLS_DC)
{
zval *tmp;
zend_object_value retval;
coregrade_object *obj = (coregrade_object *)emalloc(sizeof(coregrade_object));
memset(obj, 0, sizeof(coregrade_object));
obj->std.ce = type;
ALLOC_HASHTABLE(obj->std.properties);
zend_hash_init(obj->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
#if PHP_VERSION_ID < 50399
zend_hash_copy(obj->std.properties, &type->default_properties,
(copy_ctor_func_t)zval_add_ref, (void *)&tmp, sizeof(zval *));
#else
object_properties_init((zend_object*) &(obj->std), type);
#endif
retval.handle = zend_objects_store_put(obj, NULL,
coregrade_free_storage, NULL TSRMLS_CC);
retval.handlers = &coregrade_object_handlers;
return retval;
}
#define SET_ENV( env ) \
if (zend_hash_find(Z_ARRVAL_PP(array), env, sizeof(env), (void **) &token) == SUCCESS) {\
setenv( env, Z_STRVAL_PP(token), 1 ); \
logfmt( logINFO, env " = %s", Z_STRVAL_PP(token) ); \
} else {\
unsetenv( env );\
}
PHP_METHOD(CoreGrade, __construct)
{
CoreGrade *coregrade = NULL;
zval *object = getThis();
coregrade = new CoreGrade();
coregrade_object *obj = (coregrade_object *)zend_object_store_get_object(object TSRMLS_CC);
obj->coregrade = coregrade;
zval **array;
zval **token;
zend_is_auto_global("_SERVER", sizeof("_SERVER")-1 TSRMLS_CC);
if (zend_hash_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER"), (void **) &array) == SUCCESS &&
Z_TYPE_PP(array) == IS_ARRAY) {
logfmt( logINFO, "_SERVER found" );
SET_ENV( "REMOTE_ADDR" );
SET_ENV( "SERVER_NAME" );
SET_ENV( "HTTP_COOKIE" );
SET_ENV( "QUERY_STRING" );
SET_ENV( "HTTP_X_FORWARDED_FOR" );
} else {
logfmt( logINFO, "_SERVER not found" );
}
}
PHP_METHOD(CoreGrade, coregrade_api)
{
zval *param, *param_out;
CVars input, output;
CoreGrade *coregrade;
coregrade_object *obj = (coregrade_object *)zend_object_store_get_object(
getThis() TSRMLS_CC);
coregrade = obj->coregrade;
if (coregrade != NULL) {
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, const_cast<char *>("zz"), &param, &param_out ) == FAILURE ) {
// Bad parameters
RETURN_NULL();
}
if (!PZVAL_IS_REF(param_out)) {
// out is not a reference
/* This is not relevant in PHP 5.4 */
#if PHP_VERSION_ID < 50399
zend_error(E_WARNING, "Second parameter wasn't passed by reference");
RETURN_NULL();
#endif
}
HashTable *hash;
char *key;
uint key_len;
zval **value;
convert_to_array_ex( &param );
hash = HASH_OF( param );
zend_hash_internal_pointer_reset( hash );
while ( zend_hash_get_current_key( hash, &key, /*num_index*/ NULL, /*duplicate*/ false ) == HASH_KEY_IS_STRING ) {
zend_hash_get_current_data( hash, (void**)&value );
convert_to_string_ex( value );
input[ key ] = Z_STRVAL_PP(value);
zend_hash_move_forward( hash );
}
long retval = coregrade->coregrade_api(input, output);
convert_to_array_ex( &param_out );
CVars::iterator i;
int j = 0;
char out_key[200], out_value[200];
for ( i=output.begin(); i != output.end() && j<200 ; i++ ) {
j++;
logfmt( logINFO, "RET: %s=%s", i->first.c_str(), i->second.c_str() );
strsafecpy( out_key, i->first.c_str(), sizeof(out_key) );
strsafecpy( out_value, i->second.c_str(), sizeof(out_value) );
add_assoc_string( param_out, out_key, out_value, true );
}
RETURN_LONG(retval);
}
RETURN_NULL();
}
PHP_METHOD(CoreGrade, cfgReadChar)
{
CoreGrade *coregrade;
coregrade_object *obj = (coregrade_object *)zend_object_store_get_object(
getThis() TSRMLS_CC);
coregrade = obj->coregrade;
if (coregrade != NULL) {
char *parameter;
int parameter_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, const_cast<char *>("s"), &parameter, &parameter_len) == FAILURE) {
RETURN_NULL();
}
if (parameter_len == 0) {
RETURN_NULL();
}
RETURN_STRING(coregrade->cfgReadChar(parameter),1);
}
RETURN_NULL();
}
PHP_METHOD(CoreGrade, cfgReadLong)
{
CoreGrade *coregrade;
coregrade_object *obj = (coregrade_object *)zend_object_store_get_object(
getThis() TSRMLS_CC);
coregrade = obj->coregrade;
if (coregrade != NULL) {
char *parameter;
int parameter_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, const_cast<char *>("s"), &parameter, &parameter_len) == FAILURE) {
RETURN_NULL();
}
if (parameter_len == 0) {
RETURN_NULL();
}
RETURN_LONG(coregrade->cfgReadLong(parameter));
}
RETURN_NULL();
}
PHP_METHOD(CoreGrade, logMessage)
{
CoreGrade *coregrade;
coregrade_object *obj = (coregrade_object *)zend_object_store_get_object(
getThis() TSRMLS_CC);
coregrade = obj->coregrade;
if (coregrade != NULL) {
char *message;
int message_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, const_cast<char *>("s"), &message, &message_len) == FAILURE) {
RETURN_FALSE;
}
if (message_len == 0) {
RETURN_FALSE;
}
coregrade->logMessage((const char *)message);
}
RETURN_TRUE;
}
#if PHP_VERSION_ID < 50399
function_entry coregrade_methods[] = {
#else
zend_function_entry coregrade_methods[] = {
#endif
PHP_ME(CoreGrade, __construct, NULL, ZEND_ACC_PUBLIC | ZEND_ACC_CTOR)
PHP_ME(CoreGrade, coregrade_api, NULL, ZEND_ACC_PUBLIC)
PHP_ME(CoreGrade, cfgReadChar, NULL, ZEND_ACC_PUBLIC)
PHP_ME(CoreGrade, cfgReadLong, NULL, ZEND_ACC_PUBLIC)
PHP_ME(CoreGrade, logMessage, NULL, ZEND_ACC_PUBLIC)
{NULL, NULL, NULL}
};
PHP_MINIT_FUNCTION(coregrade_api)
{
zend_class_entry ce;
INIT_NS_CLASS_ENTRY(ce, COREGRADE_API_NS, "CoreGrade", coregrade_methods);
//INIT_CLASS_ENTRY(ce, "CoreGrade", coregrade_methods);
coregrade_ce = zend_register_internal_class(&ce TSRMLS_CC);
coregrade_ce->create_object = coregrade_create_handler;
memcpy(&coregrade_object_handlers,
zend_get_std_object_handlers(), sizeof(zend_object_handlers));
coregrade_object_handlers.clone_obj = NULL;
return SUCCESS;
}
PHP_MINFO_FUNCTION(coregrade_api)
{
php_info_print_table_start();
php_info_print_table_row(2, "COREGRADE API support", "enabled");
php_info_print_table_row(2, "Log File", COREGRADE_LOG);
php_info_print_table_row(2, "Config File", COREGRADE_CONFIG"coregrade_api.conf");
php_info_print_table_row(2, "Build Date", __DATE__);
php_info_print_table_row(2, "Build Time", __TIME__);
php_info_print_table_row(2, "COREGRADE API Version", PHP_COREGRADE_API_EXTVER);
php_info_print_table_end();
}
zend_module_entry coregrade_api_module_entry = {
#if ZEND_MODULE_API_NO >= 20010901
STANDARD_MODULE_HEADER,
#endif
COREGRADE_API_NS,
NULL, /* Functions */
PHP_MINIT(coregrade_api),
NULL, /* MSHUTDOWN */
NULL, /* RINIT */
NULL, /* RSHUTDOWN */
PHP_MINFO(coregrade_api), /* MINFO */
#if ZEND_MODULE_API_NO >= 20010901
PHP_COREGRADE_API_EXTVER,
#endif
STANDARD_MODULE_PROPERTIES
};
#ifdef COMPILE_DL_COREGRADE_API
extern "C" {
ZEND_GET_MODULE(coregrade_api)
}
#endif
+415
View File
@@ -0,0 +1,415 @@
#include <cassert>
#include <cstdarg>
#include <string>
#include <stdlib.h>
#include <string.h>
#include "cvariables.h"
#include "safestring.h"
CVariables::CVariables( )
{
var_top = NULL;
};
void CVariables::Cleanup()
{
L_Variables * v, *_v;
v = var_top;
while (v)
{
_v = v->next;
free( v->value );
delete v;
v = _v;
}
var_top = NULL; // Used when the desctructor is called explicitly to cleanup
}
CVariables::~CVariables()
{
// LOG( "~CVariables()", LOG_MAX );
Cleanup();
// LOG( "/~CVariables()", LOG_MAX );
}
L_Variables * CVariables::FindVariable( const char * var, bool create/*=false*/ )
{
L_Variables * v;
char _var[MAX_CGI_VAR_LEN+1];
tolower( var, _var, sizeof(_var) );
if (!var_top && !create)
return NULL;
if (!var_top)
{
v = var_top = new L_Variables;
}
else
{ // Search to see if such variable already exists
v = var_top;
do {
if ( strcmp( v->name, _var )==0 )
{
return v;
}
if ( v->next)
v = v->next;
else
break;
} while ( 1 );
// no variable found
if ( create )
{
v->next = new L_Variables;
v = v->next;
}
else
return NULL;
}
v->next = NULL;
strncpy( v->name, _var, MAX_CGI_VAR_LEN );
v->value = NULL; // So we know the space has not been allocated
return v;
}
char * CVariables::GetVariable( const char * var )
{
L_Variables * v;
v = FindVariable( var );
if ( !v )
return NULL;
else
return v->value;
}
bool CVariables::GetBool( char * var, bool test /*= false*/, char * section /*= ""*/ )
{
L_Variables * v;
v = FindVariable( var );
if ( !v )
return false;
else
{
char * s = v->value;
return
strcasecmp( s, "yes" )==0 ||
strcasecmp( s, "on" )==0 ||
strcasecmp( s, "1" )==0 ||
strcasecmp( s, "enable" )==0 ||
strcasecmp( s, "enabled" )==0 ||
strcasecmp( s, "true" )==0 ;
}
}
char * CVariables::GetVariable( const char * var, bool test, char * section /*= ""*/ )
{
L_Variables * v;
char name_[MAX_CGI_VAR_LEN+1];
strsafecpy( name_, test?".":"", sizeof( name_ ) );
strsafecat( name_, section, sizeof(name_) );
if (section[0])
strsafecat( name_, "_", sizeof(name_) );
strsafecat( name_, var, sizeof(name_) );
v = FindVariable( name_ );
if ( !v )
return NULL;
else
return v->value;
}
char * CVariables::GetVariable( const char * var, char * result, int size )
{
L_Variables * v;
v = FindVariable( var );
if ( !v )
result[0] = 0;
else
{
strncpy( result, v->value, size );
result[size-1] = 0;
}
return result;
}
long CVariables::GetVariableLong( char * name, bool *valid /*= NULL*/ )
{
char var[20];
GetVariable( name, var, sizeof(var) );
// if (!valid)
// return atol( var );
char * ep;
long res = strtol( var, &ep, 10 );
if (valid)
*valid = var[0] && !*ep;
return res;
}
long CVariables::GetVariableLong( char * name, bool test, char * section /*= ""*/ )
{
char name_[MAX_CGI_VAR_LEN+1];
strsafecpy( name_, test?".":"", sizeof( name_ ) );
strsafecat( name_, section, sizeof(name_) );
if (section[0])
strsafecat( name_, "_", sizeof(name_) );
strsafecat( name_, name, sizeof(name_) );
char var[20];
GetVariable( name_, var, sizeof(var) );
return atol( var );
}
void CVariables::LetInt16( char * var, int value )
{
L_Variables * v;
v = FindVariable( var, true );
if (v->value)
free( v->value );
char st[10];
snprintf( st, sizeof(st), "%d", value);
v->value = strdup( st );
}
void CVariables::LetStr( const char * var, const char * value ) // NULL-terminated
{
L_Variables * v;
v = FindVariable( var, true );
if (v->value)
free( v->value );
if ( value )
v->value = strdup( value );
else
v->value = strdup( "" );
}
void CVariables::RenameVariable( const char * name, const char * newname )
{
L_Variables * v;
v = FindVariable( name, true );
//logfmt( FLOG_MAX, "RenameVariable(): '%s'->'%s'", name, newname );
if ( !v )
{
//logfmt( FLOG_MAX, "RenameVariable(): Variable '%s' not found", name );
return;
}
strsafecpy( v->name, newname, sizeof( v->name ) );
}
void CVariables::vLetStrf( char * var, const char * format, va_list ap )
{
size_t buf_size = 512;
char *buffer = new char[buf_size];
size_t length;
while (true) {
if (!buffer) {
assert(buffer); // to stop when debugging
snprintf(buffer, buf_size, "<alloc problem>");
break;
}
length = vsnprintf(buffer, buf_size, format, ap);
if (length >= 0 && length < buf_size - 1) {
// string fits into current buffer
break;
}
// otherwise resize buffer :
buf_size *= 2;
// fprintf(stderr, "Reallocating vstrf-buffer to size=%u\n", buf_size);
delete [] buffer;
buffer = new char[buf_size];
}
L_Variables * v;
v = FindVariable( var, true );
if (v->value)
free( v->value );
if (buffer) {
v->value = strdup( buffer );
delete [] buffer;
} else {
v->value = strdup( "" );
}
}
void CVariables::LetStrf( char * var, const char * format, ... )
{
va_list ap;
va_start( ap, format );
vLetStrf( var, format, ap );
va_end( ap );
}
/*
void CVariables::LetStrf( char * var, const char * format, ... )
{
char tmp[1000];
va_list ap;
va_start( ap, format );
vsnprintf( tmp, sizeof(tmp), format, ap );
va_end( ap );
L_Variables * v;
v = FindVariable( var, true );
if (v->value)
free( v->value );
v->value = strdup( tmp );
}
*/
void CVariables::StrCat( char * var, const char * format, ... )
{
char tmp[1000];
L_Variables * v;
v = FindVariable( var, true );
va_list ap;
va_start( ap, format );
if ( !v->value )
vsnprintf( tmp, sizeof(tmp), format, ap );
else
{
// logfmt( FLOG_MAX, "v->value='%s'", v->value );
strsafecpy( tmp, v->value, sizeof(tmp) );
strsafecat( tmp, "<br>", sizeof(tmp) );
int len = strlen(tmp);
vsnprintf( &tmp[len], sizeof(tmp)-len, format, ap );
}
va_end( ap );
if (v->value)
free( v->value );
v->value = strdup( tmp );
// logfmt( FLOG_MAX, "tmp='%s'", tmp );
}
void CVariables::StrCatf( char * var, const char * format, ... )
{
char tmp[5000];
L_Variables * v;
v = FindVariable( var, true );
va_list ap;
va_start( ap, format );
if ( !v->value )
vsnprintf( tmp, sizeof(tmp), format, ap );
else
{
// logfmt( FLOG_MAX, "v->value='%s'", v->value );
strsafecpy( tmp, v->value, sizeof(tmp) );
//strsafecat( tmp, "<br>", sizeof(tmp) );
int len = strlen(tmp);
vsnprintf( &tmp[len], sizeof(tmp)-len, format, ap );
}
va_end( ap );
if (v->value)
free( v->value );
v->value = strdup( tmp );
// logfmt( FLOG_MAX, "tmp='%s'", tmp );
}
void CVariables::LetStr( char * var, const char * value, int len ) // non-NULL terminated
{
L_Variables * v;
v = FindVariable( var, true );
if (v->value)
free( v->value );
if ( value )
{
v->value = (char*)malloc(len+1);
memcpy( v->value, value, len );
v->value[len] = 0;
}
else
v->value = strdup( "" );
}
void CVariables::PrintVars( FILE * f /*= stdout*/ )
{
L_Variables * v;
v = var_top;
fprintf( f, "\nVariable listing (NEW):\n\n" );
while ( v )
{
fprintf( f, "%s[%d] = %s\n", v->name, strlen(v->value), v->value );
v = v->next;
}
}
/*
vi:ts=2
*/
+16
View File
@@ -0,0 +1,16 @@
#include "exceptions.h"
#include "clog.h"
bad_parameter::bad_parameter( CVars &out, const char *name )
{
//in["bad_param"] = name;
out["bad_param"] = name;
logfmt( FLOG_MAX, "Bad parameter exception: '%s'", name );
}
err::err( char *msg ) {
logfmt( FLOG_MAX, "ERROR: %s", msg );
}
+544
View File
@@ -0,0 +1,544 @@
/*-
* HMAC-SHA-224/256/384/512 implementation
* Last update: 06/15/2005
* Issue date: 06/15/2005
*
* Copyright (C) 2005 Olivier Gay <olivier.gay@a3.epfl.ch>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <string.h>
#include "hmac_sha2.h"
/* HMAC-SHA-224 functions */
void hmac_sha224_init(hmac_sha224_ctx *ctx, unsigned char *key,
unsigned int key_size)
{
unsigned int fill;
unsigned int num;
unsigned char *key_used;
unsigned char key_temp[SHA224_DIGEST_SIZE];
int i;
if (key_size == SHA224_BLOCK_SIZE) {
key_used = key;
num = SHA224_BLOCK_SIZE;
} else {
if (key_size > SHA224_BLOCK_SIZE){
key_used = key_temp;
num = SHA224_DIGEST_SIZE;
sha224(key, key_size, key_used);
} else { /* key_size > SHA224_BLOCK_SIZE */
key_used = key;
num = key_size;
}
fill = SHA224_BLOCK_SIZE - num;
memset(ctx->block_ipad + num, 0x36, fill);
memset(ctx->block_opad + num, 0x5c, fill);
}
for (i = 0; i < num; i++) {
ctx->block_ipad[i] = key_used[i] ^ 0x36;
ctx->block_opad[i] = key_used[i] ^ 0x5c;
}
sha224_init(&ctx->ctx_inside);
sha224_update(&ctx->ctx_inside, ctx->block_ipad, SHA224_BLOCK_SIZE);
sha224_init(&ctx->ctx_outside);
sha224_update(&ctx->ctx_outside, ctx->block_opad,
SHA224_BLOCK_SIZE);
/* for hmac_reinit */
memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside,
sizeof(sha224_ctx));
memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside,
sizeof(sha224_ctx));
}
void hmac_sha224_reinit(hmac_sha224_ctx *ctx)
{
memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit,
sizeof(sha224_ctx));
memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit,
sizeof(sha224_ctx));
}
void hmac_sha224_update(hmac_sha224_ctx *ctx, unsigned char *message,
unsigned int message_len)
{
sha224_update(&ctx->ctx_inside, message, message_len);
}
void hmac_sha224_final(hmac_sha224_ctx *ctx, unsigned char *mac,
unsigned int mac_size)
{
unsigned char digest_inside[SHA224_DIGEST_SIZE];
unsigned char mac_temp[SHA224_DIGEST_SIZE];
sha224_final(&ctx->ctx_inside, digest_inside);
sha224_update(&ctx->ctx_outside, digest_inside, SHA224_DIGEST_SIZE);
sha224_final(&ctx->ctx_outside, mac_temp);
memcpy(mac, mac_temp, mac_size);
}
void hmac_sha224(unsigned char *key, unsigned int key_size,
unsigned char *message, unsigned int message_len,
unsigned char *mac, unsigned mac_size)
{
hmac_sha224_ctx ctx;
hmac_sha224_init(&ctx, key, key_size);
hmac_sha224_update(&ctx, message, message_len);
hmac_sha224_final(&ctx, mac, mac_size);
}
/* HMAC-SHA-256 functions */
void hmac_sha256_init(hmac_sha256_ctx *ctx, unsigned char *key,
unsigned int key_size)
{
unsigned int fill;
unsigned int num;
unsigned char *key_used;
unsigned char key_temp[SHA256_DIGEST_SIZE];
int i;
if (key_size == SHA256_BLOCK_SIZE) {
key_used = key;
num = SHA256_BLOCK_SIZE;
} else {
if (key_size > SHA256_BLOCK_SIZE){
key_used = key_temp;
num = SHA256_DIGEST_SIZE;
sha256(key, key_size, key_used);
} else { /* key_size > SHA256_BLOCK_SIZE */
key_used = key;
num = key_size;
}
fill = SHA256_BLOCK_SIZE - num;
memset(ctx->block_ipad + num, 0x36, fill);
memset(ctx->block_opad + num, 0x5c, fill);
}
for (i = 0; i < num; i++) {
ctx->block_ipad[i] = key_used[i] ^ 0x36;
ctx->block_opad[i] = key_used[i] ^ 0x5c;
}
sha256_init(&ctx->ctx_inside);
sha256_update(&ctx->ctx_inside, ctx->block_ipad, SHA256_BLOCK_SIZE);
sha256_init(&ctx->ctx_outside);
sha256_update(&ctx->ctx_outside, ctx->block_opad,
SHA256_BLOCK_SIZE);
/* for hmac_reinit */
memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside,
sizeof(sha256_ctx));
memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside,
sizeof(sha256_ctx));
}
void hmac_sha256_reinit(hmac_sha256_ctx *ctx)
{
memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit,
sizeof(sha256_ctx));
memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit,
sizeof(sha256_ctx));
}
void hmac_sha256_update(hmac_sha256_ctx *ctx, unsigned char *message,
unsigned int message_len)
{
sha256_update(&ctx->ctx_inside, message, message_len);
}
void hmac_sha256_final(hmac_sha256_ctx *ctx, unsigned char *mac,
unsigned int mac_size)
{
unsigned char digest_inside[SHA256_DIGEST_SIZE];
unsigned char mac_temp[SHA256_DIGEST_SIZE];
sha256_final(&ctx->ctx_inside, digest_inside);
sha256_update(&ctx->ctx_outside, digest_inside, SHA256_DIGEST_SIZE);
sha256_final(&ctx->ctx_outside, mac_temp);
memcpy(mac, mac_temp, mac_size);
}
void hmac_sha256(unsigned char *key, unsigned int key_size,
unsigned char *message, unsigned int message_len,
unsigned char *mac, unsigned mac_size)
{
hmac_sha256_ctx ctx;
hmac_sha256_init(&ctx, key, key_size);
hmac_sha256_update(&ctx, message, message_len);
hmac_sha256_final(&ctx, mac, mac_size);
}
/* HMAC-SHA-384 functions */
void hmac_sha384_init(hmac_sha384_ctx *ctx, unsigned char *key,
unsigned int key_size)
{
unsigned int fill;
unsigned int num;
unsigned char *key_used;
unsigned char key_temp[SHA384_DIGEST_SIZE];
int i;
if (key_size == SHA384_BLOCK_SIZE) {
key_used = key;
num = SHA384_BLOCK_SIZE;
} else {
if (key_size > SHA384_BLOCK_SIZE){
key_used = key_temp;
num = SHA384_DIGEST_SIZE;
sha384(key, key_size, key_used);
} else { /* key_size > SHA384_BLOCK_SIZE */
key_used = key;
num = key_size;
}
fill = SHA384_BLOCK_SIZE - num;
memset(ctx->block_ipad + num, 0x36, fill);
memset(ctx->block_opad + num, 0x5c, fill);
}
for (i = 0; i < num; i++) {
ctx->block_ipad[i] = key_used[i] ^ 0x36;
ctx->block_opad[i] = key_used[i] ^ 0x5c;
}
sha384_init(&ctx->ctx_inside);
sha384_update(&ctx->ctx_inside, ctx->block_ipad, SHA384_BLOCK_SIZE);
sha384_init(&ctx->ctx_outside);
sha384_update(&ctx->ctx_outside, ctx->block_opad,
SHA384_BLOCK_SIZE);
/* for hmac_reinit */
memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside,
sizeof(sha384_ctx));
memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside,
sizeof(sha384_ctx));
}
void hmac_sha384_reinit(hmac_sha384_ctx *ctx)
{
memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit,
sizeof(sha384_ctx));
memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit,
sizeof(sha384_ctx));
}
void hmac_sha384_update(hmac_sha384_ctx *ctx, unsigned char *message,
unsigned int message_len)
{
sha384_update(&ctx->ctx_inside, message, message_len);
}
void hmac_sha384_final(hmac_sha384_ctx *ctx, unsigned char *mac,
unsigned int mac_size)
{
unsigned char digest_inside[SHA384_DIGEST_SIZE];
unsigned char mac_temp[SHA384_DIGEST_SIZE];
sha384_final(&ctx->ctx_inside, digest_inside);
sha384_update(&ctx->ctx_outside, digest_inside, SHA384_DIGEST_SIZE);
sha384_final(&ctx->ctx_outside, mac_temp);
memcpy(mac, mac_temp, mac_size);
}
void hmac_sha384(unsigned char *key, unsigned int key_size,
unsigned char *message, unsigned int message_len,
unsigned char *mac, unsigned mac_size)
{
hmac_sha384_ctx ctx;
hmac_sha384_init(&ctx, key, key_size);
hmac_sha384_update(&ctx, message, message_len);
hmac_sha384_final(&ctx, mac, mac_size);
}
/* HMAC-SHA-512 functions */
void hmac_sha512_init(hmac_sha512_ctx *ctx, unsigned char *key,
unsigned int key_size)
{
unsigned int fill;
unsigned int num;
unsigned char *key_used;
unsigned char key_temp[SHA512_DIGEST_SIZE];
int i;
if (key_size == SHA512_BLOCK_SIZE) {
key_used = key;
num = SHA512_BLOCK_SIZE;
} else {
if (key_size > SHA512_BLOCK_SIZE){
key_used = key_temp;
num = SHA512_DIGEST_SIZE;
sha512(key, key_size, key_used);
} else { /* key_size > SHA512_BLOCK_SIZE */
key_used = key;
num = key_size;
}
fill = SHA512_BLOCK_SIZE - num;
memset(ctx->block_ipad + num, 0x36, fill);
memset(ctx->block_opad + num, 0x5c, fill);
}
for (i = 0; i < num; i++) {
ctx->block_ipad[i] = key_used[i] ^ 0x36;
ctx->block_opad[i] = key_used[i] ^ 0x5c;
}
sha512_init(&ctx->ctx_inside);
sha512_update(&ctx->ctx_inside, ctx->block_ipad, SHA512_BLOCK_SIZE);
sha512_init(&ctx->ctx_outside);
sha512_update(&ctx->ctx_outside, ctx->block_opad,
SHA512_BLOCK_SIZE);
/* for hmac_reinit */
memcpy(&ctx->ctx_inside_reinit, &ctx->ctx_inside,
sizeof(sha512_ctx));
memcpy(&ctx->ctx_outside_reinit, &ctx->ctx_outside,
sizeof(sha512_ctx));
}
void hmac_sha512_reinit(hmac_sha512_ctx *ctx)
{
memcpy(&ctx->ctx_inside, &ctx->ctx_inside_reinit,
sizeof(sha512_ctx));
memcpy(&ctx->ctx_outside, &ctx->ctx_outside_reinit,
sizeof(sha512_ctx));
}
void hmac_sha512_update(hmac_sha512_ctx *ctx, unsigned char *message,
unsigned int message_len)
{
sha512_update(&ctx->ctx_inside, message, message_len);
}
void hmac_sha512_final(hmac_sha512_ctx *ctx, unsigned char *mac,
unsigned int mac_size)
{
unsigned char digest_inside[SHA512_DIGEST_SIZE];
unsigned char mac_temp[SHA512_DIGEST_SIZE];
sha512_final(&ctx->ctx_inside, digest_inside);
sha512_update(&ctx->ctx_outside, digest_inside, SHA512_DIGEST_SIZE);
sha512_final(&ctx->ctx_outside, mac_temp);
memcpy(mac, mac_temp, mac_size);
}
void hmac_sha512(unsigned char *key, unsigned int key_size,
unsigned char *message, unsigned int message_len,
unsigned char *mac, unsigned mac_size)
{
hmac_sha512_ctx ctx;
hmac_sha512_init(&ctx, key, key_size);
hmac_sha512_update(&ctx, message, message_len);
hmac_sha512_final(&ctx, mac, mac_size);
}
#ifdef TEST_VECTORS
/* IETF Validation tests */
#include <stdio.h>
#include <stdlib.h>
void test(unsigned char *vector, unsigned char *digest,
unsigned int digest_size)
{
unsigned char output[2 * SHA512_DIGEST_SIZE + 1];
int i;
output[2 * digest_size] = '\0';
for (i = 0; i < digest_size ; i++) {
sprintf((char *) output + 2*i, "%02x", digest[i]);
}
printf("H: %s\n", output);
if (strcmp((char *) vector, (char *) output)) {
fprintf(stderr, "Test failed.\n");
exit(1);
}
}
int main()
{
static unsigned char *vectors[] =
{
/* HMAC-SHA-224 */
"896fb1128abbdf196832107cd49df33f47b4b1169912ba4f53684b22",
"a30e01098bc6dbbf45690f3a7e9e6d0f8bbea2a39e6148008fd05e44",
"7fb3cb3588c6c1f6ffa9694d7d6ad2649365b0c1f65d69d1ec8333ea",
"6c11506874013cac6a2abc1bb382627cec6a90d86efc012de7afec5a",
"0e2aea68a90c8d37c988bcdb9fca6fa8",
"95e9a0db962095adaebe9b2d6f0dbce2d499f112f2d2b7273fa6870e",
"3a854166ac5d9f023f54d517d0b39dbd946770db9c2b95c9f6f565d1",
/* HMAC-SHA-256 */
"b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7",
"5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843",
"773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe",
"82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b",
"a3b6167473100ee06e0c796c2955552b",
"60e431591ee0b67f0d8a26aacbf5b77f8e0bc6213728c5140546040f0ee37f54",
"9b09ffa71b942fcb27635fbcd5b0e944bfdc63644f0713938a7f51535c3a35e2",
/* HMAC-SHA-384 */
"afd03944d84895626b0825f4ab46907f15f9dadbe4101ec682aa034c7cebc59c"
"faea9ea9076ede7f4af152e8b2fa9cb6",
"af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e"
"8e2240ca5e69e2c78b3239ecfab21649",
"88062608d3e6ad8a0aa2ace014c8a86f0aa635d947ac9febe83ef4e55966144b"
"2a5ab39dc13814b94e3ab6e101a34f27",
"3e8a69b7783c25851933ab6290af6ca77a9981480850009cc5577c6e1f573b4e"
"6801dd23c4a7d679ccf8a386c674cffb",
"3abf34c3503b2a23a46efc619baef897",
"4ece084485813e9088d2c63a041bc5b44f9ef1012a2b588f3cd11f05033ac4c6"
"0c2ef6ab4030fe8296248df163f44952",
"6617178e941f020d351e2f254e8fd32c602420feb0b8fb9adccebb82461e99c5"
"a678cc31e799176d3860e6110c46523e",
/* HMAC-SHA-512 */
"87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cde"
"daa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854",
"164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea250554"
"9758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737",
"fa73b0089d56a284efb0f0756c890be9b1b5dbdd8ee81a3655f83e33b2279d39"
"bf3e848279a722c806b485a47e67c807b946a337bee8942674278859e13292fb",
"b0ba465637458c6990e5a8c5f61d4af7e576d97ff94b872de76f8050361ee3db"
"a91ca5c11aa25eb4d679275cc5788063a5f19741120c4f2de2adebeb10a298dd",
"415fad6271580a531d4179bc891d87a6",
"80b24263c7c1a3ebb71493c1dd7be8b49b46d1f41b4aeec1121b013783f8f352"
"6b56d037e05f2598bd0fd2215d6a1e5295e64f73f63f0aec8b915a985d786598",
"e37b6a775dc87dbaa4dfa9f96e5e3ffddebd71f8867289865df5a32d20cdc944"
"b6022cac3c4982b10d5eeb55c3e4de15134676fb6de0446065c97440fa8c6a58"
};
static unsigned char *messages[] =
{
"Hi There",
"what do ya want for nothing?",
NULL,
NULL,
"Test With Truncation",
"Test Using Larger Than Block-Size Key - Hash Key First",
"This is a test using a larger than block-size key "
"and a larger than block-size data. The key needs"
" to be hashed before being used by the HMAC algorithm."
};
unsigned char mac[SHA512_DIGEST_SIZE];
unsigned char *keys[7];
unsigned int keys_len[7] = {20, 4, 20, 25, 20, 131, 131};
unsigned int messages2and3_len = 50;
unsigned int mac_224_size, mac_256_size, mac_384_size, mac_512_size;
int i;
for (i = 0; i < 7; i++) {
keys[i] = malloc(keys_len[i]);
if (keys[i] == NULL) {
fprintf(stderr, "Can't allocate memory\n");
return 1;
}
}
memset(keys[0], 0x0b, keys_len[0]);
strcpy(keys[1], "Jefe");
memset(keys[2], 0xaa, keys_len[2]);
for (i = 0; i < keys_len[3]; i++)
keys[3][i] = (unsigned char) i + 1;
memset(keys[4], 0x0c, keys_len[4]);
memset(keys[5], 0xaa, keys_len[5]);
memset(keys[6], 0xaa, keys_len[6]);
messages[2] = malloc(messages2and3_len + 1);
messages[3] = malloc(messages2and3_len + 1);
if (messages[2] == NULL || messages[3] == NULL) {
fprintf(stderr, "Can't allocate memory\n");
return 1;
}
messages[2][messages2and3_len] = '\0';
messages[3][messages2and3_len] = '\0';
memset(messages[2], 0xdd, messages2and3_len);
memset(messages[3], 0xcd, messages2and3_len);
printf("HMAC-SHA-2 IETF Validation tests\n\n");
for (i = 0; i < 7; i++) {
if (i != 4) {
mac_224_size = SHA224_DIGEST_SIZE;
mac_256_size = SHA256_DIGEST_SIZE;
mac_384_size = SHA384_DIGEST_SIZE;
mac_512_size = SHA512_DIGEST_SIZE;
} else {
mac_224_size = 128 / 8; mac_256_size = 128 / 8;
mac_384_size = 128 / 8; mac_512_size = 128 / 8;
}
printf("Test %d:\n", i + 1);
hmac_sha224(keys[i], keys_len[i], messages[i], strlen(messages[i]),
mac, mac_224_size);
test(vectors[i], mac, mac_224_size );
hmac_sha256(keys[i], keys_len[i], messages[i], strlen(messages[i]),
mac, mac_256_size);
test(vectors[7 + i], mac, mac_256_size);
hmac_sha384(keys[i], keys_len[i], messages[i], strlen(messages[i]),
mac, mac_384_size);
test(vectors[14 + i], mac, mac_384_size);
hmac_sha512(keys[i], keys_len[i], messages[i], strlen(messages[i]),
mac, mac_512_size);
test(vectors[21 + i], mac, mac_512_size);
}
printf("All tests passed.\n");
return 0;
}
#endif /* TEST_VECTORS */
+71
View File
@@ -0,0 +1,71 @@
#include "input.h"
#include "clog.h"
#include "util.h"
#include <cstring>
#include <cstdlib>
/******************************************************************************/
void REQ_STRING( CVars &in, const char * name, int min_len, int max_len, const char *regex ) throw (bad_parameter)
{
int len = in[name].length();
char ret[2048]; ret[0] = 0;
logfmt( FLOG_MAX, "REQ_STRING(%s)", name );
bool match = reg_match( in[name].c_str(), regex, ret, sizeof(ret) );
len = strlen(ret);
if ( !match || len < min_len || len > max_len )
{
logfmt( FLOG_MAX, "Error in parameter '%s', len= %d <= %d <= %d", name, min_len, match, max_len );
in[name].set_valid( false );
throw bad_parameter( in, name );
}
in[name] = ret;
CVars::iterator i = in.find( name );
i->second.set_valid();
//logfmt( FLOG_MAX, "i->second.valid()=%d", i->second.valid() );
// if not match regexp
}
/******************************************************************************/
long REQ_LONG( CVars &in, const char *name, long min, long max )
{
char *end;
long r = strtol( in[name].c_str(), &end, 10 );
if ( in[name].length() && !*end )
{
in[name].set_valid();
return r;
}
else
{
in[name].set_valid( false );
throw bad_parameter( in, name );
}
return r;
}
/******************************************************************************/
bool OptionalSpecified( CVars &in, const char * name )
{
if ( in.find(name)==in.end() ) return false; // parameter omitted, not even passed from frontend
return ! reg_match( in[name].c_str(), "^[[:space:]]*$", NULL, 0 );
}
/******************************************************************************/
/*
vi:ts=2
*/
+82
View File
@@ -0,0 +1,82 @@
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include "list.h"
void DestroyList( TList * top )
{
// LOG( "DestroyList()", LOG_MAX );
TList * cur = top; unsigned long pos=0;
TList * prev;
while ( cur && cur->text)
{
free( cur->text );
prev = cur;
cur = cur->next;
delete prev;
}
// LOG( "/DestroyList()", LOG_MAX );
}
TList * Add( TList * list, char * text, long size )
{
if (!text)
return list;
list->text = new char[ size+1 ];
memcpy( list->text, text, size );
list->text[size] = 0;
// logfmt( FLOG_MAX, "Added: '%s'", list->text );
list->next = new TList;
list->next->next = NULL;
list->next->text = NULL;
return list->next;
}
TList * AddF( TList * list, char * format, ... )
{
if (!format)
return list;
int size;
va_list ap;
va_start( ap, format );
size = vsnprintf( NULL, 0, format, ap ) + 1;
list->text = new char[ size ];
if ( !list->text) return list; // out of mem => do nothing
vsnprintf( list->text, size-1, format, ap );
va_end( ap );
list->text[size] = 0;
// logfmt( FLOG_MAX, "Added: '%s'", list->text );
list->next = new TList;
list->next->next = NULL;
list->next->text = NULL;
return list->next;
}
void PrintList( TList * list )
{
// LOG( "PrintList()", LOG_MAX );
TList * cur = list;
while (cur && cur->text)
{
// LOG( cur->text, LOG_MAX );
cur = cur->next;
}
// LOG( "/PrintList()", LOG_MAX );
}
+216
View File
@@ -0,0 +1,216 @@
#include "pgsql.h"
#include "clog.h"
#include <string>
#include <iostream>
PGconn *conn;
int pgsql_db_connect(const char*host,const char*name,const char*user,const char*pass,long port)
{
FILE_LOG(logSQL) << "pgsql_db_connect()";
static std::string connection_str;
if(host) {
connection_str+="host=";
connection_str+=host;
}
if(name) {
connection_str+=" dbname=";
connection_str+=name;
}
if(user) {
connection_str+=" user=";
connection_str+=user;
}
if(pass) {
connection_str+=" password=";
connection_str+=pass;
}
if(port>0) {
char pdb_port[20];
connection_str+=" port=";
connection_str+=pgsql_uitoa(port,pdb_port,10);
}
conn = PQconnectdb(connection_str.c_str());
if (PQstatus(conn) != CONNECTION_OK) {
return 0;
}
return 1;
}
void pgsql_close()
{
FILE_LOG(logSQL) << "pgsql_close()";
if (PQstatus(conn)==CONNECTION_OK) {
PQfinish(conn);
}
}
int pgsql_exec(const char * format, ... )
{
FILE_LOG(logSQL) << "pgsql_exec()";
char query[16384];
va_list args;
va_start (args, format);
vsprintf (query, format, args);
//perror (buffer);
va_end (args);
FILE_LOG(logSQL) << "About to run query: ";
FILE_LOG(logSQL) << query;
/* Escape any PostgrsSQL-unsafe characters */
// user_size = PQescapeStringConn (conn, user_data, username, strlen(username), &pqesc_error);
int num = 0;
char *cmdTuples = NULL;
PGresult *res = PQexec(conn, query);
if(!res) {
/* Error */
FILE_LOG(logSQL) << "Error: NULL result";
num = -1;
} else {
switch (PQresultStatus(res)) {
case PGRES_TUPLES_OK:
case PGRES_COMMAND_OK:
cmdTuples = PQcmdTuples(res);
FILE_LOG(logSQL) << "PQcmdTuples: " << cmdTuples;
num = atoi(cmdTuples);
break;
case PGRES_EMPTY_QUERY:
case PGRES_BAD_RESPONSE:
case PGRES_NONFATAL_ERROR:
case PGRES_FATAL_ERROR:
case PGRES_COPY_OUT:
case PGRES_COPY_IN:
num = -1;
break;
}
}
if (num<0) {
FILE_LOG(logSQL) << "Affected rows: ERROR";
} else {
FILE_LOG(logSQL) << "Affected rows: " << num;
}
return num;
}
const PGresult* pgsql_query(const char * format, ... )
{
FILE_LOG(logSQL) << "pgsql_query()";
char query[16384];
va_list args;
va_start (args, format);
vsprintf (query, format, args);
//perror (buffer);
va_end (args);
FILE_LOG(logSQL) << "About to run query: ";
FILE_LOG(logSQL) << query;
/* Escape any PostgrsSQL-unsafe characters */
// user_size = PQescapeStringConn (conn, user_data, username, strlen(username), &pqesc_error);
int num = 0;
const PGresult *res = PQexec(conn, query);
if(!res) {
/* Error */
num = -1;
FILE_LOG(logSQL) << "Error: NULL result";
} else {
switch (PQresultStatus(res)) {
case PGRES_TUPLES_OK:
case PGRES_COMMAND_OK:
num = PQntuples(res);
FILE_LOG(logSQL) << "Found rows: " << num;
break;
case PGRES_EMPTY_QUERY:
case PGRES_BAD_RESPONSE:
case PGRES_NONFATAL_ERROR:
case PGRES_FATAL_ERROR:
case PGRES_COPY_OUT:
case PGRES_COPY_IN:
num = -1;
break;
}
}
if (num>0) {
return res;
}
FILE_LOG(logSQL) << "Found rows: " << (num<0?"ERROR":"0");
return NULL;
}
int pgsql_num_rows(const PGresult *res)
{
if (res) {
return PQntuples(res);
}
return 0;
}
int pgsql_num_fields(const PGresult *res)
{
if (res) {
return PQnfields(res);
}
return 0;
}
map<const char*,const char*> pgsql_fetch_assoc(const PGresult *res, int row)
{
map<const char*, const char*> result;
if (res) {
const int rows = PQntuples(res);
if (rows>0 && row<rows) {
const int num = PQnfields(res);
if (num>0) {
for (int i=0; i<num; i++) {
result[PQfname(res,i)] = PQgetvalue(res,row,i);
}
return result;
}
}
}
return result;
}
vector<const char*> pgsql_fetch_row(const PGresult *res, int row)
{
vector<const char*> result;
if (res) {
const int rows = PQntuples(res);
if (rows>0 && row<rows) {
const int num = PQnfields(res);
if (num>0) {
for (int i=0; i<num; i++) {
result.push_back(PQgetvalue(res,row,i));
}
return result;
}
}
}
return result;
}
char * pgsql_uitoa(unsigned n, char *s, int radix)
{
static const char tab[] =
"0123456789abcdef";
char *p = s;
char *q = s;
/* generate digits in reverse order */
do {
*p++ = tab[n % radix];
n /= radix;
} while (n != 0);
*p-- = '\0';
/* reverse digits */
while (q < p) {
int temp = *p;
*p-- = *q;
*q++ = temp;
}
return s;
}
/*
vi:ts=2
*/
+352
View File
@@ -0,0 +1,352 @@
#include "pgsql.h"
#include "pgsql_wrapper.h"
#include "clog.h"
#include <safestring.h>
#include <string>
#include <iostream>
#include <cassert>
#include <cstdarg>
#include <cstring>
#include <cstdlib>
void load_db_record( const char * table, CVars &rec, const char * where, ... )
{
logfmt( FLOG_MAX, "void load_db_record( const char * table, CVars &rec, const char * where, ... )");
size_t buf_size = 512;
char *buffer = new char[buf_size];
va_list argPtr;
size_t length;
std::string cmd;
while (true) {
if (!buffer) {
assert(buffer); // to stop when debugging
cmd = std::string("<alloc problem>", 16);
break;
}
va_start(argPtr, where);
length = vsnprintf(buffer, buf_size, where, argPtr);
va_end(argPtr);
if (length >= 0 && length < buf_size - 1) {
// string fits into current buffer
cmd = std::string(buffer, length);
break;
}
// otherwise resize buffer :
buf_size *= 2;
// fprintf(stderr, "Reallocating vstrf-buffer to size=%u\n", buf_size);
delete [] buffer;
buffer = new char[buf_size];
}
const PGresult* res = pgsql_query("SELECT * FROM %s WHERE %s", table, cmd.c_str() );
if( buffer ) delete [] buffer;
if (!res || pgsql_num_rows(res)!=1) return;
map<const char*,const char*>f = pgsql_fetch_assoc(res, 0);
logfmt( FLOG_MAX, "load_db_record(%s) num_cols=%d", table, f.size() );
if (f.empty()) {
return;
}
map<const char *,const char *>::iterator it;
for(it = f.begin(); it != f.end(); it++) {
rec[ it->first ] = it->second;
}
}
// This function now supports binary data
long load_db_record( CVars &rec, const char * query, ... )
{
logfmt( FLOG_MAX, "long load_db_record( CVars &rec, const char * query, ... )");
size_t buf_size = 512;
char *buffer = new char[buf_size];
va_list argPtr;
size_t length;
std::string cmd;
while (true) {
if (!buffer) {
assert(buffer); // to stop when debugging
cmd = std::string("<alloc problem>", 16);
break;
}
va_start(argPtr, query);
length = vsnprintf(buffer, buf_size, query, argPtr);
va_end(argPtr);
if (length >= 0 && length < buf_size - 1) {
// string fits into current buffer
cmd = std::string(buffer, length);
break;
}
// otherwise resize buffer :
buf_size *= 2;
// fprintf(stderr, "Reallocating vstrf-buffer to size=%u\n", buf_size);
delete [] buffer;
buffer = new char[buf_size];
}
const PGresult* res = pgsql_query("%s", cmd.c_str() );
if( buffer ) delete [] buffer;
if (!res || pgsql_num_rows(res)!=1) return -1l;
map<const char*,const char*>f = pgsql_fetch_assoc(res, 0);
logfmt( FLOG_MAX, "load_db_record(%s) num_cols=%d", cmd.c_str(), f.size() );
if (f.empty()) {
return 0l;
}
map<const char *,const char *>::iterator it;
for(it = f.begin(); it != f.end(); it++) {
rec[ it->first ] = it->second;
}
return 1l;
}
#define MAX_BINARY_PARS 20
long insert_db_record( int mode, const char *table, const char *seq, CVars &rec )
{
CVars::const_iterator i;
char cmd[128]; /*cols[1024], vals[1024]; cols[0] = 0; vals[0] = 0;*/
bool first = true;
string cols, vals;
int bind_i = 0;
long int sz[MAX_BINARY_PARS]; bzero( sz, sizeof(sz) ); // provides binding for all binary columns simultaneously
int binary_i = 0;
logfmt( FLOG_MAX, "insert_db_record()" );
snprintf( cmd, sizeof(cmd), "INSERT INTO %s (%%s) VALUES (%%s)", table );
for ( i=rec.begin(); i != rec.end(); i++ )
{
NEED_ESC;
// logfmt( FLOG_MAX, "'%s': i->second.valid()=%d, db()=%d", i->first.c_str(), i->second.valid(), i->second.db() );
if ( (DBS_VALID & mode) && !i->second.valid() ) continue;
if ( (DBS_STREAM & mode ) && !i->second.db() ) continue;
//logfmt( FLOG_MAX, "insert_db_record(): %s = %s", i->first.c_str(), i->second.c_str() );
cols += string(first?"":",") + i->first;
if ( !first ) vals += ",";
if ( i->second.binary() )
{
/*
vals += '?';
sz[binary_i] = i->second.size();
char *data = (char*)i->second.data();
//logfmt( FLOG_MAX, "saving binary parameter '%s', len = %d", i->first.c_str(), i->second.size() );
SQLBindParameter( st.hstmt, ++bind_i, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_VARBINARY, sz[binary_i], 0, data, sz[binary_i], &sz[binary_i] );
if ( binary_i++ == MAX_BINARY_PARS )
{
logfmt( FLOG_MAX, "Exceeded maximum allowed binary parameters" );
return 0;
}
*/
throw err("Binary parameters are not supported");
}
else
vals += string("'") + esc(i->second.c_str()) + "'";
/*strcatf( cols, sizeof(cols), "%s%s", first?"":",", i->first.c_str() );
strcatf( vals, sizeof(vals), "%s'%s'", first?"":",", i->second.c_str() );*/
first = false;
}
int res = pgsql_exec( cmd, cols.c_str(), vals.c_str() );
return curr_val( seq );
}
void update_db_record( int mode, const char * table, CVars &rec, long id, const char * where, ... ) throw ( bad_parameter )
{
va_list ap;
va_start( ap, where );
v_update_db_record( mode, table, rec, "id", id, where, ap );
va_end( ap );
}
void update_db_record( int mode, const char * table, CVars &rec, const char *index, long id, const char * where, ... ) throw ( bad_parameter )
{
va_list ap;
va_start( ap, where );
v_update_db_record( mode, table, rec, index, id, where, ap );
va_end( ap );
}
void v_update_db_record( int mode, const char * table, CVars &rec, const char *index, long id, const char * where, va_list ap ) throw ( bad_parameter )
{
logfmt( FLOG_MAX, "update_db_record()" );
int bind_i = 0;
if ( !id ) throw bad_parameter( rec, "id" );
CVars::const_iterator i;
char cmd[128];
bool first = true;
string cols;
char * wherestr;
snprintf( cmd, sizeof(cmd), "UPDATE %s SET %%s WHERE %s=%lu AND %%s", table, index, id );
for ( i=rec.begin(); i != rec.end(); i++ )
{
NEED_ESC;
if ( !i->second.valid() ) continue;
if ( (DBS_STREAM & mode) && !i->second.db() ) continue;
cols += string(first?"":",") + i->first + "=";
if ( ! i->second.binary() )
cols += string("'") + esc(i->second.c_str()) + "'";
else
{
/*
cols += "?";
long int sz = i->second.size();
char *data = (char*)i->second.data();
SQLBindParameter( st.hstmt, ++bind_i, SQL_PARAM_INPUT, SQL_C_BINARY, SQL_VARBINARY, sz, 0, data, sz, &sz );
*/
throw err("Binary data is not supported");
}
first = false;
}
if ( where )
{
int size = vsnprintf( NULL, 0, where, ap ) + 1;
wherestr = (char*)malloc( size );
if ( !wherestr ) throw err("malloc() error");
vsnprintf( wherestr, size, where, ap );
}
int rows = pgsql_exec( cmd, cols.c_str(), where?wherestr:"true" );
if ( where )
free( wherestr );
if ( rows!=1 ) throw bad_parameter( rec, "id" );
}
long curr_val( const char *seq )
{
long size = 20+strlen(seq);
char cmd[size];
snprintf( cmd, size, "SELECT currval('%s')", seq );
logfmt( FLOG_MAX, "%s", cmd);
const PGresult* res = pgsql_query( cmd );
if (res && pgsql_num_rows(res)>0) {
vector<const char *>f = pgsql_fetch_row(res,0);
if (!f.empty() && f.size()>0) {
return atol(f[0]);
}
}
logfmt( FLOG_MAX, "SQL error" );
return -1l;
}
//---------------------------- class CEscape ----------------
char * CEscape::New( int sz )
{
if ( ESCAPE_MAX_VARS==n )
{
logfmt( FLOG_MAX, "CEscape::New() Maximum number of variables reached" );
return NULL;
}
vars[n] = new char[sz];
n++;
return vars[n-1];
}
CEscape::CEscape( char * st )
{
n = 0;
this->st = st;
}
CEscape::~CEscape()
{
for ( int i=0; i<n; i++ )
delete vars[i];
n = 0;
}
char * CEscape::Escape( const char * param )
{
if ( !param ) return NULL;
int len = this->EscapeLength(param);
return this->EscapeReal( param, New(len), len );
}
int CEscape::EscapeLength( const char * par )
{
if ( !par ) return 0;
int i, len = strlen(par), extra = 0;
for ( i=0; i<len; i++ )
if ( par[i]=='\'' || par[i]=='\\' )
extra++;
return len+extra+1;
}
char * CEscape::EscapeReal( const char * cmd, char * _esc, int sz )
{
char * c, * c1, * d, *dend;
char * esc = _esc?_esc:this->esc;
if (!sz) sz = sizeof(this->esc);
c = (char*)cmd; esc[0] = 0; d = esc; dend = d+sz;
if ( !cmd ) return esc;
// LOG( cmd, LOG_MAX );
while ( c<cmd+strlen(cmd) )
{
c1 = c + strcspn( c, "'\\" ); // apostrophe and backslash
if ( !*c1 )
{
strsafecpy( d, c, dend-d );
break;
}
strnsafecpy( d, c, c1-c, dend-d );
d += strlen(d);
strcatf( d, dend-d, "\\%c", *c1 );
d += strlen(d);
c = c1+1;
}
// LOG( esc, LOG_MAX );
return esc;
}
//---------------------------------------------------------------------
+179
View File
@@ -0,0 +1,179 @@
#include "safestring.h"
#include <string.h>
#include <ctype.h>
#include <stdio.h>
#include <stdarg.h>
char * strsafecpy( char * dest, const char * src, int size )
{
if ( src==dest ) return dest;
if ( size<=0 ) return dest;
dest[0] = 0;
if ( !src ) return dest;
int len = strlen( src );
if ( len>=size )
len = size-1; // to be safe
strncpy( dest, src, len );
dest[ len ] = 0;
return dest;
}
char * strnsafecpy( char * dest, const char * src, int n, int size )
{
if ( size<=0 ) return dest;
dest[0] = 0;
if ( !src ) return dest;
if ( n>=size )
n = size-1;
strncpy( dest, src, n );
dest[ n ] = 0;
return dest;
}
char * strsafecat( char * dest, const char * src, int size )
{
int len = strlen( src );
int start = strlen(dest);
size -= start;
if ( len>=size )
len = size-1; // to be safe
strncat( dest, src, len );
dest[ start+len ] = 0;
return dest;
}
char * strnsafecat( char * dest, const char * src, int n, int size )
{
int len = strlen( src );
if ( n<len ) len = n;
int start = strlen(dest);
size -= start;
if ( len>=size )
len = size-1; // to be safe
strncat( dest, src, len );
dest[ start+len ] = 0;
return dest;
}
char * strcatf( char * dest, int size, const char * fmt, ... )
{
va_list ap;
va_start( ap, fmt );
int len = strlen( dest );
if ( size-len > 0 )
vsnprintf( &dest[len], size-len, fmt, ap );
dest[ size-1 ] = 0;
va_end( ap );
return dest;
}
char * toupper( char * s, char * dest/*=NULL*/, int sz/*=0*/ )
{
if (!s) return NULL;
char *c = s;
char *d = dest?dest:s;
while (*c) {
if (d-dest>=sz-1) break;
*d = toupper(*c);
c++; d++;
}
*d = 0;
return dest?dest:s;
}
char * tolower( char * s, char * dest/*=NULL*/, int sz/*=0*/ )
{
if (!s) return NULL;
char *c = s;
char *d = dest?dest:s;
while (*c) {
if ( dest && (d-dest>=sz-1) ) break;
*d = tolower(*c);
c++; d++;
}
*d = 0;
return dest?dest:s;
}
char * toupper( const char * s, char * dest, int sz )
{
return toupper( (char*)s, dest, sz );
}
char * tolower( const char * s, char * dest, int sz )
{
return tolower( (char*)s, dest, sz );
}
char * last_line( char * buf ) // find the last line and return the pointer to its beginning
{
char * line = buf, *bufend = buf + strlen(buf);
while ( char * c = strpbrk( line, "\r\n" ) )
{
c += strspn( c, "\r\n" );
if ( c==bufend )
return line;
line = c;
}
return line;
}
char * safestrdup( const char *s )
{
return s ? strdup( s ) : NULL;
}
char * strreverse( char *s )
{
int len = strlen(s);
int end = len/2;
unsigned char c;
for ( int i=0; i<end; i++ )
{
c = s[i];
s[i] = s[len-i-1];
s[len-i-1] = c;
}
return s;
}
+950
View File
@@ -0,0 +1,950 @@
/*
* FIPS 180-2 SHA-224/256/384/512 implementation
* Last update: 02/02/2007
* Issue date: 04/30/2005
*
* Copyright (C) 2005, 2007 Olivier Gay <olivier.gay@a3.epfl.ch>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#if 0
#define UNROLL_LOOPS /* Enable loops unrolling */
#endif
#include <string.h>
#include "sha2.h"
#define SHFR(x, n) (x >> n)
#define ROTR(x, n) ((x >> n) | (x << ((sizeof(x) << 3) - n)))
#define ROTL(x, n) ((x << n) | (x >> ((sizeof(x) << 3) - n)))
#define CH(x, y, z) ((x & y) ^ (~x & z))
#define MAJ(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
#define SHA256_F1(x) (ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22))
#define SHA256_F2(x) (ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25))
#define SHA256_F3(x) (ROTR(x, 7) ^ ROTR(x, 18) ^ SHFR(x, 3))
#define SHA256_F4(x) (ROTR(x, 17) ^ ROTR(x, 19) ^ SHFR(x, 10))
#define SHA512_F1(x) (ROTR(x, 28) ^ ROTR(x, 34) ^ ROTR(x, 39))
#define SHA512_F2(x) (ROTR(x, 14) ^ ROTR(x, 18) ^ ROTR(x, 41))
#define SHA512_F3(x) (ROTR(x, 1) ^ ROTR(x, 8) ^ SHFR(x, 7))
#define SHA512_F4(x) (ROTR(x, 19) ^ ROTR(x, 61) ^ SHFR(x, 6))
#define UNPACK32(x, str) \
{ \
*((str) + 3) = (uint8) ((x) ); \
*((str) + 2) = (uint8) ((x) >> 8); \
*((str) + 1) = (uint8) ((x) >> 16); \
*((str) + 0) = (uint8) ((x) >> 24); \
}
#define PACK32(str, x) \
{ \
*(x) = ((uint32) *((str) + 3) ) \
| ((uint32) *((str) + 2) << 8) \
| ((uint32) *((str) + 1) << 16) \
| ((uint32) *((str) + 0) << 24); \
}
#define UNPACK64(x, str) \
{ \
*((str) + 7) = (uint8) ((x) ); \
*((str) + 6) = (uint8) ((x) >> 8); \
*((str) + 5) = (uint8) ((x) >> 16); \
*((str) + 4) = (uint8) ((x) >> 24); \
*((str) + 3) = (uint8) ((x) >> 32); \
*((str) + 2) = (uint8) ((x) >> 40); \
*((str) + 1) = (uint8) ((x) >> 48); \
*((str) + 0) = (uint8) ((x) >> 56); \
}
#define PACK64(str, x) \
{ \
*(x) = ((uint64) *((str) + 7) ) \
| ((uint64) *((str) + 6) << 8) \
| ((uint64) *((str) + 5) << 16) \
| ((uint64) *((str) + 4) << 24) \
| ((uint64) *((str) + 3) << 32) \
| ((uint64) *((str) + 2) << 40) \
| ((uint64) *((str) + 1) << 48) \
| ((uint64) *((str) + 0) << 56); \
}
/* Macros used for loops unrolling */
#define SHA256_SCR(i) \
{ \
w[i] = SHA256_F4(w[i - 2]) + w[i - 7] \
+ SHA256_F3(w[i - 15]) + w[i - 16]; \
}
#define SHA512_SCR(i) \
{ \
w[i] = SHA512_F4(w[i - 2]) + w[i - 7] \
+ SHA512_F3(w[i - 15]) + w[i - 16]; \
}
#define SHA256_EXP(a, b, c, d, e, f, g, h, j) \
{ \
t1 = wv[h] + SHA256_F2(wv[e]) + CH(wv[e], wv[f], wv[g]) \
+ sha256_k[j] + w[j]; \
t2 = SHA256_F1(wv[a]) + MAJ(wv[a], wv[b], wv[c]); \
wv[d] += t1; \
wv[h] = t1 + t2; \
}
#define SHA512_EXP(a, b, c, d, e, f, g ,h, j) \
{ \
t1 = wv[h] + SHA512_F2(wv[e]) + CH(wv[e], wv[f], wv[g]) \
+ sha512_k[j] + w[j]; \
t2 = SHA512_F1(wv[a]) + MAJ(wv[a], wv[b], wv[c]); \
wv[d] += t1; \
wv[h] = t1 + t2; \
}
uint32 sha224_h0[8] =
{0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4};
uint32 sha256_h0[8] =
{0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19};
uint64 sha384_h0[8] =
{0xcbbb9d5dc1059ed8ULL, 0x629a292a367cd507ULL,
0x9159015a3070dd17ULL, 0x152fecd8f70e5939ULL,
0x67332667ffc00b31ULL, 0x8eb44a8768581511ULL,
0xdb0c2e0d64f98fa7ULL, 0x47b5481dbefa4fa4ULL};
uint64 sha512_h0[8] =
{0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL};
uint32 sha256_k[64] =
{0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2};
uint64 sha512_k[80] =
{0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL,
0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL,
0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL,
0xd807aa98a3030242ULL, 0x12835b0145706fbeULL,
0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL,
0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL,
0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL,
0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL,
0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL,
0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL,
0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL,
0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL,
0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL,
0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL,
0x06ca6351e003826fULL, 0x142929670a0e6e70ULL,
0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL,
0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL,
0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL,
0x81c2c92e47edaee6ULL, 0x92722c851482353bULL,
0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL,
0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL,
0xd192e819d6ef5218ULL, 0xd69906245565a910ULL,
0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL,
0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL,
0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL,
0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL,
0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL,
0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL,
0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL,
0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL,
0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL,
0xca273eceea26619cULL, 0xd186b8c721c0c207ULL,
0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL,
0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL,
0x113f9804bef90daeULL, 0x1b710b35131c471bULL,
0x28db77f523047d84ULL, 0x32caab7b40c72493ULL,
0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL,
0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL,
0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL};
/* SHA-256 functions */
void sha256_transf(sha256_ctx *ctx, const unsigned char *message,
unsigned int block_nb)
{
uint32 w[64];
uint32 wv[8];
uint32 t1, t2;
const unsigned char *sub_block;
int i;
#ifndef UNROLL_LOOPS
int j;
#endif
for (i = 0; i < (int) block_nb; i++) {
sub_block = message + (i << 6);
#ifndef UNROLL_LOOPS
for (j = 0; j < 16; j++) {
PACK32(&sub_block[j << 2], &w[j]);
}
for (j = 16; j < 64; j++) {
SHA256_SCR(j);
}
for (j = 0; j < 8; j++) {
wv[j] = ctx->h[j];
}
for (j = 0; j < 64; j++) {
t1 = wv[7] + SHA256_F2(wv[4]) + CH(wv[4], wv[5], wv[6])
+ sha256_k[j] + w[j];
t2 = SHA256_F1(wv[0]) + MAJ(wv[0], wv[1], wv[2]);
wv[7] = wv[6];
wv[6] = wv[5];
wv[5] = wv[4];
wv[4] = wv[3] + t1;
wv[3] = wv[2];
wv[2] = wv[1];
wv[1] = wv[0];
wv[0] = t1 + t2;
}
for (j = 0; j < 8; j++) {
ctx->h[j] += wv[j];
}
#else
PACK32(&sub_block[ 0], &w[ 0]); PACK32(&sub_block[ 4], &w[ 1]);
PACK32(&sub_block[ 8], &w[ 2]); PACK32(&sub_block[12], &w[ 3]);
PACK32(&sub_block[16], &w[ 4]); PACK32(&sub_block[20], &w[ 5]);
PACK32(&sub_block[24], &w[ 6]); PACK32(&sub_block[28], &w[ 7]);
PACK32(&sub_block[32], &w[ 8]); PACK32(&sub_block[36], &w[ 9]);
PACK32(&sub_block[40], &w[10]); PACK32(&sub_block[44], &w[11]);
PACK32(&sub_block[48], &w[12]); PACK32(&sub_block[52], &w[13]);
PACK32(&sub_block[56], &w[14]); PACK32(&sub_block[60], &w[15]);
SHA256_SCR(16); SHA256_SCR(17); SHA256_SCR(18); SHA256_SCR(19);
SHA256_SCR(20); SHA256_SCR(21); SHA256_SCR(22); SHA256_SCR(23);
SHA256_SCR(24); SHA256_SCR(25); SHA256_SCR(26); SHA256_SCR(27);
SHA256_SCR(28); SHA256_SCR(29); SHA256_SCR(30); SHA256_SCR(31);
SHA256_SCR(32); SHA256_SCR(33); SHA256_SCR(34); SHA256_SCR(35);
SHA256_SCR(36); SHA256_SCR(37); SHA256_SCR(38); SHA256_SCR(39);
SHA256_SCR(40); SHA256_SCR(41); SHA256_SCR(42); SHA256_SCR(43);
SHA256_SCR(44); SHA256_SCR(45); SHA256_SCR(46); SHA256_SCR(47);
SHA256_SCR(48); SHA256_SCR(49); SHA256_SCR(50); SHA256_SCR(51);
SHA256_SCR(52); SHA256_SCR(53); SHA256_SCR(54); SHA256_SCR(55);
SHA256_SCR(56); SHA256_SCR(57); SHA256_SCR(58); SHA256_SCR(59);
SHA256_SCR(60); SHA256_SCR(61); SHA256_SCR(62); SHA256_SCR(63);
wv[0] = ctx->h[0]; wv[1] = ctx->h[1];
wv[2] = ctx->h[2]; wv[3] = ctx->h[3];
wv[4] = ctx->h[4]; wv[5] = ctx->h[5];
wv[6] = ctx->h[6]; wv[7] = ctx->h[7];
SHA256_EXP(0,1,2,3,4,5,6,7, 0); SHA256_EXP(7,0,1,2,3,4,5,6, 1);
SHA256_EXP(6,7,0,1,2,3,4,5, 2); SHA256_EXP(5,6,7,0,1,2,3,4, 3);
SHA256_EXP(4,5,6,7,0,1,2,3, 4); SHA256_EXP(3,4,5,6,7,0,1,2, 5);
SHA256_EXP(2,3,4,5,6,7,0,1, 6); SHA256_EXP(1,2,3,4,5,6,7,0, 7);
SHA256_EXP(0,1,2,3,4,5,6,7, 8); SHA256_EXP(7,0,1,2,3,4,5,6, 9);
SHA256_EXP(6,7,0,1,2,3,4,5,10); SHA256_EXP(5,6,7,0,1,2,3,4,11);
SHA256_EXP(4,5,6,7,0,1,2,3,12); SHA256_EXP(3,4,5,6,7,0,1,2,13);
SHA256_EXP(2,3,4,5,6,7,0,1,14); SHA256_EXP(1,2,3,4,5,6,7,0,15);
SHA256_EXP(0,1,2,3,4,5,6,7,16); SHA256_EXP(7,0,1,2,3,4,5,6,17);
SHA256_EXP(6,7,0,1,2,3,4,5,18); SHA256_EXP(5,6,7,0,1,2,3,4,19);
SHA256_EXP(4,5,6,7,0,1,2,3,20); SHA256_EXP(3,4,5,6,7,0,1,2,21);
SHA256_EXP(2,3,4,5,6,7,0,1,22); SHA256_EXP(1,2,3,4,5,6,7,0,23);
SHA256_EXP(0,1,2,3,4,5,6,7,24); SHA256_EXP(7,0,1,2,3,4,5,6,25);
SHA256_EXP(6,7,0,1,2,3,4,5,26); SHA256_EXP(5,6,7,0,1,2,3,4,27);
SHA256_EXP(4,5,6,7,0,1,2,3,28); SHA256_EXP(3,4,5,6,7,0,1,2,29);
SHA256_EXP(2,3,4,5,6,7,0,1,30); SHA256_EXP(1,2,3,4,5,6,7,0,31);
SHA256_EXP(0,1,2,3,4,5,6,7,32); SHA256_EXP(7,0,1,2,3,4,5,6,33);
SHA256_EXP(6,7,0,1,2,3,4,5,34); SHA256_EXP(5,6,7,0,1,2,3,4,35);
SHA256_EXP(4,5,6,7,0,1,2,3,36); SHA256_EXP(3,4,5,6,7,0,1,2,37);
SHA256_EXP(2,3,4,5,6,7,0,1,38); SHA256_EXP(1,2,3,4,5,6,7,0,39);
SHA256_EXP(0,1,2,3,4,5,6,7,40); SHA256_EXP(7,0,1,2,3,4,5,6,41);
SHA256_EXP(6,7,0,1,2,3,4,5,42); SHA256_EXP(5,6,7,0,1,2,3,4,43);
SHA256_EXP(4,5,6,7,0,1,2,3,44); SHA256_EXP(3,4,5,6,7,0,1,2,45);
SHA256_EXP(2,3,4,5,6,7,0,1,46); SHA256_EXP(1,2,3,4,5,6,7,0,47);
SHA256_EXP(0,1,2,3,4,5,6,7,48); SHA256_EXP(7,0,1,2,3,4,5,6,49);
SHA256_EXP(6,7,0,1,2,3,4,5,50); SHA256_EXP(5,6,7,0,1,2,3,4,51);
SHA256_EXP(4,5,6,7,0,1,2,3,52); SHA256_EXP(3,4,5,6,7,0,1,2,53);
SHA256_EXP(2,3,4,5,6,7,0,1,54); SHA256_EXP(1,2,3,4,5,6,7,0,55);
SHA256_EXP(0,1,2,3,4,5,6,7,56); SHA256_EXP(7,0,1,2,3,4,5,6,57);
SHA256_EXP(6,7,0,1,2,3,4,5,58); SHA256_EXP(5,6,7,0,1,2,3,4,59);
SHA256_EXP(4,5,6,7,0,1,2,3,60); SHA256_EXP(3,4,5,6,7,0,1,2,61);
SHA256_EXP(2,3,4,5,6,7,0,1,62); SHA256_EXP(1,2,3,4,5,6,7,0,63);
ctx->h[0] += wv[0]; ctx->h[1] += wv[1];
ctx->h[2] += wv[2]; ctx->h[3] += wv[3];
ctx->h[4] += wv[4]; ctx->h[5] += wv[5];
ctx->h[6] += wv[6]; ctx->h[7] += wv[7];
#endif /* !UNROLL_LOOPS */
}
}
void sha256(const unsigned char *message, unsigned int len, unsigned char *digest)
{
sha256_ctx ctx;
sha256_init(&ctx);
sha256_update(&ctx, message, len);
sha256_final(&ctx, digest);
}
void sha256_init(sha256_ctx *ctx)
{
#ifndef UNROLL_LOOPS
int i;
for (i = 0; i < 8; i++) {
ctx->h[i] = sha256_h0[i];
}
#else
ctx->h[0] = sha256_h0[0]; ctx->h[1] = sha256_h0[1];
ctx->h[2] = sha256_h0[2]; ctx->h[3] = sha256_h0[3];
ctx->h[4] = sha256_h0[4]; ctx->h[5] = sha256_h0[5];
ctx->h[6] = sha256_h0[6]; ctx->h[7] = sha256_h0[7];
#endif /* !UNROLL_LOOPS */
ctx->len = 0;
ctx->tot_len = 0;
}
void sha256_update(sha256_ctx *ctx, const unsigned char *message,
unsigned int len)
{
unsigned int block_nb;
unsigned int new_len, rem_len, tmp_len;
const unsigned char *shifted_message;
tmp_len = SHA256_BLOCK_SIZE - ctx->len;
rem_len = len < tmp_len ? len : tmp_len;
memcpy(&ctx->block[ctx->len], message, rem_len);
if (ctx->len + len < SHA256_BLOCK_SIZE) {
ctx->len += len;
return;
}
new_len = len - rem_len;
block_nb = new_len / SHA256_BLOCK_SIZE;
shifted_message = message + rem_len;
sha256_transf(ctx, ctx->block, 1);
sha256_transf(ctx, shifted_message, block_nb);
rem_len = new_len % SHA256_BLOCK_SIZE;
memcpy(ctx->block, &shifted_message[block_nb << 6],
rem_len);
ctx->len = rem_len;
ctx->tot_len += (block_nb + 1) << 6;
}
void sha256_final(sha256_ctx *ctx, unsigned char *digest)
{
unsigned int block_nb;
unsigned int pm_len;
unsigned int len_b;
#ifndef UNROLL_LOOPS
int i;
#endif
block_nb = (1 + ((SHA256_BLOCK_SIZE - 9)
< (ctx->len % SHA256_BLOCK_SIZE)));
len_b = (ctx->tot_len + ctx->len) << 3;
pm_len = block_nb << 6;
memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
ctx->block[ctx->len] = 0x80;
UNPACK32(len_b, ctx->block + pm_len - 4);
sha256_transf(ctx, ctx->block, block_nb);
#ifndef UNROLL_LOOPS
for (i = 0 ; i < 8; i++) {
UNPACK32(ctx->h[i], &digest[i << 2]);
}
#else
UNPACK32(ctx->h[0], &digest[ 0]);
UNPACK32(ctx->h[1], &digest[ 4]);
UNPACK32(ctx->h[2], &digest[ 8]);
UNPACK32(ctx->h[3], &digest[12]);
UNPACK32(ctx->h[4], &digest[16]);
UNPACK32(ctx->h[5], &digest[20]);
UNPACK32(ctx->h[6], &digest[24]);
UNPACK32(ctx->h[7], &digest[28]);
#endif /* !UNROLL_LOOPS */
}
/* SHA-512 functions */
void sha512_transf(sha512_ctx *ctx, const unsigned char *message,
unsigned int block_nb)
{
uint64 w[80];
uint64 wv[8];
uint64 t1, t2;
const unsigned char *sub_block;
int i, j;
for (i = 0; i < (int) block_nb; i++) {
sub_block = message + (i << 7);
#ifndef UNROLL_LOOPS
for (j = 0; j < 16; j++) {
PACK64(&sub_block[j << 3], &w[j]);
}
for (j = 16; j < 80; j++) {
SHA512_SCR(j);
}
for (j = 0; j < 8; j++) {
wv[j] = ctx->h[j];
}
for (j = 0; j < 80; j++) {
t1 = wv[7] + SHA512_F2(wv[4]) + CH(wv[4], wv[5], wv[6])
+ sha512_k[j] + w[j];
t2 = SHA512_F1(wv[0]) + MAJ(wv[0], wv[1], wv[2]);
wv[7] = wv[6];
wv[6] = wv[5];
wv[5] = wv[4];
wv[4] = wv[3] + t1;
wv[3] = wv[2];
wv[2] = wv[1];
wv[1] = wv[0];
wv[0] = t1 + t2;
}
for (j = 0; j < 8; j++) {
ctx->h[j] += wv[j];
}
#else
PACK64(&sub_block[ 0], &w[ 0]); PACK64(&sub_block[ 8], &w[ 1]);
PACK64(&sub_block[ 16], &w[ 2]); PACK64(&sub_block[ 24], &w[ 3]);
PACK64(&sub_block[ 32], &w[ 4]); PACK64(&sub_block[ 40], &w[ 5]);
PACK64(&sub_block[ 48], &w[ 6]); PACK64(&sub_block[ 56], &w[ 7]);
PACK64(&sub_block[ 64], &w[ 8]); PACK64(&sub_block[ 72], &w[ 9]);
PACK64(&sub_block[ 80], &w[10]); PACK64(&sub_block[ 88], &w[11]);
PACK64(&sub_block[ 96], &w[12]); PACK64(&sub_block[104], &w[13]);
PACK64(&sub_block[112], &w[14]); PACK64(&sub_block[120], &w[15]);
SHA512_SCR(16); SHA512_SCR(17); SHA512_SCR(18); SHA512_SCR(19);
SHA512_SCR(20); SHA512_SCR(21); SHA512_SCR(22); SHA512_SCR(23);
SHA512_SCR(24); SHA512_SCR(25); SHA512_SCR(26); SHA512_SCR(27);
SHA512_SCR(28); SHA512_SCR(29); SHA512_SCR(30); SHA512_SCR(31);
SHA512_SCR(32); SHA512_SCR(33); SHA512_SCR(34); SHA512_SCR(35);
SHA512_SCR(36); SHA512_SCR(37); SHA512_SCR(38); SHA512_SCR(39);
SHA512_SCR(40); SHA512_SCR(41); SHA512_SCR(42); SHA512_SCR(43);
SHA512_SCR(44); SHA512_SCR(45); SHA512_SCR(46); SHA512_SCR(47);
SHA512_SCR(48); SHA512_SCR(49); SHA512_SCR(50); SHA512_SCR(51);
SHA512_SCR(52); SHA512_SCR(53); SHA512_SCR(54); SHA512_SCR(55);
SHA512_SCR(56); SHA512_SCR(57); SHA512_SCR(58); SHA512_SCR(59);
SHA512_SCR(60); SHA512_SCR(61); SHA512_SCR(62); SHA512_SCR(63);
SHA512_SCR(64); SHA512_SCR(65); SHA512_SCR(66); SHA512_SCR(67);
SHA512_SCR(68); SHA512_SCR(69); SHA512_SCR(70); SHA512_SCR(71);
SHA512_SCR(72); SHA512_SCR(73); SHA512_SCR(74); SHA512_SCR(75);
SHA512_SCR(76); SHA512_SCR(77); SHA512_SCR(78); SHA512_SCR(79);
wv[0] = ctx->h[0]; wv[1] = ctx->h[1];
wv[2] = ctx->h[2]; wv[3] = ctx->h[3];
wv[4] = ctx->h[4]; wv[5] = ctx->h[5];
wv[6] = ctx->h[6]; wv[7] = ctx->h[7];
j = 0;
do {
SHA512_EXP(0,1,2,3,4,5,6,7,j); j++;
SHA512_EXP(7,0,1,2,3,4,5,6,j); j++;
SHA512_EXP(6,7,0,1,2,3,4,5,j); j++;
SHA512_EXP(5,6,7,0,1,2,3,4,j); j++;
SHA512_EXP(4,5,6,7,0,1,2,3,j); j++;
SHA512_EXP(3,4,5,6,7,0,1,2,j); j++;
SHA512_EXP(2,3,4,5,6,7,0,1,j); j++;
SHA512_EXP(1,2,3,4,5,6,7,0,j); j++;
} while (j < 80);
ctx->h[0] += wv[0]; ctx->h[1] += wv[1];
ctx->h[2] += wv[2]; ctx->h[3] += wv[3];
ctx->h[4] += wv[4]; ctx->h[5] += wv[5];
ctx->h[6] += wv[6]; ctx->h[7] += wv[7];
#endif /* !UNROLL_LOOPS */
}
}
void sha512(const unsigned char *message, unsigned int len,
unsigned char *digest)
{
sha512_ctx ctx;
sha512_init(&ctx);
sha512_update(&ctx, message, len);
sha512_final(&ctx, digest);
}
void sha512_init(sha512_ctx *ctx)
{
#ifndef UNROLL_LOOPS
int i;
for (i = 0; i < 8; i++) {
ctx->h[i] = sha512_h0[i];
}
#else
ctx->h[0] = sha512_h0[0]; ctx->h[1] = sha512_h0[1];
ctx->h[2] = sha512_h0[2]; ctx->h[3] = sha512_h0[3];
ctx->h[4] = sha512_h0[4]; ctx->h[5] = sha512_h0[5];
ctx->h[6] = sha512_h0[6]; ctx->h[7] = sha512_h0[7];
#endif /* !UNROLL_LOOPS */
ctx->len = 0;
ctx->tot_len = 0;
}
void sha512_update(sha512_ctx *ctx, const unsigned char *message,
unsigned int len)
{
unsigned int block_nb;
unsigned int new_len, rem_len, tmp_len;
const unsigned char *shifted_message;
tmp_len = SHA512_BLOCK_SIZE - ctx->len;
rem_len = len < tmp_len ? len : tmp_len;
memcpy(&ctx->block[ctx->len], message, rem_len);
if (ctx->len + len < SHA512_BLOCK_SIZE) {
ctx->len += len;
return;
}
new_len = len - rem_len;
block_nb = new_len / SHA512_BLOCK_SIZE;
shifted_message = message + rem_len;
sha512_transf(ctx, ctx->block, 1);
sha512_transf(ctx, shifted_message, block_nb);
rem_len = new_len % SHA512_BLOCK_SIZE;
memcpy(ctx->block, &shifted_message[block_nb << 7],
rem_len);
ctx->len = rem_len;
ctx->tot_len += (block_nb + 1) << 7;
}
void sha512_final(sha512_ctx *ctx, unsigned char *digest)
{
unsigned int block_nb;
unsigned int pm_len;
unsigned int len_b;
#ifndef UNROLL_LOOPS
int i;
#endif
block_nb = 1 + ((SHA512_BLOCK_SIZE - 17)
< (ctx->len % SHA512_BLOCK_SIZE));
len_b = (ctx->tot_len + ctx->len) << 3;
pm_len = block_nb << 7;
memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
ctx->block[ctx->len] = 0x80;
UNPACK32(len_b, ctx->block + pm_len - 4);
sha512_transf(ctx, ctx->block, block_nb);
#ifndef UNROLL_LOOPS
for (i = 0 ; i < 8; i++) {
UNPACK64(ctx->h[i], &digest[i << 3]);
}
#else
UNPACK64(ctx->h[0], &digest[ 0]);
UNPACK64(ctx->h[1], &digest[ 8]);
UNPACK64(ctx->h[2], &digest[16]);
UNPACK64(ctx->h[3], &digest[24]);
UNPACK64(ctx->h[4], &digest[32]);
UNPACK64(ctx->h[5], &digest[40]);
UNPACK64(ctx->h[6], &digest[48]);
UNPACK64(ctx->h[7], &digest[56]);
#endif /* !UNROLL_LOOPS */
}
/* SHA-384 functions */
void sha384(const unsigned char *message, unsigned int len,
unsigned char *digest)
{
sha384_ctx ctx;
sha384_init(&ctx);
sha384_update(&ctx, message, len);
sha384_final(&ctx, digest);
}
void sha384_init(sha384_ctx *ctx)
{
#ifndef UNROLL_LOOPS
int i;
for (i = 0; i < 8; i++) {
ctx->h[i] = sha384_h0[i];
}
#else
ctx->h[0] = sha384_h0[0]; ctx->h[1] = sha384_h0[1];
ctx->h[2] = sha384_h0[2]; ctx->h[3] = sha384_h0[3];
ctx->h[4] = sha384_h0[4]; ctx->h[5] = sha384_h0[5];
ctx->h[6] = sha384_h0[6]; ctx->h[7] = sha384_h0[7];
#endif /* !UNROLL_LOOPS */
ctx->len = 0;
ctx->tot_len = 0;
}
void sha384_update(sha384_ctx *ctx, const unsigned char *message,
unsigned int len)
{
unsigned int block_nb;
unsigned int new_len, rem_len, tmp_len;
const unsigned char *shifted_message;
tmp_len = SHA384_BLOCK_SIZE - ctx->len;
rem_len = len < tmp_len ? len : tmp_len;
memcpy(&ctx->block[ctx->len], message, rem_len);
if (ctx->len + len < SHA384_BLOCK_SIZE) {
ctx->len += len;
return;
}
new_len = len - rem_len;
block_nb = new_len / SHA384_BLOCK_SIZE;
shifted_message = message + rem_len;
sha512_transf(ctx, ctx->block, 1);
sha512_transf(ctx, shifted_message, block_nb);
rem_len = new_len % SHA384_BLOCK_SIZE;
memcpy(ctx->block, &shifted_message[block_nb << 7],
rem_len);
ctx->len = rem_len;
ctx->tot_len += (block_nb + 1) << 7;
}
void sha384_final(sha384_ctx *ctx, unsigned char *digest)
{
unsigned int block_nb;
unsigned int pm_len;
unsigned int len_b;
#ifndef UNROLL_LOOPS
int i;
#endif
block_nb = (1 + ((SHA384_BLOCK_SIZE - 17)
< (ctx->len % SHA384_BLOCK_SIZE)));
len_b = (ctx->tot_len + ctx->len) << 3;
pm_len = block_nb << 7;
memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
ctx->block[ctx->len] = 0x80;
UNPACK32(len_b, ctx->block + pm_len - 4);
sha512_transf(ctx, ctx->block, block_nb);
#ifndef UNROLL_LOOPS
for (i = 0 ; i < 6; i++) {
UNPACK64(ctx->h[i], &digest[i << 3]);
}
#else
UNPACK64(ctx->h[0], &digest[ 0]);
UNPACK64(ctx->h[1], &digest[ 8]);
UNPACK64(ctx->h[2], &digest[16]);
UNPACK64(ctx->h[3], &digest[24]);
UNPACK64(ctx->h[4], &digest[32]);
UNPACK64(ctx->h[5], &digest[40]);
#endif /* !UNROLL_LOOPS */
}
/* SHA-224 functions */
void sha224(const unsigned char *message, unsigned int len,
unsigned char *digest)
{
sha224_ctx ctx;
sha224_init(&ctx);
sha224_update(&ctx, message, len);
sha224_final(&ctx, digest);
}
void sha224_init(sha224_ctx *ctx)
{
#ifndef UNROLL_LOOPS
int i;
for (i = 0; i < 8; i++) {
ctx->h[i] = sha224_h0[i];
}
#else
ctx->h[0] = sha224_h0[0]; ctx->h[1] = sha224_h0[1];
ctx->h[2] = sha224_h0[2]; ctx->h[3] = sha224_h0[3];
ctx->h[4] = sha224_h0[4]; ctx->h[5] = sha224_h0[5];
ctx->h[6] = sha224_h0[6]; ctx->h[7] = sha224_h0[7];
#endif /* !UNROLL_LOOPS */
ctx->len = 0;
ctx->tot_len = 0;
}
void sha224_update(sha224_ctx *ctx, const unsigned char *message,
unsigned int len)
{
unsigned int block_nb;
unsigned int new_len, rem_len, tmp_len;
const unsigned char *shifted_message;
tmp_len = SHA224_BLOCK_SIZE - ctx->len;
rem_len = len < tmp_len ? len : tmp_len;
memcpy(&ctx->block[ctx->len], message, rem_len);
if (ctx->len + len < SHA224_BLOCK_SIZE) {
ctx->len += len;
return;
}
new_len = len - rem_len;
block_nb = new_len / SHA224_BLOCK_SIZE;
shifted_message = message + rem_len;
sha256_transf(ctx, ctx->block, 1);
sha256_transf(ctx, shifted_message, block_nb);
rem_len = new_len % SHA224_BLOCK_SIZE;
memcpy(ctx->block, &shifted_message[block_nb << 6],
rem_len);
ctx->len = rem_len;
ctx->tot_len += (block_nb + 1) << 6;
}
void sha224_final(sha224_ctx *ctx, unsigned char *digest)
{
unsigned int block_nb;
unsigned int pm_len;
unsigned int len_b;
#ifndef UNROLL_LOOPS
int i;
#endif
block_nb = (1 + ((SHA224_BLOCK_SIZE - 9)
< (ctx->len % SHA224_BLOCK_SIZE)));
len_b = (ctx->tot_len + ctx->len) << 3;
pm_len = block_nb << 6;
memset(ctx->block + ctx->len, 0, pm_len - ctx->len);
ctx->block[ctx->len] = 0x80;
UNPACK32(len_b, ctx->block + pm_len - 4);
sha256_transf(ctx, ctx->block, block_nb);
#ifndef UNROLL_LOOPS
for (i = 0 ; i < 7; i++) {
UNPACK32(ctx->h[i], &digest[i << 2]);
}
#else
UNPACK32(ctx->h[0], &digest[ 0]);
UNPACK32(ctx->h[1], &digest[ 4]);
UNPACK32(ctx->h[2], &digest[ 8]);
UNPACK32(ctx->h[3], &digest[12]);
UNPACK32(ctx->h[4], &digest[16]);
UNPACK32(ctx->h[5], &digest[20]);
UNPACK32(ctx->h[6], &digest[24]);
#endif /* !UNROLL_LOOPS */
}
#ifdef TEST_VECTORS
/* FIPS 180-2 Validation tests */
#include <stdio.h>
#include <stdlib.h>
void test(const unsigned char *vector, unsigned char *digest,
unsigned int digest_size)
{
unsigned char output[2 * SHA512_DIGEST_SIZE + 1];
int i;
output[2 * digest_size] = '\0';
for (i = 0; i < (int) digest_size ; i++) {
sprintf((char *) output + 2 * i, "%02x", digest[i]);
}
printf("H: %s\n", output);
if (strcmp((char *) vector, (char *) output)) {
fprintf(stderr, "Test failed.\n");
exit(EXIT_FAILURE);
}
}
int main()
{
static const unsigned char *vectors[4][3] =
{ /* SHA-224 */
{
"23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7",
"75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525",
"20794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67",
},
/* SHA-256 */
{
"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad",
"248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1",
"cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0",
},
/* SHA-384 */
{
"cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed"
"8086072ba1e7cc2358baeca134c825a7",
"09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712"
"fcc7c71a557e2db966c3e9fa91746039",
"9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b"
"07b8b3dc38ecc4ebae97ddd87f3d8985",
},
/* SHA-512 */
{
"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a"
"2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f",
"8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018"
"501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909",
"e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973eb"
"de0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b"
}
};
static const unsigned char message1[] = "abc";
static const unsigned char message2a[] = "abcdbcdecdefdefgefghfghighijhi"
"jkijkljklmklmnlmnomnopnopq";
static const unsigned char message2b[] =
"abcdefghbcdefghicdefghijdefghijkefghij"
"klfghijklmghijklmnhijklmnoijklmnopjklm"
"nopqklmnopqrlmnopqrsmnopqrstnopqrstu";
unsigned char *message3;
unsigned int message3_len = 1000000;
unsigned char digest[SHA512_DIGEST_SIZE];
message3 = malloc(message3_len);
if (message3 == NULL) {
fprintf(stderr, "Can't allocate memory\n");
return -1;
}
memset(message3, 'a', message3_len);
printf("SHA-2 FIPS 180-2 Validation tests\n\n");
printf("SHA-224 Test vectors\n");
sha224(message1, strlen((char *) message1), digest);
test(vectors[0][0], digest, SHA224_DIGEST_SIZE);
sha224(message2a, strlen((char *) message2a), digest);
test(vectors[0][1], digest, SHA224_DIGEST_SIZE);
sha224(message3, message3_len, digest);
test(vectors[0][2], digest, SHA224_DIGEST_SIZE);
printf("\n");
printf("SHA-256 Test vectors\n");
sha256(message1, strlen((char *) message1), digest);
test(vectors[1][0], digest, SHA256_DIGEST_SIZE);
sha256(message2a, strlen((char *) message2a), digest);
test(vectors[1][1], digest, SHA256_DIGEST_SIZE);
sha256(message3, message3_len, digest);
test(vectors[1][2], digest, SHA256_DIGEST_SIZE);
printf("\n");
printf("SHA-384 Test vectors\n");
sha384(message1, strlen((char *) message1), digest);
test(vectors[2][0], digest, SHA384_DIGEST_SIZE);
sha384(message2b, strlen((char *) message2b), digest);
test(vectors[2][1], digest, SHA384_DIGEST_SIZE);
sha384(message3, message3_len, digest);
test(vectors[2][2], digest, SHA384_DIGEST_SIZE);
printf("\n");
printf("SHA-512 Test vectors\n");
sha512(message1, strlen((char *) message1), digest);
test(vectors[3][0], digest, SHA512_DIGEST_SIZE);
sha512(message2b, strlen((char *) message2b), digest);
test(vectors[3][1], digest, SHA512_DIGEST_SIZE);
sha512(message3, message3_len, digest);
test(vectors[3][2], digest, SHA512_DIGEST_SIZE);
printf("\n");
printf("All tests passed.\n");
return 0;
}
#endif /* TEST_VECTORS */
+262
View File
@@ -0,0 +1,262 @@
//jagatsastry.nitk@gmail.com 9th April 09
//Implementation of SHA 512
#include<iostream>
#include<vector>
#include<fstream>
#include<string>
using namespace std;
typedef unsigned int uint;
typedef unsigned long long ullint;
string fromDecimal(ullint n, ullint b)
{
string chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string result="";
while(n>0)
{
result=chars.at(n%b)+result;
n/=b;
}
return result;
}
ullint K[80] = {
0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL,
0xb5c0fbcfec4d3b2fULL, 0xe9b5dba58189dbbcULL,
0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
0x923f82a4af194f9bULL, 0xab1c5ed5da6d8118ULL,
0xd807aa98a3030242ULL, 0x12835b0145706fbeULL,
0x243185be4ee4b28cULL, 0x550c7dc3d5ffb4e2ULL,
0x72be5d74f27b896fULL, 0x80deb1fe3b1696b1ULL,
0x9bdc06a725c71235ULL, 0xc19bf174cf692694ULL,
0xe49b69c19ef14ad2ULL, 0xefbe4786384f25e3ULL,
0x0fc19dc68b8cd5b5ULL, 0x240ca1cc77ac9c65ULL,
0x2de92c6f592b0275ULL, 0x4a7484aa6ea6e483ULL,
0x5cb0a9dcbd41fbd4ULL, 0x76f988da831153b5ULL,
0x983e5152ee66dfabULL, 0xa831c66d2db43210ULL,
0xb00327c898fb213fULL, 0xbf597fc7beef0ee4ULL,
0xc6e00bf33da88fc2ULL, 0xd5a79147930aa725ULL,
0x06ca6351e003826fULL, 0x142929670a0e6e70ULL,
0x27b70a8546d22ffcULL, 0x2e1b21385c26c926ULL,
0x4d2c6dfc5ac42aedULL, 0x53380d139d95b3dfULL,
0x650a73548baf63deULL, 0x766a0abb3c77b2a8ULL,
0x81c2c92e47edaee6ULL, 0x92722c851482353bULL,
0xa2bfe8a14cf10364ULL, 0xa81a664bbc423001ULL,
0xc24b8b70d0f89791ULL, 0xc76c51a30654be30ULL,
0xd192e819d6ef5218ULL, 0xd69906245565a910ULL,
0xf40e35855771202aULL, 0x106aa07032bbd1b8ULL,
0x19a4c116b8d2d0c8ULL, 0x1e376c085141ab53ULL,
0x2748774cdf8eeb99ULL, 0x34b0bcb5e19b48a8ULL,
0x391c0cb3c5c95a63ULL, 0x4ed8aa4ae3418acbULL,
0x5b9cca4f7763e373ULL, 0x682e6ff3d6b2b8a3ULL,
0x748f82ee5defb2fcULL, 0x78a5636f43172f60ULL,
0x84c87814a1f0ab72ULL, 0x8cc702081a6439ecULL,
0x90befffa23631e28ULL, 0xa4506cebde82bde9ULL,
0xbef9a3f7b2c67915ULL, 0xc67178f2e372532bULL,
0xca273eceea26619cULL, 0xd186b8c721c0c207ULL,
0xeada7dd6cde0eb1eULL, 0xf57d4f7fee6ed178ULL,
0x06f067aa72176fbaULL, 0x0a637dc5a2c898a6ULL,
0x113f9804bef90daeULL, 0x1b710b35131c471bULL,
0x28db77f523047d84ULL, 0x32caab7b40c72493ULL,
0x3c9ebe0a15c9bebcULL, 0x431d67c49c100d4cULL,
0x4cc5d4becb3e42b6ULL, 0x597f299cfc657e2aULL,
0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL
};
void makeblock(vector<ullint>& ret, string p_msg)
{
ullint cur=0;
int ind=0;
for(uint i=0; i<p_msg.size(); i++)
{
cur = (cur<<8) | (unsigned char)p_msg[i];
if(i%8==7)
{
ret.at(ind++)=cur;
cur=0;
}
}
}
class Block
{
public:
vector<ullint> msg;
Block():msg(16, 0) { }
Block(string p_msg):msg(16, 0)
{
makeblock(msg, p_msg);
}
};
void split(vector<Block>& blks, string& msg)
{
cout<<endl<<msg.size()<<endl;;
cout<<blks.size()<<endl;
cout<<"Splitting into blocks: "<<endl;
cout<<endl<<"msgsize: "<<msg.size()*8<<endl;
for(uint i=0; i<msg.size(); i+=128)
{
makeblock(blks[i/128].msg, msg.substr(i, 128));
}
}
string mynum(ullint x)
{
string ret;
for(uint i=0; i<8; i++)
ret+=char(0);
for(uint i=8; i>=1; i--) //big endian machine assumed
{
ret += ((char*)(&x))[i-1];
}
return ret;
}
#define shr(x,n) ((x & 0xFFFFFFFFFFFFFFFFULL) >> n)
#define rotr(x,n) (shr(x,n) | (x << (64 - n)))
ullint ch(ullint x, ullint y, ullint z)
{
return (x&y) ^ (~x&z);
}
ullint maj(ullint x, ullint y, ullint z)
{
return (x&y) ^ (y&z) ^ (z&x);
}
ullint fn0(ullint x)
{
return rotr(x, 28) ^ rotr(x, 34) ^ rotr(x, 39);
}
ullint fn1(ullint x)
{
return rotr(x, 14) ^ rotr(x, 18) ^ rotr(x, 41);
}
ullint sigma0(ullint x)
{
return rotr(x, 1) ^ rotr(x, 8) ^ shr(x, 7);
}
ullint sigma1(ullint x)
{
return rotr(x, 19) ^ rotr(x, 61) ^ shr(x, 6);
}
string hash_sha512_cpp(string msg_arr)
{
cout<<char(1<<7)<<endl;
string msg_out, msg;
// cout<<"Enter message"<<endl;
// ifstream fin("input.txt");
// fin>>msg_arr;
// cin>>msg_arr;
msg=msg_arr;
msg_arr += (char)(1<<7);
uint cur_len = msg.size()*8 + 8;
uint reqd_len = ((msg.size()*8)/1024+1) *1024;
uint pad_len = reqd_len - cur_len - 128;
string pad(pad_len/8, char(0));
msg_arr += pad;
string len_str(mynum(msg.size()*8));
cout<<"mynum: "<<mynum(msg.size()*8)<<endl;
msg_arr = msg_arr + len_str;
uint num_blk = msg_arr.size()*8/1024;
vector<Block> M(num_blk, Block());
split(M, msg_arr);
ullint H[]={
0x6a09e667f3bcc908ULL,
0xbb67ae8584caa73bULL,
0x3c6ef372fe94f82bULL,
0xa54ff53a5f1d36f1ULL,
0x510e527fade682d1ULL,
0x9b05688c2b3e6c1fULL,
0x1f83d9abfb41bd6bULL,
0x5be0cd19137e2179ULL
};
for(uint i=0; i<num_blk; i++)
{
cout<<"Blk no: "<<i<<endl;
vector<ullint> W(80, 0);
for(uint t=0; t<16; t++)
{
W[t] = M[i].msg[t];
}
for(uint t=16; t<80; t++)
{
W[t] = sigma1(W[t-2]) + W[t-7] + sigma0(W[t-15]) + W[t-16];
}
ullint work[8];
for(uint i=0; i<8; i++)
work[i] = H[i];
for(uint t=0; t<80; t++)
{
ullint t1, t2;
t1 = work[7] + fn1(work[4]) + ch(work[4], work[5], work[6]) + K[t] + W[t];
t2 = fn0(work[0]) + maj(work[0], work[1], work[2]);
work[7] = work[6];
work[6] = work[5];
work[5] = work[4];
work[4] = work[3] + t1;
work[3] = work[2];
work[2] = work[1];
work[1] = work[0];
work[0] = t1 + t2;
}
for(uint i=0; i<8; i++)
{
H[i] = work[i] + H[i];
}
}
cout<<"Output: "<<endl;
cout<<"SHA 512 HASH"<<endl;
for(uint i=0; i<8; i++)
cout<<H[i]<<" ";
cout<<endl;
cout<<endl<<endl<<endl<<"****************SHA 512 MESSAGE DIGEST IN HEX****************"<<endl<<endl;
for(uint i=0; i<8; i++) {
cout<<fromDecimal(H[i], 16)<<" ";
string msg_tmp = fromDecimal(H[i], 16);
// Fix padding
while (msg_tmp.length()<16) {
msg_tmp = "0"+msg_tmp;
}
msg_out += msg_tmp;
}
cout<<endl;
// system("pause");
return msg_out;
}
+165
View File
@@ -0,0 +1,165 @@
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include "safestring.h"
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <errno.h>
#include <arpa/nameser.h>
#include <resolv.h>
//#include "general_types.h"
#include "clog.h"
//#include "mx.h"
#include "smtp.h"
#include "timer.h"
//#include "socket.h"
int SMTP2( const char * _server, const char * _from, char * _to, char * _body, const char * _domain, const char * _user, const char * _pass, const char * _name)
{
// SAF 1/24/03: first copy all data to local structures to avoid race conditions, which is currently causing crashes !
// Actually, it wasn't the race condition, it was the fact that '_to' was NULL due to a bug in profile.cpp: "email" was not set
logfmt( FLOG_MAX, "ESMTP( %s, %s, %s )", _server, _from, _to );
if ( !_server || !_from || !_to || !_body )
{
logfmt( FLOG_MAX, "Input parameters server, from, to & body are requied" );
return 0;
}
if ( !_to[0])
{
logfmt( FLOG_MAX, "Empty recipient list" );
return 0;
}
int BUF_SIZE = 512+strlen(_server)+strlen(_from)+strlen(_to)+strlen(_domain)+strlen(_user)+strlen(_pass)+strlen(_name)+2*strlen(_body);
char *subject = NULL, *body = NULL;
char *name = new char[BUF_SIZE+1];
// Prepare body & subject
logfmt( FLOG_MAX, "Prepare body" );
int lines = 0;
int len = strlen( _body );
for ( int i=0; i<len; i++ )
{
int c = _body[i];
// Replace ' with "
if (c == 39)
{
_body[i] = '"';
}
// count LFs
if (c == 10)
{
lines++;
}
// remove CRs (replace with whitespaces)
if (c == 13)
{
_body[i] = 32;
}
}
// Locate & extract subject
logfmt( FLOG_MAX, "Locate & extract subject" );
char *subj = strstr ( _body, "Subject: " );
if (subj != NULL)
{
int k = 0;
int n = strlen(subj);
for (int i=0; i<n; i++)
{
int c = subj[i];
if (subject != NULL)
{
name[k++] = c;
}
if (subject == NULL && c == 10)
{
if (i > 9)
{
subject = new char[i+1];
memset( subject, 0, i );
int j = 9;
for (; j<i; j++)
{
//logfmt( FLOG_MAX, "c=%ld", subj[j] );
subject[j-9] = subj[j];
//subj[j] = 32;
}
subject[j] = '\0';
logfmt( FLOG_MAX, "Found subject: %s", subject);
}
}
}
if (subject != NULL)
{
name[k++] = '\0';
body = new char[k];
//logfmt( FLOG_MAX, "New body(%ld): %s (%ld)", k, name, strlen(_body) );
snprintf( body, k, "%s", name);
}
}
if (subject == NULL)
{
subject = new char[15];
strcpy(subject,"PayLid Support");
logfmt( FLOG_MAX, "Subject is not found - defaulting to: %s", subject );
}
// Google
snprintf( name, BUF_SIZE, EMAIL_PREFIX"/../src/modules/mailsend -smtp %s -f %s -t %s -d %s -name '%s' +cc +bcc -v -starttls -auth-plain -user %s -pass %s -sub '%s' -M '%s'",
_server, _from, _to, _domain, _name, _user, _pass, subject, body != NULL ? body : _body );
// Virtualmail
snprintf( name, BUF_SIZE, EMAIL_PREFIX"/../src/modules/mailsend -smtp %s -f %s -t %s -d %s -name '%s' +cc +bcc -v -port 25 -auth-plain -user %s -pass %s -sub '%s' -M '%s'",
_server, _from, _to, _domain, _name, _user, _pass, subject, body != NULL ? body : _body );
logfmt( FLOG_MAX, "Calling MAILSEND: %s", name);
FILE * p = popen( name, "r" );
int c = 0;
do
{
c = fread( name, 1, BUF_SIZE, p );
if (c > 0)
{
logfmt( FLOG_MAX, "%s", name );
}
else
{
logfmt( FLOG_MAX, "\n\nEND OF PIPE OUTPUT\n\n" );
}
}
while (c > 0);
pclose( p );
if (name != NULL)
{
delete name;
}
if (subject != NULL)
{
delete subject;
}
if (body != NULL)
{
delete body;
}
logfmt( FLOG_MAX, "/ESMTP()" );
return 1;
}
+49
View File
@@ -0,0 +1,49 @@
#include <unistd.h>
#include <sys/time.h>
#include "timer.h"
unsigned long stamp()
{
struct timeval tv;
gettimeofday( &tv, NULL );
return tv.tv_sec * 1000000 + tv.tv_usec;
}
CTimer::CTimer( )
{
prev = stamp();
}
void CTimer::init( )
{
prev = stamp();
}
void CTimer::wake( unsigned long usec )
{
long sleep_time = usec-(stamp()-prev);
if ( sleep_time>0 )
usleep( sleep_time );
prev = stamp();
}
bool CTimer::timeout( unsigned long usec )
{
return stamp()-prev > usec;
}
unsigned long CTimer::elapsed( )
{
return stamp()-prev;
}
+135
View File
@@ -0,0 +1,135 @@
#include <stdio.h>
#include <string.h>
#include <regex.h>
#include "safestring.h"
#include "util.h"
#include "clog.h"
bool reg_match( const char * input, const char * regexp, char * ret, int sz, int * pos /*= NULL*/ )
{
regex_t compiled;
regmatch_t match[2];
bool satisfied = false;
if ( ret ) ret[0] = 0;
// logfmt( FLOG_MAX, "Matching '%s' against '%s'", input, regexp );
if ( regcomp( &compiled, regexp, REG_EXTENDED ) != 0 )
{
logfmt( logWARNING, "regcomp returned non-0, assuming a match" );
}
else
{
size_t r = regexec( &compiled, input, 2, match, 0 );
if ( r==0 ) // match
{
if ( pos )
*pos = match[1].rm_so;
int len = match[1].rm_eo-match[1].rm_so;
if ( ret )
strnsafecpy( ret, &input[ match[1].rm_so ], len, sz );
satisfied = true;
}
else
satisfied = false;
regfree( &compiled );
}
return satisfied;
}
char * urlencode( const char * buf, char * text, int sz )
{
// old char url[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ^_\\-0123456789."; // . ???
char url[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$-_.!*'(),"; // $-_.+!*'(), took '+' out
int len = strlen(buf);
// fprintf(flog, "buf: '%s', len: %d\n", buf, len); fflush(flog);
text[0] = 0;
for (int i=0; i<len; i++)
{
int len = strlen(text);
if (strchr(url, buf[i]))
snprintf(&text[len], sz-len, "%c", buf[i]);
else
snprintf(&text[len], sz-len, "%%%02x", (unsigned char)buf[i]);
// fprintf(flog, "%d\n", i); fflush(flog);
}
// strcpy(buf, text);
// Log(text, "Returning:");
return text;
}
/*
char * urlencode(const char * buf)
{
return urlencode( buf, text, sizeof(text) );
}
*/
char * urldecode( char * buf, char * text, int sz)
{
// Log(buf, "urldecode()");
unsigned int c3;
char * c2; c2 = buf;
unsigned int ch;
char * value=text;
// int valuelen = sz;
value[0] = 0;
//bool EOS = false;
while (c2)
{
c3 = strcspn(c2, "%+"); // "%+"
if (c3==strlen(c2))
{
// strncpy_(&value[strlen(value)], c2, Min0(c3, valuelen-strlen(value)-1, EOS) );
strsafecat( value, c2, sz );
break; //over
}
// strncpy_(&value[strlen(value)], c2, Min0(c3, valuelen-strlen(value)-1, EOS) );
strnsafecat( value, c2, c3, sz );
// Log(value);
// if (EOS) break;
// '+' is actually an allowed symbol per http://www.rfc-editor.org/rfc/rfc1738.txt
// but browser rules say space is encoded as '+'
// http://www.speakeasy.org/~cgires/readdata/
if (*(c2+c3)=='+')
{
// strncpy_(&value[strlen(value)], " ", Min0(1, valuelen-strlen(value)-1, EOS) );
strsafecat( value, " ", sz );
// if (EOS) break;
c2+=c3+1;
}
else
{
sscanf(c2+c3+1, "%2x", &ch);
strcatf( value, sz, "%c", ch);
// if (strlen(value)>=valuelen-1)
// { EOS = TRUE; break; }
c2+=c3+3;
}
}
value[sz-1] = 0;
// Log(text, "urldecode returning");
return text;
}
+372
View File
@@ -0,0 +1,372 @@
#include <stdio.h>
#include <cstring>
#include <cstdlib>
#include "safestring.h"
#pragma implementation "vars.h"
#include "vars.h"
//#include <stl_hashtable.h>
//#include <stl_tree.h>
//template _Rb_tree< string const, pair<string const, varstring>, _Select1st<pair<string const, varstring> >, less<string const>, allocator<varstring> >;
//template _Rb_tree<long, pair<long const, long>, _Select1st<pair<long const, long> >, less<long>, allocator<long> >;
using namespace std;
//template class std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, varstring>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, varstring> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const>, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, varstring> > >;
// template class _Rb_tree<string const, pair<string const, varstring>, _Select1st<pair<basic_string<char, char_traits<char>, allocator<char> > const, varstring> >, less<basic_string<char, char_traits<char>, allocator<char> > const>, allocator<pair<basic_string<char, char_traits<char>, allocator<char> > const, varstring> > >;
template class _Rb_tree< string const, pair<string const, varstring>, _Select1st<pair<string const, varstring> >, less<string const>, allocator<pair<string const,varstring> > >;
//::operator=(std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, varstring>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, varstring> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const>, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, varstring> > > const&);
// default constructor
varstring::varstring() : string()
{
validated = false;
db_var = false;
binary_var = false;
}
varstring::varstring( const char *c ) : string( c )
{
this->validated = false;
db_var = false;
binary_var = false;
}
varstring::varstring(const char* c, int len) : string( c, len )
{
// logfmt( FLOG_MAX, "varstring constructor( c='%s', len=%d )", c, len );
validated = false;
db_var = false;
binary_var = false;
}
// copy constructor
varstring::varstring( const varstring &c ) : string( c )
{
// logfmt( FLOG_MAX, "varstring copy constructor, c.validated=%d, value=%s", c.validated, c.c_str() );
this->validated = c.validated;
this->db_var = c.db_var;
this->binary_var = c.binary_var;
}
varstring::varstring( const string &c ) : string( c )
{
// logfmt( FLOG_MAX, "string->varstring copy constructor, value=%s", c.c_str() );
validated = false;
db_var = false;
binary_var = false;
}
long varstring::Long() const
{
return atol( c_str() );
}
double varstring::Double()
{
return atof( c_str() );
}
varstring& varstring::operator=( const char* c )
{
set_valid( false );
string::operator=( c );
return *this;
};
void varstring::operator=( long l )
{
set_valid( false );
char s[20];
snprintf( s, sizeof(s), "%ld", l );
string::operator=( s );
};
varstring& varstring::operator=( const varstring &c )
{
//set_valid( false );
this->validated = c.validated;
this->binary_var = c.binary_var;
string::operator=( c );
return *this;
};
void varstring::operator=( const string c )
{
set_valid( false );
binary_var = false;
string::operator=( c );
}
varstring::operator long()
{
return this->Long();
}
varstring::operator const char*() // type conversion
{
return this->c_str();
}
bool varstring::valid() const
{
return validated;
}
void varstring::set_valid( bool validated /*= true*/ )
{
this->validated = validated;
}
bool varstring::db() const
{
return db_var;
}
void varstring::set_db( bool db /*= true*/ )
{
this->db_var = db;
}
bool varstring::binary() const
{
return this->binary_var;
}
void varstring::set_binary( bool binary_var /*= true*/ )
{
this->binary_var = binary_var;
}
// ---------------- string_key --------
/*
string_key& string_key::operator=( const char* c )
{
// set_valid( false );
string::operator=( c );
return *this;
};
void string_key::operator=( long l )
{
// set_valid( false );
char s[20];
snprintf( s, sizeof(s), "%ld", l );
string::operator=( s );
};
void string_key::operator=( const string c )
{
// set_valid( false );
string::operator=( c );
};
*/
// ---------------- CVars -------------
CVars& CVars::operator<<( char const *name )
{
//logfmt( FLOG_MAX, "CVars << %s", name );
CVars::iterator i = find( name );
if ( i != end() )
{
i->second.set_db();
}
return *this;
}
CVars& CVars::operator>>( char const *name )
{
//logfmt( FLOG_MAX, "CVars >> %s", name );
CVars::iterator i = find( name );
if ( i != end() )
{
i->second.set_db( false );
}
return *this;
}
void CVars::ClearDB()
{
CVars::iterator i;
for ( i=begin(); i!=end(); i++ )
i->second.set_db( false );
}
/*
FORMAT:
int count;
{
name,value,
bitmap{
bool validated;
bool db_var; // is this variable to be used in DB updates
bool binary_var;
}
*/
//implement << operator??
long CVars::serialize( unsigned char *&buf ) // this will serialize the data into buf and return the resulting size
// it is the responsibility of the caller to free the buffer with free()
{
long len;
CVars::iterator i;
int count = 0; // do NOT change this datatype as this will affect data structure below!!!
unsigned char *c = buf + sizeof(count);
// Calculate the length
for ( i=begin(); i!=end(); i++ )
{
count++;
int size = i->first.size();
c += sizeof(unsigned char); // name should be no longer than 255
c += size;
size = i->second.size();
c += sizeof(int);
c += size;
// record bits
c++;
}
len = c-buf;
buf = (unsigned char*)malloc( len );
if ( !buf ) return 0;
// Populate buf
// first store the number of elements
*(int*)buf = count;
c = buf + sizeof(count);
for ( i=begin(); i!=end(); i++ )
{
int size = *(int*)c = i->first.size();
c += sizeof(unsigned char);
memcpy( c, i->first.data(), size );
c += size;
size = *(int*)c = i->second.size();
c += sizeof(int);
memcpy( c, i->second.data(), size );
c += size;
// record bits
*c = i->second.validated | i->second.db_var << 1 | i->second.binary_var << 2;
c++;
}
return len;
}
int CVars::deserialize( unsigned char *buf, long buf_sz ) // this will initialize the current instance by de-serializing the data from buf
{
// clear out the underlying map / erase any previous data
erase( begin(), end() );
if ( buf_sz < (long)sizeof(int) ) return 0;
unsigned char *c = buf;
int count = *(int*)buf;
c += sizeof( count );
int i = 0;
for ( i=0; i<count; i++ )
{
if ( c-buf >= buf_sz ) return 0;
char name[256];
int size = *(unsigned char*)c;
c += sizeof(unsigned char);
if ( c-buf+size >= buf_sz ) break; // boundary check
strnsafecpy( name, (char*)c, size, sizeof(name) );
c += size;
if ( c-buf+(long)sizeof(int) >= buf_sz ) break; // boundary check
size = *(int*)c;
c += sizeof(int);
if ( c-buf+size+1 > buf_sz ) break; // boundary check
(*this)[name].assign( (char*)c, size );
c += size;
(*this)[name].validated = *c & 1;
(*this)[name].db_var = (*c >> 1) & 1;
(*this)[name].binary_var = (*c >> 2) & 1;
c++;
//printf( "i=%d\n", i );
}
return i; //>0 ? i-1 : 0;
}
+235
View File
@@ -0,0 +1,235 @@
//****************************************************************************
// Filename: XmlElements.h
// Copyright 1999 Daniel X. Pape. All rights reserved.
//
// Description: A set of classes for reading and parsing simple XML files.
//
//****************************************************************************
// Revision History:
// Thursday, July 08, 1999 - Original. Heavily based on "A Simple XML
// Parser" by Sebastien Andrivet. See Documentation.
//****************************************************************************
#ifndef _XMLELEMENTS_H_
#define _XMLELEMENTS_H_
#ifdef _MSC_VER
// Disable stupid MSVC warning about identifiers > 255 chars long
#pragma warning (disable: 4786)
#endif
// STL
#include <memory>
#include "XmlFwdDecls.h"
namespace SimpleXMLParser
{
//////////////////////////////////////////////////////////////////////
class Attribute;
class Element;
class ElementNull;
typedef std::map<std::string, std::string> Attributes;
typedef std::vector<Element*> Elements;
// ***************************************************************************
// Class: Attribute
// Desc:
// ***************************************************************************
class Attribute
{
std::string name_;
std::string value_;
public:
Attribute(const std::string& name, const std::string& value);
const std::string& GetName() const;
const std::string& GetValue() const;
};
// ***************************************************************************
// Class: Value
// Desc:
// ***************************************************************************
class Value
{
std::string value_;
public:
void Add(const std::string& text);
void Add(char c);
// Conversion operator
operator const std::string&() const;
};
// ***************************************************************************
// Class: Element
// Desc: Abstract base class for markup tags
// ***************************************************************************
class Element
{
private:
const std::string name_;
Value value_;
public:
static ElementNull& nullElem; // null element (singleton)
Element(const std::string& strName);
virtual ~Element() { }
void AddValue(const std::string& strText);
void AddValue(char c);
const std::string& GetName() const;
const Value& GetValue() const;
const Element& operator()(const char * szName, int nIndex = 0) const;
virtual bool IsNull() const;
virtual bool AddChild(Element* pChild) = 0;
virtual const Elements* GetChildren() const = 0;
virtual const Element& GetChild(const char * szName,
int nIndex = 0) const = 0;
virtual const Attributes* GetAttributes() const = 0;
virtual const std::string GetAttributeValue(const std::string&) const = 0;
};
// ***************************************************************************
// Class: ElementTag
// Desc: Element of the form <name>...</name> or <name/>. Can
// contain other elements and may have attributes
// ***************************************************************************
class ElementTag : public Element
{
public:
ElementTag(const std::string& strName);
~ElementTag();
void AddAttribute(std::string& strName, std::string& strValue);
virtual bool AddChild(Element* pChild);
virtual const Elements* GetChildren() const;
virtual const Element& GetChild(const char * szName, int nIndex = 0) const;
virtual const Attributes* GetAttributes() const;
virtual const std::string GetAttributeValue(const std::string&) const;
private:
bool FindChild(const char * szName, Elements::const_iterator& it) const;
Attributes attributes_;
Elements children_;
};
// ***************************************************************************
// Class: ElementSimple
// Desc: Element without children (like comments)
// ***************************************************************************
class ElementSimple: public Element
{
public:
ElementSimple(const std::string& strName);
virtual bool AddChild(Element* pChild);
virtual const Elements* GetChildren() const;
virtual const Element& GetChild(const char * szName, int nIndex = 0) const;
virtual const Attributes* GetAttributes() const;
virtual const std::string GetAttributeValue(const std::string&) const;
};
// ***************************************************************************
// Class: ElementComment
// Desc: Element named "!"
// ***************************************************************************
class ElementComment : public ElementSimple
{
public:
ElementComment(const std::string& strComment);
};
// ***************************************************************************
// Class: ElementNull
// Desc: Element::nullElem
// ***************************************************************************
class ElementNull : public ElementSimple
{
public:
ElementNull();
private:
virtual bool IsNull() const;
};
//////////////////////////////////////////////////////////////////////
// Attribute of a tag
//////////////////////////////////////////////////////////////////////
inline const std::string& Attribute::GetName() const
{
return(name_);
}
inline const std::string& Attribute::GetValue() const
{
return(value_);
}
//////////////////////////////////////////////////////////////////////
// Element
//////////////////////////////////////////////////////////////////////
inline const std::string& Element::GetName() const
{
return(name_);
}
inline const Value& Element::GetValue() const
{
return(value_);
}
inline void Element::AddValue(const std::string& strText)
{
value_.Add(strText);
}
inline void Element::AddValue(char c)
{
value_.Add(c);
}
inline const Element&
Element::operator()(const char * szName, int nIndex) const
{
return(GetChild(szName, nIndex));
}
inline void
ElementTag::AddAttribute(std::string& strName, std::string& strValue)
{
attributes_[strName] = strValue;
}
}
#endif
+33
View File
@@ -0,0 +1,33 @@
//****************************************************************************
// Filename: XmlFwdDecls.h
// Copyright 1999 Daniel X. Pape. All rights reserved.
//
// Description: Just some forward declarations for external classes to
// include.
//
//****************************************************************************
// Revision History:
// Tuesday, September 28, 1999 - Original
//****************************************************************************
#ifndef _XMLFWDDECLS_H_
#define _XMLFWDDECLS_H_
#include <vector>
#include <map>
#include <string>
namespace SimpleXMLParser
{
class Attribute;
class Element;
class ElementNull;
typedef std::map<std::string, std::string> Attributes;
typedef std::vector<Element*> Elements;
}
#endif
+282
View File
@@ -0,0 +1,282 @@
//****************************************************************************
// Filename: XmlParser.h
// Copyright 1999 Daniel X. Pape. All rights reserved.
//
// Description: A set of classes for reading and parsing simple XML files.
//
//****************************************************************************
// Revision History:
// Thursday, July 08, 1999 - Original. Heavily based on "A Simple XML
// Parser" by Sebastien Andrivet. See Documentation.
//****************************************************************************
#ifndef _XMLPARSER_H_
#define _XMLPARSER_H_
#ifdef _MSC_VER
// Disable stupid MSVC warning about identifiers > 255 chars long
#pragma warning (disable: 4786)
#endif
// STL
#include <memory>
#include <vector>
#include <map>
#include <string>
#include "XmlElements.h"
namespace SimpleXMLParser
{
// ***************************************************************************
// Class: XmlException
// Desc: parsing error
// ***************************************************************************
class XmlException
{
public:
XmlException(int line, int column);
int GetLine() const;
int GetColumn() const;
private:
int line_;
int column_;
};
// ***************************************************************************
// Class: XmlParser
// Desc:
// ***************************************************************************
class XmlParser
{
public:
XmlParser();
Element& Parse(const char * szSource, int nSourceSize);
private:
XmlParser(const XmlParser&);
XmlParser& operator=(const XmlParser&);
// ***********************************************************************
// Class: Bookmark
// Desc: record the current position in the document
// ***********************************************************************
class Bookmark
{
private:
Bookmark(const Bookmark&);
Bookmark& operator=(const Bookmark&);
XmlParser& parser_; // XmlParser
const char* sourceCurrent_; // Position recorded
int line_; // Line recorded
int column_; // Column recorded
public:
Bookmark(XmlParser& reader);
// Change back the position
void Restore();
// Get the sub-string between the current and
// the recorded positions
void GetSubString(std::string& strString, int nNumEndSkip = 0);
// Record the current position
void Reset();
};
friend class Bookmark;
const char* source_; // XML document
const char* sourceCurrent_; // Current position
const char* sourceEnd_; // End of the document
int line_; // Current line
int column_; // Current column
std::string xmlVersion_; // Version of XML used in doc.
std::auto_ptr<Element> rootElem_; // Root element
// parsing
char NextChar();
void PreviousChar();
// All of these following member functions can throw exceptions
bool ParseSpaces();
bool ParseString(const char* pString);
bool ParseStringNoCase(const char* pString);
bool ParseNumber(int& nNum);
bool ParseHexNumber(int& nNum);
bool ParseChar(char c);
bool ParseName(std::string& strName);
bool ParseDeclBegining(const char * szString);
bool ParseXMLDecl();
bool ParseEq();
bool ParseVersionInfo(std::string& strVersion);
bool ParseVersionNum(std::string& strVersion);
bool ParseEncodingDecl();
bool ParseEncName();
void ParseMiscs();
bool ParseReference(char& c);
bool ParseAttValue(std::string& strValue);
bool ParseAttribute(ElementTag* pElem);
bool ParseETag(Element& element);
void ParseContentETag(ElementTag& element);
bool ParseMarkup(Element& element);
bool ParseCDATA(Element& element);
ElementComment* ParseComment();
ElementTag* ParseTagBegining();
ElementTag* ParseElement();
Element* ParseDocument();
bool MapReferenceName(const std::string& strName, char& c);
void SyntaxError();
};
inline XmlException::XmlException(int line, int column)
: line_(line), column_(column)
{
}
inline int XmlException::GetLine() const
{
return(line_);
}
inline int XmlException::GetColumn() const
{
return(column_);
}
inline XmlParser::Bookmark::Bookmark(XmlParser& reader)
: parser_(reader), sourceCurrent_(reader.sourceCurrent_),
line_(0), column_(0)
{
}
// ***************************************************************************
// Function: Restore
// Desc: Change back the position
// ***************************************************************************
inline void XmlParser::Bookmark::Restore()
{
parser_.sourceCurrent_ = sourceCurrent_;
}
// ***************************************************************************
// Function: GetSubString
// Desc: Get the sub-string between the current and the recorded positions
// ***************************************************************************
inline void XmlParser::Bookmark::GetSubString(std::string& strString, int nNumEndSkip)
{
// ASSERT(parser_.sourceCurrent_ + nNumEndSkip >= sourceCurrent_);
strString = std::string(sourceCurrent_, parser_.sourceCurrent_ -
sourceCurrent_ - nNumEndSkip);
}
inline void XmlParser::Bookmark::Reset()
{
sourceCurrent_ = parser_.sourceCurrent_;
}
// ***************************************************************************
// Function: IsSpace
// Desc: Space, tabulation, line feed or return
// ***************************************************************************
inline bool IsSpace(char c)
{
return(c == ' ' || c == '\t' || c == '\r' || c == '\n');
}
// ***************************************************************************
// Function: IsAlpha
// Desc: [a-zA-Z]
// ***************************************************************************
inline bool IsAlpha(char c)
{
return((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'));
}
// ***************************************************************************
// Function: IsDigit
// Desc: [0-9]
// ***************************************************************************
inline bool IsDigit(char c)
{
return(c >= '0' && c <= '9');
}
// ***************************************************************************
// Function: IsHexDigit
// Desc: [0-9a-fA-F]
// ***************************************************************************
inline bool IsHexDigit(char c)
{
return(IsDigit(c) || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F'));
}
// ***************************************************************************
// Function: HexDigitValue
// Desc: [0-9a-fA-F]
// ***************************************************************************
inline int HexDigitValue(char c)
{
return((c >= '0' && c <= '9') ? c - '0'
: ((c >= 'a' && c <= 'f') ? c - 'a' + 10
: c - 'A' + 10));
}
// ***************************************************************************
// Function: IsAlphaDigit
// Desc: [a-zA-Z0-9]
// ***************************************************************************
inline bool IsAlphaDigit(char c)
{
return(IsAlpha(c) || IsDigit(c));
}
// ***************************************************************************
// Function: IsAlphaDigitEx
// Desc: [a-zA-Z0-9_.:] | '-'
// ***************************************************************************
inline bool IsAlphaDigitEx(char c)
{
return(IsAlphaDigit(c) || c == '_' || c == '.' || c == ':' || c == '-');
}
// ***************************************************************************
// Function: LowCase
// Desc:
// ***************************************************************************
inline char LowCase(char c)
{
return(c >= 'A' && c <= 'Z' ? c - 'A' + 'a' : c);
}
// ***************************************************************************
// Function: IsXmlChar
// Desc:
// ***************************************************************************
inline bool IsXmlChar(char c)
{
return(c == 0x9 || c == 0xa || c == 0xd || c >= 0x20);
}
}
#endif
+23
View File
@@ -0,0 +1,23 @@
#ifndef __mx_account_h__
#define __mx_account_h__
#include "vars.h"
long account_calls(CVars in, CVars &out);
long CreateCoreGradeAccount(CVars in, CVars &out);
long CreateCoreGradeAccountPending(CVars in, CVars &out);
long LoginCoreGradeAccount( CVars in, CVars &out );
long SessionCheck(long uid, const char *sessionid, int create );
long account_session_check(CVars in, CVars out);
long CompleteAddCustomerBalance(CVars in, CVars &out);
long InitiateAddCustomerBalance(CVars in, CVars &out);
long DeliverMobilseEtisalat(CVars in, CVars &out);
long GateDeliverMobilseEtisalat(CVars in, CVars &out);
long ETSL_configure(CVars in, CVars &out);
long AddMobileTopuNumber(CVars in, CVars &out);
#endif
+11
View File
@@ -0,0 +1,11 @@
#ifndef CFG_H
#define CFG_H
#include "php_coregrade_config.h"
void CfgReadConfig();
long CfgReadLong(const char* key);
//std::string CfgReadString(const char* key);
const char* CfgReadChar(const char* key);
#endif
+280
View File
@@ -0,0 +1,280 @@
#ifndef __dew_cgi_lib
#define __dew_cgi_lib
#include "php_tmpl_prefix.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <utime.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/timeb.h>
#include <sys/time.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <ctype.h> // for tolower(char)
#include <string.h>
#include <sqltypes.h>
#include "config.h"
#include "clog.h"
#include "list.h"
#include "cvariables.h"
#define CGI_FLAG_CLEAR (char*)-1
#define EMAIL_PREFIX TMPL_PREFIX
enum { METHOD_NONE, METHOD_GET, METHOD_POST };
enum { SEQ_NONE, SEQ_REVERSE };
int Min0(int a, int b, bool & EOS); // Returns the smaller of the two; if it's < 0, returns 0
// a = how many to copy; b = limit;
void strncpy_(char * dst, char * src, int n);
int GetParam(char * params, char _name[], char value[], int valuelen, char ** end = NULL);
void CatFile( char * fname, FILE * fout );
/************************************************************************
* *
* Classes *
* *
* - Class CVariables defines a set of routines for handling internal *
* variables, which are stored by using a linked list *
* *
* - Class CGIList implements the functionality in template rendering *
* by which one can define lists of unknown length from within *
* a template. *
* *
* - Class C_CGI_Form is the most essential class for the CGI interface. *
* It enables to obtain variables passed from the browser *
* and renders complex templates using CVariables and CGIList *
* *
*************************************************************************/
// The following deals with getting variables from forms
typedef struct
{
char * mask, * explanation;
} pattern_t;
typedef
enum { CGI_STRING, CGI_RADIO,
CGI_SELECT,
CGI_SELECT_LOOKUP,
CGI_CHECKBOX,
CGI_CHECKBOXLIST, // bit-encoded ULONG
CGI_LONG,
CGI_FLOAT,
CGI_CHECKBOXLIST_ARRAY, // array of ULONGs
CGI_RADIO_INT,
CGI_SELECT_MUL, // multiple select box
CGI_RADIO_INT2, // CGI_RADIO_INT that uses first two letters of the variable name for referencing values
CGI_AMOUNT, // currency amount, converts to unsigned long
}
CGI_VAR_TYPE;
typedef struct
{
char *name;
CGI_VAR_TYPE type;
// Matching
int minlen, maxlen;
pattern_t *pattern; // ext regular expression; NULL for skip
char **radio; // for radio buttons, NULL otherwise
unsigned char nradio; // number of elements
// return portion
void *target; // Where the result should be stored
int size; // Don't exceed this !
// corresponding SQL type
int sql_type;
// more return data
bool match;
} CGI_Variable;
//
class CGIList;
typedef struct
{
char * pre, * post;
int pre_n, post_n;
} Tprepost;
class C_CGI_Form : public CVariables {
public:
friend class CGIList;
C_CGI_Form( char * _dir, char * _template_file, char * _global_template=NULL, int _argc=0, char **_argv = NULL );
// Instantiates a C_CGI_Form object.
// _dir - template directory
// _template_file - initial/default template file
// _global_template - used to encapsulate templates in a global template
// _arc - argc from main()
// _argv - argv from main()
~C_CGI_Form( );
void Email( char * fname, char * from=NULL );
bool Form( FILE * fout ); // Render output from current template into opened file 'fout'
bool Form( FILE * fout, char * template_file );
char * FormFile( char * fname ); // Render output from current template into 'fname'
char * FormBuffer( char * buf );
/* bool FormBuffer( char * buf, FILE * fout, char * listname = NULL, int listi = 0 );
// Render output from current template into buffer*/
char * RFormBuffer( char * buf, char * listname = NULL, int listi = 0 );
// Render output from current template into buffer using recursion
#ifdef WITH_LANGUAGE
char *translate( char * buf, const char *template_file );
#endif
// int GetParam( char name[], char value[], int valuelen );
// Scan 'params' for 'name' and return its value in 'value'
int GetParam( char name[], char value[], int valuelen, char ** end = NULL, char *start = NULL );
int GetParamMul( char name[], TList ** list );
int GetScreen( char * screens[], int n, const char * scrs = NULL );
// Returns current screen index as passed by the browser
// and looked up in screens[]
int GetCommand( char * commands[], int n );
// Returns current command index as passed by the browser
// and looked up in commands[]
void Template( char * _template_file )
// Sets the default template to '_template_file'
{
free( template_file );
template_file = (char*)malloc( strlen(TMPL_PREFIX)+1+strlen(_template_file)+1 );
sprintf( template_file, "%s/%s", TMPL_PREFIX, _template_file );
}
void GlobalTemplate( char * _template_file )
// Sets the global template to '_template_file'
{
if ( global_template ) free( global_template );
global_template = strdup(_template_file);
}
// void ParseGlobalTemplate(); // Parse the global template file and set 'sectionX' variables
void ParseGlobalTemplate( char * fname = NULL );
bool ParseNewTemplate( char * fname = NULL );
void MatchVariable( CGI_Variable * var, bool optional = false, bool flag_if_mismatch = true );
// Provides CGI variable mapping and matching functionality
// can match against regular expressions etc
void SetVariable( CGI_Variable * var );
// Sets a variable that may be used in a template
void Flag( CGI_Variable * var );
// Mark variable as invalid input
void Flag( char * var, char * explanation = NULL );
// Mark variable as invalid input
void ClearVariable( CGI_Variable var );
void GetNextVariable( TList * &cur, char * &c1, char * &c, char * listname, int listi );
CGIList * lists[50];
int nlists;
char * params;
char * template_file;
char * global_template;
unsigned char method, sequence;
private:
char * dir;
char * form;
#ifdef WITH_LANGUAGE
char language[10];
#endif
int argc;
char** argv;
};
class CGIList
{
public:
friend class C_CGI_Form;
CGIList( C_CGI_Form * _form, char * name );
// Instantiates a CGI_List object
// _form points to the parent form object
// name - name of the list as used in template
~CGIList() { free( listname ); if (form) form->lists[listn] = 0; };
int CloseElement() { return ++n; };
// Move on to the next element in the list.
void LetStr( char * var, char * value );
// Set a CGI list variable using the list name and element number as part of the name
void LetStrf( char * var, const char * format, ... );
void LetInt16( char * var, int value );
// Set a CGI list variable using the list name and element number as part of the name
char * GetVariable( char * var, char * result, int size );
// Obtain a CGI list variable value using the list name and element number as part of the name
void LetStr( char * var, const char * format, ... );
int n;
private:
C_CGI_Form * form;
int listn;
char * listname;
};
class CInputError : public CVariables {
public:
void Add( bool text, const char * name, const char * explanation, ... );
char * Get( const char * name, bool *text );
void Log();
};
#endif
+191
View File
@@ -0,0 +1,191 @@
#ifndef __CLOG_H__
#define __CLOG_H__
#include "php_coregrade_log.h"
#include "php_filelog_max_level.h"
#include <sstream>
#include <string>
#include <cstdio>
#include <stdarg.h>
#include <sys/types.h>
#include <unistd.h>
inline std::string NowTime();
enum TLogLevel {logERROR, logWARNING, logINFO, logDEBUG, logDEBUG1, logDEBUG2, logDEBUG3, logDEBUG4, logSQL, FLOG_MAX};
void logfmt( TLogLevel level, const char * format, ... );
template <typename T>
class Log
{
public:
Log();
virtual ~Log();
std::ostringstream& Get(TLogLevel level = logINFO);
public:
static TLogLevel& ReportingLevel();
static std::string ToString(TLogLevel level);
static TLogLevel FromString(const std::string& level);
protected:
std::ostringstream os;
private:
Log(const Log&);
Log& operator =(const Log&);
};
template <typename T>
Log<T>::Log()
{
}
template <typename T>
std::ostringstream& Log<T>::Get(TLogLevel level)
{
os << "- " << NowTime();
os << " " << ToString(level);
os << " [" << getpid() << "]: ";
os << std::string(level > logDEBUG ? level - logDEBUG : 0, '\t');
return os;
}
template <typename T>
Log<T>::~Log()
{
os << std::endl;
T::Output(os.str());
}
template <typename T>
TLogLevel& Log<T>::ReportingLevel()
{
static TLogLevel reportingLevel = FLOG_MAX;
return reportingLevel;
}
template <typename T>
std::string Log<T>::ToString(TLogLevel level)
{
static const char* const buffer[] = {"ERROR", "WARNING", "INFO", "DEBUG", "DEBUG1", "DEBUG2", "DEBUG3", "DEBUG4", "SQL", "FLOG_MAX"};
return buffer[level];
}
template <typename T>
TLogLevel Log<T>::FromString(const std::string& level)
{
if (level == "FLOG_MAX")
return FLOG_MAX;
if (level == "SQL")
return logSQL;
if (level == "DEBUG4")
return logDEBUG4;
if (level == "DEBUG3")
return logDEBUG3;
if (level == "DEBUG2")
return logDEBUG2;
if (level == "DEBUG1")
return logDEBUG1;
if (level == "DEBUG")
return logDEBUG;
if (level == "INFO")
return logINFO;
if (level == "WARNING")
return logWARNING;
if (level == "ERROR")
return logERROR;
Log<T>().Get(logWARNING) << "Unknown logging level '" << level << "'. Using INFO level as default.";
return logINFO;
}
class Output2FILE
{
public:
static FILE*& Stream();
static void Output(const std::string& msg);
};
inline FILE*& Output2FILE::Stream()
{
static FILE* pStream = stderr;
return pStream;
}
inline void Output2FILE::Output(const std::string& msg)
{
FILE* pStream = Stream();
if (!pStream)
return;
fprintf(pStream, "%s", msg.c_str());
fflush(pStream);
}
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
# if defined (BUILDING_FILELOG_DLL)
# define FILELOG_DECLSPEC __declspec (dllexport)
# elif defined (USING_FILELOG_DLL)
# define FILELOG_DECLSPEC __declspec (dllimport)
# else
# define FILELOG_DECLSPEC
# endif // BUILDING_DBSIMPLE_DLL
#else
# define FILELOG_DECLSPEC
#endif // _WIN32
class FILELOG_DECLSPEC FILELog : public Log<Output2FILE> {};
//typedef Log<Output2FILE> FILELog;
#ifndef FILELOG_MAX_LEVEL
#define FILELOG_MAX_LEVEL FLOG_MAX
#endif
#define FILE_LOG(level) \
if (level > FILELOG_MAX_LEVEL) ;\
else if (level > FILELog::ReportingLevel() || !Output2FILE::Stream()) ; \
else FILELog().Get(level)
#if defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
#include <windows.h>
inline std::string NowTime()
{
const int MAX_LEN = 200;
char buffer[MAX_LEN];
if (GetTimeFormatA(LOCALE_USER_DEFAULT, 0, 0,
"HH':'mm':'ss", buffer, MAX_LEN) == 0)
return "Error in NowTime()";
char result[100] = {0};
static DWORD first = GetTickCount();
std::sprintf(result, "%s.%03ld", buffer, (long)(GetTickCount() - first) % 1000);
return result;
}
#else
#include <sys/time.h>
inline std::string NowTime()
{
char buffer[11];
time_t t;
time(&t);
tm r = {0};
strftime(buffer, sizeof(buffer), "%X", localtime_r(&t, &r));
struct timeval tv;
gettimeofday(&tv, 0);
char result[100] = {0};
std::sprintf(result, "%s.%03ld", buffer, (long)tv.tv_usec / 1000);
return result;
}
#endif //WIN32
#endif //__LOG_H__
/*
vi:ts=2
*/
+59
View File
@@ -0,0 +1,59 @@
/* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.in by autoheader. */
/* Whether to build coregrade_api as dynamic module */
#define COMPILE_DL_COREGRADE_API 1
/* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1
/* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define to 1 if your C compiler doesn't accept -c and -o together. */
/* #undef NO_MINUS_C_MINUS_O */
/* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT ""
/* Define to the full name of this package. */
#define PACKAGE_NAME ""
/* Define to the full name and version of this package. */
#define PACKAGE_STRING ""
/* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME ""
/* Define to the home page for this package. */
#define PACKAGE_URL ""
/* Define to the version of this package. */
#define PACKAGE_VERSION ""
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
+20
View File
@@ -0,0 +1,20 @@
#ifndef COREGRADE_API_COREGRADE_H
#define COREGRADE_API_COREGRADE_H
#include "vars.h"
// A very simple coregrade class
class CoreGrade {
public:
CoreGrade();
~CoreGrade();
long coregrade_api(CVars in, CVars &out);
const char* cfgReadChar(const char *parameter);
long cfgReadLong(const char *parameter);
void logMessage(const char *message);
private:
FILE* pFile;
int db;
};
#endif /* COREGRADE_API_COREGRADE_H */
+103
View File
@@ -0,0 +1,103 @@
#ifndef COREGRADE_API_H
#define COREGRADE_API_H
#define PHP_API_OK 0
#define PHP_API_BAD_PARAM -1
#define COREGRADE_SESSION_CHECK 299
#define COREGRADE_USER_LOGIN 300
#define COREGRADE_USER_LOGOUT 301
#define COREGRADE_CREATE_ACCOUNT 320
//**************************************************************
#define COREGRADE_BKO_START 10000
#define COREGRADE_BKO_LOGIN 10010
#define COREGRADE_BKO_CREATEUSER 10015
#define COREGRADE_BKO_UPDATEUSER 10020
#define COREGRADE_BKO_END 10999
//**************************************************************
#define COREGRADE_ACCOUNT_START 11000
#define COREGRADE_ACCOUNT_TESTEMAIL 11001
#define COREGRADE_ACCOUNT_PENDING 11010
#define COREGRADE_VERIFY_PENDING_LINK 11015
#define COREGRADE_ACCOUNT_CREATEACC 11020
#define COREGRADE_ACCOUNT_LOGIN 11025
#define COREGRADE_ACCOUNT_END 11999
//**************************************************************
#define COREGRADE_GROUP_START 12000
#define COREGRADE_GROUP_CREATEGROUP 12010
#define COREGRADE_GROUP_INVITEGROUP 12015
#define COREGRADE_GROUP_ACCEPTGROUP 12020
#define COREGRADE_GROUP_END 12999
//**************************************************************
#define COREGRADE_COMPLETE_SENDMONEY_INTERSW 555
#define COREGRADE_GETBILLER_INTERSW 556
#define COREGRADE_BILL_PAYMENT_ADVICE_INTERSW 557
#define COREGRADE_INTERSW_GETBILLER 556
#define COREGRADE_INTERSW_BILL_PAYMENT_ADVICE 557
#define COREGRADE_INTERSW_GETBILLERPAYMENTINTEMS 558
#define COREGRADE_INTERSW_GETBILLERCATEGORIES 559
#define COREGRADE_INTERSW_DO_TRANSFER 560
#define COREGRADE_INTERSW_QUERY_TRANSACTION 561
#define COREGRADE_ADD_MONEYRECIPIENT 600
#define COREGRADE_CREATE_USER_ACCOUNT 700
#define COREGRADE_USER_ACCOUNT_LOGIN 710
#define COREGRADE_START_PASSWORDRESET 720
#define COREGRADE_COMPLETE_PASSWORDRESET 730
#define COREGRADE_START_ADDMONEY 770
#define COREGRADE_COMPLETE_ADDMONEY 775
#define COREGRADE_ADD_MOBILE_TOPUPNUM 900
#define COREGRADE_PROMO_CALL 990
#define COREGRADE_STOREFACE_GET_ACCOUNT_BALANCE 891
#define COREGRADE_LOG_ENTRY 900000
#define COREGRADE_CREDIT_TOPUP 900010
#define COREGRADE_TOPUP_ORDER 900020
#define COREGRADE_TOPUP_ORDER_PURCHASE 900030
#define COREGRADE_PAYPAL_IPNMSG 900090
#define COREGRADE_BULKTOPUP_ORDER 700010
#define COREGRADE_BULKTOPUP_ITEM 700020
#define COREGRADE_BULKTOPUP_ITEMUPDATE 700030
#define COREGRADE_BULKTOPUP_DELIVER 700040
#define COREGRADE_BALANCE_TOPUP_ORDER 800020
#define COREGRADE_BALANCE_TOPUP_PURCHASE 800030
#define COREGRADE_BALANCE_TOPUP_PAYMENT 800040
#define VIRTUAL_AIRTOPUP 70011
#define PAY_MODE_BALANCE 0
#define PAY_MODE_CCARD 1
#define PAY_MODE_BONUS 9
#define APPROVED_BALANCE 5
#define DISAPROVE_BALANCE 3
#endif
@@ -0,0 +1,8 @@
#ifndef COREGRADE_API_MAIN_H
#define COREGRADE_API_MAIN_H
#include "vars.h"
long coregrade_api_main(CVars in, CVars &out);
#endif
+61
View File
@@ -0,0 +1,61 @@
#ifndef __cvariables__
#define __cvariables__
#include "stdarg.h"
#include <stdio.h>
#define MAX_CGI_VAR_LEN 50
typedef struct _L_Variables
{
char name[MAX_CGI_VAR_LEN+1];
char * value;
int opts; // options? used by some decendants
struct _L_Variables * next;
} L_Variables;
class CVariables
{
public:
friend class CGIList;
CVariables( );
~CVariables( );
void RenameVariable( const char * name, const char * newname );
void LetInt16( char * var, const int value ); // Set the variable to an integer value
void LetStr( const char * var, const char * value ); // Set the variable to a string value
void LetStrf( char * var, const char * format, ... );
void vLetStrf( char * var, const char * format, va_list ap );
void LetStr( char * var, const char * value, int len );
// Set the variable to a string value and truncate to len
void StrCat( char * var, const char * format, ... );
void StrCatf( char * var, const char * format, ... );
char * GetVariable( const char * var ); // Obtain the variable value and return its temp location
char * GetVariable( const char * var, char * result, int size );
// Obtain the variable value and return it in 'result'
char * GetVariable( const char * var, bool test, char * section = "" );
long GetVariableLong( char * name, bool *valid = NULL );
long GetVariableLong( char * name, bool test, char * section = "" );
bool GetBool( char * var, bool test = false, char * section = "" );
void PrintVars( FILE * f = stdout ); // Print out all variables to file pointed to by 'f'
void Cleanup();
L_Variables * var, * var_top;
L_Variables * FindVariable( const char * var, bool create=false );
// Obtains the next variable during the template parsing process
};
#endif
+35
View File
@@ -0,0 +1,35 @@
#ifndef __mx_email_h__
#define __mx_email_h__
#include "vars.h"
long AccountPendingMail(CVars in);
long WelcomeAccountMail(CVars in);
long GroupCreateMemberMail(CVars in);
long CreateCoreGradeGroupMail(CVars in);
long send_email(CVars in, CVars &out);
long SystemStatus();
long VirtualAirSaleAlert(CVars in);
void SendAccountCreateAlert(long customer_id);
long VirtualAirSaleCustomer(CVars in);
void CustomerBalanceEmail(CVars in);
void PaymentAlert(CVars in);
void BalanceUpdateAlert(CVars in);
void CustomerEmailWelcome(CVars in);
long CustomerAirSale(CVars in);
long CustomerAirSalePayment(CVars in);
long CustomerAirBonus(CVars in);
long CustomerBalanceBonusEmail(CVars in);
long StartPassResetEmail(CVars in);
long CompletePassResetEmail(CVars in);
long SendPromoEmail(CVars in);
long SendBalanceRequestAlert(CVars in);
long SendBalanceCompleteAlert(CVars in);
#endif
+378
View File
@@ -0,0 +1,378 @@
/* envH.h
Generated by gSOAP 2.8.16 from env.h
Copyright(C) 2000-2013, Robert van Engelen, Genivia Inc. All Rights Reserved.
The generated code is released under one of the following licenses:
GPL or Genivia's license for commercial use.
This program is released under the GPL with the additional exemption that
compiling, linking, and/or using OpenSSL is allowed.
*/
#ifndef envH_H
#define envH_H
#include "envStub.h"
#ifndef WITH_NOIDREF
#ifdef __cplusplus
extern "C" {
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap*, const void*, int);
#ifdef __cplusplus
}
#endif
SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap*);
SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap*);
#endif
#ifdef __cplusplus
extern "C" {
#endif
SOAP_FMAC3 void *SOAP_FMAC4 soap_getelement(struct soap*, int*);
SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap*, const void*, const char*, int, int);
#ifdef __cplusplus
}
#endif
SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap*);
SOAP_FMAC3 const char ** SOAP_FMAC4 soap_faultcode(struct soap *soap);
SOAP_FMAC3 void * SOAP_FMAC4 env_instantiate(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 int SOAP_FMAC4 env_fdelete(struct soap_clist*);
SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap*, const char*, void*, int, size_t, const char*, const char*);
#ifndef SOAP_TYPE_byte
#define SOAP_TYPE_byte (3)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap*, char *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap*, const char*, int, const char *, const char*);
SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap*, const char*, char *, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap*, const char *, const char*, const char*);
#ifndef soap_write_byte
#define soap_write_byte(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize_byte(soap, data),0) || soap_put_byte(soap, data, "byte", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap*, char *, const char*, const char*);
#ifndef soap_read_byte
#define soap_read_byte(soap, data) ( soap_begin_recv(soap) || !soap_get_byte(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
#ifndef SOAP_TYPE_int
#define SOAP_TYPE_int (1)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap*, int *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap*, const char*, int, const int *, const char*);
SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap*, const char*, int *, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap*, const int *, const char*, const char*);
#ifndef soap_write_int
#define soap_write_int(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize_int(soap, data),0) || soap_put_int(soap, data, "int", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap*, int *, const char*, const char*);
#ifndef soap_read_int
#define soap_read_int(soap, data) ( soap_begin_recv(soap) || !soap_get_int(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_SOAP_ENV__Fault
#define SOAP_TYPE_SOAP_ENV__Fault (14)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap*, const char*, int, const struct SOAP_ENV__Fault *, const char*);
SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap*, const char*, struct SOAP_ENV__Fault *, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *, const char*, const char*);
#ifndef soap_write_SOAP_ENV__Fault
#define soap_write_SOAP_ENV__Fault(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize_SOAP_ENV__Fault(soap, data),0) || soap_put_SOAP_ENV__Fault(soap, data, "SOAP-ENV:Fault", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *, const char*, const char*);
#ifndef soap_read_SOAP_ENV__Fault
#define soap_read_SOAP_ENV__Fault(soap, data) ( soap_begin_recv(soap) || !soap_get_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap*, int, const char*, const char*, size_t*);
inline struct SOAP_ENV__Fault * soap_new_SOAP_ENV__Fault(struct soap *soap, int n = -1) { return soap_instantiate_SOAP_ENV__Fault(soap, n, NULL, NULL, NULL); }
inline struct SOAP_ENV__Fault * soap_new_req_SOAP_ENV__Fault(struct soap *soap) { struct SOAP_ENV__Fault *_p = soap_instantiate_SOAP_ENV__Fault(soap, -1, NULL, NULL, NULL); if (_p) { soap_default_SOAP_ENV__Fault(soap, _p); } return _p; }
inline struct SOAP_ENV__Fault * soap_new_set_SOAP_ENV__Fault(struct soap *soap, char *faultcode, char *faultstring, char *faultactor, struct SOAP_ENV__Detail *detail, struct SOAP_ENV__Code *SOAP_ENV__Code, struct SOAP_ENV__Reason *SOAP_ENV__Reason, char *SOAP_ENV__Node, char *SOAP_ENV__Role, struct SOAP_ENV__Detail *SOAP_ENV__Detail) { struct SOAP_ENV__Fault *_p = soap_instantiate_SOAP_ENV__Fault(soap, -1, NULL, NULL, NULL); if (_p) { soap_default_SOAP_ENV__Fault(soap, _p); _p->faultcode = faultcode; _p->faultstring = faultstring; _p->faultactor = faultactor; _p->detail = detail; _p->SOAP_ENV__Code = SOAP_ENV__Code; _p->SOAP_ENV__Reason = SOAP_ENV__Reason; _p->SOAP_ENV__Node = SOAP_ENV__Node; _p->SOAP_ENV__Role = SOAP_ENV__Role; _p->SOAP_ENV__Detail = SOAP_ENV__Detail; } return _p; }
inline void soap_delete_SOAP_ENV__Fault(struct soap *soap, struct SOAP_ENV__Fault *p) { soap_delete(soap, p); }
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap*, int, int, void*, size_t, const void*, size_t);
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_SOAP_ENV__Reason
#define SOAP_TYPE_SOAP_ENV__Reason (13)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap*, const char*, int, const struct SOAP_ENV__Reason *, const char*);
SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason *, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *, const char*, const char*);
#ifndef soap_write_SOAP_ENV__Reason
#define soap_write_SOAP_ENV__Reason(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize_SOAP_ENV__Reason(soap, data),0) || soap_put_SOAP_ENV__Reason(soap, data, "SOAP-ENV:Reason", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *, const char*, const char*);
#ifndef soap_read_SOAP_ENV__Reason
#define soap_read_SOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !soap_get_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap*, int, const char*, const char*, size_t*);
inline struct SOAP_ENV__Reason * soap_new_SOAP_ENV__Reason(struct soap *soap, int n = -1) { return soap_instantiate_SOAP_ENV__Reason(soap, n, NULL, NULL, NULL); }
inline struct SOAP_ENV__Reason * soap_new_req_SOAP_ENV__Reason(struct soap *soap) { struct SOAP_ENV__Reason *_p = soap_instantiate_SOAP_ENV__Reason(soap, -1, NULL, NULL, NULL); if (_p) { soap_default_SOAP_ENV__Reason(soap, _p); } return _p; }
inline struct SOAP_ENV__Reason * soap_new_set_SOAP_ENV__Reason(struct soap *soap, char *SOAP_ENV__Text) { struct SOAP_ENV__Reason *_p = soap_instantiate_SOAP_ENV__Reason(soap, -1, NULL, NULL, NULL); if (_p) { soap_default_SOAP_ENV__Reason(soap, _p); _p->SOAP_ENV__Text = SOAP_ENV__Text; } return _p; }
inline void soap_delete_SOAP_ENV__Reason(struct soap *soap, struct SOAP_ENV__Reason *p) { soap_delete(soap, p); }
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap*, int, int, void*, size_t, const void*, size_t);
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_SOAP_ENV__Detail
#define SOAP_TYPE_SOAP_ENV__Detail (10)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap*, const char*, int, const struct SOAP_ENV__Detail *, const char*);
SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail *, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *, const char*, const char*);
#ifndef soap_write_SOAP_ENV__Detail
#define soap_write_SOAP_ENV__Detail(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize_SOAP_ENV__Detail(soap, data),0) || soap_put_SOAP_ENV__Detail(soap, data, "SOAP-ENV:Detail", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *, const char*, const char*);
#ifndef soap_read_SOAP_ENV__Detail
#define soap_read_SOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !soap_get_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap*, int, const char*, const char*, size_t*);
inline struct SOAP_ENV__Detail * soap_new_SOAP_ENV__Detail(struct soap *soap, int n = -1) { return soap_instantiate_SOAP_ENV__Detail(soap, n, NULL, NULL, NULL); }
inline struct SOAP_ENV__Detail * soap_new_req_SOAP_ENV__Detail(struct soap *soap, int __type, void *fault) { struct SOAP_ENV__Detail *_p = soap_instantiate_SOAP_ENV__Detail(soap, -1, NULL, NULL, NULL); if (_p) { soap_default_SOAP_ENV__Detail(soap, _p); _p->__type = __type; _p->fault = fault; } return _p; }
inline struct SOAP_ENV__Detail * soap_new_set_SOAP_ENV__Detail(struct soap *soap, char *__any, int __type, void *fault) { struct SOAP_ENV__Detail *_p = soap_instantiate_SOAP_ENV__Detail(soap, -1, NULL, NULL, NULL); if (_p) { soap_default_SOAP_ENV__Detail(soap, _p); _p->__any = __any; _p->__type = __type; _p->fault = fault; } return _p; }
inline void soap_delete_SOAP_ENV__Detail(struct soap *soap, struct SOAP_ENV__Detail *p) { soap_delete(soap, p); }
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap*, int, int, void*, size_t, const void*, size_t);
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_SOAP_ENV__Code
#define SOAP_TYPE_SOAP_ENV__Code (8)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap*, const char*, int, const struct SOAP_ENV__Code *, const char*);
SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code *, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *, const char*, const char*);
#ifndef soap_write_SOAP_ENV__Code
#define soap_write_SOAP_ENV__Code(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize_SOAP_ENV__Code(soap, data),0) || soap_put_SOAP_ENV__Code(soap, data, "SOAP-ENV:Code", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *, const char*, const char*);
#ifndef soap_read_SOAP_ENV__Code
#define soap_read_SOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !soap_get_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap*, int, const char*, const char*, size_t*);
inline struct SOAP_ENV__Code * soap_new_SOAP_ENV__Code(struct soap *soap, int n = -1) { return soap_instantiate_SOAP_ENV__Code(soap, n, NULL, NULL, NULL); }
inline struct SOAP_ENV__Code * soap_new_req_SOAP_ENV__Code(struct soap *soap) { struct SOAP_ENV__Code *_p = soap_instantiate_SOAP_ENV__Code(soap, -1, NULL, NULL, NULL); if (_p) { soap_default_SOAP_ENV__Code(soap, _p); } return _p; }
inline struct SOAP_ENV__Code * soap_new_set_SOAP_ENV__Code(struct soap *soap, char *SOAP_ENV__Value, struct SOAP_ENV__Code *SOAP_ENV__Subcode) { struct SOAP_ENV__Code *_p = soap_instantiate_SOAP_ENV__Code(soap, -1, NULL, NULL, NULL); if (_p) { soap_default_SOAP_ENV__Code(soap, _p); _p->SOAP_ENV__Value = SOAP_ENV__Value; _p->SOAP_ENV__Subcode = SOAP_ENV__Subcode; } return _p; }
inline void soap_delete_SOAP_ENV__Code(struct soap *soap, struct SOAP_ENV__Code *p) { soap_delete(soap, p); }
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap*, int, int, void*, size_t, const void*, size_t);
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_SOAP_ENV__Header
#define SOAP_TYPE_SOAP_ENV__Header (7)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap*, const char*, int, const struct SOAP_ENV__Header *, const char*);
SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap*, const char*, struct SOAP_ENV__Header *, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *, const char*, const char*);
#ifndef soap_write_SOAP_ENV__Header
#define soap_write_SOAP_ENV__Header(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize_SOAP_ENV__Header(soap, data),0) || soap_put_SOAP_ENV__Header(soap, data, "SOAP-ENV:Header", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *, const char*, const char*);
#ifndef soap_read_SOAP_ENV__Header
#define soap_read_SOAP_ENV__Header(soap, data) ( soap_begin_recv(soap) || !soap_get_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap*, int, const char*, const char*, size_t*);
inline struct SOAP_ENV__Header * soap_new_SOAP_ENV__Header(struct soap *soap, int n = -1) { return soap_instantiate_SOAP_ENV__Header(soap, n, NULL, NULL, NULL); }
inline struct SOAP_ENV__Header * soap_new_req_SOAP_ENV__Header(struct soap *soap) { struct SOAP_ENV__Header *_p = soap_instantiate_SOAP_ENV__Header(soap, -1, NULL, NULL, NULL); if (_p) { soap_default_SOAP_ENV__Header(soap, _p); } return _p; }
inline struct SOAP_ENV__Header * soap_new_set_SOAP_ENV__Header(struct soap *soap) { struct SOAP_ENV__Header *_p = soap_instantiate_SOAP_ENV__Header(soap, -1, NULL, NULL, NULL); if (_p) { soap_default_SOAP_ENV__Header(soap, _p); } return _p; }
inline void soap_delete_SOAP_ENV__Header(struct soap *soap, struct SOAP_ENV__Header *p) { soap_delete(soap, p); }
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap*, int, int, void*, size_t, const void*, size_t);
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_PointerToSOAP_ENV__Reason
#define SOAP_TYPE_PointerToSOAP_ENV__Reason (16)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap*, const char *, int, struct SOAP_ENV__Reason *const*, const char *);
SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason **, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*, const char*, const char*);
#ifndef soap_write_PointerToSOAP_ENV__Reason
#define soap_write_PointerToSOAP_ENV__Reason(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize_PointerToSOAP_ENV__Reason(soap, data),0) || soap_put_PointerToSOAP_ENV__Reason(soap, data, "SOAP-ENV:Reason", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason **, const char*, const char*);
#ifndef soap_read_PointerToSOAP_ENV__Reason
#define soap_read_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !soap_get_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_PointerToSOAP_ENV__Detail
#define SOAP_TYPE_PointerToSOAP_ENV__Detail (15)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap*, const char *, int, struct SOAP_ENV__Detail *const*, const char *);
SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail **, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*, const char*, const char*);
#ifndef soap_write_PointerToSOAP_ENV__Detail
#define soap_write_PointerToSOAP_ENV__Detail(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize_PointerToSOAP_ENV__Detail(soap, data),0) || soap_put_PointerToSOAP_ENV__Detail(soap, data, "SOAP-ENV:Detail", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail **, const char*, const char*);
#ifndef soap_read_PointerToSOAP_ENV__Detail
#define soap_read_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !soap_get_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_PointerToSOAP_ENV__Code
#define SOAP_TYPE_PointerToSOAP_ENV__Code (9)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap*, const char *, int, struct SOAP_ENV__Code *const*, const char *);
SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code **, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*, const char*, const char*);
#ifndef soap_write_PointerToSOAP_ENV__Code
#define soap_write_PointerToSOAP_ENV__Code(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize_PointerToSOAP_ENV__Code(soap, data),0) || soap_put_PointerToSOAP_ENV__Code(soap, data, "SOAP-ENV:Code", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code **, const char*, const char*);
#ifndef soap_read_PointerToSOAP_ENV__Code
#define soap_read_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !soap_get_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
#endif
#ifndef SOAP_TYPE__QName
#define SOAP_TYPE__QName (5)
#endif
#define soap_default__QName(soap, a) soap_default_string(soap, a)
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize__QName(struct soap*, char *const*);
SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap*, const char*, int, char*const*, const char*);
SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap*, const char*, char **, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap*, char *const*, const char*, const char*);
#ifndef soap_write__QName
#define soap_write__QName(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize__QName(soap, data),0) || soap_put__QName(soap, data, "byte", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap*, char **, const char*, const char*);
#ifndef soap_read__QName
#define soap_read__QName(soap, data) ( soap_begin_recv(soap) || !soap_get__QName(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
#ifndef SOAP_TYPE_string
#define SOAP_TYPE_string (4)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap*, char **);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap*, char *const*);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap*, const char*, int, char*const*, const char*);
SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap*, const char*, char **, const char*);
SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap*, char *const*, const char*, const char*);
#ifndef soap_write_string
#define soap_write_string(soap, data) ( soap_free_temp(soap), soap_begin_send(soap) || (soap_serialize_string(soap, data),0) || soap_put_string(soap, data, "byte", NULL) || soap_end_send(soap), (soap)->error )
#endif
SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap*, char **, const char*, const char*);
#ifndef soap_read_string
#define soap_read_string(soap, data) ( soap_begin_recv(soap) || !soap_get_string(soap, data, NULL, NULL) || soap_end_recv(soap), (soap)->error )
#endif
#endif
/* End of envH.h */
+163
View File
@@ -0,0 +1,163 @@
/* envStub.h
Generated by gSOAP 2.8.16 from env.h
Copyright(C) 2000-2013, Robert van Engelen, Genivia Inc. All Rights Reserved.
The generated code is released under one of the following licenses:
GPL or Genivia's license for commercial use.
This program is released under the GPL with the additional exemption that
compiling, linking, and/or using OpenSSL is allowed.
*/
#ifndef envStub_H
#define envStub_H
#include "stdsoap2.h"
#if GSOAP_VERSION != 20816
# error "GSOAP VERSION MISMATCH IN GENERATED CODE: PLEASE REINSTALL PACKAGE"
#endif
/******************************************************************************\
* *
* Enumerations *
* *
\******************************************************************************/
/******************************************************************************\
* *
* Types with Custom Serializers *
* *
\******************************************************************************/
/******************************************************************************\
* *
* Classes and Structs *
* *
\******************************************************************************/
#if 0 /* volatile type: do not declare here, declared elsewhere */
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_SOAP_ENV__Header
#define SOAP_TYPE_SOAP_ENV__Header (7)
/* SOAP Header: */
struct SOAP_ENV__Header
{
public:
int soap_type() const { return 7; } /* = unique id SOAP_TYPE_SOAP_ENV__Header */
#ifdef WITH_NOEMPTYSTRUCT
private:
char dummy; /* dummy member to enable compilation */
#endif
};
#endif
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_SOAP_ENV__Code
#define SOAP_TYPE_SOAP_ENV__Code (8)
/* SOAP Fault Code: */
struct SOAP_ENV__Code
{
public:
char *SOAP_ENV__Value; /* optional element of type xsd:QName */
struct SOAP_ENV__Code *SOAP_ENV__Subcode; /* optional element of type SOAP-ENV:Code */
public:
int soap_type() const { return 8; } /* = unique id SOAP_TYPE_SOAP_ENV__Code */
};
#endif
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_SOAP_ENV__Detail
#define SOAP_TYPE_SOAP_ENV__Detail (10)
/* SOAP-ENV:Detail */
struct SOAP_ENV__Detail
{
public:
char *__any;
int __type; /* any type of element <fault> (defined below) */
void *fault; /* transient */
public:
int soap_type() const { return 10; } /* = unique id SOAP_TYPE_SOAP_ENV__Detail */
};
#endif
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_SOAP_ENV__Reason
#define SOAP_TYPE_SOAP_ENV__Reason (13)
/* SOAP-ENV:Reason */
struct SOAP_ENV__Reason
{
public:
char *SOAP_ENV__Text; /* optional element of type xsd:string */
public:
int soap_type() const { return 13; } /* = unique id SOAP_TYPE_SOAP_ENV__Reason */
};
#endif
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_SOAP_ENV__Fault
#define SOAP_TYPE_SOAP_ENV__Fault (14)
/* SOAP Fault: */
struct SOAP_ENV__Fault
{
public:
char *faultcode; /* optional element of type xsd:QName */
char *faultstring; /* optional element of type xsd:string */
char *faultactor; /* optional element of type xsd:string */
struct SOAP_ENV__Detail *detail; /* optional element of type SOAP-ENV:Detail */
struct SOAP_ENV__Code *SOAP_ENV__Code; /* optional element of type SOAP-ENV:Code */
struct SOAP_ENV__Reason *SOAP_ENV__Reason; /* optional element of type SOAP-ENV:Reason */
char *SOAP_ENV__Node; /* optional element of type xsd:string */
char *SOAP_ENV__Role; /* optional element of type xsd:string */
struct SOAP_ENV__Detail *SOAP_ENV__Detail; /* optional element of type SOAP-ENV:Detail */
public:
int soap_type() const { return 14; } /* = unique id SOAP_TYPE_SOAP_ENV__Fault */
};
#endif
#endif
/******************************************************************************\
* *
* Typedefs *
* *
\******************************************************************************/
#ifndef SOAP_TYPE__QName
#define SOAP_TYPE__QName (5)
typedef char *_QName;
#endif
#ifndef SOAP_TYPE__XML
#define SOAP_TYPE__XML (6)
typedef char *_XML;
#endif
/******************************************************************************\
* *
* Externals *
* *
\******************************************************************************/
#endif
/* End of envStub.h */
+20
View File
@@ -0,0 +1,20 @@
#ifndef __EXCEPTIONS_H__
#define __EXCEPTIONS_H__
#include "vars.h"
class bad_parameter{
public:
bad_parameter( CVars &out, const char *name );
};
class err : public std::exception
{
public:
err( char *msg );
};
#endif
+13
View File
@@ -0,0 +1,13 @@
#ifndef __mx_groups_h__
#define __mx_groups_h__
#include "vars.h"
long groups_calls(CVars in, CVars &out);
long CreateCoreGradeGroup(CVars in, CVars &out);
long CoreGradeGroupCreateMember(CVars in, CVars &out);
#endif
+140
View File
@@ -0,0 +1,140 @@
/*-
* HMAC-SHA-224/256/384/512 implementation
* Last update: 06/15/2005
* Issue date: 06/15/2005
*
* Copyright (C) 2005 Olivier Gay <olivier.gay@a3.epfl.ch>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef _HMAC_SHA2_H
#define _HMAC_SHA2_H
#include "sha2.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
sha224_ctx ctx_inside;
sha224_ctx ctx_outside;
/* for hmac_reinit */
sha224_ctx ctx_inside_reinit;
sha224_ctx ctx_outside_reinit;
unsigned char block_ipad[SHA224_BLOCK_SIZE];
unsigned char block_opad[SHA224_BLOCK_SIZE];
} hmac_sha224_ctx;
typedef struct {
sha256_ctx ctx_inside;
sha256_ctx ctx_outside;
/* for hmac_reinit */
sha256_ctx ctx_inside_reinit;
sha256_ctx ctx_outside_reinit;
unsigned char block_ipad[SHA256_BLOCK_SIZE];
unsigned char block_opad[SHA256_BLOCK_SIZE];
} hmac_sha256_ctx;
typedef struct {
sha384_ctx ctx_inside;
sha384_ctx ctx_outside;
/* for hmac_reinit */
sha384_ctx ctx_inside_reinit;
sha384_ctx ctx_outside_reinit;
unsigned char block_ipad[SHA384_BLOCK_SIZE];
unsigned char block_opad[SHA384_BLOCK_SIZE];
} hmac_sha384_ctx;
typedef struct {
sha512_ctx ctx_inside;
sha512_ctx ctx_outside;
/* for hmac_reinit */
sha512_ctx ctx_inside_reinit;
sha512_ctx ctx_outside_reinit;
unsigned char block_ipad[SHA512_BLOCK_SIZE];
unsigned char block_opad[SHA512_BLOCK_SIZE];
} hmac_sha512_ctx;
void hmac_sha224_init(hmac_sha224_ctx *ctx, unsigned char *key,
unsigned int key_size);
void hmac_sha224_reinit(hmac_sha224_ctx *ctx);
void hmac_sha224_update(hmac_sha224_ctx *ctx, unsigned char *message,
unsigned int message_len);
void hmac_sha224_final(hmac_sha224_ctx *ctx, unsigned char *mac,
unsigned int mac_size);
void hmac_sha224(unsigned char *key, unsigned int key_size,
unsigned char *message, unsigned int message_len,
unsigned char *mac, unsigned mac_size);
void hmac_sha256_init(hmac_sha256_ctx *ctx, unsigned char *key,
unsigned int key_size);
void hmac_sha256_reinit(hmac_sha256_ctx *ctx);
void hmac_sha256_update(hmac_sha256_ctx *ctx, unsigned char *message,
unsigned int message_len);
void hmac_sha256_final(hmac_sha256_ctx *ctx, unsigned char *mac,
unsigned int mac_size);
void hmac_sha256(unsigned char *key, unsigned int key_size,
unsigned char *message, unsigned int message_len,
unsigned char *mac, unsigned mac_size);
void hmac_sha384_init(hmac_sha384_ctx *ctx, unsigned char *key,
unsigned int key_size);
void hmac_sha384_reinit(hmac_sha384_ctx *ctx);
void hmac_sha384_update(hmac_sha384_ctx *ctx, unsigned char *message,
unsigned int message_len);
void hmac_sha384_final(hmac_sha384_ctx *ctx, unsigned char *mac,
unsigned int mac_size);
void hmac_sha384(unsigned char *key, unsigned int key_size,
unsigned char *message, unsigned int message_len,
unsigned char *mac, unsigned mac_size);
void hmac_sha512_init(hmac_sha512_ctx *ctx, unsigned char *key,
unsigned int key_size);
void hmac_sha512_reinit(hmac_sha512_ctx *ctx);
void hmac_sha512_update(hmac_sha512_ctx *ctx, unsigned char *message,
unsigned int message_len);
void hmac_sha512_final(hmac_sha512_ctx *ctx, unsigned char *mac,
unsigned int mac_size);
void hmac_sha512(unsigned char *key, unsigned int key_size,
unsigned char *message, unsigned int message_len,
unsigned char *mac, unsigned mac_size);
#ifdef __cplusplus
}
#endif
#endif /* ! _HMAC_SHA2_H */
+15
View File
@@ -0,0 +1,15 @@
#ifndef __INPUT_H__
#define __INPUT_H__
#include "vars.h"
#include "exceptions.h"
void REQ_STRING( CVars &in, const char * name, int min_len, int max_len, const char *regex ) throw (bad_parameter);
long REQ_LONG( CVars &in, const char *name, long min, long max );
bool OptionalSpecified( CVars &in, const char * name );
#define OPTIONAL(mapname, var) \
if ( OptionalSpecified(mapname,var) )
#endif
+37
View File
@@ -0,0 +1,37 @@
#ifndef __INTERSWITCH_H__
#define __INTERSWITCH_H__
#include "vars.h"
#include <cstring>
#include <ext/hash_map>
using namespace std;
using namespace __gnu_cxx;
/*****************************************************************************/
struct eqstr{
bool operator()(const char* s1, const char* s2) const {
return strcmp(s1,s2)==0;
}
};
/*****************************************************************************/
long interswitch_config_ssl(const char *keyfile, const char *password, const char *cacert, long version);
long interswitch_getBillers(const char *endpoint, const char *tid, int billerId, int categoryId, int channelId, const char *billerName, char *status, long(*save)(hash_map<const char*, const char*, hash<const char*>, eqstr>));
long interswitch_getBillerPaymentItems(const char *endpoint, const char *tid, int billerId, char *status, long(*save)(const char*, hash_map<const char*, const char*, hash<const char*>, eqstr>));
long interswitch_getBillerCategories(const char *endpoint, char *error, long(*save)(hash_map<const char*, const char*, hash<const char*>, eqstr>));
string interswitch_getBankCodes(const char *endpoint, const char *tid, char *status);
string interswitch_queryTransaction(const char *endpoint, const char *tid, const char *transferCode, const char *requestReference, char *status, char *transactionResponseCode);
long interswitch_getBalance(const char *endpoint, const char *tid, const char *mkey, const char *pin, char *status);
string interswitch_transferFunds(const char *endpoint, const char *tid, const char *mkey, const char *pin, char *error, const char *account, const char *uniqueRef, const char *bankCode, long currency, long amount ,CVars trans_info);
string interswitch_SendBillPaymentAdvice(const char *endpoint, const char *tid, long amount, const char *paymentCode, long customerId, const char *requestReference, char *status, char *transactionRef,char *customer_mobile,char *customer_email);
string interswitch_doTransfer(const char *endpoint, const char *tid, CVars trans_info, char *error);
//char * interswitch_pinChange(const char *tid, const char *mkey, const char *pin, char *status);
long interswitch_test();
#endif
/*
vi:ts=2
*/
+12
View File
@@ -0,0 +1,12 @@
#include "interswitchH.h"
SOAP_NMAC struct Namespace interswitch_namespaces[] =
{
{"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://schemas.xmlsoap.org/soap/envelope/", NULL},
{"SOAP-ENC", "http://www.w3.org/2003/05/soap-encoding", "http://www.w3.org/2003/05/soap-encoding", NULL},
{"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance", NULL},
{"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema", NULL},
{"interswitch2", "http://schemas.microsoft.com/2003/10/Serialization/", NULL, NULL},
{"interswitch", "http://services.interswitchng.com/quicktellerservice/", NULL, NULL},
{NULL, NULL, NULL, NULL}
};
@@ -0,0 +1,171 @@
/* interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy.h
Generated by gSOAP 2.7.16 from QuickTellerService.h
Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
This part of the software is released under one of the following licenses:
GPL, the gSOAP public license, or Genivia's license for commercial use.
*/
#ifndef interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy_H
#define interswitchBasicHttpBinding_USCOREQuickTellerServiceProxy_H
#include "interswitchH.h"
namespace interswitch {
class SOAP_CMAC BasicHttpBinding_USCOREQuickTellerServiceProxy : public soap
{ public:
/// Endpoint URL of service 'BasicHttpBinding_USCOREQuickTellerServiceProxy' (change as needed)
const char *soap_endpoint;
/// Constructor
BasicHttpBinding_USCOREQuickTellerServiceProxy();
/// Constructor with copy of another engine state
BasicHttpBinding_USCOREQuickTellerServiceProxy(const struct soap&);
/// Constructor with engine input+output mode control
BasicHttpBinding_USCOREQuickTellerServiceProxy(soap_mode iomode);
/// Constructor with engine input and output mode control
BasicHttpBinding_USCOREQuickTellerServiceProxy(soap_mode imode, soap_mode omode);
/// Destructor frees deserialized data
virtual ~BasicHttpBinding_USCOREQuickTellerServiceProxy();
/// Initializer used by constructors
virtual void BasicHttpBinding_USCOREQuickTellerServiceProxy_init(soap_mode imode, soap_mode omode);
/// Delete all deserialized data (uses soap_destroy and soap_end)
virtual void destroy();
/// Disables and removes SOAP Header from message
virtual void soap_noheader();
/// Get SOAP Fault structure (NULL when absent)
virtual const SOAP_ENV__Fault *soap_fault();
/// Get SOAP Fault string (NULL when absent)
virtual const char *soap_fault_string();
/// Get SOAP Fault detail as string (NULL when absent)
virtual const char *soap_fault_detail();
/// Force close connection (normally automatic, except for send_X ops)
virtual int soap_close_socket();
/// Print fault
virtual void soap_print_fault(FILE*);
#ifndef WITH_LEAN
/// Print fault to stream
virtual void soap_stream_fault(std::ostream&);
/// Put fault into buffer
virtual char *soap_sprint_fault(char *buf, size_t len);
#endif
/// Web service operation 'ValidateCustomer' (returns error code or SOAP_OK)
virtual int ValidateCustomer(_interswitch__ValidateCustomer *interswitch__ValidateCustomer, _interswitch__ValidateCustomerResponse *interswitch__ValidateCustomerResponse);
/// Web service operation 'DoTransfer' (returns error code or SOAP_OK)
virtual int DoTransfer(_interswitch__DoTransfer *interswitch__DoTransfer, _interswitch__DoTransferResponse *interswitch__DoTransferResponse);
/// Web service operation 'CancelTransfer' (returns error code or SOAP_OK)
virtual int CancelTransfer(_interswitch__CancelTransfer *interswitch__CancelTransfer, _interswitch__CancelTransferResponse *interswitch__CancelTransferResponse);
/// Web service operation 'SendSessionKey' (returns error code or SOAP_OK)
virtual int SendSessionKey(_interswitch__SendSessionKey *interswitch__SendSessionKey, _interswitch__SendSessionKeyResponse *interswitch__SendSessionKeyResponse);
/// Web service operation 'QueryTransfer' (returns error code or SOAP_OK)
virtual int QueryTransfer(_interswitch__QueryTransfer *interswitch__QueryTransfer, _interswitch__QueryTransferResponse *interswitch__QueryTransferResponse);
/// Web service operation 'AuthoriseCashOut' (returns error code or SOAP_OK)
virtual int AuthoriseCashOut(_interswitch__AuthoriseCashOut *interswitch__AuthoriseCashOut, _interswitch__AuthoriseCashOutResponse *interswitch__AuthoriseCashOutResponse);
/// Web service operation 'AuthoriseAccountCashOut' (returns error code or SOAP_OK)
virtual int AuthoriseAccountCashOut(_interswitch__AuthoriseAccountCashOut *interswitch__AuthoriseAccountCashOut, _interswitch__AuthoriseAccountCashOutResponse *interswitch__AuthoriseAccountCashOutResponse);
/// Web service operation 'ReverseCashOut' (returns error code or SOAP_OK)
virtual int ReverseCashOut(_interswitch__ReverseCashOut *interswitch__ReverseCashOut, _interswitch__ReverseCashOutResponse *interswitch__ReverseCashOutResponse);
/// Web service operation 'StatusCheck' (returns error code or SOAP_OK)
virtual int StatusCheck(_interswitch__StatusCheck *interswitch__StatusCheck, _interswitch__StatusCheckResponse *interswitch__StatusCheckResponse);
/// Web service operation 'QueryTransaction' (returns error code or SOAP_OK)
virtual int QueryTransaction(_interswitch__QueryTransaction *interswitch__QueryTransaction, _interswitch__QueryTransactionResponse *interswitch__QueryTransactionResponse);
/// Web service operation 'GetSystemSettings' (returns error code or SOAP_OK)
virtual int GetSystemSettings(_interswitch__GetSystemSettings *interswitch__GetSystemSettings, _interswitch__GetSystemSettingsResponse *interswitch__GetSystemSettingsResponse);
/// Web service operation 'CreateUser' (returns error code or SOAP_OK)
virtual int CreateUser(_interswitch__CreateUser *interswitch__CreateUser, _interswitch__CreateUserResponse *interswitch__CreateUserResponse);
/// Web service operation 'ActivateUser' (returns error code or SOAP_OK)
virtual int ActivateUser(_interswitch__ActivateUser *interswitch__ActivateUser, _interswitch__ActivateUserResponse *interswitch__ActivateUserResponse);
/// Web service operation 'UpdateUser' (returns error code or SOAP_OK)
virtual int UpdateUser(_interswitch__UpdateUser *interswitch__UpdateUser, _interswitch__UpdateUserResponse *interswitch__UpdateUserResponse);
/// Web service operation 'ChangePassword' (returns error code or SOAP_OK)
virtual int ChangePassword(_interswitch__ChangePassword *interswitch__ChangePassword, _interswitch__ChangePasswordResponse *interswitch__ChangePasswordResponse);
/// Web service operation 'ResetPassword' (returns error code or SOAP_OK)
virtual int ResetPassword(_interswitch__ResetPassword *interswitch__ResetPassword, _interswitch__ResetPasswordResponse *interswitch__ResetPasswordResponse);
/// Web service operation 'AuthenticateUser' (returns error code or SOAP_OK)
virtual int AuthenticateUser(_interswitch__AuthenticateUser *interswitch__AuthenticateUser, _interswitch__AuthenticateUserResponse *interswitch__AuthenticateUserResponse);
/// Web service operation 'AuthenticateUserSecurityToken' (returns error code or SOAP_OK)
virtual int AuthenticateUserSecurityToken(_interswitch__AuthenticateUserSecurityToken *interswitch__AuthenticateUserSecurityToken, _interswitch__AuthenticateUserSecurityTokenResponse *interswitch__AuthenticateUserSecurityTokenResponse);
/// Web service operation 'GetUser' (returns error code or SOAP_OK)
virtual int GetUser(_interswitch__GetUser *interswitch__GetUser, _interswitch__GetUserResponse *interswitch__GetUserResponse);
/// Web service operation 'GetBillers' (returns error code or SOAP_OK)
virtual int GetBillers(_interswitch__GetBillers *interswitch__GetBillers, _interswitch__GetBillersResponse *interswitch__GetBillersResponse);
/// Web service operation 'GetLatestBillers' (returns error code or SOAP_OK)
virtual int GetLatestBillers(_interswitch__GetLatestBillers *interswitch__GetLatestBillers, _interswitch__GetLatestBillersResponse *interswitch__GetLatestBillersResponse);
/// Web service operation 'GetFeaturedBillers' (returns error code or SOAP_OK)
virtual int GetFeaturedBillers(_interswitch__GetFeaturedBillers *interswitch__GetFeaturedBillers, _interswitch__GetFeaturedBillersResponse *interswitch__GetFeaturedBillersResponse);
/// Web service operation 'GetBillerPaymentItems' (returns error code or SOAP_OK)
virtual int GetBillerPaymentItems(_interswitch__GetBillerPaymentItems *interswitch__GetBillerPaymentItems, _interswitch__GetBillerPaymentItemsResponse *interswitch__GetBillerPaymentItemsResponse);
/// Web service operation 'GetBillerCategories' (returns error code or SOAP_OK)
virtual int GetBillerCategories(_interswitch__GetBillerCategories *interswitch__GetBillerCategories, _interswitch__GetBillerCategoriesResponse *interswitch__GetBillerCategoriesResponse);
/// Web service operation 'DoBillPaymentInquiry' (returns error code or SOAP_OK)
virtual int DoBillPaymentInquiry(_interswitch__DoBillPaymentInquiry *interswitch__DoBillPaymentInquiry, _interswitch__DoBillPaymentInquiryResponse *interswitch__DoBillPaymentInquiryResponse);
/// Web service operation 'AuthenticateCustomer' (returns error code or SOAP_OK)
virtual int AuthenticateCustomer(_interswitch__AuthenticateCustomer *interswitch__AuthenticateCustomer, _interswitch__AuthenticateCustomerResponse *interswitch__AuthenticateCustomerResponse);
/// Web service operation 'SendBillPaymentAdvice' (returns error code or SOAP_OK)
virtual int SendBillPaymentAdvice(_interswitch__SendBillPaymentAdvice *interswitch__SendBillPaymentAdvice, _interswitch__SendBillPaymentAdviceResponse *interswitch__SendBillPaymentAdviceResponse);
/// Web service operation 'SendPayments' (returns error code or SOAP_OK)
virtual int SendPayments(_interswitch__SendPayments *interswitch__SendPayments, _interswitch__SendPaymentsResponse *interswitch__SendPaymentsResponse);
/// Web service operation 'AddCustomerBillerAccount' (returns error code or SOAP_OK)
virtual int AddCustomerBillerAccount(_interswitch__AddCustomerBillerAccount *interswitch__AddCustomerBillerAccount, _interswitch__AddCustomerBillerAccountResponse *interswitch__AddCustomerBillerAccountResponse);
/// Web service operation 'GetCustomerBillerAccounts' (returns error code or SOAP_OK)
virtual int GetCustomerBillerAccounts(_interswitch__GetCustomerBillerAccounts *interswitch__GetCustomerBillerAccounts, _interswitch__GetCustomerBillerAccountsResponse *interswitch__GetCustomerBillerAccountsResponse);
/// Web service operation 'GetCustomerPayments' (returns error code or SOAP_OK)
virtual int GetCustomerPayments(_interswitch__GetCustomerPayments *interswitch__GetCustomerPayments, _interswitch__GetCustomerPaymentsResponse *interswitch__GetCustomerPaymentsResponse);
/// Web service operation 'AddBillerCustomer' (returns error code or SOAP_OK)
virtual int AddBillerCustomer(_interswitch__AddBillerCustomer *interswitch__AddBillerCustomer, _interswitch__AddBillerCustomerResponse *interswitch__AddBillerCustomerResponse);
/// Web service operation 'GetCollectionsAccount' (returns error code or SOAP_OK)
virtual int GetCollectionsAccount(_interswitch__GetCollectionsAccount *interswitch__GetCollectionsAccount, _interswitch__GetCollectionsAccountResponse *interswitch__GetCollectionsAccountResponse);
/// Web service operation 'GetBillersCollectionsAccount' (returns error code or SOAP_OK)
virtual int GetBillersCollectionsAccount(_interswitch__GetBillersCollectionsAccount *interswitch__GetBillersCollectionsAccount, _interswitch__GetBillersCollectionsAccountResponse *interswitch__GetBillersCollectionsAccountResponse);
/// Web service operation 'EditCustomerBillerAccount' (returns error code or SOAP_OK)
virtual int EditCustomerBillerAccount(_interswitch__EditCustomerBillerAccount *interswitch__EditCustomerBillerAccount, _interswitch__EditCustomerBillerAccountResponse *interswitch__EditCustomerBillerAccountResponse);
/// Web service operation 'ResendActivationToken' (returns error code or SOAP_OK)
virtual int ResendActivationToken(_interswitch__ResendActivationToken *interswitch__ResendActivationToken, _interswitch__ResendActivationTokenResponse *interswitch__ResendActivationTokenResponse);
/// Web service operation 'DoCustomProcessing' (returns error code or SOAP_OK)
virtual int DoCustomProcessing(_interswitch__DoCustomProcessing *interswitch__DoCustomProcessing, _interswitch__DoCustomProcessingResponse *interswitch__DoCustomProcessingResponse);
/// Web service operation 'CreateBiller' (returns error code or SOAP_OK)
virtual int CreateBiller(_interswitch__CreateBiller *interswitch__CreateBiller, _interswitch__CreateBillerResponse *interswitch__CreateBillerResponse);
/// Web service operation 'VerifyBiller' (returns error code or SOAP_OK)
virtual int VerifyBiller(_interswitch__VerifyBiller *interswitch__VerifyBiller, _interswitch__VerifyBillerResponse *interswitch__VerifyBillerResponse);
};
} // namespace interswitch
#endif
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,28 @@
#ifndef __INTERSITCH_SENDMONEY_H__
#define __INTERSITCH_SENDMONEY_H__
#include <stdarg.h>
#include "vars.h"
#include "interswitch.h"
extern "C" {
long INTW_configure(CVars in, CVars &out);
long INTW_getBillersSave(hash_map<const char*, const char*, hash<const char*>, eqstr> saveData);
long INTW_getBillers(CVars in, CVars &out);
long INTW_getSaveGeneric(const char *table, hash_map<const char*, const char*, hash<const char*>, eqstr> saveData);
long INTW_getBillerPaymentItems(CVars in, CVars &out);
long INTW_getBillerCategories(CVars in, CVars &out );
long INTW_sendBillPaymentAdvice(CVars in, CVars &out );
long INTW_doTransfer(CVars in, CVars &out );
long INTW_queryTransaction(CVars in, CVars &out );
long INTW_doServiceTransfer(CVars in, CVars &out );
long do_transferPayment(CVars pm);
long INTW_querySendMoneyTransaction(CVars in, CVars &out);
long INTW_doCompleteSavedTransfer(CVars in, CVars &out);
}
#endif
+21
View File
@@ -0,0 +1,21 @@
#ifndef __storeface_list_h__
#define __storeface_list_h__
typedef struct _list
{
char * text;
struct _list * next;
} TList;
void DestroyList( TList * top );
TList * Add( TList * list, char * text, long size );
TList * AddF( TList * list, char * format, ... );
#endif
+13
View File
@@ -0,0 +1,13 @@
#ifndef __PAYLID_H__
#define __PAYLID_H__
long storeface_getAccountBalance(const char *endpoint, const char *tid, const char *key, char *status);
long storeface_transferFund(const char *endpoint, const char *tid, const char *toDestination, const char *key, char *status);
long storeface_checkTransferStatus(const char *endpoint, const char *tid, const char *transactionRef, const char *key, char *status);
long storeface_directAirTimeTopUp(const char *endpoint, const char *tid, const char *topupData, const char *key, char *status, long &delivery_status);
#endif
/*
vi:ts=2
*/
+11
View File
@@ -0,0 +1,11 @@
#include "paylidH.h"
SOAP_NMAC struct Namespace paylid_namespaces[] =
{
{"SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/", "http://www.w3.org/*/soap-envelope", NULL},
{"SOAP-ENC", "http://schemas.xmlsoap.org/soap/encoding/", "http://www.w3.org/*/soap-encoding", NULL},
{"xsi", "http://www.w3.org/2001/XMLSchema-instance", "http://www.w3.org/*/XMLSchema-instance", NULL},
{"xsd", "http://www.w3.org/2001/XMLSchema", "http://www.w3.org/*/XMLSchema", NULL},
{"paylid", "urn:paylidwsdl", NULL, NULL},
{NULL, NULL, NULL, NULL}
};
+730
View File
@@ -0,0 +1,730 @@
/* paylidH.h
Generated by gSOAP 2.7.16 from PaylidService.h
Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
This part of the software is released under one of the following licenses:
GPL, the gSOAP public license, or Genivia's license for commercial use.
*/
#ifndef paylidH_H
#define paylidH_H
#include "paylidStub.h"
namespace paylid {
#ifndef WITH_NOIDREF
SOAP_FMAC3 void SOAP_FMAC4 soap_markelement(struct soap*, const void*, int);
SOAP_FMAC3 int SOAP_FMAC4 soap_putelement(struct soap*, const void*, const char*, int, int);
SOAP_FMAC3 void *SOAP_FMAC4 soap_getelement(struct soap*, int*);
SOAP_FMAC3 int SOAP_FMAC4 soap_putindependent(struct soap*);
SOAP_FMAC3 int SOAP_FMAC4 soap_getindependent(struct soap*);
#endif
SOAP_FMAC3 int SOAP_FMAC4 soap_ignore_element(struct soap*);
SOAP_FMAC3 void * SOAP_FMAC4 soap_instantiate(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 int SOAP_FMAC4 soap_fdelete(struct soap_clist*);
SOAP_FMAC3 void* SOAP_FMAC4 soap_class_id_enter(struct soap*, const char*, void*, int, size_t, const char*, const char*);
SOAP_FMAC3 void* SOAP_FMAC4 soap_container_id_forward(struct soap*, const char*, void*, size_t, int, int, size_t, unsigned int);
SOAP_FMAC3 void SOAP_FMAC4 soap_container_insert(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_byte
#define SOAP_TYPE_paylid_byte (3)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_byte(struct soap*, char *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_byte(struct soap*, const char*, int, const char *, const char*);
SOAP_FMAC3 char * SOAP_FMAC4 soap_in_byte(struct soap*, const char*, char *, const char*);
#define soap_write_byte(soap, data) ( soap_begin_send(soap) || paylid::soap_put_byte(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_byte(struct soap*, const char *, const char*, const char*);
#define soap_read_byte(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_byte(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 char * SOAP_FMAC4 soap_get_byte(struct soap*, char *, const char*, const char*);
#ifndef SOAP_TYPE_paylid_int
#define SOAP_TYPE_paylid_int (1)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_int(struct soap*, int *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_int(struct soap*, const char*, int, const int *, const char*);
SOAP_FMAC3 int * SOAP_FMAC4 soap_in_int(struct soap*, const char*, int *, const char*);
#define soap_write_int(soap, data) ( soap_begin_send(soap) || paylid::soap_put_int(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_int(struct soap*, const int *, const char*, const char*);
#define soap_read_int(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_int(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 int * SOAP_FMAC4 soap_get_int(struct soap*, int *, const char*, const char*);
#ifndef SOAP_TYPE_paylid_std__string
#define SOAP_TYPE_paylid_std__string (9)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_std__string(struct soap*, std::string *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_std__string(struct soap*, const std::string *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_std__string(struct soap*, const char*, int, const std::string*, const char*);
SOAP_FMAC3 std::string * SOAP_FMAC4 soap_in_std__string(struct soap*, const char*, std::string*, const char*);
#define soap_write_std__string(soap, data) ( soap_begin_send(soap) || ((data)->soap_serialize(soap), 0) || (data)->soap_put(soap, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_std__string(struct soap*, const std::string *, const char*, const char*);
#define soap_read_std__string(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_std__string(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 std::string * SOAP_FMAC4 soap_get_std__string(struct soap*, std::string *, const char*, const char*);
#define soap_new_std__string(soap, n) soap_instantiate_std__string(soap, n, NULL, NULL, NULL)
#define soap_delete_std__string(soap, p) soap_delete(soap, p)
SOAP_FMAC1 std::string * SOAP_FMAC2 soap_instantiate_std__string(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_std__string(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_paylid_SOAP_ENV__Fault
#define SOAP_TYPE_paylid_SOAP_ENV__Fault (48)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Fault(struct soap*, const char*, int, const struct SOAP_ENV__Fault *, const char*);
SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_in_SOAP_ENV__Fault(struct soap*, const char*, struct SOAP_ENV__Fault *, const char*);
#define soap_write_SOAP_ENV__Fault(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_SOAP_ENV__Fault(soap, data), 0) || paylid::soap_put_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Fault(struct soap*, const struct SOAP_ENV__Fault *, const char*, const char*);
#define soap_read_SOAP_ENV__Fault(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_SOAP_ENV__Fault(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct SOAP_ENV__Fault * SOAP_FMAC4 soap_get_SOAP_ENV__Fault(struct soap*, struct SOAP_ENV__Fault *, const char*, const char*);
#define soap_new_SOAP_ENV__Fault(soap, n) soap_instantiate_SOAP_ENV__Fault(soap, n, NULL, NULL, NULL)
#define soap_delete_SOAP_ENV__Fault(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct SOAP_ENV__Fault * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Fault(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Fault(struct soap*, int, int, void*, size_t, const void*, size_t);
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_paylid_SOAP_ENV__Reason
#define SOAP_TYPE_paylid_SOAP_ENV__Reason (47)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Reason(struct soap*, const char*, int, const struct SOAP_ENV__Reason *, const char*);
SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_in_SOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason *, const char*);
#define soap_write_SOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_SOAP_ENV__Reason(soap, data), 0) || paylid::soap_put_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Reason(struct soap*, const struct SOAP_ENV__Reason *, const char*, const char*);
#define soap_read_SOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_SOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct SOAP_ENV__Reason * SOAP_FMAC4 soap_get_SOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *, const char*, const char*);
#define soap_new_SOAP_ENV__Reason(soap, n) soap_instantiate_SOAP_ENV__Reason(soap, n, NULL, NULL, NULL)
#define soap_delete_SOAP_ENV__Reason(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct SOAP_ENV__Reason * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Reason(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Reason(struct soap*, int, int, void*, size_t, const void*, size_t);
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_paylid_SOAP_ENV__Detail
#define SOAP_TYPE_paylid_SOAP_ENV__Detail (44)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Detail(struct soap*, const char*, int, const struct SOAP_ENV__Detail *, const char*);
SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_in_SOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail *, const char*);
#define soap_write_SOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_SOAP_ENV__Detail(soap, data), 0) || paylid::soap_put_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Detail(struct soap*, const struct SOAP_ENV__Detail *, const char*, const char*);
#define soap_read_SOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_SOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct SOAP_ENV__Detail * SOAP_FMAC4 soap_get_SOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *, const char*, const char*);
#define soap_new_SOAP_ENV__Detail(soap, n) soap_instantiate_SOAP_ENV__Detail(soap, n, NULL, NULL, NULL)
#define soap_delete_SOAP_ENV__Detail(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct SOAP_ENV__Detail * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Detail(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Detail(struct soap*, int, int, void*, size_t, const void*, size_t);
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_paylid_SOAP_ENV__Code
#define SOAP_TYPE_paylid_SOAP_ENV__Code (42)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Code(struct soap*, const char*, int, const struct SOAP_ENV__Code *, const char*);
SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_in_SOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code *, const char*);
#define soap_write_SOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_SOAP_ENV__Code(soap, data), 0) || paylid::soap_put_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Code(struct soap*, const struct SOAP_ENV__Code *, const char*, const char*);
#define soap_read_SOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_SOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct SOAP_ENV__Code * SOAP_FMAC4 soap_get_SOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *, const char*, const char*);
#define soap_new_SOAP_ENV__Code(soap, n) soap_instantiate_SOAP_ENV__Code(soap, n, NULL, NULL, NULL)
#define soap_delete_SOAP_ENV__Code(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct SOAP_ENV__Code * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Code(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Code(struct soap*, int, int, void*, size_t, const void*, size_t);
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_paylid_SOAP_ENV__Header
#define SOAP_TYPE_paylid_SOAP_ENV__Header (41)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_SOAP_ENV__Header(struct soap*, const char*, int, const struct SOAP_ENV__Header *, const char*);
SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_in_SOAP_ENV__Header(struct soap*, const char*, struct SOAP_ENV__Header *, const char*);
#define soap_write_SOAP_ENV__Header(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_SOAP_ENV__Header(soap, data), 0) || paylid::soap_put_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_SOAP_ENV__Header(struct soap*, const struct SOAP_ENV__Header *, const char*, const char*);
#define soap_read_SOAP_ENV__Header(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_SOAP_ENV__Header(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct SOAP_ENV__Header * SOAP_FMAC4 soap_get_SOAP_ENV__Header(struct soap*, struct SOAP_ENV__Header *, const char*, const char*);
#define soap_new_SOAP_ENV__Header(soap, n) soap_instantiate_SOAP_ENV__Header(soap, n, NULL, NULL, NULL)
#define soap_delete_SOAP_ENV__Header(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct SOAP_ENV__Header * SOAP_FMAC2 soap_instantiate_SOAP_ENV__Header(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_SOAP_ENV__Header(struct soap*, int, int, void*, size_t, const void*, size_t);
#endif
#ifndef SOAP_TYPE_paylid_paylid__getSupportedBanks
#define SOAP_TYPE_paylid_paylid__getSupportedBanks (40)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__getSupportedBanks(struct soap*, struct paylid__getSupportedBanks *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__getSupportedBanks(struct soap*, const struct paylid__getSupportedBanks *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__getSupportedBanks(struct soap*, const char*, int, const struct paylid__getSupportedBanks *, const char*);
SOAP_FMAC3 struct paylid__getSupportedBanks * SOAP_FMAC4 soap_in_paylid__getSupportedBanks(struct soap*, const char*, struct paylid__getSupportedBanks *, const char*);
#define soap_write_paylid__getSupportedBanks(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__getSupportedBanks(soap, data), 0) || paylid::soap_put_paylid__getSupportedBanks(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__getSupportedBanks(struct soap*, const struct paylid__getSupportedBanks *, const char*, const char*);
#define soap_read_paylid__getSupportedBanks(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__getSupportedBanks(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__getSupportedBanks * SOAP_FMAC4 soap_get_paylid__getSupportedBanks(struct soap*, struct paylid__getSupportedBanks *, const char*, const char*);
#define soap_new_paylid__getSupportedBanks(soap, n) soap_instantiate_paylid__getSupportedBanks(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__getSupportedBanks(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__getSupportedBanks * SOAP_FMAC2 soap_instantiate_paylid__getSupportedBanks(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__getSupportedBanks(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__getSupportedBanksResponse
#define SOAP_TYPE_paylid_paylid__getSupportedBanksResponse (37)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__getSupportedBanksResponse(struct soap*, struct paylid__getSupportedBanksResponse *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__getSupportedBanksResponse(struct soap*, const struct paylid__getSupportedBanksResponse *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__getSupportedBanksResponse(struct soap*, const char*, int, const struct paylid__getSupportedBanksResponse *, const char*);
SOAP_FMAC3 struct paylid__getSupportedBanksResponse * SOAP_FMAC4 soap_in_paylid__getSupportedBanksResponse(struct soap*, const char*, struct paylid__getSupportedBanksResponse *, const char*);
#define soap_write_paylid__getSupportedBanksResponse(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__getSupportedBanksResponse(soap, data), 0) || paylid::soap_put_paylid__getSupportedBanksResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__getSupportedBanksResponse(struct soap*, const struct paylid__getSupportedBanksResponse *, const char*, const char*);
#define soap_read_paylid__getSupportedBanksResponse(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__getSupportedBanksResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__getSupportedBanksResponse * SOAP_FMAC4 soap_get_paylid__getSupportedBanksResponse(struct soap*, struct paylid__getSupportedBanksResponse *, const char*, const char*);
#define soap_new_paylid__getSupportedBanksResponse(soap, n) soap_instantiate_paylid__getSupportedBanksResponse(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__getSupportedBanksResponse(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__getSupportedBanksResponse * SOAP_FMAC2 soap_instantiate_paylid__getSupportedBanksResponse(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__getSupportedBanksResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__getTrxStatus
#define SOAP_TYPE_paylid_paylid__getTrxStatus (36)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__getTrxStatus(struct soap*, struct paylid__getTrxStatus *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__getTrxStatus(struct soap*, const struct paylid__getTrxStatus *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__getTrxStatus(struct soap*, const char*, int, const struct paylid__getTrxStatus *, const char*);
SOAP_FMAC3 struct paylid__getTrxStatus * SOAP_FMAC4 soap_in_paylid__getTrxStatus(struct soap*, const char*, struct paylid__getTrxStatus *, const char*);
#define soap_write_paylid__getTrxStatus(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__getTrxStatus(soap, data), 0) || paylid::soap_put_paylid__getTrxStatus(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__getTrxStatus(struct soap*, const struct paylid__getTrxStatus *, const char*, const char*);
#define soap_read_paylid__getTrxStatus(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__getTrxStatus(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__getTrxStatus * SOAP_FMAC4 soap_get_paylid__getTrxStatus(struct soap*, struct paylid__getTrxStatus *, const char*, const char*);
#define soap_new_paylid__getTrxStatus(soap, n) soap_instantiate_paylid__getTrxStatus(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__getTrxStatus(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__getTrxStatus * SOAP_FMAC2 soap_instantiate_paylid__getTrxStatus(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__getTrxStatus(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__getTrxStatusResponse
#define SOAP_TYPE_paylid_paylid__getTrxStatusResponse (33)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__getTrxStatusResponse(struct soap*, struct paylid__getTrxStatusResponse *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__getTrxStatusResponse(struct soap*, const struct paylid__getTrxStatusResponse *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__getTrxStatusResponse(struct soap*, const char*, int, const struct paylid__getTrxStatusResponse *, const char*);
SOAP_FMAC3 struct paylid__getTrxStatusResponse * SOAP_FMAC4 soap_in_paylid__getTrxStatusResponse(struct soap*, const char*, struct paylid__getTrxStatusResponse *, const char*);
#define soap_write_paylid__getTrxStatusResponse(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__getTrxStatusResponse(soap, data), 0) || paylid::soap_put_paylid__getTrxStatusResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__getTrxStatusResponse(struct soap*, const struct paylid__getTrxStatusResponse *, const char*, const char*);
#define soap_read_paylid__getTrxStatusResponse(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__getTrxStatusResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__getTrxStatusResponse * SOAP_FMAC4 soap_get_paylid__getTrxStatusResponse(struct soap*, struct paylid__getTrxStatusResponse *, const char*, const char*);
#define soap_new_paylid__getTrxStatusResponse(soap, n) soap_instantiate_paylid__getTrxStatusResponse(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__getTrxStatusResponse(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__getTrxStatusResponse * SOAP_FMAC2 soap_instantiate_paylid__getTrxStatusResponse(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__getTrxStatusResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__getAccount
#define SOAP_TYPE_paylid_paylid__getAccount (32)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__getAccount(struct soap*, struct paylid__getAccount *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__getAccount(struct soap*, const struct paylid__getAccount *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__getAccount(struct soap*, const char*, int, const struct paylid__getAccount *, const char*);
SOAP_FMAC3 struct paylid__getAccount * SOAP_FMAC4 soap_in_paylid__getAccount(struct soap*, const char*, struct paylid__getAccount *, const char*);
#define soap_write_paylid__getAccount(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__getAccount(soap, data), 0) || paylid::soap_put_paylid__getAccount(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__getAccount(struct soap*, const struct paylid__getAccount *, const char*, const char*);
#define soap_read_paylid__getAccount(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__getAccount(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__getAccount * SOAP_FMAC4 soap_get_paylid__getAccount(struct soap*, struct paylid__getAccount *, const char*, const char*);
#define soap_new_paylid__getAccount(soap, n) soap_instantiate_paylid__getAccount(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__getAccount(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__getAccount * SOAP_FMAC2 soap_instantiate_paylid__getAccount(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__getAccount(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__getAccountResponse
#define SOAP_TYPE_paylid_paylid__getAccountResponse (29)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__getAccountResponse(struct soap*, struct paylid__getAccountResponse *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__getAccountResponse(struct soap*, const struct paylid__getAccountResponse *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__getAccountResponse(struct soap*, const char*, int, const struct paylid__getAccountResponse *, const char*);
SOAP_FMAC3 struct paylid__getAccountResponse * SOAP_FMAC4 soap_in_paylid__getAccountResponse(struct soap*, const char*, struct paylid__getAccountResponse *, const char*);
#define soap_write_paylid__getAccountResponse(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__getAccountResponse(soap, data), 0) || paylid::soap_put_paylid__getAccountResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__getAccountResponse(struct soap*, const struct paylid__getAccountResponse *, const char*, const char*);
#define soap_read_paylid__getAccountResponse(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__getAccountResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__getAccountResponse * SOAP_FMAC4 soap_get_paylid__getAccountResponse(struct soap*, struct paylid__getAccountResponse *, const char*, const char*);
#define soap_new_paylid__getAccountResponse(soap, n) soap_instantiate_paylid__getAccountResponse(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__getAccountResponse(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__getAccountResponse * SOAP_FMAC2 soap_instantiate_paylid__getAccountResponse(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__getAccountResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__currentXrate
#define SOAP_TYPE_paylid_paylid__currentXrate (28)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__currentXrate(struct soap*, struct paylid__currentXrate *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__currentXrate(struct soap*, const struct paylid__currentXrate *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__currentXrate(struct soap*, const char*, int, const struct paylid__currentXrate *, const char*);
SOAP_FMAC3 struct paylid__currentXrate * SOAP_FMAC4 soap_in_paylid__currentXrate(struct soap*, const char*, struct paylid__currentXrate *, const char*);
#define soap_write_paylid__currentXrate(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__currentXrate(soap, data), 0) || paylid::soap_put_paylid__currentXrate(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__currentXrate(struct soap*, const struct paylid__currentXrate *, const char*, const char*);
#define soap_read_paylid__currentXrate(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__currentXrate(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__currentXrate * SOAP_FMAC4 soap_get_paylid__currentXrate(struct soap*, struct paylid__currentXrate *, const char*, const char*);
#define soap_new_paylid__currentXrate(soap, n) soap_instantiate_paylid__currentXrate(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__currentXrate(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__currentXrate * SOAP_FMAC2 soap_instantiate_paylid__currentXrate(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__currentXrate(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__currentXrateResponse
#define SOAP_TYPE_paylid_paylid__currentXrateResponse (25)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__currentXrateResponse(struct soap*, struct paylid__currentXrateResponse *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__currentXrateResponse(struct soap*, const struct paylid__currentXrateResponse *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__currentXrateResponse(struct soap*, const char*, int, const struct paylid__currentXrateResponse *, const char*);
SOAP_FMAC3 struct paylid__currentXrateResponse * SOAP_FMAC4 soap_in_paylid__currentXrateResponse(struct soap*, const char*, struct paylid__currentXrateResponse *, const char*);
#define soap_write_paylid__currentXrateResponse(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__currentXrateResponse(soap, data), 0) || paylid::soap_put_paylid__currentXrateResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__currentXrateResponse(struct soap*, const struct paylid__currentXrateResponse *, const char*, const char*);
#define soap_read_paylid__currentXrateResponse(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__currentXrateResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__currentXrateResponse * SOAP_FMAC4 soap_get_paylid__currentXrateResponse(struct soap*, struct paylid__currentXrateResponse *, const char*, const char*);
#define soap_new_paylid__currentXrateResponse(soap, n) soap_instantiate_paylid__currentXrateResponse(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__currentXrateResponse(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__currentXrateResponse * SOAP_FMAC2 soap_instantiate_paylid__currentXrateResponse(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__currentXrateResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__directAirTimeTopUp
#define SOAP_TYPE_paylid_paylid__directAirTimeTopUp (24)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__directAirTimeTopUp(struct soap*, struct paylid__directAirTimeTopUp *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__directAirTimeTopUp(struct soap*, const struct paylid__directAirTimeTopUp *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__directAirTimeTopUp(struct soap*, const char*, int, const struct paylid__directAirTimeTopUp *, const char*);
SOAP_FMAC3 struct paylid__directAirTimeTopUp * SOAP_FMAC4 soap_in_paylid__directAirTimeTopUp(struct soap*, const char*, struct paylid__directAirTimeTopUp *, const char*);
#define soap_write_paylid__directAirTimeTopUp(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__directAirTimeTopUp(soap, data), 0) || paylid::soap_put_paylid__directAirTimeTopUp(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__directAirTimeTopUp(struct soap*, const struct paylid__directAirTimeTopUp *, const char*, const char*);
#define soap_read_paylid__directAirTimeTopUp(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__directAirTimeTopUp(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__directAirTimeTopUp * SOAP_FMAC4 soap_get_paylid__directAirTimeTopUp(struct soap*, struct paylid__directAirTimeTopUp *, const char*, const char*);
#define soap_new_paylid__directAirTimeTopUp(soap, n) soap_instantiate_paylid__directAirTimeTopUp(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__directAirTimeTopUp(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__directAirTimeTopUp * SOAP_FMAC2 soap_instantiate_paylid__directAirTimeTopUp(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__directAirTimeTopUp(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__directAirTimeTopUpResponse
#define SOAP_TYPE_paylid_paylid__directAirTimeTopUpResponse (21)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__directAirTimeTopUpResponse(struct soap*, struct paylid__directAirTimeTopUpResponse *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__directAirTimeTopUpResponse(struct soap*, const struct paylid__directAirTimeTopUpResponse *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__directAirTimeTopUpResponse(struct soap*, const char*, int, const struct paylid__directAirTimeTopUpResponse *, const char*);
SOAP_FMAC3 struct paylid__directAirTimeTopUpResponse * SOAP_FMAC4 soap_in_paylid__directAirTimeTopUpResponse(struct soap*, const char*, struct paylid__directAirTimeTopUpResponse *, const char*);
#define soap_write_paylid__directAirTimeTopUpResponse(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__directAirTimeTopUpResponse(soap, data), 0) || paylid::soap_put_paylid__directAirTimeTopUpResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__directAirTimeTopUpResponse(struct soap*, const struct paylid__directAirTimeTopUpResponse *, const char*, const char*);
#define soap_read_paylid__directAirTimeTopUpResponse(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__directAirTimeTopUpResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__directAirTimeTopUpResponse * SOAP_FMAC4 soap_get_paylid__directAirTimeTopUpResponse(struct soap*, struct paylid__directAirTimeTopUpResponse *, const char*, const char*);
#define soap_new_paylid__directAirTimeTopUpResponse(soap, n) soap_instantiate_paylid__directAirTimeTopUpResponse(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__directAirTimeTopUpResponse(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__directAirTimeTopUpResponse * SOAP_FMAC2 soap_instantiate_paylid__directAirTimeTopUpResponse(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__directAirTimeTopUpResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__checkTransferStatus
#define SOAP_TYPE_paylid_paylid__checkTransferStatus (20)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__checkTransferStatus(struct soap*, struct paylid__checkTransferStatus *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__checkTransferStatus(struct soap*, const struct paylid__checkTransferStatus *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__checkTransferStatus(struct soap*, const char*, int, const struct paylid__checkTransferStatus *, const char*);
SOAP_FMAC3 struct paylid__checkTransferStatus * SOAP_FMAC4 soap_in_paylid__checkTransferStatus(struct soap*, const char*, struct paylid__checkTransferStatus *, const char*);
#define soap_write_paylid__checkTransferStatus(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__checkTransferStatus(soap, data), 0) || paylid::soap_put_paylid__checkTransferStatus(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__checkTransferStatus(struct soap*, const struct paylid__checkTransferStatus *, const char*, const char*);
#define soap_read_paylid__checkTransferStatus(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__checkTransferStatus(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__checkTransferStatus * SOAP_FMAC4 soap_get_paylid__checkTransferStatus(struct soap*, struct paylid__checkTransferStatus *, const char*, const char*);
#define soap_new_paylid__checkTransferStatus(soap, n) soap_instantiate_paylid__checkTransferStatus(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__checkTransferStatus(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__checkTransferStatus * SOAP_FMAC2 soap_instantiate_paylid__checkTransferStatus(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__checkTransferStatus(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__checkTransferStatusResponse
#define SOAP_TYPE_paylid_paylid__checkTransferStatusResponse (17)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__checkTransferStatusResponse(struct soap*, struct paylid__checkTransferStatusResponse *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__checkTransferStatusResponse(struct soap*, const struct paylid__checkTransferStatusResponse *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__checkTransferStatusResponse(struct soap*, const char*, int, const struct paylid__checkTransferStatusResponse *, const char*);
SOAP_FMAC3 struct paylid__checkTransferStatusResponse * SOAP_FMAC4 soap_in_paylid__checkTransferStatusResponse(struct soap*, const char*, struct paylid__checkTransferStatusResponse *, const char*);
#define soap_write_paylid__checkTransferStatusResponse(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__checkTransferStatusResponse(soap, data), 0) || paylid::soap_put_paylid__checkTransferStatusResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__checkTransferStatusResponse(struct soap*, const struct paylid__checkTransferStatusResponse *, const char*, const char*);
#define soap_read_paylid__checkTransferStatusResponse(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__checkTransferStatusResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__checkTransferStatusResponse * SOAP_FMAC4 soap_get_paylid__checkTransferStatusResponse(struct soap*, struct paylid__checkTransferStatusResponse *, const char*, const char*);
#define soap_new_paylid__checkTransferStatusResponse(soap, n) soap_instantiate_paylid__checkTransferStatusResponse(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__checkTransferStatusResponse(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__checkTransferStatusResponse * SOAP_FMAC2 soap_instantiate_paylid__checkTransferStatusResponse(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__checkTransferStatusResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__transferFund
#define SOAP_TYPE_paylid_paylid__transferFund (16)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__transferFund(struct soap*, struct paylid__transferFund *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__transferFund(struct soap*, const struct paylid__transferFund *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__transferFund(struct soap*, const char*, int, const struct paylid__transferFund *, const char*);
SOAP_FMAC3 struct paylid__transferFund * SOAP_FMAC4 soap_in_paylid__transferFund(struct soap*, const char*, struct paylid__transferFund *, const char*);
#define soap_write_paylid__transferFund(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__transferFund(soap, data), 0) || paylid::soap_put_paylid__transferFund(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__transferFund(struct soap*, const struct paylid__transferFund *, const char*, const char*);
#define soap_read_paylid__transferFund(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__transferFund(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__transferFund * SOAP_FMAC4 soap_get_paylid__transferFund(struct soap*, struct paylid__transferFund *, const char*, const char*);
#define soap_new_paylid__transferFund(soap, n) soap_instantiate_paylid__transferFund(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__transferFund(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__transferFund * SOAP_FMAC2 soap_instantiate_paylid__transferFund(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__transferFund(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__transferFundResponse
#define SOAP_TYPE_paylid_paylid__transferFundResponse (13)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__transferFundResponse(struct soap*, struct paylid__transferFundResponse *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__transferFundResponse(struct soap*, const struct paylid__transferFundResponse *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__transferFundResponse(struct soap*, const char*, int, const struct paylid__transferFundResponse *, const char*);
SOAP_FMAC3 struct paylid__transferFundResponse * SOAP_FMAC4 soap_in_paylid__transferFundResponse(struct soap*, const char*, struct paylid__transferFundResponse *, const char*);
#define soap_write_paylid__transferFundResponse(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__transferFundResponse(soap, data), 0) || paylid::soap_put_paylid__transferFundResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__transferFundResponse(struct soap*, const struct paylid__transferFundResponse *, const char*, const char*);
#define soap_read_paylid__transferFundResponse(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__transferFundResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__transferFundResponse * SOAP_FMAC4 soap_get_paylid__transferFundResponse(struct soap*, struct paylid__transferFundResponse *, const char*, const char*);
#define soap_new_paylid__transferFundResponse(soap, n) soap_instantiate_paylid__transferFundResponse(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__transferFundResponse(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__transferFundResponse * SOAP_FMAC2 soap_instantiate_paylid__transferFundResponse(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__transferFundResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__getAccountBalance
#define SOAP_TYPE_paylid_paylid__getAccountBalance (12)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__getAccountBalance(struct soap*, struct paylid__getAccountBalance *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__getAccountBalance(struct soap*, const struct paylid__getAccountBalance *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__getAccountBalance(struct soap*, const char*, int, const struct paylid__getAccountBalance *, const char*);
SOAP_FMAC3 struct paylid__getAccountBalance * SOAP_FMAC4 soap_in_paylid__getAccountBalance(struct soap*, const char*, struct paylid__getAccountBalance *, const char*);
#define soap_write_paylid__getAccountBalance(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__getAccountBalance(soap, data), 0) || paylid::soap_put_paylid__getAccountBalance(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__getAccountBalance(struct soap*, const struct paylid__getAccountBalance *, const char*, const char*);
#define soap_read_paylid__getAccountBalance(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__getAccountBalance(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__getAccountBalance * SOAP_FMAC4 soap_get_paylid__getAccountBalance(struct soap*, struct paylid__getAccountBalance *, const char*, const char*);
#define soap_new_paylid__getAccountBalance(soap, n) soap_instantiate_paylid__getAccountBalance(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__getAccountBalance(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__getAccountBalance * SOAP_FMAC2 soap_instantiate_paylid__getAccountBalance(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__getAccountBalance(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef SOAP_TYPE_paylid_paylid__getAccountBalanceResponse
#define SOAP_TYPE_paylid_paylid__getAccountBalanceResponse (8)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_paylid__getAccountBalanceResponse(struct soap*, struct paylid__getAccountBalanceResponse *);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_paylid__getAccountBalanceResponse(struct soap*, const struct paylid__getAccountBalanceResponse *);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_paylid__getAccountBalanceResponse(struct soap*, const char*, int, const struct paylid__getAccountBalanceResponse *, const char*);
SOAP_FMAC3 struct paylid__getAccountBalanceResponse * SOAP_FMAC4 soap_in_paylid__getAccountBalanceResponse(struct soap*, const char*, struct paylid__getAccountBalanceResponse *, const char*);
#define soap_write_paylid__getAccountBalanceResponse(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_paylid__getAccountBalanceResponse(soap, data), 0) || paylid::soap_put_paylid__getAccountBalanceResponse(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_paylid__getAccountBalanceResponse(struct soap*, const struct paylid__getAccountBalanceResponse *, const char*, const char*);
#define soap_read_paylid__getAccountBalanceResponse(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_paylid__getAccountBalanceResponse(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct paylid__getAccountBalanceResponse * SOAP_FMAC4 soap_get_paylid__getAccountBalanceResponse(struct soap*, struct paylid__getAccountBalanceResponse *, const char*, const char*);
#define soap_new_paylid__getAccountBalanceResponse(soap, n) soap_instantiate_paylid__getAccountBalanceResponse(soap, n, NULL, NULL, NULL)
#define soap_delete_paylid__getAccountBalanceResponse(soap, p) soap_delete(soap, p)
SOAP_FMAC1 struct paylid__getAccountBalanceResponse * SOAP_FMAC2 soap_instantiate_paylid__getAccountBalanceResponse(struct soap*, int, const char*, const char*, size_t*);
SOAP_FMAC3 void SOAP_FMAC4 soap_copy_paylid__getAccountBalanceResponse(struct soap*, int, int, void*, size_t, const void*, size_t);
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_paylid_PointerToSOAP_ENV__Reason
#define SOAP_TYPE_paylid_PointerToSOAP_ENV__Reason (50)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Reason(struct soap*, const char *, int, struct SOAP_ENV__Reason *const*, const char *);
SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Reason(struct soap*, const char*, struct SOAP_ENV__Reason **, const char*);
#define soap_write_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_PointerToSOAP_ENV__Reason(soap, data), 0) || paylid::soap_put_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason *const*, const char*, const char*);
#define soap_read_PointerToSOAP_ENV__Reason(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_PointerToSOAP_ENV__Reason(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct SOAP_ENV__Reason ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Reason(struct soap*, struct SOAP_ENV__Reason **, const char*, const char*);
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_paylid_PointerToSOAP_ENV__Detail
#define SOAP_TYPE_paylid_PointerToSOAP_ENV__Detail (49)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Detail(struct soap*, const char *, int, struct SOAP_ENV__Detail *const*, const char *);
SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Detail(struct soap*, const char*, struct SOAP_ENV__Detail **, const char*);
#define soap_write_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_PointerToSOAP_ENV__Detail(soap, data), 0) || paylid::soap_put_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail *const*, const char*, const char*);
#define soap_read_PointerToSOAP_ENV__Detail(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_PointerToSOAP_ENV__Detail(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct SOAP_ENV__Detail ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Detail(struct soap*, struct SOAP_ENV__Detail **, const char*, const char*);
#endif
#ifndef WITH_NOGLOBAL
#ifndef SOAP_TYPE_paylid_PointerToSOAP_ENV__Code
#define SOAP_TYPE_paylid_PointerToSOAP_ENV__Code (43)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_PointerToSOAP_ENV__Code(struct soap*, const char *, int, struct SOAP_ENV__Code *const*, const char *);
SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_in_PointerToSOAP_ENV__Code(struct soap*, const char*, struct SOAP_ENV__Code **, const char*);
#define soap_write_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_PointerToSOAP_ENV__Code(soap, data), 0) || paylid::soap_put_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code *const*, const char*, const char*);
#define soap_read_PointerToSOAP_ENV__Code(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_PointerToSOAP_ENV__Code(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 struct SOAP_ENV__Code ** SOAP_FMAC4 soap_get_PointerToSOAP_ENV__Code(struct soap*, struct SOAP_ENV__Code **, const char*, const char*);
#endif
#ifndef SOAP_TYPE_paylid__QName
#define SOAP_TYPE_paylid__QName (5)
#endif
#define soap_default__QName(soap, a) soap_default_string(soap, a)
#define soap_serialize__QName(soap, a) soap_serialize_string(soap, a)
SOAP_FMAC3 int SOAP_FMAC4 soap_out__QName(struct soap*, const char*, int, char*const*, const char*);
SOAP_FMAC3 char * * SOAP_FMAC4 soap_in__QName(struct soap*, const char*, char **, const char*);
#define soap_write__QName(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize__QName(soap, data), 0) || paylid::soap_put__QName(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put__QName(struct soap*, char *const*, const char*, const char*);
#define soap_read__QName(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get__QName(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 char ** SOAP_FMAC4 soap_get__QName(struct soap*, char **, const char*, const char*);
#ifndef SOAP_TYPE_paylid_string
#define SOAP_TYPE_paylid_string (4)
#endif
SOAP_FMAC3 void SOAP_FMAC4 soap_default_string(struct soap*, char **);
SOAP_FMAC3 void SOAP_FMAC4 soap_serialize_string(struct soap*, char *const*);
SOAP_FMAC3 int SOAP_FMAC4 soap_out_string(struct soap*, const char*, int, char*const*, const char*);
SOAP_FMAC3 char * * SOAP_FMAC4 soap_in_string(struct soap*, const char*, char **, const char*);
#define soap_write_string(soap, data) ( soap_begin_send(soap) || (paylid::soap_serialize_string(soap, data), 0) || paylid::soap_put_string(soap, data, NULL, NULL) || soap_end_send(soap) )
SOAP_FMAC3 int SOAP_FMAC4 soap_put_string(struct soap*, char *const*, const char*, const char*);
#define soap_read_string(soap, data) ( soap_begin_recv(soap) || !paylid::soap_get_string(soap, data, NULL, NULL) || soap_end_recv(soap) )
SOAP_FMAC3 char ** SOAP_FMAC4 soap_get_string(struct soap*, char **, const char*, const char*);
} // namespace paylid
#endif
/* End of paylidH.h */
+334
View File
@@ -0,0 +1,334 @@
/* paylidStub.h
Generated by gSOAP 2.7.16 from PaylidService.h
Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
This part of the software is released under one of the following licenses:
GPL, the gSOAP public license, or Genivia's license for commercial use.
*/
#ifndef paylidStub_H
#define paylidStub_H
#include <vector>
#define SOAP_NAMESPACE_OF_paylid "urn:paylidwsdl"
#ifndef WITH_NONAMESPACES
#define WITH_NONAMESPACES
#endif
#ifndef WITH_NOGLOBAL
#define WITH_NOGLOBAL
#endif
#include "stdsoap2.h"
namespace paylid {
/******************************************************************************\
* *
* Enumerations *
* *
\******************************************************************************/
/******************************************************************************\
* *
* Types with Custom Serializers *
* *
\******************************************************************************/
/******************************************************************************\
* *
* Classes and Structs *
* *
\******************************************************************************/
#if 0 /* volatile type: do not redeclare here */
#endif
#if 0 /* volatile type: do not redeclare here */
#endif
#ifndef SOAP_TYPE_paylid_paylid__getAccountBalanceResponse
#define SOAP_TYPE_paylid_paylid__getAccountBalanceResponse (8)
/* paylid:getAccountBalanceResponse */
struct paylid__getAccountBalanceResponse
{
public:
std::string Code; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:string */
std::string Data; /* required element of type xsd:string */
std::string Hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__getAccountBalance
#define SOAP_TYPE_paylid_paylid__getAccountBalance (12)
/* paylid:getAccountBalance */
struct paylid__getAccountBalance
{
public:
std::string terminalID; /* required element of type xsd:string */
std::string hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__transferFundResponse
#define SOAP_TYPE_paylid_paylid__transferFundResponse (13)
/* paylid:transferFundResponse */
struct paylid__transferFundResponse
{
public:
std::string Code; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:string */
std::string Data; /* required element of type xsd:string */
std::string Hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__transferFund
#define SOAP_TYPE_paylid_paylid__transferFund (16)
/* paylid:transferFund */
struct paylid__transferFund
{
public:
std::string terminalID; /* required element of type xsd:string */
std::string toDestination; /* required element of type xsd:string */
std::string hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__checkTransferStatusResponse
#define SOAP_TYPE_paylid_paylid__checkTransferStatusResponse (17)
/* paylid:checkTransferStatusResponse */
struct paylid__checkTransferStatusResponse
{
public:
std::string Code; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:string */
std::string Data; /* required element of type xsd:string */
std::string Hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__checkTransferStatus
#define SOAP_TYPE_paylid_paylid__checkTransferStatus (20)
/* paylid:checkTransferStatus */
struct paylid__checkTransferStatus
{
public:
std::string terminalID; /* required element of type xsd:string */
std::string transactionRef; /* required element of type xsd:string */
std::string hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__directAirTimeTopUpResponse
#define SOAP_TYPE_paylid_paylid__directAirTimeTopUpResponse (21)
/* paylid:directAirTimeTopUpResponse */
struct paylid__directAirTimeTopUpResponse
{
public:
std::string Code; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:string */
std::string Data; /* required element of type xsd:string */
std::string Hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__directAirTimeTopUp
#define SOAP_TYPE_paylid_paylid__directAirTimeTopUp (24)
/* paylid:directAirTimeTopUp */
struct paylid__directAirTimeTopUp
{
public:
std::string terminalID; /* required element of type xsd:string */
std::string topupData; /* required element of type xsd:string */
std::string hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__currentXrateResponse
#define SOAP_TYPE_paylid_paylid__currentXrateResponse (25)
/* paylid:currentXrateResponse */
struct paylid__currentXrateResponse
{
public:
std::string Code; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:string */
std::string Data; /* required element of type xsd:string */
std::string Hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__currentXrate
#define SOAP_TYPE_paylid_paylid__currentXrate (28)
/* paylid:currentXrate */
struct paylid__currentXrate
{
public:
std::string terminalID; /* required element of type xsd:string */
std::string topupData; /* required element of type xsd:string */
std::string hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__getAccountResponse
#define SOAP_TYPE_paylid_paylid__getAccountResponse (29)
/* paylid:getAccountResponse */
struct paylid__getAccountResponse
{
public:
std::string Code; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:string */
std::string Data; /* required element of type xsd:string */
std::string Hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__getAccount
#define SOAP_TYPE_paylid_paylid__getAccount (32)
/* paylid:getAccount */
struct paylid__getAccount
{
public:
std::string terminalID; /* required element of type xsd:string */
std::string topupData; /* required element of type xsd:string */
std::string hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__getTrxStatusResponse
#define SOAP_TYPE_paylid_paylid__getTrxStatusResponse (33)
/* paylid:getTrxStatusResponse */
struct paylid__getTrxStatusResponse
{
public:
std::string Code; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:string */
std::string Data; /* required element of type xsd:string */
std::string Hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__getTrxStatus
#define SOAP_TYPE_paylid_paylid__getTrxStatus (36)
/* paylid:getTrxStatus */
struct paylid__getTrxStatus
{
public:
std::string terminalID; /* required element of type xsd:string */
std::string topupData; /* required element of type xsd:string */
std::string hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__getSupportedBanksResponse
#define SOAP_TYPE_paylid_paylid__getSupportedBanksResponse (37)
/* paylid:getSupportedBanksResponse */
struct paylid__getSupportedBanksResponse
{
public:
std::string Code; /* SOAP 1.2 RPC return element (when namespace qualified) */ /* required element of type xsd:string */
std::string Data; /* required element of type xsd:string */
std::string Hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_paylid__getSupportedBanks
#define SOAP_TYPE_paylid_paylid__getSupportedBanks (40)
/* paylid:getSupportedBanks */
struct paylid__getSupportedBanks
{
public:
std::string terminalID; /* required element of type xsd:string */
std::string topupData; /* required element of type xsd:string */
std::string hmac; /* required element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_SOAP_ENV__Header
#define SOAP_TYPE_paylid_SOAP_ENV__Header (41)
/* SOAP Header: */
struct SOAP_ENV__Header
{
#ifdef WITH_NOEMPTYSTRUCT
private:
char dummy; /* dummy member to enable compilation */
#endif
};
#endif
#ifndef SOAP_TYPE_paylid_SOAP_ENV__Code
#define SOAP_TYPE_paylid_SOAP_ENV__Code (42)
/* SOAP Fault Code: */
struct SOAP_ENV__Code
{
public:
char *SOAP_ENV__Value; /* optional element of type xsd:QName */
struct SOAP_ENV__Code *SOAP_ENV__Subcode; /* optional element of type SOAP-ENV:Code */
};
#endif
#ifndef SOAP_TYPE_paylid_SOAP_ENV__Detail
#define SOAP_TYPE_paylid_SOAP_ENV__Detail (44)
/* SOAP-ENV:Detail */
struct SOAP_ENV__Detail
{
public:
int __type; /* any type of element <fault> (defined below) */
void *fault; /* transient */
char *__any;
};
#endif
#ifndef SOAP_TYPE_paylid_SOAP_ENV__Reason
#define SOAP_TYPE_paylid_SOAP_ENV__Reason (47)
/* SOAP-ENV:Reason */
struct SOAP_ENV__Reason
{
public:
char *SOAP_ENV__Text; /* optional element of type xsd:string */
};
#endif
#ifndef SOAP_TYPE_paylid_SOAP_ENV__Fault
#define SOAP_TYPE_paylid_SOAP_ENV__Fault (48)
/* SOAP Fault: */
struct SOAP_ENV__Fault
{
public:
char *faultcode; /* optional element of type xsd:QName */
char *faultstring; /* optional element of type xsd:string */
char *faultactor; /* optional element of type xsd:string */
struct SOAP_ENV__Detail *detail; /* optional element of type SOAP-ENV:Detail */
struct SOAP_ENV__Code *SOAP_ENV__Code; /* optional element of type SOAP-ENV:Code */
struct SOAP_ENV__Reason *SOAP_ENV__Reason; /* optional element of type SOAP-ENV:Reason */
char *SOAP_ENV__Node; /* optional element of type xsd:string */
char *SOAP_ENV__Role; /* optional element of type xsd:string */
struct SOAP_ENV__Detail *SOAP_ENV__Detail; /* optional element of type SOAP-ENV:Detail */
};
#endif
/******************************************************************************\
* *
* Typedefs *
* *
\******************************************************************************/
#ifndef SOAP_TYPE_paylid__QName
#define SOAP_TYPE_paylid__QName (5)
typedef char *_QName;
#endif
#ifndef SOAP_TYPE_paylid__XML
#define SOAP_TYPE_paylid__XML (6)
typedef char *_XML;
#endif
/******************************************************************************\
* *
* Externals *
* *
\******************************************************************************/
} // namespace paylid
#endif
/* End of paylidStub.h */
@@ -0,0 +1,78 @@
/* paylidpaylidwsdlBindingProxy.h
Generated by gSOAP 2.7.16 from PaylidService.h
Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
This part of the software is released under one of the following licenses:
GPL, the gSOAP public license, or Genivia's license for commercial use.
*/
#ifndef paylidpaylidwsdlBindingProxy_H
#define paylidpaylidwsdlBindingProxy_H
#include "paylidH.h"
namespace paylid {
class SOAP_CMAC paylidwsdlBindingProxy : public soap
{ public:
/// Endpoint URL of service 'paylidwsdlBindingProxy' (change as needed)
const char *soap_endpoint;
/// Constructor
paylidwsdlBindingProxy();
/// Constructor with copy of another engine state
paylidwsdlBindingProxy(const struct soap&);
/// Constructor with engine input+output mode control
paylidwsdlBindingProxy(soap_mode iomode);
/// Constructor with engine input and output mode control
paylidwsdlBindingProxy(soap_mode imode, soap_mode omode);
/// Destructor frees deserialized data
virtual ~paylidwsdlBindingProxy();
/// Initializer used by constructors
virtual void paylidwsdlBindingProxy_init(soap_mode imode, soap_mode omode);
/// Delete all deserialized data (uses soap_destroy and soap_end)
virtual void destroy();
/// Disables and removes SOAP Header from message
virtual void soap_noheader();
/// Get SOAP Fault structure (NULL when absent)
virtual const SOAP_ENV__Fault *soap_fault();
/// Get SOAP Fault string (NULL when absent)
virtual const char *soap_fault_string();
/// Get SOAP Fault detail as string (NULL when absent)
virtual const char *soap_fault_detail();
/// Force close connection (normally automatic, except for send_X ops)
virtual int soap_close_socket();
/// Print fault
virtual void soap_print_fault(FILE*);
#ifndef WITH_LEAN
/// Print fault to stream
virtual void soap_stream_fault(std::ostream&);
/// Put fault into buffer
virtual char *soap_sprint_fault(char *buf, size_t len);
#endif
/// Web service operation 'getAccountBalance' (returns error code or SOAP_OK)
virtual int getAccountBalance(std::string terminalID, std::string hmac, struct paylid__getAccountBalanceResponse &_param_1);
/// Web service operation 'transferFund' (returns error code or SOAP_OK)
virtual int transferFund(std::string terminalID, std::string toDestination, std::string hmac, struct paylid__transferFundResponse &_param_2);
/// Web service operation 'checkTransferStatus' (returns error code or SOAP_OK)
virtual int checkTransferStatus(std::string terminalID, std::string transactionRef, std::string hmac, struct paylid__checkTransferStatusResponse &_param_3);
/// Web service operation 'directAirTimeTopUp' (returns error code or SOAP_OK)
virtual int directAirTimeTopUp(std::string terminalID, std::string topupData, std::string hmac, struct paylid__directAirTimeTopUpResponse &_param_4);
/// Web service operation 'currentXrate' (returns error code or SOAP_OK)
virtual int currentXrate(std::string terminalID, std::string topupData, std::string hmac, struct paylid__currentXrateResponse &_param_5);
/// Web service operation 'getAccount' (returns error code or SOAP_OK)
virtual int getAccount(std::string terminalID, std::string topupData, std::string hmac, struct paylid__getAccountResponse &_param_6);
/// Web service operation 'getTrxStatus' (returns error code or SOAP_OK)
virtual int getTrxStatus(std::string terminalID, std::string topupData, std::string hmac, struct paylid__getTrxStatusResponse &_param_7);
/// Web service operation 'getSupportedBanks' (returns error code or SOAP_OK)
virtual int getSupportedBanks(std::string terminalID, std::string topupData, std::string hmac, struct paylid__getSupportedBanksResponse &_param_8);
};
} // namespace paylid
#endif
+28
View File
@@ -0,0 +1,28 @@
#ifndef __PGSQL_H__
#define __PGSQL_H__
#include <libpq-fe.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
#include <string>
#include <map>
#include <vector>
using namespace std;
int pgsql_db_connect(const char*host,const char*name,const char*user,const char*pass,long port);
int pgsql_exec(const char * format, ... );
const PGresult* pgsql_query(const char * format, ... );
int pgsql_num_rows(const PGresult *res);
int pgsql_num_fields(const PGresult *res);
map<const char*,const char*> pgsql_fetch_assoc(const PGresult *res, int row);
vector<const char*> pgsql_fetch_row(const PGresult *res, int row);
void pgsql_close();
char* pgsql_uitoa(unsigned n, char *s, int radix);
#endif
/*
vi:ts=2
*/
+41
View File
@@ -0,0 +1,41 @@
#ifndef __PGSQL_WRAPPER_H__
#define __PGSQL_WRAPPER_H__
#include "exceptions.h"
enum { DBS_ALL=0, DBS_VALID=1, DBS_STREAM=2 };
class CEscape;
#define NEED_ESC CEscape __esc( cmd );
#define esc( param ) __esc.Escape( param )
#define ESCAPE_MAX_VARS 50
void load_db_record( const char * table, CVars &rec, const char * where, ... );
long load_db_record( CVars &rec, const char * query, ... );
long insert_db_record( int mode, const char *table, const char *seq, CVars &rec );
void update_db_record( int mode, const char * table, CVars &rec, long id, const char * where=NULL, ... ) throw ( bad_parameter );
void v_update_db_record( int mode, const char * table, CVars &rec, const char *index, long id, const char * where=NULL, va_list ap=NULL ) throw ( bad_parameter );
void update_db_record( int mode, const char * table, CVars &rec, const char *index, long id, const char * where=NULL, ... ) throw ( bad_parameter );
long curr_val( const char *seq );
class CEscape
{
public:
char * New( int sz );
CEscape( char * st );
~CEscape();
char * Escape( const char * param );
private:
char * vars[ESCAPE_MAX_VARS];
int n;
char * st;
char esc[1000];
int EscapeLength( const char * par ); // Calculate the required buffer size for escaped par
char *EscapeReal( const char * cmd, char * _esc=NULL, int sz=0 ); // Escape a string for SQL server
};
#endif
+18
View File
@@ -0,0 +1,18 @@
#ifndef PHP_COREGRADE_API_H
#define PHP_COREGRADE_API_H
#define PHP_COREGRADE_API_EXTNAME "coregrade_api"
#define PHP_COREGRADE_API_EXTVER "0.1"
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
extern "C" {
#include "php.h"
}
extern zend_module_entry coregrade_api_module_entry;
#define phpext_coregrade_api_ptr &coregrade_api_module_entry;
#endif /* PHP_COREGRADE_API_H */
@@ -0,0 +1 @@
#define COREGRADE_API_NS "coregrade_api_oameye"
@@ -0,0 +1 @@
#define COREGRADE_CONFIG "/home/oameye/coregrade/coregrade/etc/"
@@ -0,0 +1 @@
#define COREGRADE_LOG "/home/oameye/coregrade/coregrade/logs/coregrade_api.log"
@@ -0,0 +1 @@
#define FILELOG_MAX_LEVEL 9
+1
View File
@@ -0,0 +1 @@
#define TMPL_PREFIX "/home/oameye/coregrade/coregrade/email/"
+49
View File
@@ -0,0 +1,49 @@
#ifndef __safestr_lib
#define __safestr_lib
#include "config.h"
#define SAFESTRING_COMMON_BUFFER_SIZE 1024
#ifdef __cplusplus
extern "C"
{
#endif
char * strsafecpy( char * dest, const char * src, int size );
char * strnsafecpy( char * dest, const char * src, int n, int size );
char * strsafecat( char * dest, const char * src, int size );
char * strcatf( char * dest, int size, const char * fmt, ... );
char * strnsafecat( char * dest, const char * src, int n, int size );
// Append first n characters of src to dest
char * last_line( char * buf ); // find the last line and return the pointer to its beginning
char * safestrdup( const char *s );
char * strreverse( char *s );
#ifdef __cplusplus
}
#endif
#ifdef __cplusplus
char * toupper( char * s, char * dest=0, int sz=0 );
char * tolower( char * s, char * dest=0, int sz=0 );
char * toupper( const char * s, char * dest, int sz );
char * tolower( const char * s, char * dest, int sz );
#endif
//int GetParam(char * params, char _name[], char value[], int valuelen, char ** end = 0 );
#endif
+108
View File
@@ -0,0 +1,108 @@
/*
* FIPS 180-2 SHA-224/256/384/512 implementation
* Last update: 02/02/2007
* Issue date: 04/30/2005
*
* Copyright (C) 2005, 2007 Olivier Gay <olivier.gay@a3.epfl.ch>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the project nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef SHA2_H
#define SHA2_H
#define SHA224_DIGEST_SIZE ( 224 / 8)
#define SHA256_DIGEST_SIZE ( 256 / 8)
#define SHA384_DIGEST_SIZE ( 384 / 8)
#define SHA512_DIGEST_SIZE ( 512 / 8)
#define SHA256_BLOCK_SIZE ( 512 / 8)
#define SHA512_BLOCK_SIZE (1024 / 8)
#define SHA384_BLOCK_SIZE SHA512_BLOCK_SIZE
#define SHA224_BLOCK_SIZE SHA256_BLOCK_SIZE
#ifndef SHA2_TYPES
#define SHA2_TYPES
typedef unsigned char uint8;
typedef unsigned int uint32;
typedef unsigned long long uint64;
#endif
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
unsigned int tot_len;
unsigned int len;
unsigned char block[2 * SHA256_BLOCK_SIZE];
uint32 h[8];
} sha256_ctx;
typedef struct {
unsigned int tot_len;
unsigned int len;
unsigned char block[2 * SHA512_BLOCK_SIZE];
uint64 h[8];
} sha512_ctx;
typedef sha512_ctx sha384_ctx;
typedef sha256_ctx sha224_ctx;
void sha224_init(sha224_ctx *ctx);
void sha224_update(sha224_ctx *ctx, const unsigned char *message,
unsigned int len);
void sha224_final(sha224_ctx *ctx, unsigned char *digest);
void sha224(const unsigned char *message, unsigned int len,
unsigned char *digest);
void sha256_init(sha256_ctx * ctx);
void sha256_update(sha256_ctx *ctx, const unsigned char *message,
unsigned int len);
void sha256_final(sha256_ctx *ctx, unsigned char *digest);
void sha256(const unsigned char *message, unsigned int len,
unsigned char *digest);
void sha384_init(sha384_ctx *ctx);
void sha384_update(sha384_ctx *ctx, const unsigned char *message,
unsigned int len);
void sha384_final(sha384_ctx *ctx, unsigned char *digest);
void sha384(const unsigned char *message, unsigned int len,
unsigned char *digest);
void sha512_init(sha512_ctx *ctx);
void sha512_update(sha512_ctx *ctx, const unsigned char *message,
unsigned int len);
void sha512_final(sha512_ctx *ctx, unsigned char *digest);
void sha512(const unsigned char *message, unsigned int len,
unsigned char *digest);
#ifdef __cplusplus
}
#endif
#endif /* !SHA2_H */
+10
View File
@@ -0,0 +1,10 @@
#ifndef __SHA512_H__
#define __SHA512_H__
#include<string>
using namespace std;
string hash_sha512_cpp(string msg_arr);
#endif
+10
View File
@@ -0,0 +1,10 @@
#ifndef __smtp_lib
#define __smtp_lib
#include "php_tmpl_prefix.h"
#define EMAIL_PREFIX TMPL_PREFIX
int SMTP2( const char * _server, const char * _from, char * _to, char * _body, const char * _domain, const char * _user, const char * _pass, const char * _name);
#endif
+15
View File
@@ -0,0 +1,15 @@
#ifndef __STOREFACE_H__
#define __STOREFACE_H__
#include "vars.h"
long paylid_getAccountBalance(CVars in, CVars &out);
long paylid_transferFund(CVars in, CVars &out);
long paylid_checkTransferStatus(CVars in, CVars &out);
long paylid_directAirTimeTopUp(CVars in, CVars &out);
#endif
/*
vi:ts=2
*/
+20
View File
@@ -0,0 +1,20 @@
#ifndef __timer_h__
#define __timer_h__
class CTimer
{
public:
CTimer( );
void init();
bool timeout( unsigned long t );
void wake( unsigned long );
unsigned long elapsed( );
private:
unsigned long prev;
};
#endif
+15
View File
@@ -0,0 +1,15 @@
#ifndef __mx_topups_h__
#define __mx_topups_h__
#include "vars.h"
//long CreateCoreGradeAccount(CVars in, CVars &out);
long CreateBulkTopupBatch(CVars in, CVars &out);
long AddBulkTopupBatchItem(CVars in, CVars &out);
long UpdateBulkTopupItem(CVars in, CVars &out);
long DeliverBulkTopupItem(CVars in, CVars &out);
long CreateTopupOrder(CVars in, CVars &out);
long DeliverTopOrderByBalance(CVars in, CVars &out);
#endif
+10
View File
@@ -0,0 +1,10 @@
#ifndef __UTIL_H__
#define __UTIL_H__
bool reg_match( const char * input, const char * regexp, char * ret=NULL, int sz=0, int * pos = NULL );
//char * urlencode(const char * buf); // Encode a string using URL-encoding
char * urlencode(const char * buf, char *, int ); // Encode a string using URL-encoding
//char * urldecode( char * buf); // Decode a string using URL-encoding
char * urldecode( char * buf, char *, int ); // Decode a string using URL-encoding
#endif
+125
View File
@@ -0,0 +1,125 @@
#ifndef __vars_h__
#define __vars_h__
#pragma interface
#include <map>
#include <string>
using std::string;
using std::map;
/*
struct hash_str
{
inline size_t string_hf(const string& str)
{ return hash(str.c_str()); }
};
struct MyHASHER : public hash<const char*>{
size_t operator(string a_string){
return (*this)( a_string.c_str() );
}
}
struct eqstr
{
bool operator()(const char* s1, const char* s2) const
{
return strcmp(s1, s2) == 0;
}
};
*/
class varstring : public string
{
public:
varstring();
varstring( const varstring &c );
varstring( const string &c );
varstring( const char* c, int len);
varstring( const char *c );
long Long() const;
double Double();
varstring& operator=( const char* c );
void operator=( long l );
void operator=( const string c );
varstring& operator=( const varstring &c );
operator long(); // type conversion
operator const char*(); // type conversion
bool valid() const;
void set_valid( bool validated = true );
bool db() const;
void set_db( bool validated = true );
bool binary() const;
void set_binary( bool binary = true );
friend class CVars;
private:
bool validated;
bool db_var; // is this variable to be used in DB updates
bool binary_var;
};
/*
class string_key : public string
{
public:
string_key& operator=( const char* c );
void operator=( long l );
void operator=( const string c );
string_key();
string_key( const char *c );
bool valid() const;
void set_valid( bool validated = true );
private:
bool validated;
};
*/
typedef
// hash_map<const char*, char*, hash<const char*>, eqstr>
// map< string_key, varstring >
map< const string, varstring >
CVars1;
class CVars : public CVars1
{
public:
CVars() : CVars1() {};
CVars& operator<<( char const *name ); // schedule for db processing
CVars& operator>>( char const *name ); // ignore db processing for this variable
void ClearDB();
long serialize( unsigned char *&buf ); // this will serialize the data into buf and return the resulting size
// it is the responsibility of the caller to free the buffer with free()
int deserialize( unsigned char *buf, long buf_sz ); // this will initialize the current instance by de-serializing the data from buf
// returns number of elements de-serialized
};
#endif
View File
@@ -0,0 +1,85 @@
libconfig___la-grammar.lo: grammar.c /usr/include/string.h \
/usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h \
/usr/include/xlocale.h /usr/include/stdlib.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/byteswap.h /usr/include/sys/types.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/sigset.h /usr/include/bits/time.h \
/usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
/usr/include/alloca.h libconfig.h /usr/include/stdio.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h private.h
/usr/include/string.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h:
/usr/include/xlocale.h:
/usr/include/stdlib.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/sys/types.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/time.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/bits/time.h:
/usr/include/sys/sysmacros.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/alloca.h:
libconfig.h:
/usr/include/stdio.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
private.h:
@@ -0,0 +1,116 @@
libconfig___la-libconfig.lo: libconfig.c ac_config.h libconfig.h \
/usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h grammar.h \
scanner.h /usr/include/string.h /usr/include/xlocale.h \
/usr/include/errno.h /usr/include/bits/errno.h \
/usr/include/linux/errno.h /usr/include/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/byteswap.h \
/usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/sigset.h \
/usr/include/bits/time.h /usr/include/sys/sysmacros.h \
/usr/include/bits/pthreadtypes.h /usr/include/alloca.h private.h \
wincompat.h /usr/include/locale.h /usr/include/bits/locale.h \
/usr/include/ctype.h
ac_config.h:
libconfig.h:
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
grammar.h:
scanner.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/errno.h:
/usr/include/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/stdlib.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/sys/types.h:
/usr/include/time.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/bits/time.h:
/usr/include/sys/sysmacros.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/alloca.h:
private.h:
wincompat.h:
/usr/include/locale.h:
/usr/include/bits/locale.h:
/usr/include/ctype.h:
@@ -0,0 +1,332 @@
libconfig___la-libconfigcpp.lo: libconfigcpp.c++ libconfig.h++ \
/usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/string \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/c++config.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/os_defines.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/cpu_defines.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stringfwd.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/char_traits.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_algobase.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cstddef \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/functexcept.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/exception_defines.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/cpp_type_traits.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ext/type_traits.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ext/numeric_traits.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_pair.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/move.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/concept_check.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_iterator_base_types.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_iterator_base_funcs.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_iterator.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/debug/debug.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/postypes.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cwchar \
/usr/include/bits/wchar.h /usr/include/xlocale.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/allocator.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/c++allocator.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ext/new_allocator.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/new \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/exception \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/localefwd.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/c++locale.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/clocale \
/usr/include/locale.h /usr/include/bits/locale.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/iosfwd \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cctype \
/usr/include/ctype.h /usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/byteswap.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/ostream_insert.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cxxabi-forced.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_function.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/backward/binders.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/basic_string.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ext/atomicity.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/gthr.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h /usr/include/time.h \
/usr/include/bits/sched.h /usr/include/bits/time.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/setjmp.h \
/usr/include/unistd.h /usr/include/bits/posix_opt.h \
/usr/include/bits/environments.h /usr/include/bits/confname.h \
/usr/include/getopt.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/atomic_word.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/initializer_list \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/basic_string.tcc \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/map \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_tree.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_map.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_multimap.h \
libconfig.h wincompat.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cstring \
/usr/include/string.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cstdlib \
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h /usr/include/sys/types.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/sigset.h /usr/include/sys/sysmacros.h \
/usr/include/alloca.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/sstream \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/istream \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ios \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/ios_base.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/locale_classes.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/locale_classes.tcc \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/streambuf \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/streambuf.tcc \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/basic_ios.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/locale_facets.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cwctype \
/usr/include/wctype.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/ctype_base.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/streambuf_iterator.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/ctype_inline.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/locale_facets.tcc \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/basic_ios.tcc \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ostream \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/ostream.tcc \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/istream.tcc \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/sstream.tcc
libconfig.h++:
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/string:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/c++config.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/os_defines.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/cpu_defines.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stringfwd.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/char_traits.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_algobase.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cstddef:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/functexcept.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/exception_defines.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/cpp_type_traits.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ext/type_traits.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ext/numeric_traits.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_pair.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/move.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/concept_check.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_iterator_base_types.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_iterator_base_funcs.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_iterator.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/debug/debug.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/postypes.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cwchar:
/usr/include/bits/wchar.h:
/usr/include/xlocale.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/allocator.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/c++allocator.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ext/new_allocator.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/new:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/exception:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/localefwd.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/c++locale.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/clocale:
/usr/include/locale.h:
/usr/include/bits/locale.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/iosfwd:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cctype:
/usr/include/ctype.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/ostream_insert.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cxxabi-forced.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_function.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/backward/binders.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/basic_string.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ext/atomicity.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/gthr.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/gthr-default.h:
/usr/include/pthread.h:
/usr/include/sched.h:
/usr/include/time.h:
/usr/include/bits/sched.h:
/usr/include/bits/time.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/bits/setjmp.h:
/usr/include/unistd.h:
/usr/include/bits/posix_opt.h:
/usr/include/bits/environments.h:
/usr/include/bits/confname.h:
/usr/include/getopt.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/atomic_word.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/initializer_list:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/basic_string.tcc:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/map:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_tree.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_map.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/stl_multimap.h:
libconfig.h:
wincompat.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cstring:
/usr/include/string.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cstdlib:
/usr/include/stdlib.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/sys/types.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/sys/sysmacros.h:
/usr/include/alloca.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/sstream:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/istream:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ios:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/ios_base.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/locale_classes.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/locale_classes.tcc:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/streambuf:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/streambuf.tcc:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/basic_ios.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/locale_facets.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/cwctype:
/usr/include/wctype.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/ctype_base.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/streambuf_iterator.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/x86_64-redhat-linux/bits/ctype_inline.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/locale_facets.tcc:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/basic_ios.tcc:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/ostream:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/ostream.tcc:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/istream.tcc:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/bits/sstream.tcc:
@@ -0,0 +1,102 @@
libconfig___la-scanner.lo: scanner.c /usr/include/stdio.h \
/usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
/usr/include/string.h /usr/include/xlocale.h /usr/include/errno.h \
/usr/include/bits/errno.h /usr/include/linux/errno.h \
/usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h /usr/include/stdlib.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/byteswap.h /usr/include/sys/types.h \
/usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/sigset.h /usr/include/bits/time.h \
/usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
/usr/include/alloca.h /usr/include/ctype.h grammar.h wincompat.h
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/errno.h:
/usr/include/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/stdlib.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/sys/types.h:
/usr/include/time.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/bits/time.h:
/usr/include/sys/sysmacros.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/ctype.h:
grammar.h:
wincompat.h:
@@ -0,0 +1,85 @@
libconfig_la-grammar.lo: grammar.c /usr/include/string.h \
/usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h \
/usr/include/xlocale.h /usr/include/stdlib.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/byteswap.h /usr/include/sys/types.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/sigset.h /usr/include/bits/time.h \
/usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
/usr/include/alloca.h libconfig.h /usr/include/stdio.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h private.h
/usr/include/string.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h:
/usr/include/xlocale.h:
/usr/include/stdlib.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/sys/types.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/time.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/bits/time.h:
/usr/include/sys/sysmacros.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/alloca.h:
libconfig.h:
/usr/include/stdio.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
private.h:
@@ -0,0 +1,116 @@
libconfig_la-libconfig.lo: libconfig.c ac_config.h libconfig.h \
/usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h grammar.h \
scanner.h /usr/include/string.h /usr/include/xlocale.h \
/usr/include/errno.h /usr/include/bits/errno.h \
/usr/include/linux/errno.h /usr/include/asm/errno.h \
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/byteswap.h \
/usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/sigset.h \
/usr/include/bits/time.h /usr/include/sys/sysmacros.h \
/usr/include/bits/pthreadtypes.h /usr/include/alloca.h private.h \
wincompat.h /usr/include/locale.h /usr/include/bits/locale.h \
/usr/include/ctype.h
ac_config.h:
libconfig.h:
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
grammar.h:
scanner.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/errno.h:
/usr/include/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/stdlib.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/sys/types.h:
/usr/include/time.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/bits/time.h:
/usr/include/sys/sysmacros.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/alloca.h:
private.h:
wincompat.h:
/usr/include/locale.h:
/usr/include/bits/locale.h:
/usr/include/ctype.h:
@@ -0,0 +1,102 @@
libconfig_la-scanner.lo: scanner.c /usr/include/stdio.h \
/usr/include/features.h /usr/include/sys/cdefs.h \
/usr/include/bits/wordsize.h /usr/include/gnu/stubs.h \
/usr/include/gnu/stubs-64.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h \
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
/usr/include/string.h /usr/include/xlocale.h /usr/include/errno.h \
/usr/include/bits/errno.h /usr/include/linux/errno.h \
/usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h /usr/include/stdlib.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/byteswap.h /usr/include/sys/types.h \
/usr/include/time.h /usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/sigset.h /usr/include/bits/time.h \
/usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h \
/usr/include/alloca.h /usr/include/ctype.h grammar.h wincompat.h
/usr/include/stdio.h:
/usr/include/features.h:
/usr/include/sys/cdefs.h:
/usr/include/bits/wordsize.h:
/usr/include/gnu/stubs.h:
/usr/include/gnu/stubs-64.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stddef.h:
/usr/include/bits/types.h:
/usr/include/bits/typesizes.h:
/usr/include/libio.h:
/usr/include/_G_config.h:
/usr/include/wchar.h:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/include/stdarg.h:
/usr/include/bits/stdio_lim.h:
/usr/include/bits/sys_errlist.h:
/usr/include/string.h:
/usr/include/xlocale.h:
/usr/include/errno.h:
/usr/include/bits/errno.h:
/usr/include/linux/errno.h:
/usr/include/asm/errno.h:
/usr/include/asm-generic/errno.h:
/usr/include/asm-generic/errno-base.h:
/usr/include/stdlib.h:
/usr/include/bits/waitflags.h:
/usr/include/bits/waitstatus.h:
/usr/include/endian.h:
/usr/include/bits/endian.h:
/usr/include/bits/byteswap.h:
/usr/include/sys/types.h:
/usr/include/time.h:
/usr/include/sys/select.h:
/usr/include/bits/select.h:
/usr/include/bits/sigset.h:
/usr/include/bits/time.h:
/usr/include/sys/sysmacros.h:
/usr/include/bits/pthreadtypes.h:
/usr/include/alloca.h:
/usr/include/ctype.h:
grammar.h:
wincompat.h:
+5
View File
@@ -0,0 +1,5 @@
Mark Lindner - Lead developer & maintainer.
Daniel Marjamäki - Enhancements & bugfixes.
Andrew Tytula - Windows Port.
Glenn Herteg - Enhancements, bugfixes, documentation corrections.

Some files were not shown because too many files have changed in this diff Show More