[sr-dev] git:master: core: framework for generic free of parsed headers

Daniel-Constantin Mierla miconda at gmail.com
Sun Feb 27 16:46:26 CET 2011


Module: sip-router
Branch: master
Commit: 81d05af470d979b3d3f104bbdaa287b3fa58b57c
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=81d05af470d979b3d3f104bbdaa287b3fa58b57c

Author: Daniel-Constantin Mierla <miconda at gmail.com>
Committer: Daniel-Constantin Mierla <miconda at gmail.com>
Date:   Sun Feb 27 16:40:37 2011 +0100

core: framework for generic free of parsed headers

- the structure of parsed headers can define as first field a function
  to free the content
- this allow to implement the parser for headers our of the core

---

 parser/hf.c |    3 +++
 parser/hf.h |    7 +++++++
 2 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/parser/hf.c b/parser/hf.c
index fe6b7a7..8863a10 100644
--- a/parser/hf.c
+++ b/parser/hf.c
@@ -130,6 +130,9 @@ void clean_hdr_field(struct hdr_field* hf)
 			break;
 
 		case HDR_SUPPORTED_T:
+			if(*h_parsed) {
+				((hf_parsed_t*)(*h_parsed))->hfree(*h_parsed);
+			}
 			break;
 
 		case HDR_REQUIRE_T:
diff --git a/parser/hf.h b/parser/hf.h
index f496e9a..035c91c 100644
--- a/parser/hf.h
+++ b/parser/hf.h
@@ -213,6 +213,13 @@ typedef struct hdr_field {
 } hdr_field_t;
 
 
+/* type of the function to free the structure of parsed header field */
+typedef void (*hf_parsed_free_f)(void *parsed);
+
+/* structure to hold the function to free the parsed header field */
+typedef struct hdr_parsed {
+	hf_parsed_free_f hfree;
+} hf_parsed_t;
 
 /** returns true if the header links allocated memory on parse field. */
 static inline int hdr_allocs_parse(struct hdr_field* hdr)




More information about the sr-dev mailing list