Commit Graph

62 Commits

Author SHA1 Message Date
Isaac Connor
b8e3cc33f0 make it so that the queue will more likely be empty on termination. Do not queue more sql if terminate flag is set. 2021-05-10 12:54:35 -04:00
Isaac Connor
76080cb857 add a stop function to dbQueue to clear out the queue before we kill log. 2021-04-23 09:25:07 -04:00
Isaac Connor
cbec5b2800 Implement zmDbDoUpdate which returns -mysql_errer or # of rows modified 2021-03-11 13:48:16 -05:00
Isaac Connor
43e7e612c5 Have to turn off DB logging when logging from a db query or else we infinite loop 2021-03-11 13:07:47 -05:00
Isaac Connor
1adeda6241 Add debugging of sql 2021-03-04 13:26:10 -05:00
Peter Keresztes Schmidt
3dd52a92eb db: Make sure to bind only rvalues when pushing to zmDbQueue
With this we can ensure that no copy-construction of the SQL string takes place.
Regarding calling semantics: The pushed SQL string will be moved and cannot be reused.
2021-02-25 23:08:43 +01:00
Isaac Connor
8aeb4ab758 Switch db_mutex to a std::mutex. Use modern locking with it. Use zmDbDo or dbQueue.push where appropriate. code cleanup. 2021-02-25 12:26:26 -05:00
Isaac Connor
fdf515ca10 rough in a db queue thread. Use it in zm_logger so that we don't have to aquire the db lock 2021-02-24 19:59:55 -05:00
Isaac Connor
a8e63e4f20 watch for zm_terminate in db while loops 2021-02-19 12:07:12 -05:00
Isaac Connor
63a45888a0 Introduce utility functions zmDbDo and zmDbDoInsert. 2021-02-18 16:01:30 -05:00
Peter Keresztes Schmidt
cbb37337cb DB: Improve resource cleanup on connection failure 2021-02-07 20:16:16 +01:00
Peter Keresztes Schmidt
cc6ea04afe Reformat touched code 2021-02-07 13:55:08 +01:00
Peter Keresztes Schmidt
3690da90ec DB: Call mysql_library_end when closing the connection
With the previous commit double initialization of the mysql library is avoided which could have led to the segfaults.
2021-02-07 13:46:33 +01:00
Peter Keresztes Schmidt
0dbc39ee25 Cleanup and reorganize includes
With this commit a unified structure for includes is introduced.
The general rules:
 * Only include what you need
 * Include wherever possible in the cpp and forward-declare in the header

 The includes are sorted in a local to global fashion. This means for the include order:
  0. If cpp file: The corresponding h file and an empty line
  1. Includes from the project sorted alphabetically
  2. System/library includes sorted alphabetically
  3. Conditional includes
2021-02-04 18:02:01 +01:00
Peter Keresztes Schmidt
5a57efdfe2 Replace deprecated C header includes with the C++ ones. 2021-02-04 05:39:03 +01:00
Isaac Connor
e496679efd Set transaction isolation level to READ COMMITTED so that concurrent event inserts don't deadlock 2021-01-12 14:19:04 -05:00
Isaac Connor
74972be9b5 spacing, code style. Set row=nullptr to quiet valgrind 2020-11-18 13:15:52 -05:00
Peter Keresztes Schmidt
8f980a1168 Convert NULL/0 to nullptr
The 0 -> nullptr changes should definitely improve readability.
2020-08-26 22:03:40 +02:00
Isaac Connor
efbab4e2bc Dont' call mysql_library_end as it segfaults and hangs. 2020-05-14 12:00:36 -04:00
Isaac Connor
a5ec89ab1b use bool instead of my_bool to fix #2886 2020-03-26 12:07:58 -04:00
Isaac Connor
cbf9931371 Don't log about calling dbConnect when already connected. We make this call in zm_logger, it is just going to have to be acceptable to call it multiple times. 2019-09-17 10:29:30 -04:00
Isaac Connor
316dbb5eb8 Implement a RecursiveMutex class which is an explicit Recursive Mutex. Change the db mutex to a recursive Mutex 2018-06-01 11:27:35 -04:00
Isaac Connor
bbb10fa4b4 Turn off ffmpeg debugging output, as it seems to conflict with the code at zm_db.cpp 34 2018-04-24 12:40:15 -04:00
Isaac Connor
21413c0fe6 comment out corrupting code 2018-04-24 11:49:10 -04:00
Isaac Connor
a110ae71f5 put lines back preventing double open of mysql 2018-04-23 13:48:14 -04:00
Isaac Connor
3a5ff289d0 perfect the whitespace 2018-03-27 10:04:32 -04:00
Isaac Connor
43bdaff0a3 Merge ../ZoneMinder.master into storageareas 2018-03-22 11:32:22 -04:00
Isaac Connor
b220b8f588 mostly white space fixes, but also, unlock on error condition 2018-03-22 10:25:47 -04:00
Isaac Connor
06f10e0ed3 fix double free of mysql_result 2018-03-22 10:04:41 -04:00
Isaac Connor
a1213142df whitespace 2018-03-09 07:22:59 -05:00
Isaac Connor
b3d23ab233 merge zma_to_thread version of db functions, which include a mutex lock 2018-03-01 19:20:29 -08:00
Isaac Connor
c04ec1b8a8 fix mem corruption 2017-12-03 12:50:57 -05:00
Isaac Connor
8941bc80b8 reduce log level for success debug message 2017-09-25 16:21:46 -04:00
Isaac Connor
49464d381a Merge branch 'master' into storageareas 2017-08-14 10:44:40 -04:00
ralimi
ecb7df0e8b Support SSL for mysql connections (#1965)
* Fix install location for config files when building to alternate directory.

With the previous code, we ended up with a directory structure like the following:

$ find /etc/zm/conf.d/
/etc/zm/conf.d/
/etc/zm/conf.d/01-system-paths.conf
/etc/zm/conf.d/conf.d
/etc/zm/conf.d/conf.d/README
/etc/zm/conf.d/conf.d/02-multiserver.conf

* Omitted README file that should have appeared in /etc/zm/conf.d

* Fix location for configs when building to alternate directory.

* Fix works, but this should go on a branch instead.

* Fix works, but this should go on a branch instead.

* Fix location for configs when building to alternate directory.

With the previous code, we ended up with a directory structure like the following:

$ find /etc/zm/conf.d/
/etc/zm/conf.d/
/etc/zm/conf.d/01-system-paths.conf
/etc/zm/conf.d/conf.d
/etc/zm/conf.d/conf.d/README
/etc/zm/conf.d/conf.d/02-multiserver.conf

* Remove double quotes. This is a list of paths.

* Allow SSL database connection to be secured with SSL.

* Fix incorrect variable name

* Fix PHP syntax errors

* SSL connection parameters must also be passed in API.

* Revert fixes to build files; they should not be in this branch.
2017-08-14 10:30:42 -04:00
Isaac Connor
d3ec50aa69 various fixes plus use global db functions in logger 2017-07-06 17:45:23 -04:00
Isaac Connor
5ae34a7561 Merge branch 'master' into storageareas 2017-01-02 09:39:10 -05:00
Andy Bauer
254fcbcef7 update gpl 2 mailing address in source files 2016-12-26 09:23:16 -06:00
Isaac Connor
2451768295 Merge branch 'master' into storageareas 2016-08-08 18:08:46 -04:00
josh4trunks
2ab79820a1 Add back changes 2016-05-22 08:08:12 -07:00
Isaac Connor
819dad455e whitespace/tabs 2016-04-29 09:11:14 -04:00
Isaac Connor
44f32f46b7 deprecate zmdbFetchOne in favor of zmDbRow 2016-04-20 11:56:58 -04:00
Isaac Connor
d2870f0692 move the mysql_free_result, looks like we can't free it until we free the row 2016-04-20 09:44:11 -04:00
Isaac Connor
03b1ced568 tabs to spaces and use 2space indenting 2016-04-04 10:11:48 -04:00
Isaac Connor
60410c98d6 use new db functions in zm_config.cpp 2015-07-16 16:44:09 -04:00
Isaac Connor
48fa0c3d42 add some utility db functions 2015-07-16 13:04:28 -04:00
manupap1
b4732e4750 Close logger and database on exit 2014-11-14 22:17:44 +01:00
stan
3aa6c13c64 Added auto reconnect option to database
git-svn-id: http://svn.zoneminder.com/svn/zm/trunk@3499 e3e1d417-86f3-4887-817a-d78f3d33393f
2011-08-23 13:31:04 +00:00
stan
6ff385e407 git-svn-id: http://svn.zoneminder.com/svn/zm/trunk@3459 e3e1d417-86f3-4887-817a-d78f3d33393f 2011-06-21 09:19:10 +00:00
stan
e6041e24a7 Uppdated copyright headers
git-svn-id: http://svn.zoneminder.com/svn/zm/trunk@2611 e3e1d417-86f3-4887-817a-d78f3d33393f
2008-07-25 09:33:23 +00:00