├── .bzrignore ├── AUTHORS ├── CMakeLists.txt ├── COPYING ├── COPYING.rtf ├── ChangeLog ├── Doxyfile ├── INSTALL ├── Makefile.am ├── NEWS ├── README ├── README.TESTS ├── README.rtf ├── THANKS ├── autogen.sh ├── cmake ├── ChassisInstall.cmake ├── ChassisPlugin.cmake ├── Makefile.am └── Tar.cmake ├── config.h.cmake ├── configure.ac ├── deps ├── CMakeLists.txt ├── libevent.CMakeLists.txt ├── libevent.cmake ├── libevent.config.h.cmake ├── libevent.def ├── libevent.event-config.h.cmake ├── libevent.event.h.cmake └── libevent.evutil.h.cmake ├── doc ├── Makefile.am ├── architecture-overview.dot ├── architecture.dot ├── architecture.txt ├── book.txt ├── chapter │ ├── Makefile.am │ ├── protocol.txt │ └── scripting.txt ├── chassis.txt ├── core.txt ├── lifecycle.msc ├── lua-classes.dot ├── plugins.txt ├── protocol.txt ├── scripting.txt ├── tests.txt └── testsuite.txt ├── doxygen-scripts ├── doxygen_version.sh ├── footer.html └── project_number_bzr.sh ├── examples ├── CMakeLists.txt ├── Makefile.am ├── tutorial-basic.lua ├── tutorial-constants.lua ├── tutorial-inject.lua ├── tutorial-keepalive.lua ├── tutorial-monitor.lua ├── tutorial-packets.lua ├── tutorial-prep-stmts.lua ├── tutorial-query-time.lua ├── tutorial-resultset.lua ├── tutorial-rewrite.lua ├── tutorial-routing.lua ├── tutorial-scramble.lua ├── tutorial-states.lua ├── tutorial-tokenize.lua ├── tutorial-union.lua └── tutorial-warnings.lua ├── internal └── filesgpl2 ├── lib ├── CMakeLists.txt ├── Makefile.am ├── active-queries.lua ├── active-transactions.lua ├── admin-sql.lua ├── admin.lua ├── analyze-query.lua ├── auditing.lua ├── chassis.c ├── chassis.def ├── commit-obfuscator.lua ├── commit-obfuscator.msc ├── glib2.c ├── glib2.def ├── histogram.lua ├── lfs.c ├── lfs.def ├── load-multi.lua ├── lpeg.c ├── lpeg.def ├── mysql-password.c ├── mysql-proto.c ├── mysql.def ├── posix.c ├── posix.def ├── proxy │ ├── CMakeLists.txt │ ├── Makefile.am │ ├── auto-config.lua │ ├── balance.lua │ ├── commands.lua │ ├── parser.lua │ ├── test.lua │ └── tokenizer.lua ├── ro-balance.lua ├── ro-pooling.lua ├── rw-splitting.lua ├── sql-tokenizer-gen.c ├── sql-tokenizer-keywords.h ├── sql-tokenizer-lua.c ├── sql-tokenizer-tokens.c ├── sql-tokenizer.h ├── sql-tokenizer.l └── xtab.lua ├── m4 ├── Makefile.am └── sed.m4 ├── mysql-chassis.pc.cmake ├── mysql-chassis.pc.in ├── mysql-proxy.pc.cmake ├── mysql-proxy.pc.in ├── mysql-proxy.spec.in ├── plugins ├── CMakeLists.txt ├── Makefile.am ├── admin │ ├── CMakeLists.txt │ ├── Makefile.am │ └── admin-plugin.c ├── cli │ ├── CMakeLists.txt │ ├── Makefile.am │ └── cli-plugin.c ├── debug │ ├── CMakeLists.txt │ ├── Makefile.am │ └── debug-plugin.c ├── proxy │ ├── CMakeLists.txt │ ├── Makefile.am │ ├── proxy-plugin.c │ └── proxy-plugin.h └── replicant │ ├── CMakeLists.txt │ ├── Makefile.am │ └── replicant-plugin.c ├── scripts ├── Makefile.am └── mysql-proxy-binwrapper.in ├── src ├── CMakeLists.txt ├── Makefile.am ├── chassis-event-thread.c ├── chassis-event-thread.h ├── chassis-exports.h ├── chassis-filemode.c ├── chassis-filemode.h ├── chassis-frontend.c ├── chassis-frontend.h ├── chassis-gtimeval.c ├── chassis-gtimeval.h ├── chassis-keyfile.c ├── chassis-keyfile.h ├── chassis-limits.c ├── chassis-limits.h ├── chassis-log.c ├── chassis-log.h ├── chassis-mainloop.c ├── chassis-mainloop.h ├── chassis-options.c ├── chassis-options.h ├── chassis-path.c ├── chassis-path.h ├── chassis-plugin.c ├── chassis-plugin.h ├── chassis-shutdown-hooks.c ├── chassis-shutdown-hooks.h ├── chassis-stats.c ├── chassis-stats.h ├── chassis-timings.c ├── chassis-timings.h ├── chassis-unix-daemon.c ├── chassis-unix-daemon.h ├── chassis-win32-service.c ├── chassis-win32-service.h ├── disable-dtrace.h ├── glib-ext-ref.c ├── glib-ext-ref.h ├── glib-ext.c ├── glib-ext.h ├── lua-env.c ├── lua-env.h ├── lua-load-factory.c ├── lua-load-factory.h ├── lua-registry-keys.h ├── lua-scope.c ├── lua-scope.h ├── my_rdtsc.c ├── my_rdtsc.h ├── my_timer_cycles.il ├── mysql-binlog-dump.c ├── mysql-myisam-dump.c ├── mysql-proxy-cli.c ├── mysql-proxy.mc ├── network-address-lua.c ├── network-address-lua.h ├── network-address.c ├── network-address.h ├── network-asn1.c ├── network-asn1.h ├── network-backend-lua.c ├── network-backend-lua.h ├── network-backend.c ├── network-backend.h ├── network-conn-pool-lua.c ├── network-conn-pool-lua.h ├── network-conn-pool.c ├── network-conn-pool.h ├── network-debug.h ├── network-exports.h ├── network-injection-lua.c ├── network-injection-lua.h ├── network-injection.c ├── network-injection.h ├── network-mysqld-binlog.c ├── network-mysqld-binlog.h ├── network-mysqld-lua.c ├── network-mysqld-lua.h ├── network-mysqld-masterinfo.c ├── network-mysqld-masterinfo.h ├── network-mysqld-packet.c ├── network-mysqld-packet.h ├── network-mysqld-proto.c ├── network-mysqld-proto.h ├── network-mysqld-table.c ├── network-mysqld.c ├── network-mysqld.h ├── network-packet.c ├── network-packet.h ├── network-queue.c ├── network-queue.h ├── network-socket-lua.c ├── network-socket-lua.h ├── network-socket.c ├── network-socket.h ├── network-spnego.c ├── network-spnego.h ├── network_mysqld_proto_binary.c ├── network_mysqld_proto_binary.h ├── network_mysqld_type.c ├── network_mysqld_type.h ├── proxy-dtrace-provider.d ├── string-len.h ├── sys-pedantic.h └── test-latency.c ├── tests ├── CMakeLists.txt ├── Makefile.am ├── c-api-burst.c ├── gtester-to-junit.xslt ├── suite │ ├── CMakeLists.txt │ ├── Makefile.am │ ├── base │ │ ├── Makefile.am │ │ ├── r │ │ │ ├── Makefile.am │ │ │ ├── bug_30867.result │ │ │ ├── bug_35669.result │ │ │ ├── bug_35729.result │ │ │ ├── bug_41991.result │ │ │ ├── bug_43078.result │ │ │ ├── bug_45167.result │ │ │ ├── bug_46141.result │ │ │ ├── bug_49248.result │ │ │ ├── bug_55459.result │ │ │ ├── bug_61998.result │ │ │ ├── chain1.result │ │ │ ├── change_user.result │ │ │ ├── client_address.result │ │ │ ├── client_address_socket.result │ │ │ ├── constants.result │ │ │ ├── error_struct.result │ │ │ ├── failover.result │ │ │ ├── ignore-resultset.result │ │ │ ├── invalid_response_packets.result │ │ │ ├── lineno.result │ │ │ ├── load-data-infile.result │ │ │ ├── load_multi.result │ │ │ ├── mysql-40.result │ │ │ ├── no_backend.result │ │ │ ├── overlong.result │ │ │ ├── pooling.result │ │ │ ├── raw_packets.result │ │ │ ├── resultset.result │ │ │ ├── select_affected_rows.result │ │ │ ├── select_null.result │ │ │ ├── tokens-normalize.result │ │ │ ├── tokens1.result │ │ │ ├── tokens2.result │ │ │ ├── xtab1.result │ │ │ └── xtab2.result │ │ ├── t │ │ │ ├── Makefile.am │ │ │ ├── bug_30867.lua │ │ │ ├── bug_30867.options │ │ │ ├── bug_30867.test │ │ │ ├── bug_35669-mock.lua │ │ │ ├── bug_35669-test.lua │ │ │ ├── bug_35669.options │ │ │ ├── bug_35669.test │ │ │ ├── bug_35729-mock.lua │ │ │ ├── bug_35729-test.lua │ │ │ ├── bug_35729.options │ │ │ ├── bug_35729.test │ │ │ ├── bug_41991-mock.lua │ │ │ ├── bug_41991-test.lua │ │ │ ├── bug_41991.options │ │ │ ├── bug_41991.test │ │ │ ├── bug_43078-mock.lua │ │ │ ├── bug_43078-test.lua │ │ │ ├── bug_43078.options │ │ │ ├── bug_43078.test │ │ │ ├── bug_45167-mock.lua │ │ │ ├── bug_45167-test.lua │ │ │ ├── bug_45167.options │ │ │ ├── bug_45167.test │ │ │ ├── bug_46141-mock.lua │ │ │ ├── bug_46141-test.lua │ │ │ ├── bug_46141.options │ │ │ ├── bug_46141.test │ │ │ ├── bug_49248-mock.lua │ │ │ ├── bug_49248-test.lua │ │ │ ├── bug_49248.options │ │ │ ├── bug_49248.test │ │ │ ├── bug_55459-mock.lua │ │ │ ├── bug_55459-test.lua │ │ │ ├── bug_55459.options │ │ │ ├── bug_55459.test │ │ │ ├── bug_61998.lua │ │ │ ├── bug_61998.test │ │ │ ├── chain1.options │ │ │ ├── chain1.test │ │ │ ├── chain1a.lua │ │ │ ├── chain1b.lua │ │ │ ├── change_user.lua │ │ │ ├── change_user.options │ │ │ ├── change_user.test │ │ │ ├── client_address-mock.lua │ │ │ ├── client_address-test.lua │ │ │ ├── client_address.options │ │ │ ├── client_address.test │ │ │ ├── client_address_socket.lua │ │ │ ├── client_address_socket.options │ │ │ ├── client_address_socket.test │ │ │ ├── constants-mock.lua │ │ │ ├── constants-test.lua │ │ │ ├── constants.options │ │ │ ├── constants.test │ │ │ ├── default.options │ │ │ ├── error_struct.lua │ │ │ ├── error_struct.test │ │ │ ├── failover-mock.lua │ │ │ ├── failover-test.lua │ │ │ ├── failover.options │ │ │ ├── failover.test │ │ │ ├── ignore-resultset-mock.lua │ │ │ ├── ignore-resultset-test.lua │ │ │ ├── ignore-resultset.options │ │ │ ├── ignore-resultset.test │ │ │ ├── invalid_response_packets-mock.lua │ │ │ ├── invalid_response_packets-test.lua │ │ │ ├── invalid_response_packets.options │ │ │ ├── invalid_response_packets.test │ │ │ ├── lineno.lua │ │ │ ├── lineno.test │ │ │ ├── lm1.lua │ │ │ ├── lm2.lua │ │ │ ├── lm3.lua │ │ │ ├── load-data-infile-mock.lua │ │ │ ├── load-data-infile-test.lua │ │ │ ├── load-data-infile.options │ │ │ ├── load-data-infile.test │ │ │ ├── load_multi-mock.lua │ │ │ ├── load_multi-test.lua │ │ │ ├── load_multi.options │ │ │ ├── load_multi.test │ │ │ ├── mysql-40.lua │ │ │ ├── mysql-40.test │ │ │ ├── no_backend.lua │ │ │ ├── no_backend.test │ │ │ ├── overlong-mock.lua │ │ │ ├── overlong-test.lua │ │ │ ├── overlong.options │ │ │ ├── overlong.test │ │ │ ├── pooling-mock.lua │ │ │ ├── pooling-test.lua │ │ │ ├── pooling.options │ │ │ ├── pooling.test │ │ │ ├── raw_packets.lua │ │ │ ├── raw_packets.test │ │ │ ├── resultset-mock.lua │ │ │ ├── resultset-test.lua │ │ │ ├── resultset.options │ │ │ ├── resultset.test │ │ │ ├── select_affected_rows.lua │ │ │ ├── select_affected_rows.test │ │ │ ├── select_null.lua │ │ │ ├── select_null.test │ │ │ ├── tokens-normalize.lua │ │ │ ├── tokens-normalize.test │ │ │ ├── tokens1.lua │ │ │ ├── tokens1.test │ │ │ ├── tokens2.lua │ │ │ ├── tokens2.test │ │ │ ├── xtab1-mock.lua │ │ │ ├── xtab1-test.lua │ │ │ ├── xtab1.options │ │ │ ├── xtab1.test │ │ │ ├── xtab2.lua │ │ │ └── xtab2.test │ │ └── tests_to_skip.lua │ ├── bugs │ │ ├── Makefile.am │ │ ├── r │ │ │ ├── Makefile.am │ │ │ └── bug_29494.result │ │ └── t │ │ │ ├── Makefile.am │ │ │ ├── bug_29494.lua │ │ │ ├── bug_29494.test │ │ │ ├── bug_select_local.lua │ │ │ └── bug_select_local.test │ ├── lua-tests-wrapper.sh.in │ ├── lua_runner.c │ └── run-tests.lua └── unit │ ├── CMakeLists.txt │ ├── Makefile.am │ ├── check_chassis_filemode.c │ ├── check_chassis_log.c │ ├── check_chassis_path.c │ ├── check_loadscript.c │ ├── check_mysqld_proto.c │ ├── check_plugin.c │ ├── check_sql_tokenizer.c │ ├── lua │ ├── CMakeLists.txt │ ├── Makefile.am │ ├── active-queries.lua │ ├── chassis.lua │ ├── lua-tests-wrapper.sh.in │ ├── lua_runner.c │ ├── mysql-proto.lua │ ├── proxy-auto-config.lua │ ├── proxy-commands.lua │ ├── proxy-parser.lua │ ├── proxy-test.lua │ └── proxy-tokenizer.lua │ ├── t_chassis_frontend.c │ ├── t_chassis_keyfile.c │ ├── t_chassis_shutdown_hooks.c │ ├── t_chassis_timings.c │ ├── t_network_address.c │ ├── t_network_asn1.c │ ├── t_network_backend.c │ ├── t_network_injection.c │ ├── t_network_mysqld_masterinfo.c │ ├── t_network_mysqld_packet.c │ ├── t_network_mysqld_type.c │ ├── t_network_queue.c │ ├── t_network_socket.c │ └── t_network_spnego.c └── winbuild.bat /.bzrignore: -------------------------------------------------------------------------------- 1 | *.lo 2 | Makefile 3 | Makefile.in 4 | .deps 5 | .libs 6 | *.la 7 | trunk/src/sql-tokenizer.c 8 | trunk/tests/unit/sql-tokenizer.c 9 | ./.cproject 10 | ./.project 11 | ./.settings 12 | ./build 13 | ./aclocal.m4 14 | ./autom4te.cache 15 | ./configure 16 | ./install-sh 17 | ./ylwrap 18 | ./ltmain.sh 19 | ./depcomp 20 | ./config.sub 21 | ./config.guess 22 | ./config.h.in 23 | ./compile 24 | ./missing 25 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | If you have questions about 2 | 3 | jan 4 | -------------------------------------------------------------------------------- /THANKS: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cmake/ChassisPlugin.cmake: -------------------------------------------------------------------------------- 1 | # $%BEGINLICENSE%$ 2 | # Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved. 3 | # 4 | # This program is free software; you can redistribute it and/or 5 | # modify it under the terms of the GNU General Public License as 6 | # published by the Free Software Foundation; version 2 of the 7 | # License. 8 | # 9 | # This program is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program; if not, write to the Free Software 16 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 17 | # 02110-1301 USA 18 | # 19 | # $%ENDLICENSE%$ 20 | 21 | MACRO(CHASSIS_PLUGIN_INSTALL _plugin_name) 22 | IF(NOT WIN32) 23 | INSTALL(TARGETS ${_plugin_name} 24 | DESTINATION lib/mysql-proxy/plugins) 25 | ELSE(NOT WIN32) 26 | ## on win32 the chassis plugins gets prefixed with plugin- and end up in bin/ 27 | GET_TARGET_PROPERTY(built_location ${_plugin_name} LOCATION) 28 | STRING(REPLACE "$(OutDir)" "${CMAKE_BUILD_TYPE}" built_location ${built_location}) 29 | INSTALL(FILES ${built_location} 30 | DESTINATION bin/ 31 | RENAME plugin-${_plugin_name}${CMAKE_SHARED_LIBRARY_SUFFIX} 32 | ) 33 | ## install the .pdb too 34 | IF(CMAKE_BUILD_TYPE MATCHES "RelWithDebInfo") 35 | STRING(REPLACE ${CMAKE_SHARED_LIBRARY_SUFFIX} ".pdb" pdb_location ${built_location}) 36 | INSTALL(FILES 37 | ${pdb_location} 38 | DESTINATION bin 39 | ) 40 | ENDIF() 41 | ENDIF(NOT WIN32) 42 | ENDMACRO(CHASSIS_PLUGIN_INSTALL _plugin_name) 43 | 44 | -------------------------------------------------------------------------------- /cmake/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=\ 2 | Tar.cmake \ 3 | ChassisPlugin.cmake \ 4 | ChassisInstall.cmake 5 | -------------------------------------------------------------------------------- /config.h.cmake: -------------------------------------------------------------------------------- 1 | #cmakedefine HAVE_EVENT_BASE_FREE 2 | #cmakedefine HAVE_EVENT_H 3 | #cmakedefine HAVE_INTTYPES_H 4 | #cmakedefine HAVE_LUA_H 5 | #cmakedefine HAVE_MGMAPI_H 6 | #cmakedefine HAVE_NETINET_IN_H 7 | #cmakedefine HAVE_NET_IF_H 8 | #cmakedefine HAVE_NET_IF_DL_H 9 | #cmakedefine HAVE_PWD_H 10 | #cmakedefine HAVE_SIGNAL_H 11 | #cmakedefine HAVE_STDDEF_H 12 | #cmakedefine HAVE_STDINT_H 13 | #cmakedefine HAVE_STDLIB_H 14 | #cmakedefine HAVE_SYSLOG_H 15 | #cmakedefine HAVE_SYS_IOCTL_H 16 | #cmakedefine HAVE_SYS_FILIO_H 17 | #cmakedefine HAVE_SYS_PARAM_H 18 | #cmakedefine HAVE_SYS_RESOURCE_H 19 | #cmakedefine HAVE_SYS_SOCKET_H 20 | #cmakedefine HAVE_SYS_SOCKIO_H 21 | #cmakedefine HAVE_SYS_TIME_H 22 | #cmakedefine HAVE_SYS_TYPES_H 23 | #cmakedefine HAVE_SYS_UIO_H 24 | #cmakedefine HAVE_SYS_UN_H 25 | #cmakedefine HAVE_TIME_H 26 | #cmakedefine HAVE_UNISTD_H 27 | #cmakedefine HAVE_SYSLOG_H 28 | 29 | #cmakedefine HAVE_INET_NTOP 30 | #cmakedefine HAVE_GETCWD 31 | #cmakedefine HAVE_SIGNAL 32 | #cmakedefine HAVE_SRANDOM 33 | #cmakedefine HAVE_STRERROR 34 | #cmakedefine HAVE_WRITEV 35 | 36 | #cmakedefine HAVE_SOCKLEN_T 37 | #cmakedefine HAVE_ULONG 38 | 39 | #cmakedefine HAVE_GTHREAD 40 | #cmakedefine HAVE_GTHREAD_H 41 | #define SIZEOF_RLIM_T @SIZEOF_RLIM_T@ 42 | -------------------------------------------------------------------------------- /deps/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # INCLUDE(deps/libevent.cmake) 2 | -------------------------------------------------------------------------------- /deps/libevent.cmake: -------------------------------------------------------------------------------- 1 | IF(WIN32) 2 | SET(LIBEVENT_SOURCE_DIR "${CMAKE_SOURCE_DIR}/deps/libevent-1.4.11-stable") 3 | IF(EXISTS ${LIBEVENT_SOURCE_DIR}) 4 | ## write CMake file for libevent 5 | 6 | CONFIGURE_FILE(deps/libevent.config.h.cmake ${LIBEVENT_SOURCE_DIR}/config.h.cmake COPYONLY) 7 | CONFIGURE_FILE(deps/libevent.event-config.h.cmake ${LIBEVENT_SOURCE_DIR}/event-config.h.cmake COPYONLY) 8 | CONFIGURE_FILE(deps/libevent.CMakeLists.txt ${LIBEVENT_SOURCE_DIR}/CMakeLists.txt COPYONLY) 9 | CONFIGURE_FILE(deps/libevent.def ${LIBEVENT_SOURCE_DIR}/libevent.def COPYONLY) 10 | ## CONFIGURE_FILE(deps/libevent.event.h.cmake ${LIBEVENT_SOURCE_DIR}/event.h COPYONLY) 11 | ## CONFIGURE_FILE(deps/libevent.evutil.h.cmake ${LIBEVENT_SOURCE_DIR}/evutil.h COPYONLY) 12 | 13 | ADD_SUBDIRECTORY(${LIBEVENT_SOURCE_DIR} build-libevent) 14 | 15 | SET(EVENT_INCLUDE_DIRS ${LIBEVENT_SOURCE_DIR} CACHE INTERNAL "") 16 | IF(EXISTS ${CMAKE_BINARY_DIR}/build-libevent/${CMAKE_BUILD_TYPE}/) 17 | SET(EVENT_LIBRARY_DIRS ${CMAKE_BINARY_DIR}/build-libevent/${CMAKE_BUILD_TYPE} CACHE INTERNAL "") 18 | ELSE(EXISTS ${CMAKE_BINARY_DIR}/build-libevent/${CMAKE_BUILD_TYPE}/) 19 | SET(EVENT_LIBRARY_DIRS ${CMAKE_BINARY_DIR}/build-libevent CACHE INTERNAL "") 20 | ENDIF(EXISTS ${CMAKE_BINARY_DIR}/build-libevent/${CMAKE_BUILD_TYPE}/) 21 | SET(EVENT_LIBRARIES event CACHE INTERNAL "") 22 | ELSE(EXISTS ${LIBEVENT_SOURCE_DIR}) 23 | MESSAGE(FATAL_ERROR "Could not find dependency libevent-1.4.11-stable in ${LIBEVENT_SOURCE_DIR}") 24 | ENDIF(EXISTS ${LIBEVENT_SOURCE_DIR}) 25 | ENDIF(WIN32) 26 | -------------------------------------------------------------------------------- /deps/libevent.config.h.cmake: -------------------------------------------------------------------------------- 1 | #cmakedefine HAVE_STDINT_H 2 | #cmakedefine HAVE_SYS_TIME_H 3 | #cmakedefine HAVE_SYS_TREE_H 4 | #cmakedefine HAVE_FCNTL_H 5 | #cmakedefine HAVE_STDARG_H 6 | #cmakedefine HAVE_INTTYPES_H 7 | #cmakedefine HAVE_STDLIB_H 8 | #cmakedefine HAVE_POLL_H 9 | #cmakedefine HAVE_SIGNAL_H 10 | #cmakedefine HAVE_UNISTD_H 11 | #cmakedefine HAVE_SYS_DEVPOLL_H 12 | #cmakedefine HAVE_PORT_H 13 | #cmakedefine HAVE_KQUEUE_H 14 | 15 | #cmakedefine HAVE_POLL 16 | #cmakedefine HAVE_SELECT 17 | #cmakedefine HAVE_GETTIMEOFDAY 18 | #cmakedefine HAVE_VASPRINTF 19 | #cmakedefine HAVE_FCNTL 20 | #cmakedefine HAVE_CLOCK_GETTIME 21 | #cmakedefine HAVE_STRTOK_R 22 | #cmakedefine HAVE_STRSEP 23 | #cmakedefine HAVE_GETADDRINFO 24 | #cmakedefine HAVE_GETNAMEINFO 25 | #cmakedefine HAVE_STRLCPY 26 | #cmakedefine HAVE_INET_NTOP 27 | #cmakedefine HAVE_SIGTIMEDWAIT 28 | #cmakedefine HAVE_EPOLL 29 | #cmakedefine HAVE_KQUEUE 30 | #cmakedefine HAVE_TIMERADD 31 | #cmakedefine HAVE_TIMERSUB 32 | #cmakedefine HAVE_TIMERISSET 33 | #cmakedefine HAVE_TIMERCLEAR 34 | 35 | #define VERSION "libevent-1.4.11-stable" 36 | -------------------------------------------------------------------------------- /deps/libevent.def: -------------------------------------------------------------------------------- 1 | LIBRARY event.dll 2 | EXPORTS 3 | event_base_new 4 | event_init 5 | event_reinit 6 | event_dispatch 7 | event_base_dispatch 8 | event_base_get_method 9 | event_base_free 10 | event_set_log_callback 11 | event_base_set 12 | event_loop 13 | event_base_loop 14 | event_loopexit 15 | event_base_loopexit 16 | event_loopbreak 17 | event_base_loopbreak 18 | event_set 19 | event_once 20 | event_base_once 21 | event_add 22 | event_del 23 | event_active 24 | event_pending 25 | event_get_version 26 | event_get_method 27 | bufferevent_new 28 | bufferevent_base_set 29 | bufferevent_priority_set 30 | bufferevent_free 31 | bufferevent_setcb 32 | bufferevent_setfd 33 | bufferevent_write 34 | bufferevent_write_buffer 35 | bufferevent_read 36 | bufferevent_enable 37 | bufferevent_disable 38 | bufferevent_settimeout 39 | bufferevent_setwatermark 40 | evbuffer_new 41 | evbuffer_free 42 | evbuffer_expand 43 | evbuffer_add 44 | evbuffer_remove 45 | evbuffer_readline 46 | evbuffer_add_buffer 47 | evbuffer_add_printf 48 | evbuffer_add_vprintf 49 | evbuffer_drain 50 | evbuffer_write 51 | evbuffer_read 52 | evbuffer_find 53 | evbuffer_setcb 54 | evtag_init 55 | evtag_marshal 56 | encode_int 57 | evtag_marshal_int 58 | evtag_marshal_string 59 | evtag_marshal_timeval 60 | evtag_unmarshal 61 | evtag_peek 62 | evtag_peek_length 63 | evtag_payload_length 64 | evtag_consume 65 | evtag_unmarshal_int 66 | evtag_unmarshal_fixed 67 | evtag_unmarshal_string 68 | evtag_unmarshal_timeval 69 | evutil_socketpair 70 | evutil_make_socket_nonblocking 71 | -------------------------------------------------------------------------------- /deps/libevent.event-config.h.cmake: -------------------------------------------------------------------------------- 1 | #cmakedefine _EVENT_HAVE_STDINT_H 2 | #cmakedefine _EVENT_HAVE_SYS_TIME_H 3 | #cmakedefine _EVENT_HAVE_SYS_TREE_H 4 | #cmakedefine _EVENT_HAVE_FCNTL_H 5 | #cmakedefine _EVENT_HAVE_STDARG_H 6 | #cmakedefine _EVENT_HAVE_INTTYPES_H 7 | #cmakedefine _EVENT_HAVE_STDLIB_H 8 | #cmakedefine _EVENT_HAVE_POLL_H 9 | #cmakedefine _EVENT_HAVE_SIGNAL_H 10 | #cmakedefine _EVENT_HAVE_UNISTD_H 11 | #cmakedefine _EVENT_HAVE_SYS_DEVPOLL_H 12 | #cmakedefine _EVENT_HAVE_PORT_H 13 | #cmakedefine _EVENT_HAVE_KQUEUE_H 14 | 15 | #cmakedefine _EVENT_HAVE_POLL 16 | #cmakedefine _EVENT_HAVE_SELECT 17 | #cmakedefine _EVENT_HAVE_GETTIMEOFDAY 18 | #cmakedefine _EVENT_HAVE_VASPRINTF 19 | #cmakedefine _EVENT_HAVE_FCNTL 20 | #cmakedefine _EVENT_HAVE_CLOCK_GETTIME 21 | #cmakedefine _EVENT_HAVE_STRTOK_R 22 | #cmakedefine _EVENT_HAVE_STRSEP 23 | #cmakedefine _EVENT_HAVE_GETADDRINFO 24 | #cmakedefine _EVENT_HAVE_GETNAMEINFO 25 | #cmakedefine _EVENT_HAVE_STRLCPY 26 | #cmakedefine _EVENT_HAVE_INET_NTOP 27 | #cmakedefine _EVENT_HAVE_SIGTIMEDWAIT 28 | #cmakedefine _EVENT_HAVE_EPOLL 29 | #cmakedefine _EVENT_HAVE_KQUEUE 30 | #cmakedefine _EVENT_HAVE_TIMERADD 31 | #cmakedefine _EVENT_HAVE_TIMERSUB 32 | #cmakedefine _EVENT_HAVE_TIMERISSET 33 | #cmakedefine _EVENT_HAVE_TIMERCLEAR 34 | 35 | #define _EVENT_VERSION "libevent-1.4.11-stable" 36 | -------------------------------------------------------------------------------- /doc/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS=chapter 2 | 3 | EXTRA_DIST = \ 4 | lua-classes.dot \ 5 | architecture.dot \ 6 | architecture-overview.dot \ 7 | architecture.txt \ 8 | core.txt \ 9 | chassis.txt \ 10 | plugins.txt \ 11 | protocol.txt \ 12 | tests.txt \ 13 | scripting.txt \ 14 | lifecycle.msc 15 | 16 | clean-local: 17 | rm -f *.html 18 | 19 | html-local: book.html protocol.html scripting.html 20 | 21 | ## we use http://docutils.sourceforge.net/rst.html to generate the docs 22 | book.html: book.txt chapter/scripting.txt chapter/protocol.txt 23 | ${RST2HTML} $< $@ 24 | 25 | protocol.html: protocol.txt chapter/protocol.txt 26 | ${RST2HTML} $< $@ 27 | 28 | scripting.html: scripting.txt chapter/scripting.txt 29 | ${RST2HTML} $< $@ 30 | 31 | -------------------------------------------------------------------------------- /doc/book.txt: -------------------------------------------------------------------------------- 1 | *********** 2 | MySQL Proxy 3 | *********** 4 | 5 | .. contents:: 6 | 7 | ============== 8 | MySQL Protocol 9 | ============== 10 | 11 | .. include:: chapter/protocol.txt 12 | 13 | ========================== 14 | Scripting the proxy plugin 15 | ========================== 16 | 17 | .. include:: chapter/scripting.txt 18 | -------------------------------------------------------------------------------- /doc/chapter/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=\ 2 | protocol.txt \ 3 | scripting.txt 4 | 5 | -------------------------------------------------------------------------------- /doc/plugins.txt: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | @page page-plugins Plugin and Scripting Layer 4 | 5 | What is usually being referred to as MySQL Proxy is in fact the @link page-plugin-proxy Proxy plugin@endlink. 6 | 7 | While the @ref page-chassis and @ref page-core make up an important part, it is really the plugins that make MySQL Proxy so flexible. 8 | 9 | One can describe the currently available plugins as connection lifecycle interceptors which can register callbacks for 10 | all states in the @ref protocol. 11 | 12 | Currently available plugins in the main distribution include: 13 | - @subpage page-plugin-proxy 14 | - @subpage page-plugin-admin 15 | - Replicator plugin 16 | - Debug plugin 17 | - CLI (command line) plugin 18 | 19 | @note The latter three are not documented in-depth, mainly because they are Proof Of Concept implementations that are not targeted 20 | for the MySQL Proxy 1.0 GA release. 21 | 22 | */ 23 | -------------------------------------------------------------------------------- /doc/protocol.txt: -------------------------------------------------------------------------------- 1 | ============== 2 | MySQL Protocol 3 | ============== 4 | 5 | .. contents:: 6 | 7 | .. include:: chapter/protocol.txt 8 | 9 | -------------------------------------------------------------------------------- /doc/scripting.txt: -------------------------------------------------------------------------------- 1 | ========================== 2 | Scripting the proxy plugin 3 | ========================== 4 | 5 | .. contents:: 6 | 7 | .. include:: chapter/scripting.txt 8 | 9 | -------------------------------------------------------------------------------- /doc/testsuite.txt: -------------------------------------------------------------------------------- 1 | /** 2 | 3 | @page test Testcase List 4 | 5 | This is an automatically generated list of all the test cases found. 6 | 7 | Currently we have no system for measuring code coverage, but we plan to use a combination of 8 | gcov and lcov 9 | in the future. 10 | 11 | In order to generate meaningful coverage numbers, especially given that what a system test suite, it is best to generate both 12 | individual coverage reports for each unit test case and combining all coverage reports into a single, global view. 13 | 14 | If all the reports are combined into a single report, it is impossible to discern which tests cover which part of the codebase and 15 | thus it becomes hard to identify the areas that need testing. System tests are likely to exercise huge parts of the code and are 16 | not useful when looking at code coverage. 17 | 18 | Due to this complexity we haven't put an automated system in place yet. 19 | 20 | @see unittests A more detailed description of the individual tests, although only manually tagged tests will show up in that list. 21 | 22 | */ -------------------------------------------------------------------------------- /doxygen-scripts/doxygen_version.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # $%BEGINLICENSE%$ 4 | # Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. 5 | # 6 | # This program is free software; you can redistribute it and/or 7 | # modify it under the terms of the GNU General Public License as 8 | # published by the Free Software Foundation; version 2 of the 9 | # License. 10 | # 11 | # This program is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with this program; if not, write to the Free Software 18 | # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 19 | # 02110-1301 USA 20 | # 21 | # $%ENDLICENSE%$ 22 | 23 | bzr log --limit 1 --line $1 | sed -n 's/^\([0-9]*\):.*$/\1/p' 24 | -------------------------------------------------------------------------------- /doxygen-scripts/footer.html: -------------------------------------------------------------------------------- 1 |