chan_sip: Isolate code that manages struct sip_route.
authorCorey Farrell <git@cfware.com>
Mon, 10 Feb 2014 18:28:35 +0000 (18:28 +0000)
committerCorey Farrell <git@cfware.com>
Mon, 10 Feb 2014 18:28:35 +0000 (18:28 +0000)
commitcb4e2107735dc05c1ad96b6a955c056e06b8dc1c
tree7200a261115a632a38ae4f12049359ee061cc4ee
parent72bf9b13150f50198a302c365c6c3274d38c2ebc
chan_sip: Isolate code that manages struct sip_route.

* Move route code to sip/route.c + sip/include/route.h
* Rename functions to sip_route_*
* Replace ad-hoc list code with macro's from linkedlists.h
* Create sip_route_process_header() to processes Path and Record-Route headers
  (previously done with different code in build_route and build_path)
* Add use of const where possible
* Move struct uriparams, struct contact and contactliststruct from sip.h to
  reqresp_parser.h.  sip/route.c uses reqresp_parser.h but not sip.h, this was
  a problem.  These moved declares are not used outside of reqresp_parser.
* While modifying reqprep() the lack of {} caused me trouble.  I added them.
* Code outside route.c treats sip_route as an opaque structure, using macro's
  or procedures for all access.

(closes issue ASTERISK-22582)
Reported by: Corey Farrell
Review: https://reviewboard.asterisk.org/r/3173/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@407926 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_sip.c
channels/sip/include/reqresp_parser.h
channels/sip/include/route.h [new file with mode: 0644]
channels/sip/include/sip.h
channels/sip/route.c [new file with mode: 0644]