]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Wed Sep 3 13:35:21 EDT 2008 Pekka Pessi <first.last@nokia.com>
authorMichael Jerris <mike@jerris.com>
Fri, 12 Sep 2008 16:27:43 +0000 (16:27 +0000)
committerMichael Jerris <mike@jerris.com>
Fri, 12 Sep 2008 16:27:43 +0000 (16:27 +0000)
  * sofia-sip/msg_header.h: added msg_header_add_format(()

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9541 d0543943-73ff-0310-b7d9-9358b9ac24b2

libs/sofia-sip/.update
libs/sofia-sip/libsofia-sip-ua/msg/msg_parser.c
libs/sofia-sip/libsofia-sip-ua/msg/sofia-sip/msg_header.h

index 645cb091ae7526fa5ad6fe2cc7e00687cb25b099..848230d853f4ddea0b6076df5c3f5a9d00707544 100644 (file)
@@ -1 +1 @@
-Fri Sep 12 12:06:16 EDT 2008
+Fri Sep 12 12:27:38 EDT 2008
index 1ba3c1181df3affb4687ff89cfa91354c71188bc..a037c95aeca0e560a18e5b25d9c060786a045db1 100644 (file)
@@ -2732,6 +2732,44 @@ int msg_header_add_make(msg_t *msg,
   return msg_header_add(msg, pub, hh, h);
 }
 
+/** Add formatting result to message.
+ *
+ * Parse result from printf-formatted params as a given header field and add
+ * result to the message.
+ */
+int msg_header_add_format(msg_t *msg,
+                         msg_pub_t *pub,
+                         msg_hclass_t *hc,
+                         char const *fmt,
+                         ...)
+{
+  msg_header_t *h, **hh;
+  va_list va;
+
+  if (msg == NULL)
+    return -1;
+  if (pub == NULL)
+    pub = msg->m_object;
+
+  hh = msg_hclass_offset(msg->m_class, pub, hc);
+
+  if (hh == NULL)
+    return -1;
+
+  if (!fmt)
+    return 0;
+
+  va_start(va, fmt);
+  h = msg_header_vformat(msg_home(msg), hc, fmt, va);
+  va_end(va);
+
+  if (!h)
+    return -1;
+
+  return msg_header_add(msg, pub, hh, h);
+}
+
+
 /**Add string contents to message.
  *
  * Duplicate a string containing headers (or a message body, if the string
index 251b1be60895c65cfddfdaed92170a5d1c1e5a43..b80aeccd94947883f633388b88c31b1ed4d379b2 100644 (file)
@@ -142,6 +142,12 @@ SOFIAPUBFUN int msg_header_add_make(msg_t *msg,
                                    msg_hclass_t *hc,
                                    char const *s);
 
+SOFIAPUBFUN int msg_header_add_format(msg_t *msg,
+                                     msg_pub_t *pub,
+                                     msg_hclass_t *hc,
+                                     char const *fmt,
+                                     ...);
+
 SOFIAPUBFUN int msg_header_prepend(msg_t *msg,
                                   msg_pub_t *pub,
                                   msg_header_t **hh,