[prev in list] [next in list] [prev in thread] [next in thread]
List: asterisk-dev
Subject: [asterisk-dev] [Code Review] SIP: refactoring parsing functions and
From: "David Vossel" <dvossel () digium ! com>
Date: 2010-01-30 22:39:52
Message-ID: 20100130223952.5763.14527 () hotblack ! digium ! internal
[Download RAW message or body]
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/477/
-----------------------------------------------------------
Review request for Asterisk Developers.
Summary
-------
----- Changes -----
New files
- sip.h – A new header for shared #define, enum, and struct definitions.
- config-parser.c – Contains sip.conf parsing helper functions with unit tests.
- request-parser.c – Contains sip request and response parsing helper functions \
with unit tests.
New Unit Tests
- sip_parse_uri_test
- sip_parse_host_test
- sip_parse_register_line_test
Code Refactoring
- All reusable #define, enum, and struct definitions were moved out of chan_sip.c \
into sip.h. During this process formatting changes were made to comments in both \
sip.h and chan_sip.c in order to better adhere to the coding \
guidelines.
- Function prototypes for functions shared among chan_sip.c and the new \
request-parser.c and config-parser.c files were added to sip.h.
- parse_uri() and get_calleridname() were moved from chan_sip.c to request-parser.c \
along with unit tests for both functions.
- sip_parse_host() and sip_parse_register_line() were moved from chan_sip.c to \
config-parser.c along with unit tests for both functions.
Changes to parse_uri()
-removal of the options parameter. It was never used and did not behave correctly.
-additional check for [?header] field. When this field was present, the transport \
type was not being set correctly.
----- Overview -----
This patch is introduced with the hope that unit tests for all our sip parsing \
functions will be written soon. chan_sip is a huge file, and with the addition of \
each unit test chan_sip is going to grow larger and harder to maintain. I'm \
proposing we begin refactoring chan_sip, starting with the parsing functions. With \
each parsing function we move into a separate helper file, a unit test should \
accompany it. I've attempted to lay down the ground work for this change by creating \
two new parser helper files (config-parser.c and request-parser.c) and moving all \
shared structs, enums, and defines from chan_sip.c into a shared sip.h file. We \
can't verify everything in Asterisk using unit tests, but string parsing is one area \
where unit tests make the most sense. By beginning to restructure the code in this \
way, chan_sip not only becomes less bloated, but Asterisk as a whole will become more \
stable.
Diffs
-----
/trunk/channels/Makefile 244062
/trunk/channels/chan_sip.c 244062
/trunk/channels/sip/config-parser.c PRE-CREATION
/trunk/channels/sip/request-parser.c PRE-CREATION
/trunk/channels/sip/sip.h PRE-CREATION
Diff: https://reviewboard.asterisk.org/r/477/diff
Testing
-------
Thanks,
David
--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
http://lists.digium.com/mailman/listinfo/asterisk-dev
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic