res_smdi.c: Fix module ref counting and inverted test.
authorRichard Mudgett <rmudgett@digium.com>
Tue, 2 Oct 2018 21:15:37 +0000 (16:15 -0500)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 3 Oct 2018 16:41:32 +0000 (11:41 -0500)
commit3601329c5a482856a6a4846ffc0bb42c93fb3425
treeb89f7693a16260bd33caf9f52df5ca71bb73e36e
parent305d08f11270b7afee9f573f2f69bb5728748a55
res_smdi.c: Fix module ref counting and inverted test.

I think this module is so screwed up that it doesn't work anymore.  Even
with these attempts to fix things it still won't gracefully shut down.
The module refs will not go to zero to allow unloading the module.

* Fix module ref counting dealing with the SMDI interface object.  There
were several off-nominal paths that unbalanced the module ref count.  Also
the destructor freed the ao2 object itself which is bad.  Made the
smdi_read thread not hold its own ref to the SMDI interface object so when
all refs go away the destructor will stop the listener thread.

* Fixed the smdi_load() return code of 1 concerning the number of
listeners.  The test was inverted.

Change-Id: Ic288db51b58e395d6a2fc3847f77176c16988784
res/res_smdi.c