Commit Graph

61 Commits

Author SHA1 Message Date
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
stan
f66aa5e10e Updated static config to use strings
git-svn-id: http://svn.zoneminder.com/svn/zm/trunk@2603 e3e1d417-86f3-4887-817a-d78f3d33393f
2008-07-24 17:08:50 +00:00