aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFiles
2022-08-21Version 2.8: Support for Varnish 7.1HEADv2.8masterSergey Poznyakoff1
2020-03-27Drop support for Varnish versions prior to 6.0Sergey Poznyakoff2
2020-03-23Restore backward compatibility with <6.2Sergey Poznyakoff2
2020-03-03Support for Varnish 6.3.1v2.6Sergey Poznyakoff2
2019-07-10Use wordsplit for a submoduleSergey Poznyakoff3
2019-02-15Improve error handling in mysql.cSergey Poznyakoff1
* src/mysql.c (check_errno): Always print the failed query in full. Don't treat ER_PARSE_ERROR and ER_EMPTY_QUERY as fatal errors.
2019-02-13Implement two new flags and a special req.http header to indicate errorsSergey Poznyakoff2
* NEWS: Document changes. * doc/vmod-dbrw.3: Likewise. * doc/vmod-dbrw.texi: Likewise. * configure.ac: Version 2.4.90 * src/dbrw.h (dbrw_config): New member: match_type * src/vmod_dbrw.c (parse_flags): Handle "eq" and "regex" flags. (findmatch): Handle the "eq" flag. (do_rewrite): Return error code. (vmod_rewrite): Set the X-VMOD-DBRW-Error header on errors. * tests/atlocal.in (at_vcl_backend): Special handling for X-VMOD-DBRW-Error. * tests/initdb.at: Test the 'eq' flag. * tests/rewrite07.at: New testcase. * tests/Makefile.am: Add new testcase. * tests/testsuite.at: Likewise.
2018-12-10Version 2.4; Support for varnish 6.0.2release-2.4Sergey Poznyakoff1
2018-12-08Implement the $(urlprefixes) built-in function.Sergey Poznyakoff3
* NEWS: Update. * README: Update. * configure.ac: Version 2.2.91 * doc/vmod-dbrw.3: Document the use of $(urlprefixes) built-in * doc/vmod-dbrw.texi: Likewise. * src/vmod_dbrw.c (parse_flags): Make sure status string is null-terminated. (do_rewrite): Expand built-in functions in $(). Support urlprefixes. On debug_level=100, produce detailed trace of expansions. * src/wordsplit.c: Pull from grecs commit 9097d529. * src/wordsplit.h: Likewise. * tests/initdb.at (rewrite): Change the url column. * tests/rewrite01.at: Use $(urlprefixes) in the SQL templates. * tests/rewrite02.at: Likewise. * tests/rewrite03.at: Likewise. * tests/rewrite04.at: Likewise. * tests/rewrite05.at: Likewise. * tests/rewrite06.at: Likewise.
2018-01-31Minor fixSergey Poznyakoff1
* src/dbrw.h (dbrw_backend.sql_get_column): Fix prototype.
2018-01-30Introduce connection idle timeout.Sergey Poznyakoff4
* NEWS: Updated. * configure.ac: Version 2.2.90 * doc/vmod-dbrw.3: Document connection idle timeout. * doc/vmod-dbrw.texi: Likewise. * src/dbrw.h (dbrw_backend) <sql_idle_timeout>: New method. (dbrw_config)<idle_timeout>: New member. (dbrw_connection)<timestamp>: New member. (sql_idle_timeout): New proto. * src/mysql.c (vmod_mysql_data) <mysql>: Change storage. All uses changed. (s_mysql_idle_timeout): New function. * src/sql.c (sql_idle_timeout): New function. (sql_query): Update connection timestamp. (sql_idle_timeout): New function. * src/vmod_dbrw.c (dbrw_connection_get): Force disconnect if connection remained idle for too long. Initialize cfg->idle_timeout. (vmod_config): New parameter 'timeout='
2017-08-06Version 2.1release-2.1Sergey Poznyakoff2
2017-08-05Switch to new acvmod. Remove the --with-varnish-source option. Fix the ↵Sergey Poznyakoff3
testsuite.
2017-08-05Minor fixSergey Poznyakoff1
2016-04-21Rewrite SQL configuration support.Sergey Poznyakoff4
Multiple configurations can be provided, by calling dbrw.config from branches of a conditional VCL statement. The only requirement is that exactly one dbrw.config is executed within a single HTTP session. This allows the user to select rewrite data from various databases depending on some conditions. Open SQL connections are stored in a pool and reused as needed. So far no limit on the number of connections is imposed. This is a TODO. Connections remain open during the lifetime of the module (i.e. for as long as varnish is not restarted). * src/dbrw.h (dbrw_config): New members: param_str, magic and list. (dbrw_connection): New members: magic, busy, list. * src/vmod_dbrw.c (dbrw_connection_get) (dbrw_connection_release): New functions. (dbrw_event): Install atexit function. (vmod_config): Keep a pool of configurations. (dbrw_sethdr) [VARNISHVERSION]: Remove leftover code. (vmod_rewrite): Rewrite. * src/vmod_dbrw.vcc (config, rewrite): Mark as PRIV_TASK. * doc/vmod-dbrw.3: Update docs. * doc/vmod-dbrw.texi: Update docs. * configure.ac: Raise version number
2016-01-24Varnish 4.1Sergey Poznyakoff3
* .gitmodules: New file. * acvmod: New submodule. * bootstrap: Update. * Makefile.am (ACLOCAL_AMFLAGS): Add acvmod * configure.ac: Use AM_VARNISHAPI instead of inlining the related code. Enable silent rules. Set version number 2.0.90-4.1.0 * src/Makefile.am: Enable silent rules. * tests/Makefile.am: Likewise. * tests/atlocal.in (at_vcl_backend): Remove conditional. * src/vmod_dbrw.c: Use event function. * src/vmod_dbrw.vcc: Likewise. * NEWS: Document changes.
2015-02-25Fix Varnish 3 compatibilitySergey Poznyakoff1
* src/vmod_dbrw.c (WS_Copy): Fix definition.
2014-11-12Improve the testsuiteSergey Poznyakoff1
New macro AT_DBRW_INIT ensures the test database is initialized. When finished, it creates the file .TESTINIT if the initialization succeeded or FAILURE, if it did not. The latter contains the error output from initdb. These files are then used to decide whether to proceed with the tests. All tests include this macro at the very beginning. * tests/Makefile.am (CLEANFILES): Add files. * tests/atlocal.in (INITFILE, FAILFILE): New variables. * tests/initdb.at: Rewrite as a new define AT_DBRW_INITDB. * tests/exact01.at: Include AT_DBRW_INIT at the start, Use AT_DBINIT_PREREQ * tests/testsuite.at (AT_DBRW_INIT, AT_DBINIT_PREREQ): New macros. * tests/rewrite01.at: Likewise. * tests/rewrite02.at: Likewise. * tests/rewrite03.at: Likewise. * tests/rewrite04.at: Likewise. * tests/rewrite05.at: Likewise. * tests/rewrite06.at: Likewise.
2014-11-12Add test suite.Sergey Poznyakoff5
* Makefile.am: Add tests subdir * configure.ac: Initialize testsuite. (DBRW_TEST_PARAMS,DBRW_TEST_SERVER) (DBRW_TEST_NAME,DBRW_TEST_USER) (DBRW_TEST_PASS,DBRW_TEST_DEBUG): New variables. * src/Makefile.am (noinst_LTLIBRARIES): New library libsql.la * src/dbrw.h (dbrw_backend_select): New proto. * src/be.c: New file. * src/mysql.c (check_errno): Add default clause. * src/vmod_dbrw.c (expand_backref): Fix memory deallocation error. (dbrw_sethdr): New function. (findmatch): Use dbrw_sethdr to set X-VMOD-DBRW-Status * tests/.gitignore: New file. * tests/initdb.c: New file. * tests/Makefile.am: New file. * tests/atlocal.in: New file. * tests/exact01.at: New file. * tests/initdb.at: New file. * tests/rewrite01.at: New file. * tests/rewrite02.at: New file. * tests/rewrite03.at: New file. * tests/rewrite04.at: New file. * tests/rewrite05.at: New file. * tests/rewrite06.at: New file. * tests/testsuite.at: New file.
2014-11-01Minor changeSergey Poznyakoff1
2014-10-31Update copyright yearsSergey Poznyakoff8
2014-10-31Build for both v3 and v4Sergey Poznyakoff3
* NEWS: Update version number. * configure.ac: Version 1.9.90 (VARNISHVERSION): New variable. (VARNISH3,VARNISH4): New conditionals. * src/Makefile.am (nodist_libvmod_dbrw_la_SOURCES): New variable. (vmodtool,vmodtoolargs,vccfile): Define depending on Varnish version. (.vcc.vcc3): New rule (vcc_if.c vcc_if.h): Depend on $(vccfile) Don't distribute vcc_if.c and vcc_if.h. * src/vmod_dbrw.c: Provide data types and access macros depending on the version of Varnish.
2014-10-31Initial rewrite for Varnish 4.xSergey Poznyakoff3
* configure.ac: Check for include/vapi/vsm.h in varnish source tree. Change version number to 1.0.91-vcl4 * NEWS: Update version number. * src/Makefile.am (AM_CPPFLAGS): Add $(VARNISHSRC)/bin/varnishd (vmodtool,vmodtoolargs): New variables. (vcc_if.c vcc_if.h): Rewrite the rule. * src/vmod_dbrw.c: Include pthread.h Change path to cache.h (vmod_config,vmod_rewrite): Change declaration. (expand_backref,findmatch): Change declaration. Use WS_Copy instead of WS_Dup. * src/vmod_dbrw.vcc: Rewrite.
2013-09-13Bugfixes.Sergey Poznyakoff4
* src/mysql.c (check_errno): Improve diagnostics. (s_mysql_query): Set state depending on the result of the operation and on whether it is supposed to return tuples. * src/pgsql.c (s_pgsql_query): Likewise. * src/sql.c (sql_query): Backend is responsible for switching states. * src/vmod_dbrw.c (vmod_config): Don't call atoi with NULL argument.
2013-07-20Use vmod-dbrw (with a dash) as the canonical project name.Sergey Poznyakoff6
2013-07-18Remove leftover static data.Sergey Poznyakoff2
* src/dbrw.h (dbrw_connection) <matches,matchsize>: New members. * src/vmod_dbrw.c (matches,matchsize): Remove static data. (findmatch): Update accrodingly.
2013-07-18Various fixes.Sergey Poznyakoff1
* doc/vmod_dbrw.3: Update. * src/Makefile.am: Add BUILT_SOURCES.
2013-07-17Add the documentation.Sergey Poznyakoff1
* Makefile.am (SUBDIRS): Add doc. * configure.ac: Build doc/Makefile. * doc/Makefile.am: New file. * doc/vmod_dbrw.3: New file. * src/vmod_dbrw.c (vmod_rewrite): Minor change.
2013-07-16Bugfixes.Sergey Poznyakoff2
* src/mysql.c (s_mysql_connect): If unable to connect, issue an error message. * src/vmod_dbrw.c (expand_backref): Rewrite memory management part.
2013-07-14Add PostgreSQL support.Sergey Poznyakoff1
2013-07-13Bugfix.Sergey Poznyakoff1
* src/sql.c (sql_connect): Act in accordance with the current state.
2013-07-13Bugfix.Sergey Poznyakoff1
* src/vmod_dbrw.c (get_connection): Save connection pointer as thread-specific data.
2013-07-13Add copyleft headers.Sergey Poznyakoff4
2013-07-12LintSergey Poznyakoff2
2013-07-12Minor changeSergey Poznyakoff1
2013-07-12Optional flags modify the regexp handling, return status and query disposition.Sergey Poznyakoff2
The flags can be supplied globally, using the "flags=X" parameter to drw.config, or for each record individually, by returning X in the fourth column of a tuple. In both cases X is a comma-separated list of: NC or nocase - force case-insensitive regexps case - force case-sensitive regexps (the default) QSA or qsappend - treat destination field as URL; append any query string from the original request URL to it QSD or qsdiscard - treat destination field as URL; discard any query string attached to the incoming URI R=NNN or redirect=NNN - on success, set the X-VMOD-DBRW-Status header to NNN, which must be a valid HTTP status code. * src/dbrw.h [HTTP_STATUS_LEN]: New define. <dbrw_config> (qdisp, regflags, status): New members. * src/vmod_dbrw.c (QDISP_NONE, QDISP_APPEND) (QDISP_APPEND): New constants. (dbrw_init): Fill allocated memory with zeroes. (is_http_status,parse_flags): New static functions. (vmod_config): Re-initialize conf on failure. Initialize new members of struct dbrw_config. (expand_backref): Additional argument 'qry' supplies the query part to be appended to the resulting string. (findmatch): Accept four fields per tuple, the optional fourth one supplying flags.
2013-07-12Initial commitSergey Poznyakoff10

Return to:

Send suggestions and report system problems to the System administrator.