Isaac Connor
016fda22ce
reduce duplicated db code from Config. Use fully namespace'd variables so we can use require instead of use
2019-03-01 12:31:41 -05:00
Isaac Connor
fd310c0f0a
Merge branch 'master' into storageareas
2019-02-22 11:33:47 -05:00
Isaac Connor
2b90bf15a6
Improve session ( #2487 )
...
* Introduce ZM_COOKIE_LIFETIME which sets the life of the SESSION cookie, instead of using what is in php.ini
* Use zm specific session functions, which are now located in includes/session.php. Be more agressive about clearing session on logout.
* Move session code to includes/session.php
* remove duplicate line
* Move is_session_open to session.php. Move code to clear a session into session.php
* improve debug line when there is a problem updating config entry
* split description into description and help text for COOKIE_LIFETIME
* Remove redirect on line. We do it in javascript on postlogin view so that we can say logging in before switching to console
* If there is a username in the session, then we are logged in, but we need to load the user object from the db. We can't just trust it from the session. The user may have been deleted and having that data in the session can be a security risk. So load the user object on every request.
* Use session_regenerate_id instead of our broken code to do the same
* Move auth code to includes/auth.php
* add autocomplete tags to username and password inputs
* Don't redirect to login if we are already viewing login. Put auth before including skin includes
* need to include session.php in auth.php
* update to php namespace
2019-02-22 09:43:38 -05:00
Chris
b8117f7fc9
Add support for control of Amcrest cameras ( #2536 )
...
* Add a control module to support the current Amcrest HTTP API
This patch adds ZoneMinder::Control::Amcrest_HTTP
This module is adapted and improved from one available on the ZoneMinder
forums.[1] It appears that a number of individuals have contributed to
it. This is an attempt to correct some of its interactions with ZM::Control
and friends as well as enhance and extend supported control features
for Amcrest cameras.
This work is based on Amcrest HTTP Protocol API Specifications
Rev. 2.12 2017-03-15
[1]https://forums.zoneminder.com/download/file.php?id=1878
* Fixing zoom methods
* Misc. cleanup of comments, etc.
* Fixing up POD, etc.
* Converting line endings to Unix
* Fixing up preset methods
The current Amcrest HTTP API does not support a Home command per se. So this
method is set up to send the camera to the first preset position. Of course,
this presupposes that the user will setup a preset #1 otherwise the command
will fail on a bad preset error.
If a future version of the API supports a true Home command, we'll adjust
at that point. For now this seems to be a useful workaround.
* Removing duplicate home method
* Adding moveAbs method
I'm putting this in, but absolute camera movement does not seem to be well
supported in the classic skin ATM. Reading
www/skins/classic/include/control_functions.php seems to indicate
a faulty implementation, unless I'm reading it wrong. I see nowhere
where the user is able to specify the absolute location to move to. Rather,
the call is passed back movement in increments of 1 unit. At least with the
Amcrest/Duhua API this would result in the camera moving to the 1* or 0* etc.
position.
moveAbsUp, Down, Left, Right, etc. Doesn't make sense given the definition
of Absolute movement.
* Adding a note about the moveMap method
This method does not appear to be implemented in the classic skin,
but we'll leave it here for future implementation. Caveat: It may
or may not work as-is.
* Fixing up zoomConTele/Wide methods
* Adding a vanilla control type for the Amcrest HTTP API
Please note that this control type matches (mostly) the currently
available control options in Amcrest_HTTP.pm. It does not match
all (or possibly any) of the control options available on a specific
Amcrest camera. The user may need to create their own control type
specific to the camera model they are using.
* Removing misplaced comment
Thanks to connortechnology for pointing this out!
2019-02-22 09:17:28 -05:00
Isaac Connor
24845e0457
Merge branch 'master' into storageareas
2019-02-14 15:40:52 -05:00
Isaac Connor
62bf7d54f1
close sth's on Fatal to prevent error message
2019-02-14 15:40:42 -05:00
Isaac Connor
a3374aa26c
Merge branch 'reload_zmfilter_on_filter_save' into storageareas
2019-02-11 13:26:53 -05:00
Steve Gilvarry
87413d447d
Set CSRF on as the default for new installs. Fixes #2507 ( #2508 )
...
* Set CSRF on as the default for new installs. Not sure we can impact config on existing installations.
* Fix the spelling mistake that I noticed after editing this.
2019-02-10 13:08:58 -05:00
Isaac Connor
555cb4780d
Merge branch 'master' into storageareas
2019-02-10 12:37:45 -05:00
Isaac Connor
e2fc0ea25d
Increase navbar refresh times. 5 seconds is way too fast
2019-02-08 10:22:42 -05:00
Isaac Connor
d121ecab75
Merge branch 'improve_session' into storageareas
2019-02-05 15:48:42 -05:00
Isaac Connor
5b288d3b67
split description into description and help text for COOKIE_LIFETIME
2019-02-05 11:39:50 -05:00
Isaac Connor
a176c9bbd2
improve debug line when there is a problem updating config entry
2019-02-05 11:39:21 -05:00
Isaac Connor
4e10e6f0ae
Merge branch 'improve_session' into storageareas
2019-01-30 15:26:37 -05:00
Isaac Connor
1e56e750cf
Introduce ZM_COOKIE_LIFETIME which sets the life of the SESSION cookie, instead of using what is in php.ini
2019-01-30 11:04:38 -05:00
Isaac Connor
cc8de69eba
Merge branch 'master' into storageareas
2019-01-22 11:44:42 -05:00
Isaac Connor
e60e3666d5
Fix comment
2019-01-22 10:53:53 -05:00
Matt N
0619a4a161
Validate cnj, obr, and cbr arguments in parseFilter ( #2434 )
2019-01-22 08:03:25 -05:00
Isaac Connor
b8d065275b
Merge branch 'master' into storageareas
2019-01-04 15:22:18 -05:00
techrockedge
571daec8fc
Merge branch 'master' of git://github.com/ZoneMinder/zoneminder
...
refresh with master
2019-01-03 15:02:57 -05:00
techrockedge
e21b8dc1f9
changed to ZM db functions
2019-01-02 16:01:33 -05:00
techrockedge
51d3e6b2cd
changed to ZM db functions
2019-01-02 14:09:35 -05:00
Andrew Bauer
bd2b761bcd
change configdata.pm.in defaults
2018-12-31 09:54:48 -06:00
techrockedge
f25e176b88
added create table if not exist
2018-12-29 20:57:46 -05:00
techrockedge
2cac25d353
removed unused preset code
2018-12-29 19:35:16 -05:00
techrockedge
bcbe9075f9
fixed preset delete and set
2018-12-28 21:11:52 -05:00
techrockedge
826201a3f9
Merge branch 'master' of git://github.com/ZoneMinder/zoneminder
2018-12-28 20:32:04 -05:00
Isaac Connor
1a1231fdaa
Merge branch 'master' into storageareas
2018-12-28 10:47:27 -05:00
Jonathan Meredith
265a73ab29
Spelling mistake fix
...
Changed his to this
2018-12-27 22:26:07 -05:00
techrockedge
f815aaa5f5
Merge branch 'master' of git://github.com/ZoneMinder/zoneminder
2018-12-21 19:46:45 -05:00
Isaac Connor
64bdf40e86
Logging and whitespace changes. No logical changes
2018-12-20 13:50:55 -05:00
Isaac Connor
eccfdb8a6a
Logging and whitespace changes. No logical changes
2018-12-20 13:50:07 -05:00
techrockedge
180a4b07b1
foscam r2c ptz
2018-12-14 19:13:41 -05:00
techrockedge
51b4c27b27
foscam r2c ptz
2018-12-14 17:30:45 -05:00
Isaac Connor
0bfe1007c8
Merge branch 'master' into storageareas
2018-12-14 10:16:08 -05:00
Pliable Pixels
ebaafef607
Ffmpeg logs optional ( #2345 )
...
* make ffmpeg logs configurable via web
* fix Info
2018-12-14 08:01:23 -05:00
Isaac Connor
b61eb7d4fc
Merge branch 'master' of github.com:ZoneMinder/ZoneMinder
2018-12-13 10:53:56 -05:00
Isaac Connor
0c5eead929
Merge branch 'master' into fix_startup_db_connection
2018-12-13 10:53:34 -05:00
Isaac Connor
0c7f91c38a
Merge branch 'master' into storageareas
2018-12-03 16:25:28 -05:00
Isaac Connor
f2f1e230d1
put back missing !
2018-12-03 16:25:03 -05:00
Isaac Connor
df0b600431
Merge branch 'master' into storageareas
2018-11-29 10:49:06 -05:00
Isaac Connor
45a9f9158d
spelling mistakes
2018-11-29 10:45:30 -05:00
Isaac Connor
3f4e918b9e
Merge branch 'zmaudit_check_other_storageareas' into storageareas
2018-11-26 15:09:14 -05:00
Isaac Connor
d6fb4e1910
Add StorageId function to clear Storage when you set a new StorageId. Clear Path when assigning a new StorageArea
2018-11-26 15:09:04 -05:00
Isaac Connor
dea5db9dd9
Merge branch 'zmaudit_check_other_storageareas' into storageareas
2018-11-23 11:11:39 -05:00
Andrew Bauer
e5f2212a32
fix gpl mailing address
2018-11-15 20:00:53 -06:00
Isaac Connor
35b439629c
Merge branch 'master' of github.com:ZoneMinder/ZoneMinder
2018-11-13 18:14:35 -05:00
Isaac Connor
d2dc23b4e9
fixes, better logging
2018-11-13 16:35:09 -05:00
Isaac Connor
73c52705f2
Merge branch 'fix_32bit_alignment' into storageareas
2018-11-13 14:22:06 -05:00
Isaac Connor
e8ed1367d7
Merge branch 'master' into storageareas
2018-11-13 14:22:00 -05:00
Isaac Connor
798bf68df1
add function time_of_youngest_file to determine the youngest file in an event dir, so as to guess the starttime of the event.
2018-11-13 14:13:32 -05:00
Isaac Connor
31b0ed107d
remove epadding2, to restore the 64bit alignment of startup_time. A proper fix instead of #2258
2018-11-13 14:02:44 -05:00
Isaac Connor
07d6d799ce
Merge branch 'master' of github.com:ZoneMinder/ZoneMinder
2018-11-13 10:30:58 -05:00
Isaac Connor
993da131f1
tidy up and use Error instead of Carp::croak
2018-11-13 10:29:19 -05:00
Isaac Connor
1e98ecb595
Sort keys in to_string
2018-11-09 12:14:39 -05:00
Isaac Connor
5f81e9111f
Add Scheme and SaveJPEGs to Event fields, and fix setting Scheme
2018-11-09 12:14:05 -05:00
Andrew Bauer
d6877b763d
Merge pull request #2298 from connortechnology/log_use_global_dbh
...
Use the global dbh in ZoneMinder::Database instead of keeping our own…
2018-11-07 12:29:11 -06:00
Isaac Connor
0e3eb0df17
remove extra quotes, google code style, update pod docs
2018-11-07 11:26:48 -05:00
Isaac Connor
0ebcef7324
in poddoc and over needs a =back
2018-11-07 11:01:12 -05:00
Isaac Connor
56bdd53757
Use the global dbh in ZoneMinder::Database instead of keeping our own copy of it in Logger
2018-11-07 10:40:44 -05:00
Isaac Connor
93bf05be4e
Merge branch 'zmrecover' into storageareas
2018-11-06 20:37:35 -05:00
Isaac Connor
9a96785fa4
Add in Frame.php
2018-11-06 20:37:00 -05:00
Isaac Connor
5a6ffe758a
Merge branch 'zmrecover' into storageareas
2018-11-06 15:29:02 -05:00
Isaac Connor
181a8c29e1
Add SaveJPEGs to Event
2018-11-06 15:28:37 -05:00
Isaac Connor
6d6d25261f
Merge branch 'zmrecover' into storageareas
2018-11-06 12:14:54 -05:00
Isaac Connor
3cd1887d54
Cleanup POSIX use. Fix conflict between POSIX and Date::Format.
2018-11-06 12:14:42 -05:00
Isaac Connor
aa9bb81b61
Merge branch 'zmrecover' into storageareas
2018-11-06 09:57:01 -05:00
Isaac Connor
e0bc0484d4
Add empty string default for DefaultVideo
2018-11-06 09:56:29 -05:00
Isaac Connor
18b327b4ac
Turn off massive debugging
2018-11-06 09:55:53 -05:00
Isaac Connor
e1a5940254
Merge branch 'zmrecover' into storageareas
2018-11-05 16:53:01 -05:00
Isaac Connor
451c42ddf5
Implement rmrecover script. Flush out Object code to support find, find_one, find_sql, improve to_string, etc.
2018-11-05 16:52:34 -05:00
Isaac Connor
4b24bf4e36
merge from storageareas, fully specify Module for zmDbDisconnect as we havn't 'used' it
2018-11-02 11:48:35 -04:00
Isaac Connor
372c6b7f69
explicitly call ZoneMinder::Database::zmDbDisconnect
2018-10-17 20:57:24 -04:00
Isaac Connor
7149576a7c
Merge branch 'smarter_packetqueue' into storageareas
2018-10-15 10:59:50 -04:00
Andrew Bauer
7ffc5ab266
Merge branch 'master' into control_plugin_psia
2018-10-11 09:32:06 -05:00
Isaac Connor
1958351a13
Merge branch 'master' into storageareas
2018-10-09 10:24:24 -04:00
Isaac Connor
56b31becb2
Add explicit db disconnect in Fatal(). If we don't disconnect then we leave sockets hanging around in TIME_WAIT (I think).
2018-10-04 10:47:38 -04:00
Isaac Connor
33bd30fbbd
Merge branch 'master' into storageareas
2018-09-28 13:40:18 -04:00
Isaac Connor
d45406bce7
ode style and some more debug
2018-09-28 11:50:34 -04:00
Isaac Connor
e6f366c5cb
Merge branch 'master' of github.com:zoneminder/ZoneMinder
2018-09-28 09:48:37 -04:00
Isaac Connor
5fd1034b0b
Add ServerId to perl Logging to DB
2018-09-25 13:53:50 -04:00
Isaac Connor
af69dab9c5
Merge branch 'master' of github.com:zoneminder/ZoneMinder
2018-09-22 14:58:28 -04:00
Isaac Connor
6aa71dfc11
Fix calculation of LinkPath, as it was using RelativePath instead of Path
2018-09-21 10:31:11 -04:00
Jonathan Lassoff
c7e1e7b901
Control plugin for Dahua PTZ cameras ( #2192 )
...
* Control plugin for Dahua PTZ cameras
* Update http/https protocol handling
* Update doc and license
* Remove license from top of file
* Use named regex capture groups for ControlAddress parsing
* Remove trailing whitespace in Trendnet.pm
2018-09-20 12:29:54 -04:00
Isaac Connor
f2a117c85b
fix undefined $event
2018-09-14 11:06:08 -04:00
Isaac Connor
ca3fd5ddf8
get rid of deleteEventFiles function. People should use the object method
2018-09-14 10:08:35 -04:00
Isaac Connor
11137d271e
Create utility functions in event for creating linkPath and idPath. Replace the code in Generate::createEventPath with using these nice new functions
2018-09-14 10:06:36 -04:00
Isaac Connor
63bed3af10
replace all uses of getEventPath with object function event->Path(). Remove getEventPath
2018-09-14 09:23:09 -04:00
Jonathan Lassoff
7bcf9d59e1
Use named regex capture groups.
2018-09-12 12:55:31 +00:00
Isaac Connor
684f48979a
Merge branch 'master' of github.com:ZoneMinder/ZoneMinder
2018-09-11 14:30:19 -04:00
Isaac Connor
9e8a876101
Fix finding Storage by ServerId
2018-09-09 13:28:11 -04:00
Isaac Connor
b7aa11f109
Fix infinite loop reconnecting to db in Logging
2018-09-07 16:30:24 -04:00
Isaac Connor
def72b8e66
tidy up license
2018-09-07 16:29:59 -04:00
Isaac Connor
730e1fda37
We only use File::Slurp when moving files to s3fs so only require it if doing that
2018-09-05 10:14:45 -04:00
Isaac Connor
c34f899d31
eliminate warning when no Storage area is set.
2018-09-04 13:57:35 -04:00
Andrew Bauer
13558b2c12
convert existing http urls in help text to markdown
2018-09-04 07:39:46 -05:00
Jonathan Lassoff
4deaa49048
Remove license from top of file
2018-09-04 10:48:28 +00:00
Andy Bauer
ce48343d1a
embed link to privacy statment in telemetry help text
2018-09-03 13:55:11 -05:00
Isaac Connor
f4c2d8adea
Merge branch 'master' of github.com:ZoneMinder/ZoneMinder
2018-09-03 12:29:09 -04:00
Jonathan Lassoff
b3a0b0e731
Update doc and license.
2018-09-03 14:08:59 +00:00
Jonathan Lassoff
a3baf2c371
Update protocol selection handling
2018-09-03 14:08:52 +00:00
Jonathan Lassoff
2074e1ccc3
use strict and remove base class methods
2018-09-03 13:51:33 +00:00
Isaac Connor
b1fe80a0bd
Add JSON/MaybeXS to dependencies, replacing JSON/Any
2018-08-30 18:30:33 -04:00
Andrew Bauer
8f0fb0843a
Add Privacy Statement ( #2194 )
...
* initial implementation of privacy popup
* split the privacy text and run it through translate
* change style of toggle button, validate the form
* fix copy/paste error
* fix typos
* display privacy view inline rather than popup
* display privacy inline if show_privacy flag set
* redirect to console after selection is made
* typo
* css formatting
* update privacy verbiage
* create and load default.php
* fix typos
* fix erroneous copy/paste
2018-08-30 13:25:02 -04:00
Jonathan Lassoff
c605769fc9
Add Control plugin for PTZ cameras supporting the PSIA IP Media Device API
2018-08-28 15:28:52 +00:00
Isaac Connor
1fa78c5aa8
Fix up licensing and copyright
2018-08-17 08:14:13 -04:00
Isaac Connor
15a6eb7e78
Revert "Add Privacy Statement ( #2176 )" ( #2179 )
...
This reverts commit 56f4d768c2
.
2018-08-13 15:33:43 -04:00
Andrew Bauer
56f4d768c2
Add Privacy Statement ( #2176 )
...
* initial implementation of privacy popup
* split the privacy text and run it through translate
* change style of toggle button, validate the form
* fix copy/paste error
* fix typos
* display privacy view inline rather than popup
* display privacy inline if show_privacy flag set
* redirect to console after selection is made
* typo
* css formatting
* update privacy verbiage
* push privacy text to all language files
2018-08-13 15:23:44 -04:00
Isaac Connor
e6d1a9447e
rename TVIP862 to Trendnet and delete TVIP672WI
2018-08-13 11:12:15 -04:00
Isaac Connor
67a3ff392b
Merge branch 'master' of github.com:ZoneMinder/ZoneMinder
2018-08-13 11:07:13 -04:00
Isaac Connor
70ba0ad342
Merge https://github.com/michaelbarkdoll/ZoneMinder into trendnet
2018-08-13 11:05:50 -04:00
Andrew Bauer
3dc424282b
Support quoting config variables ( #2175 )
...
* allow handling of quotes in config files
* copy paste error
* surround zm_arptool in quotes
2018-08-11 12:56:16 -04:00
Roman Dissertori
48b91c5544
Bugfix in Control and added new Camera ( #2171 )
...
* fixed control typos
missing word "s" for "Controls" Table for database queries
* added Dericam P2 camera Control
* fixed missing CanReset column
* Update DericamP2.pm
* added some more missing controls
CanSleep, CanWake
* Update DericamP2.pm
* Update DericamP2.pm
* Update DericamP2.pm
* Update DericamP2.pm
* Update DericamP2.pm
* Update DericamP2.pm
* Update DericamP2.pm
* Update zm_create.sql.in
2018-07-28 09:26:02 -04:00
Isaac Connor
7e63b322c1
Merge branch 'master' of github.com:zoneminder/ZoneMinder
2018-07-22 09:58:15 -04:00
Daedilus
26d6b99018
Added new control script for iPhone ip camera software ( #2161 )
...
https://itunes.apple.com/ca/app/ipcamera-high-end-network-camera/id570912928?mt=8
See https://forums.zoneminder.com/viewtopic.php?f=9&t=27386 for details.
2018-07-17 08:09:15 -04:00
Isaac Connor
d3034670a0
Merge branch 'master' into storageareas
2018-07-10 11:03:33 -04:00
Dmitry Smirnov
756369f2d8
JSON::Any --> JSON::MaybeXS ( Closes : #770 ). ( #2151 )
2018-07-10 10:27:03 -04:00
Andrew Bauer
add3682128
fix spelling
2018-07-05 08:00:24 -05:00
Isaac Connor
76abad0a96
escape {} in regexp
2018-07-01 18:19:11 -04:00
Isaac Connor
e98a4b1562
Merge branch 'master' into storageareas
2018-06-25 14:31:00 -04:00
Andrew Bauer
422d2d6dba
set telemetry default to NO
...
This is the first step for GDPR compliance. A future pr will add a prompt which explains what the telemetry pr is for and whether they want to turn it on.
2018-06-22 08:10:48 -05:00
Isaac Connor
3cb5ef6a94
Spacing
2018-06-21 10:00:54 -04:00
Andrew Bauer
3ffd30ffbd
Allow selection of different source column filtering on the console ( #2132 )
2018-06-20 11:12:43 -04:00
Isaac Connor
a594a1b6f1
Merge branch 'master' into storageareas
2018-06-15 09:45:11 -04:00
Isaac Connor
f5026542f8
retest STDERR for terminal output on reinit. Simplify databaseLevel code to clear dbh always when not NOLOG.
2018-06-11 16:05:57 -04:00
Isaac Connor
d5d206f00a
Force disconnect when reinitialize Logging
2018-06-11 15:57:38 -04:00
Isaac Connor
65a5af6f92
remove extra space
2018-06-11 15:49:39 -04:00
Isaac Connor
e32b432fea
Always re-connect to the db on initialize
2018-06-11 14:35:54 -04:00
Isaac Connor
f5f4649886
Fix #2100
2018-06-08 15:14:11 -04:00
Isaac Connor
524c18eb4c
Don't print to STDERR when can't log to db and recheck hasTerm on logging reinit
2018-06-08 15:13:48 -04:00
Isaac Connor
5cdbc85dcc
Slightly more efficient logPrint. Don't create the message string unless it is going to be used
2018-06-08 14:18:38 -04:00
Isaac Connor
e88c73195d
Merge branch 'fix_perl_logging' into storageareas
2018-06-08 09:30:16 -04:00
Isaac Connor
d30d8efaf0
clear stored sth on initialize and re-initialize
2018-06-08 09:17:25 -04:00
Isaac Connor
fc0369b9a4
when detecting a down db connection, need to clear the stored sth as it is no longer valid.
2018-06-08 09:04:31 -04:00
Isaac Connor
be61c50efa
Fix setting Debug option when ZM_LOG_DEBUG_TARGET is empty and fix setting effectiveLevel
2018-06-07 17:25:02 -04:00
Isaac Connor
627ee8aeb3
close syslog in order to not leak ram
2018-06-04 14:59:42 -04:00
Isaac Connor
2eb3c8ef6d
use a stored prepared sth instead of re-preparing it
2018-05-31 10:24:54 -04:00
Isaac Connor
13e11a1e7f
Fix potention div vy zero
2018-05-22 15:52:12 -04:00
Isaac Connor
4bbd8d6ab9
Use zmDbConnect in Database instead of duplicating all the connect code
2018-05-12 14:36:38 -07:00
Isaac Connor
5071fd1ba1
Add mysql_auto_reconnect and force autocommit on
2018-05-12 14:35:43 -07:00
Isaac Connor
1fed8f3428
finish handling a change of Realm. Actually makes it unneccessary to specify the Realm in ControlDevice
2018-05-11 13:14:54 -04:00
Isaac Connor
16e63f81df
fully specify ZoneMinder::Database::ZmDbConnect
2018-05-11 12:42:56 -04:00
Isaac
84c94efaa8
Move redunddant close methods into parent. Use Fatal instead of croak. Croak is not defined so it causes an infinite loop
2018-05-04 02:26:25 +02:00
Isaac Connor
769d4a8693
DB connect can die, so put it in an eval
2018-05-03 09:50:54 -07:00
Isaac Connor
62f6e4a78a
Cleanup lock_and_load add some debug
2018-05-03 09:30:44 -07:00
Isaac Connor
095f4614da
don't move event if there are no files. Add some more debug
2018-05-03 09:30:06 -07:00
Isaac Connor
a1fb944afe
google code style and increase the logging level when reporting that the ControlDevice is wrong.
2018-05-02 11:45:52 -04:00
Isaac Connor
f4b6bde3c2
Put print to STDERR before logging to db because it is more reliable than db
2018-04-30 13:02:43 -04:00
Isaac Connor
8e5ee94420
If we fail to connect, the dbh->trace will crash
2018-04-30 13:02:13 -04:00
Isaac Connor
3f05d46012
Merge zmdc.pl fixes. We can now handle database disconnects gracefully.
2018-04-30 07:09:23 -07:00