[Home]

Summary:ASTERISK-09675: [branch] res_jabber over OpenSSL
Reporter:phsultan (phsultan)Labels:
Date Opened:2007-06-13 15:53:58Date Closed:2007-11-06 15:31:34.000-0600
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Resources/res_jabber
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) trunk-9972-1.diff
Description:The attached diff file allows to use OpenSSL API rather than GnuTLS along with the res_jabber module.

Basically, all of the networking related functions and structures have been taken out from iksemel to res_jabber, and adapted to fit with OpenSSL. The iksemel library is still used for XMPP messages parsing though.

With the provided patch, res_jabber will handle timeout values for either secured (with TLS) or unsecured connections, which is currently not the case (see the discussion in ASTERISK-9453).

I was able to connect Asterisk to Google's jabber server (SSL required). Also successfully tested with a jabberd2 server (with or without SSL).

****** ADDITIONAL INFORMATION ******

Latest code (derived from SVN trunk) is available here :
http://svn.digium.com/view/asterisk/team/phsultan/res_jabber-openssl/

To install this branch :
$svn co http://svn.digium.com/view/asterisk/team/phsultan/res_jabber-openssl/
$cd res_jabber-openssl/
$./configure
$make
$make install

The patch cleanly solves this issue : http://bugs.digium.com/view.php?id=9738
Comments:By: Jason Parker (jparker) 2007-06-13 16:02:50

We're definitely going to need some testers on this one.

Also, does this completely remove the usage of the tls support in iksemel?

By: phsultan (phsultan) 2007-06-13 16:07:32

Hi Jason,

> We're definitely going to need some testers on this one.

I'll ask for help on the users mailing list.

> Also, does this completely remove the usage of the tls support in iksemel?

Yep :). All of the networking stuff in iksemel is ignored.

By: Jason Parker (jparker) 2007-06-13 16:09:51

It looks like much of the stuff in this patch is directly from the iksemel code - we can't do that.  Anything we put in would need to be disclaimed by the author.

By: phsultan (phsultan) 2007-06-13 16:12:40

ok, I understand. Will provide a thinner patch as soon as possible.

Thanks for the review.

By: phsultan (phsultan) 2007-06-15 04:36:21

Here 's a new patch that follows previously expressed requirements.

Main modifications are :
- allow user to load / unload res_jabber.so (see ASTERISK-9453)
- do not reproduce iksemel's internal structure (stream_data) to handle the networking stuff

The latter point prevents from using some callback functions available in iksemel, without affecting much (as far as I could see) the behaviour of the module.

Jason, please let me know if the code looks ok to you so that I can call for testers on the mailing list.

By: phsultan (phsultan) 2007-06-15 04:41:37

For testing purpose, I completely removed GnuTLS on my system, compiled iksemel-1.2, and then Asterisk.

By: phsultan (phsultan) 2007-06-15 05:03:04

I just figured out that my previous patch conflicted with recent modifications made to res_jabber. Here is a new update.

By: Jason Parker (jparker) 2007-06-15 13:51:16

Thank you, this looks much better now.

By: phsultan (phsultan) 2007-06-28 10:07:51

I just set up a branch for this work :
http://svn.digium.com/view/asterisk/team/phsultan/res_jabber-openssl/

By: Digium Subversion (svnbot) 2007-11-01 17:08:47

Repository: asterisk
Revision: 88164

_U  trunk/
U   trunk/include/asterisk/jabber.h
U   trunk/res/res_jabber.c

------------------------------------------------------------------------
r88164 | qwell | 2007-11-01 17:08:46 -0500 (Thu, 01 Nov 2007) | 4 lines

Switch res_jabber to use openssl rather than gnutls.

Closes issue ASTERISK-9675, patch by phsultan.  Copied from branch at http://svn.digium.com/svn/asterisk/team/phsultan/res_jabber-openssl/

------------------------------------------------------------------------

By: Jason Parker (jparker) 2007-11-01 17:10:23

Great job phsultan.  I just decided to go ahead and commit this, rather than have it sit here and rot forever.

If this wasn't tested thoroughly enough, nobody gets to complain, because the responsibility of testing was with them. :)

By: Digium Subversion (svnbot) 2007-11-02 09:38:03

Repository: asterisk
Revision: 88245

_U  team/murf/fast-ast2/
U   team/murf/fast-ast2/UPGRADE.txt
U   team/murf/fast-ast2/apps/app_dial.c
U   team/murf/fast-ast2/apps/app_exec.c
U   team/murf/fast-ast2/apps/app_macro.c
U   team/murf/fast-ast2/apps/app_minivm.c
U   team/murf/fast-ast2/apps/app_mixmonitor.c
U   team/murf/fast-ast2/apps/app_playback.c
U   team/murf/fast-ast2/apps/app_queue.c
U   team/murf/fast-ast2/apps/app_rpt.c
U   team/murf/fast-ast2/cdr/cdr_custom.c
U   team/murf/fast-ast2/cdr/cdr_manager.c
U   team/murf/fast-ast2/cdr/cdr_odbc.c
U   team/murf/fast-ast2/cdr/cdr_sqlite3_custom.c
U   team/murf/fast-ast2/channels/chan_gtalk.c
U   team/murf/fast-ast2/channels/chan_jingle.c
U   team/murf/fast-ast2/configure
U   team/murf/fast-ast2/configure.ac
U   team/murf/fast-ast2/funcs/func_cut.c
U   team/murf/fast-ast2/funcs/func_logic.c
U   team/murf/fast-ast2/funcs/func_odbc.c
U   team/murf/fast-ast2/funcs/func_strings.c
U   team/murf/fast-ast2/include/asterisk/autoconfig.h.in
U   team/murf/fast-ast2/include/asterisk/jabber.h
U   team/murf/fast-ast2/include/asterisk/pbx.h
U   team/murf/fast-ast2/main/logger.c
U   team/murf/fast-ast2/main/pbx.c
U   team/murf/fast-ast2/makeopts.in
U   team/murf/fast-ast2/pbx/pbx_config.c
U   team/murf/fast-ast2/pbx/pbx_dundi.c
U   team/murf/fast-ast2/pbx/pbx_loopback.c
U   team/murf/fast-ast2/pbx/pbx_realtime.c
U   team/murf/fast-ast2/res/ael/pval.c
U   team/murf/fast-ast2/res/res_agi.c
U   team/murf/fast-ast2/res/res_jabber.c
U   team/murf/fast-ast2/utils/extconf.c

------------------------------------------------------------------------
r88245 | murf | 2007-11-02 09:38:02 -0500 (Fri, 02 Nov 2007) | 39 lines

Merged revisions 88164-88166,88182-88184 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

........
r88164 | qwell | 2007-11-01 16:10:33 -0600 (Thu, 01 Nov 2007) | 4 lines

Switch res_jabber to use openssl rather than gnutls.

Closes issue ASTERISK-9675, patch by phsultan.  Copied from branch at http://svn.digium.com/svn/asterisk/team/phsultan/res_jabber-openssl/

........
r88165 | qwell | 2007-11-01 16:19:56 -0600 (Thu, 01 Nov 2007) | 1 line

Crap, accidentally copied the props.  Thanks for pointing this out mvanbaak.  The odds are quite high that this will break automerge on every team branch.
........
r88166 | murf | 2007-11-01 16:26:51 -0600 (Thu, 01 Nov 2007) | 1 line

This commits the performance mods that give the priority processing engine in the pbx, a 25-30peed boost. The two updates used, are, first, to merge the ast_exists_extension() and the ast_spawn_extension() where they are called sequentially in a loop in the code, into a slightly upgraded version of ast_spawn_extension(), with a few extra args; and, second, I modified the substitute_variables_helper_full, so it zeroes out the byte after the evaluated string instead of demanding you pre-zero the buffer; I also went thru the code and removed the code that zeroed this buffer before every call to the substitute_variables_helper_full. The first fix provides about a 9peedup, and the second the rest. These figures come from the 'PIPS' benchmark I describe in blogs, conf. reports, etc.
........
r88182 | tilghman | 2007-11-01 16:43:46 -0600 (Thu, 01 Nov 2007) | 3 lines

Convert cdr_odbc to use res_odbc managed connections
Closes issue ASTERISK-10209

........
r88183 | tilghman | 2007-11-01 17:26:35 -0600 (Thu, 01 Nov 2007) | 3 lines

Modify WaitExten to include an optional dialtone
Closes issue ASTERISK-10356

........
r88184 | qwell | 2007-11-01 17:26:51 -0600 (Thu, 01 Nov 2007) | 1 line

Remove traces of gnutls, since we no longer use/need it.
........

Made some changes to the pbx.c stuff, to duplicate flow of control better in the merged exists_extension/spawn_extension calls.


------------------------------------------------------------------------

By: Digium Subversion (svnbot) 2007-11-02 10:22:35

Repository: asterisk
Revision: 88246

_U  team/group/CDRfix5/
U   team/group/CDRfix5/UPGRADE.txt
U   team/group/CDRfix5/apps/app_dial.c
U   team/group/CDRfix5/apps/app_exec.c
U   team/group/CDRfix5/apps/app_macro.c
U   team/group/CDRfix5/apps/app_minivm.c
U   team/group/CDRfix5/apps/app_mixmonitor.c
U   team/group/CDRfix5/apps/app_playback.c
U   team/group/CDRfix5/apps/app_queue.c
U   team/group/CDRfix5/apps/app_rpt.c
U   team/group/CDRfix5/cdr/cdr_custom.c
U   team/group/CDRfix5/cdr/cdr_manager.c
U   team/group/CDRfix5/cdr/cdr_odbc.c
U   team/group/CDRfix5/cdr/cdr_sqlite3_custom.c
U   team/group/CDRfix5/channels/chan_gtalk.c
U   team/group/CDRfix5/channels/chan_jingle.c
U   team/group/CDRfix5/configure
U   team/group/CDRfix5/configure.ac
U   team/group/CDRfix5/funcs/func_cut.c
U   team/group/CDRfix5/funcs/func_logic.c
U   team/group/CDRfix5/funcs/func_odbc.c
U   team/group/CDRfix5/funcs/func_strings.c
U   team/group/CDRfix5/include/asterisk/autoconfig.h.in
U   team/group/CDRfix5/include/asterisk/jabber.h
U   team/group/CDRfix5/include/asterisk/lock.h
U   team/group/CDRfix5/include/asterisk/pbx.h
U   team/group/CDRfix5/main/config.c
U   team/group/CDRfix5/main/logger.c
U   team/group/CDRfix5/main/pbx.c
U   team/group/CDRfix5/makeopts.in
U   team/group/CDRfix5/pbx/pbx_config.c
U   team/group/CDRfix5/pbx/pbx_dundi.c
U   team/group/CDRfix5/pbx/pbx_loopback.c
U   team/group/CDRfix5/pbx/pbx_realtime.c
U   team/group/CDRfix5/res/ael/pval.c
U   team/group/CDRfix5/res/res_agi.c
U   team/group/CDRfix5/res/res_jabber.c
U   team/group/CDRfix5/utils/extconf.c

------------------------------------------------------------------------
r88246 | murf | 2007-11-02 10:22:34 -0500 (Fri, 02 Nov 2007) | 73 lines

Merged revisions 88164-88166,88182-88184,88197,88209,88211-88212 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r88164 | qwell | 2007-11-01 16:10:33 -0600 (Thu, 01 Nov 2007) | 4 lines

Switch res_jabber to use openssl rather than gnutls.

Closes issue ASTERISK-9675, patch by phsultan.  Copied from branch at http://svn.digium.com/svn/asterisk/team/phsultan/res_jabber-openssl/

................
r88165 | qwell | 2007-11-01 16:19:56 -0600 (Thu, 01 Nov 2007) | 1 line

Crap, accidentally copied the props.  Thanks for pointing this out mvanbaak.  The odds are quite high that this will break automerge on every team branch.
................
r88166 | murf | 2007-11-01 16:26:51 -0600 (Thu, 01 Nov 2007) | 1 line

This commits the performance mods that give the priority processing engine in the pbx, a 25-30peed boost. The two updates used, are, first, to merge the ast_exists_extension() and the ast_spawn_extension() where they are called sequentially in a loop in the code, into a slightly upgraded version of ast_spawn_extension(), with a few extra args; and, second, I modified the substitute_variables_helper_full, so it zeroes out the byte after the evaluated string instead of demanding you pre-zero the buffer; I also went thru the code and removed the code that zeroed this buffer before every call to the substitute_variables_helper_full. The first fix provides about a 9peedup, and the second the rest. These figures come from the 'PIPS' benchmark I describe in blogs, conf. reports, etc.
................
r88182 | tilghman | 2007-11-01 16:43:46 -0600 (Thu, 01 Nov 2007) | 3 lines

Convert cdr_odbc to use res_odbc managed connections
Closes issue ASTERISK-10209

................
r88183 | tilghman | 2007-11-01 17:26:35 -0600 (Thu, 01 Nov 2007) | 3 lines

Modify WaitExten to include an optional dialtone
Closes issue ASTERISK-10356

................
r88184 | qwell | 2007-11-01 17:26:51 -0600 (Thu, 01 Nov 2007) | 1 line

Remove traces of gnutls, since we no longer use/need it.
................
r88197 | file | 2007-11-01 21:09:02 -0600 (Thu, 01 Nov 2007) | 2 lines

Restore building under 64-bit platforms.

................
r88209 | tilghman | 2007-11-02 06:54:31 -0600 (Fri, 02 Nov 2007) | 5 lines

'h' extension doesn't execute past first priority
Reported by: dimas
Patch by: dimas
Closes bug ASTERISK-10672

................
r88211 | tilghman | 2007-11-02 07:10:29 -0600 (Fri, 02 Nov 2007) | 13 lines

Merged revisions 88210 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r88210 | tilghman | 2007-11-02 08:03:03 -0500 (Fri, 02 Nov 2007) | 5 lines

Fix build on Solaris
Reported by: snuffy
Patch by: ys
Closes issue ASTERISK-10669

........

................
r88212 | tilghman | 2007-11-02 07:17:48 -0600 (Fri, 02 Nov 2007) | 5 lines

Don't re-cache the filename, but check to see if it already exists
Reported by: jamesgolovich
Patch by: jamesgolovich
Closes issue ASTERISK-10670

................

------------------------------------------------------------------------

By: phsultan (phsultan) 2007-11-06 12:20:51.000-0600

Thanks for having merged this Jason.

The 'iks_send' function is also used in chan_gtalk and chan_jingle, so we need to make a sending function available to those modules too, otherwise Gtalk or Jingle calls can't be established over a TLS connection.

In order to achieve it, I attach a patch that does the following :
- rename the current 'ast_aji_send' function to 'ast_aji_send_chat'
 This function explicitly creates a message of type 'chat'
- rename the current 'aji_send' function to 'ast_aji_send', and make it available to other modules
- update chan_gtalk and chan_jingle accordingly

I succesfully tested it on my system, but I'd rather have your review and advice on that patch.

Thanks again.

By: Digium Subversion (svnbot) 2007-11-06 12:42:27.000-0600

Repository: asterisk
Revision: 89041

U   trunk/channels/chan_gtalk.c
U   trunk/channels/chan_jingle.c
U   trunk/include/asterisk/jabber.h
U   trunk/res/res_jabber.c

------------------------------------------------------------------------
r89041 | qwell | 2007-11-06 12:42:26 -0600 (Tue, 06 Nov 2007) | 4 lines

Allow gtalk and jingle to use TLS connections again.

Closes issue ASTERISK-9675

------------------------------------------------------------------------

By: Digium Subversion (svnbot) 2007-11-06 15:31:34.000-0600

Repository: asterisk
Revision: 89066

_U  team/murf/fast-ast2/
U   team/murf/fast-ast2/apps/app_amd.c
U   team/murf/fast-ast2/apps/app_chanisavail.c
U   team/murf/fast-ast2/apps/app_chanspy.c
U   team/murf/fast-ast2/apps/app_directed_pickup.c
U   team/murf/fast-ast2/apps/app_exec.c
U   team/murf/fast-ast2/apps/app_festival.c
U   team/murf/fast-ast2/apps/app_followme.c
U   team/murf/fast-ast2/apps/app_forkcdr.c
U   team/murf/fast-ast2/apps/app_getcpeid.c
U   team/murf/fast-ast2/apps/app_macro.c
U   team/murf/fast-ast2/apps/app_minivm.c
U   team/murf/fast-ast2/apps/app_mixmonitor.c
U   team/murf/fast-ast2/apps/app_morsecode.c
U   team/murf/fast-ast2/apps/app_mp3.c
U   team/murf/fast-ast2/apps/app_nbscat.c
U   team/murf/fast-ast2/apps/app_playback.c
U   team/murf/fast-ast2/apps/app_readfile.c
U   team/murf/fast-ast2/apps/app_sayunixtime.c
U   team/murf/fast-ast2/apps/app_sms.c
U   team/murf/fast-ast2/apps/app_softhangup.c
U   team/murf/fast-ast2/apps/app_speech_utils.c
U   team/murf/fast-ast2/apps/app_stack.c
U   team/murf/fast-ast2/apps/app_test.c
U   team/murf/fast-ast2/apps/app_waitforring.c
U   team/murf/fast-ast2/apps/app_waitforsilence.c
U   team/murf/fast-ast2/apps/app_while.c
U   team/murf/fast-ast2/channels/chan_agent.c
U   team/murf/fast-ast2/channels/chan_gtalk.c
U   team/murf/fast-ast2/channels/chan_jingle.c
U   team/murf/fast-ast2/channels/chan_sip.c
U   team/murf/fast-ast2/codecs/codec_zap.c
U   team/murf/fast-ast2/include/asterisk/jabber.h
U   team/murf/fast-ast2/include/asterisk/lock.h
U   team/murf/fast-ast2/include/asterisk/tdd.h
U   team/murf/fast-ast2/main/ast_expr2.fl
U   team/murf/fast-ast2/main/ast_expr2f.c
U   team/murf/fast-ast2/main/astmm.c
U   team/murf/fast-ast2/main/channel.c
U   team/murf/fast-ast2/main/config.c
U   team/murf/fast-ast2/main/fskmodem.c
U   team/murf/fast-ast2/main/loader.c
U   team/murf/fast-ast2/main/pbx.c
U   team/murf/fast-ast2/main/tdd.c
U   team/murf/fast-ast2/res/res_features.c
U   team/murf/fast-ast2/res/res_indications.c
U   team/murf/fast-ast2/res/res_jabber.c
U   team/murf/fast-ast2/res/res_monitor.c
U   team/murf/fast-ast2/res/res_musiconhold.c

------------------------------------------------------------------------
r89066 | murf | 2007-11-06 15:31:33 -0600 (Tue, 06 Nov 2007) | 188 lines

Merged revisions 89031,89034,89038,89041,89043-89044,89047-89052,89054-89055,89057,89062 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r89031 | rizzo | 2007-11-06 10:05:13 -0700 (Tue, 06 Nov 2007) | 17 lines

Fix embedding of modules on FreeBSD:
the constructor for the list of modules was run
after the constructors for the embedded modules
(which appended entries to the list).
As a result, the list appeared empty when it was
time to use it.

On linux the order of execution of constructor
was evidently different (it may depend on the
ordering of modules in the ELF file).

This is only a workaround - there may be other
situations where the execution of constructors
causes problems, so if we manage to find a more
general solution this workaround can go away.


................
r89034 | file | 2007-11-06 10:10:03 -0700 (Tue, 06 Nov 2007) | 12 lines

Merged revisions 89032 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89032 | file | 2007-11-06 13:08:05 -0400 (Tue, 06 Nov 2007) | 4 lines

Make it so that if a peer is determined to be unreachable using qualify their devicestate will report back unavailable.
(closes issue ASTERISK-10551)
Reported by: pj

........

................
r89038 | russell | 2007-11-06 11:23:36 -0700 (Tue, 06 Nov 2007) | 19 lines

Merged revisions 89037 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89037 | russell | 2007-11-06 12:20:07 -0600 (Tue, 06 Nov 2007) | 11 lines

If someone were to delete the files used by an existing MOH class, and then
issue a reload, further use of that class could result in a crash due to
dividing by zero.  This set of changes fixes up some places to prevent this
from happening.

(closes issue ASTERISK-10500)
Reported by: jcomellas
Patches:
     res_musiconhold_division_by_zero.patch uploaded by jcomellas (license 282)
 Additional changes added by me.

........

................
r89041 | qwell | 2007-11-06 11:44:19 -0700 (Tue, 06 Nov 2007) | 4 lines

Allow gtalk and jingle to use TLS connections again.

Closes issue ASTERISK-9675

................
r89043 | oej | 2007-11-06 12:04:29 -0700 (Tue, 06 Nov 2007) | 12 lines

Merged revisions 89042 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89042 | oej | 2007-11-06 19:53:37 +0100 (Tis, 06 Nov 2007) | 2 lines

Bug fixes to tdd support in zaptel.

........

(Small changes for trunk)

................
r89044 | mmichelson | 2007-11-06 12:04:45 -0700 (Tue, 06 Nov 2007) | 7 lines

"show application <foo>" changes for clarity.

(closes issue ASTERISK-10696, reported and patched by blitzrage)

Many thanks!


................
r89047 | qwell | 2007-11-06 12:10:18 -0700 (Tue, 06 Nov 2007) | 12 lines

Merged revisions 89046 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89046 | qwell | 2007-11-06 13:09:30 -0600 (Tue, 06 Nov 2007) | 4 lines

Correctly set the total number of channels from a zaptel transcoder board.

SPD-49, patch by Matthew Nicholson.

........

................
r89048 | oej | 2007-11-06 12:10:26 -0700 (Tue, 06 Nov 2007) | 2 lines

Additional TDD changes (preparing for SIP changes - adding TDD support to SIP)

................
r89049 | tilghman | 2007-11-06 12:16:02 -0700 (Tue, 06 Nov 2007) | 10 lines

Merged revisions 89045 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89045 | tilghman | 2007-11-06 13:09:06 -0600 (Tue, 06 Nov 2007) | 2 lines

We went to the trouble of creating a method of tracking failed trylocks, then never turned it on (oops).

........

................
r89050 | oej | 2007-11-06 12:23:10 -0700 (Tue, 06 Nov 2007) | 2 lines

Formatting. Illegaly using some spare spaces from Russell's space-bucket.

................
r89051 | murf | 2007-11-06 12:40:33 -0700 (Tue, 06 Nov 2007) | 1 line

Hoping to avoid a crash in OSX for a problem blitzrage found
................
r89052 | russell | 2007-11-06 12:51:37 -0700 (Tue, 06 Nov 2007) | 4 lines

Fix the memory show allocations CLI command so that it doesn't spew out all
of the current memory allocations when you start Asterisk, when the command's
handler gets called for initialization.

................
r89054 | russell | 2007-11-06 13:22:50 -0700 (Tue, 06 Nov 2007) | 11 lines

Merged revisions 89053 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89053 | russell | 2007-11-06 14:18:49 -0600 (Tue, 06 Nov 2007) | 3 lines

Fix init_classes() so that classes that actually do have files loaded aren't
treated as empty, and immediately destroyed ...

........

................
r89055 | mmichelson | 2007-11-06 13:32:49 -0700 (Tue, 06 Nov 2007) | 9 lines

Instead of trying to callback a local channel on a failed attended transfer, call
the device that made the transfer instead. This makes for much smoother calling back
when queues are involved.

(closes issue ASTERISK-10680, reported by IPetrov)

Tremendous thanks to Russell for pulling me out of my block I was having on this one


................
r89057 | file | 2007-11-06 13:55:58 -0700 (Tue, 06 Nov 2007) | 4 lines

Remove native bridging check for DTMF based transfers. Thanks to the last batch of RTP changes it is no longer required for the media stream to go through Asterisk if DTMF is going over signalling. It will simply reinvite back as needed.
(closes issue ASTERISK-10697)
Reported by: ibc

................
r89062 | murf | 2007-11-06 14:08:38 -0700 (Tue, 06 Nov 2007) | 9 lines

Merged revisions 89036 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89036 | murf | 2007-11-06 10:52:50 -0700 (Tue, 06 Nov 2007) | 1 line

closes issue ASTERISK-8547 - where the [catname](!) and [catname](othercat1,othercat2,...) notation gets dropped across a ConfigUpdate (or any other thing that would cause a config file to be written). While I was at it, I also cleaned up some of the destroy routines to free up comments, which was not being done. Made sure the new struct I introduced is also cleaned up properly at destruction time. My code handles multiple template inclusions. Many thanks to ssokol for his patch, which, while not literally used in the final merge, served as a foundation for the fix.
........

................

------------------------------------------------------------------------