[asterisk-commits] rizzo: branch rizzo/astobj2 r48534 - /team/rizzo/astobj2/channels/chan_sip.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Sun Dec 17 00:31:13 MST 2006


Author: rizzo
Date: Sun Dec 17 01:31:10 2006
New Revision: 48534

URL: http://svn.digium.com/view/asterisk?view=rev&rev=48534
Log:
replace struct sip_request with struct sip_msg_out
in all places where an outgoing message is involved.
The change is mostly mechanical (starting from add_header() and
then handling the fallout) with a few exception that denote
potential issues in the original code, as described below,
and which are definitely worth putting in trunk as well:

+ in initialize_initreq(), replace the call to copy_request()/parse_request()
  with one to parse_copy() which does the right thing.

+ remove a duplicate prototype for append)date()

+ init_resp() and init_req() do a useless strlen, we can use the
  return value from the previous snprintf() instead (yet to be fixed).



Modified:
    team/rizzo/astobj2/channels/chan_sip.c

Modified: team/rizzo/astobj2/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/rizzo/astobj2/channels/chan_sip.c?view=diff&rev=48534&r1=48533&r2=48534
==============================================================================
--- team/rizzo/astobj2/channels/chan_sip.c (original)
+++ team/rizzo/astobj2/channels/chan_sip.c Sun Dec 17 01:31:10 2006
@@ -1373,7 +1373,7 @@
 static int __sip_reliable_xmit(struct sip_pvt *p, int seqno, int resp, char *data, int len, enum xmittype mode, int sipmethod);
 static int __transmit_response(struct sip_pvt *p, const char *msg, const struct sip_request *req, enum xmittype reliable);
 static int retrans_pkt(void *data);
-static int transmit_sip_request(struct sip_pvt *p, struct sip_request *req);
+static int transmit_sip_request(struct sip_pvt *p, struct sip_msg_out *req);
 static int transmit_response_using_temp(ast_string_field callid, struct sockaddr_in *sin, int useglobal_nat, const int intended_method, const struct sip_request *req, const char *msg);
 static int transmit_response(struct sip_pvt *p, const char *msg, const struct sip_request *req);
 static int transmit_response_reliable(struct sip_pvt *p, const char *msg, const struct sip_request *req);
@@ -1394,8 +1394,8 @@
 static int transmit_notify_with_mwi(struct sip_pvt *p, int newmsgs, int oldmsgs, char *vmexten);
 static int transmit_notify_with_sipfrag(struct sip_pvt *p, int cseq, char *message, int terminate);
 static int transmit_register(struct sip_registry *r, const char *auth, const char *authheader);
-static int send_response(struct sip_pvt *p, struct sip_request *req, enum xmittype reliable, int seqno);
-static int send_request(struct sip_pvt *p, struct sip_request *req, enum xmittype reliable, int seqno);
+static int send_response(struct sip_pvt *p, struct sip_msg_out *req, enum xmittype reliable, int seqno);
+static int send_request(struct sip_pvt *p, struct sip_msg_out *req, enum xmittype reliable, int seqno);
 static void copy_request(struct sip_request *dst, const struct sip_request *src);
 static void receive_message(struct sip_pvt *p, struct sip_request *req);
 static void parse_moved_contact(struct sip_pvt *p, struct sip_request *req);
@@ -1440,7 +1440,7 @@
 static void add_noncodec_to_sdp(const struct sip_pvt *p, int format, int sample_rate,
 				struct ast_str **m_buf, struct ast_str **a_buf,
 				int debug);
-static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p);
+static enum sip_result add_sdp(struct sip_msg_out *resp, struct sip_pvt *p);
 static void do_setnat(struct sip_pvt *p, int natflags);
 
 /*--- Authentication stuff */
@@ -1574,7 +1574,6 @@
 static void sip_send_all_registers(void);
 
 /*--- Parsing SIP requests and responses */
-static void append_date(struct sip_request *req);	/* Append date to SIP packet */
 static int determine_firstline_parts(struct sip_request *req);
 static const struct cfsubscription_types *find_subscription_type(enum subscriptiontype subtype);
 static const char *gettag(const struct sip_request *req, const char *header, char *tagbuf, int tagbufsize);
@@ -1584,7 +1583,7 @@
 static const char *get_header(const struct sip_request *req, const char *name);
 static const char *referstatus2str(enum referstatus rstatus) attribute_pure;
 static int method_match(enum sipmethod id, const char *name);
-static void parse_copy(struct sip_request *dst, const struct sip_request *src);
+static void parse_copy(struct sip_request *dst, const struct sip_msg_out *src);
 static char *get_in_brackets(char *tmp);
 static const char *find_alias(const char *name, const char *_default);
 static const char *__get_header(const struct sip_request *req, const char *name, int *start);
@@ -1604,12 +1603,12 @@
 static int transmit_state_notify(struct sip_pvt *p, int state, int full, int timeout);
 
 /*--- Constructing requests and responses */
-static void initialize_initreq(struct sip_pvt *p, struct sip_request *req);
-static int init_req(struct sip_request *req, int sipmethod, const char *recip);
-static int reqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod, int seqno, int newbranch);
-static void initreqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod);
-static int init_resp(struct sip_request *resp, const char *msg);
-static int respprep(struct sip_request *resp, struct sip_pvt *p, const char *msg, const struct sip_request *req);
+static void initialize_initreq(struct sip_pvt *p, struct sip_msg_out *req);
+static int init_req(struct sip_msg_out *req, int sipmethod, const char *recip);
+static int reqprep(struct sip_msg_out *req, struct sip_pvt *p, int sipmethod, int seqno, int newbranch);
+static void initreqprep(struct sip_msg_out *req, struct sip_pvt *p, int sipmethod);
+static int init_resp(struct sip_msg_out *resp, const char *msg);
+static int respprep(struct sip_msg_out *resp, struct sip_pvt *p, const char *msg, const struct sip_request *req);
 static const struct sockaddr_in *sip_real_dst(const struct sip_pvt *p);
 static void build_via(struct sip_pvt *p);
 static int create_addr_from_peer(struct sip_pvt *r, struct sip_peer *peer);
@@ -1618,18 +1617,18 @@
 static void build_callid_pvt(struct sip_pvt *pvt);
 static void build_callid_registry(struct sip_registry *reg, struct in_addr ourip, const char *fromdomain);
 static void make_our_tag(char *tagbuf, size_t len);
-static int add_header(struct sip_request *req, const char *var, const char *value);
-static int add_header_contentLength(struct sip_request *req, int len);
-static int add_line(struct sip_request *req, const char *line);
-static int add_text(struct sip_request *req, const char *text);
-static int add_digit(struct sip_request *req, char digit);
-static int add_vidupdate(struct sip_request *req);
-static void add_route(struct sip_request *req, struct sip_route *route);
-static int copy_header(struct sip_request *req, const struct sip_request *orig, const char *field);
-static int copy_all_header(struct sip_request *req, const struct sip_request *orig, const char *field);
-static int copy_via_headers(struct sip_pvt *p, struct sip_request *req, const struct sip_request *orig, const char *field);
+static int add_header(struct sip_msg_out *req, const char *var, const char *value);
+static int add_header_contentLength(struct sip_msg_out *req, int len);
+static int add_line(struct sip_msg_out *req, const char *line);
+static int add_text(struct sip_msg_out *req, const char *text);
+static int add_digit(struct sip_msg_out *req, char digit);
+static int add_vidupdate(struct sip_msg_out *req);
+static void add_route(struct sip_msg_out *req, struct sip_route *route);
+static int copy_header(struct sip_msg_out *req, const struct sip_request *orig, const char *field);
+static int copy_all_header(struct sip_msg_out *req, const struct sip_request *orig, const char *field);
+static int copy_via_headers(struct sip_pvt *p, struct sip_msg_out *req, const struct sip_request *orig, const char *field);
 static void set_destination(struct sip_pvt *p, char *uri);
-static void append_date(struct sip_request *req);
+static void append_date(struct sip_msg_out *req);
 static void build_contact(struct sip_pvt *p);
 static void build_rpid(struct sip_pvt *p);
 
@@ -1823,8 +1822,11 @@
 
 /*! \brief Initialize the initital request packet in the pvt structure.
  	This packet is used for creating replies and future requests in
-	a dialog */
-static void initialize_initreq(struct sip_pvt *p, struct sip_request *req)
+	a dialog.
+ * We use this only for outgoing packets, because transactions initiated
+ * by an incoming packet already have p->initreq set on reception.
+ */
+static void initialize_initreq(struct sip_pvt *p, struct sip_msg_out *req)
 {
 	if (option_debug) {
 		if (p->initreq.headers)
@@ -1833,8 +1835,7 @@
 			ast_log(LOG_DEBUG, "Initializing initreq for method %s - callid %s\n", sip_methods[req->method].text, p->callid);
 	}
 	/* Use this as the basis */
-	copy_request(&p->initreq, req);
-	parse_request(&p->initreq);
+	parse_copy(&p->initreq, req);	/* XXX check this */
 	if (ast_test_flag(req, SIP_PKT_DEBUG))
 		ast_verbose("Initreq: %d headers, %d lines\n", p->initreq.headers, p->initreq.lines);
 }
@@ -2386,8 +2387,9 @@
 
 /*! \brief Copy SIP request, parse it.
  * It is only used in two places to produce 'history' output.
+ * XXX be very careful with this when struct sip_msg_out will change.
  */
-static void parse_copy(struct sip_request *dst, const struct sip_request *src)
+static void parse_copy(struct sip_request *dst, const struct sip_msg_out *src)
 {
 	memset(dst, 0, sizeof(*dst));
 	memcpy(dst->data, src->data, sizeof(dst->data));
@@ -2396,7 +2398,7 @@
 }
 
 /*! \brief add a blank line if no body */
-static void add_blank(struct sip_request *req)
+static void add_blank(struct sip_msg_out *req)
 {
 	if (!req->lines) {
 		/* Add extra empty return. add_header() reserves 4 bytes so cannot be truncated */
@@ -2406,7 +2408,7 @@
 }
 
 /*! \brief Transmit response on SIP request*/
-static int send_response(struct sip_pvt *p, struct sip_request *req, enum xmittype reliable, int seqno)
+static int send_response(struct sip_pvt *p, struct sip_msg_out *req, enum xmittype reliable, int seqno)
 {
 	int res;
 
@@ -2437,7 +2439,7 @@
  * XXX this is basically the same as send_response apart from the history tag
  * and the third argument to __sip_reliable_xmit()
  */
-static int send_request(struct sip_pvt *p, struct sip_request *req, enum xmittype reliable, int seqno)
+static int send_request(struct sip_pvt *p, struct sip_msg_out *req, enum xmittype reliable, int seqno)
 {
 	int res;
 
@@ -5681,7 +5683,7 @@
 
 
 /*! \brief Add header to SIP message */
-static int add_header(struct sip_request *req, const char *var, const char *value)
+static int add_header(struct sip_msg_out *req, const char *var, const char *value)
 {
 	int maxlen = sizeof(req->data) - 4 - req->len; /* 4 bytes are for two \r\n ? */
 	char *dst;
@@ -5718,7 +5720,7 @@
 }
 
 /*! \brief Add 'Content-Length' header to SIP message */
-static int add_header_contentLength(struct sip_request *req, int len)
+static int add_header_contentLength(struct sip_msg_out *req, int len)
 {
 	char clen[10];
 
@@ -5727,7 +5729,7 @@
 }
 
 /*! \brief Add content (not header) to SIP message */
-static int add_line(struct sip_request *req, const char *line)
+static int add_line(struct sip_msg_out *req, const char *line)
 {
 	if (req->lines == SIP_MAX_LINES)  {
 		ast_log(LOG_WARNING, "Out of SIP line space\n");
@@ -5750,7 +5752,7 @@
 }
 
 /*! \brief Copy one header field from one request to another */
-static int copy_header(struct sip_request *req, const struct sip_request *orig, const char *field)
+static int copy_header(struct sip_msg_out *req, const struct sip_request *orig, const char *field)
 {
 	const char *tmp = get_header(orig, field);
 
@@ -5761,7 +5763,7 @@
 }
 
 /*! \brief Copy all headers from one request to another */
-static int copy_all_header(struct sip_request *req, const struct sip_request *orig, const char *field)
+static int copy_all_header(struct sip_msg_out *req, const struct sip_request *orig, const char *field)
 {
 	int start = 0;
 	int copied = 0;
@@ -5783,7 +5785,7 @@
 	add the port number (from our point of view) to that parameter.
 	We always add ;received=<ip address> to the topmost via header.
 	Received: RFC 3261, rport RFC 3581 */
-static int copy_via_headers(struct sip_pvt *p, struct sip_request *req, const struct sip_request *orig, const char *field)
+static int copy_via_headers(struct sip_pvt *p, struct sip_msg_out *req, const struct sip_request *orig, const char *field)
 {
 	int copied = 0;
 	int start = 0;
@@ -5842,7 +5844,7 @@
 }
 
 /*! \brief Add route header into request per learned route */
-static void add_route(struct sip_request *req, struct sip_route *route)
+static void add_route(struct sip_msg_out *req, struct sip_route *route)
 {
 	char r[BUFSIZ*2], *p;
 	int n, rem = sizeof(r);
@@ -5934,26 +5936,28 @@
 }
 
 /*! \brief Initialize SIP response, based on SIP request */
-static int init_resp(struct sip_request *resp, const char *msg)
+static int init_resp(struct sip_msg_out *resp, const char *msg)
 {
 	/* Initialize a response */
 	memset(resp, 0, sizeof(*resp));
 	resp->method = SIP_RESPONSE;
 	resp->header[0] = resp->data;
 	snprintf(resp->header[0], sizeof(resp->data), "SIP/2.0 %s\r\n", msg);
+	/* XXX no need to do a strlen, sprintf tells us what the size is */
 	resp->len = strlen(resp->header[0]);
 	resp->headers++;
 	return 0;
 }
 
 /*! \brief Initialize SIP request */
-static int init_req(struct sip_request *req, int sipmethod, const char *recip)
+static int init_req(struct sip_msg_out *req, int sipmethod, const char *recip)
 {
 	/* Initialize a request */
 	memset(req, 0, sizeof(*req));
         req->method = sipmethod;
 	req->header[0] = req->data;
 	snprintf(req->header[0], sizeof(req->data), "%s %s SIP/2.0\r\n", sip_methods[sipmethod].text, recip);
+	/* XXX no need to do a strlen, sprintf tells us what the size is */
 	req->len = strlen(req->header[0]);
 	req->headers++;
 	return 0;
@@ -5961,7 +5965,7 @@
 
 
 /*! \brief Prepare SIP response packet */
-static int respprep(struct sip_request *resp, struct sip_pvt *p, const char *msg, const struct sip_request *req)
+static int respprep(struct sip_msg_out *resp, struct sip_pvt *p, const char *msg, const struct sip_request *req)
 {
 	char newto[256];
 	const char *ot;
@@ -6008,7 +6012,7 @@
 }
 
 /*! \brief Initialize a SIP request message (not the initial one in a dialog) */
-static int reqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod, int seqno, int newbranch)
+static int reqprep(struct sip_msg_out *req, struct sip_pvt *p, int sipmethod, int seqno, int newbranch)
 {
 	struct sip_request *orig = &p->initreq;
 	char stripped[80];
@@ -6113,7 +6117,7 @@
 /*! \brief Base transmit response function */
 static int __transmit_response(struct sip_pvt *p, const char *msg, const struct sip_request *req, enum xmittype reliable)
 {
-	struct sip_request resp;
+	struct sip_msg_out resp;
 	int seqno = 0;
 
 	if (reliable && (sscanf(get_header(req, "CSeq"), "%d ", &seqno) != 1)) {
@@ -6203,7 +6207,7 @@
 /*! \brief Transmit response, no retransmits */
 static int transmit_response_with_unsupported(struct sip_pvt *p, const char *msg, const struct sip_request *req, const char *unsupported) 
 {
-	struct sip_request resp;
+	struct sip_msg_out resp;
 	respprep(&resp, p, msg, req);
 	append_date(&resp);
 	add_header(&resp, "Unsupported", unsupported);
@@ -6219,7 +6223,7 @@
 }
 
 /*! \brief Append date to SIP message */
-static void append_date(struct sip_request *req)
+static void append_date(struct sip_msg_out *req)
 {
 	char tmpdat[256];
 	struct tm tm;
@@ -6233,7 +6237,7 @@
 /*! \brief Append date and content length before transmitting response */
 static int transmit_response_with_date(struct sip_pvt *p, const char *msg, const struct sip_request *req)
 {
-	struct sip_request resp;
+	struct sip_msg_out resp;
 	respprep(&resp, p, msg, req);
 	append_date(&resp);
 	add_header_contentLength(&resp, 0);
@@ -6243,7 +6247,7 @@
 /*! \brief Append Accept header, content length before transmitting response */
 static int transmit_response_with_allow(struct sip_pvt *p, const char *msg, const struct sip_request *req, enum xmittype reliable)
 {
-	struct sip_request resp;
+	struct sip_msg_out resp;
 	respprep(&resp, p, msg, req);
 	add_header(&resp, "Accept", "application/sdp");
 	add_header_contentLength(&resp, 0);
@@ -6253,7 +6257,7 @@
 /*! \brief Respond with authorization request */
 static int transmit_response_with_auth(struct sip_pvt *p, const char *msg, const struct sip_request *req, const char *randdata, enum xmittype reliable, const char *header, int stale)
 {
-	struct sip_request resp;
+	struct sip_msg_out resp;
 	char tmp[512];
 	int seqno = 0;
 
@@ -6272,7 +6276,7 @@
 }
 
 /*! \brief Add text body to SIP message */
-static int add_text(struct sip_request *req, const char *text)
+static int add_text(struct sip_msg_out *req, const char *text)
 {
 	/* XXX Convert \n's to \r\n's XXX */
 	add_header(req, "Content-Type", "text/plain");
@@ -6283,7 +6287,7 @@
 
 /*! \brief Add DTMF INFO tone to sip message */
 /* Always adds default duration 250 ms, regardless of what came in over the line */
-static int add_digit(struct sip_request *req, char digit)
+static int add_digit(struct sip_msg_out *req, char digit)
 {
 	char tmp[256];
 
@@ -6296,7 +6300,7 @@
 
 /*! \brief add XML encoded media control with update 
 	\note XML: The only way to turn 0 bits of information into a few hundred. (markster) */
-static int add_vidupdate(struct sip_request *req)
+static int add_vidupdate(struct sip_msg_out *req)
 {
 	const char *xml_is_a_huge_waste_of_space =
 		"<?xml version=\"1.0\" encoding=\"utf-8\" ?>\r\n"
@@ -6391,7 +6395,7 @@
 }
 
 /*! \brief Add T.38 Session Description Protocol message */
-static int add_t38_sdp(struct sip_request *resp, struct sip_pvt *p)
+static int add_t38_sdp(struct sip_msg_out *resp, struct sip_pvt *p)
 {
 	int len = 0;
 	int x = 0;
@@ -6530,7 +6534,7 @@
 #define SDP_SAMPLE_RATE(x) (x == AST_FORMAT_G722) ? 16000 : 8000
 
 /*! \brief Add Session Description Protocol message */
-static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p)
+static enum sip_result add_sdp(struct sip_msg_out *resp, struct sip_pvt *p)
 {
 	int len = 0;
 	int alreadysent = 0;
@@ -6750,7 +6754,7 @@
 /*! \brief Used for 200 OK and 183 early media */
 static int transmit_response_with_t38_sdp(struct sip_pvt *p, char *msg, struct sip_request *req, int retrans)
 {
-	struct sip_request resp;
+	struct sip_msg_out resp;
 	int seqno;
 	
 	if (sscanf(get_header(req, "CSeq"), "%d ", &seqno) != 1) {
@@ -6786,7 +6790,7 @@
 /*! \brief Used for 200 OK and 183 early media */
 static int transmit_response_with_sdp(struct sip_pvt *p, const char *msg, const struct sip_request *req, enum xmittype reliable)
 {
-	struct sip_request resp;
+	struct sip_msg_out resp;
 	int seqno;
 	if (sscanf(get_header(req, "CSeq"), "%d ", &seqno) != 1) {
 		ast_log(LOG_WARNING, "Unable to get seqno from '%s'\n", get_header(req, "CSeq"));
@@ -6860,7 +6864,7 @@
 */
 static int transmit_reinvite_with_sdp(struct sip_pvt *p, int t38version)
 {
-	struct sip_request req;
+	struct sip_msg_out req;
 
 	reqprep(&req, p, ast_test_flag(&p->flags[0], SIP_REINVITE_UPDATE) ?  SIP_UPDATE : SIP_INVITE, 0, 1);
 	
@@ -6983,7 +6987,7 @@
 }
 
 /*! \brief Initiate new SIP request to peer/user */
-static void initreqprep(struct sip_request *req, struct sip_pvt *p, int sipmethod)
+static void initreqprep(struct sip_msg_out *req, struct sip_pvt *p, int sipmethod)
 {
 	struct ast_str *invite = ast_str_alloca(256);
 	char from[256];
@@ -7123,7 +7127,7 @@
  */
 static int transmit_invite(struct sip_pvt *p, int sipmethod, int sdp, int init)
 {
-	struct sip_request req;
+	struct sip_msg_out req;
 	
 	req.method = sipmethod;
 	if (init) { /* Bump branch even on initial requests */
@@ -7216,7 +7220,7 @@
 	struct ast_str *tmp = ast_str_alloca(4000);
 	char from[256], to[256];
 	char *c, *mfrom, *mto;
-	struct sip_request req;
+	struct sip_msg_out req;
 	char hint[AST_MAX_EXTENSION];
 	char *statestring = "terminated";
 	const struct cfsubscription_types *subscriptiontype;
@@ -7378,7 +7382,7 @@
  */
 static int transmit_notify_with_mwi(struct sip_pvt *p, int newmsgs, int oldmsgs, char *vmexten)
 {
-	struct sip_request req;
+	struct sip_msg_out req;
 	struct ast_str *out = ast_str_alloca(500);
 
 	initreqprep(&req, p, SIP_NOTIFY);
@@ -7405,7 +7409,7 @@
 }
 
 /*! \brief Transmit SIP request unreliably (only used in sip_notify subsystem) */
-static int transmit_sip_request(struct sip_pvt *p, struct sip_request *req)
+static int transmit_sip_request(struct sip_pvt *p, struct sip_msg_out *req)
 {
 	if (!p->initreq.headers) 	/* Initialize first request before sending */
 		initialize_initreq(p, req);
@@ -7415,7 +7419,7 @@
 /*! \brief Notify a transferring party of the status of transfer */
 static int transmit_notify_with_sipfrag(struct sip_pvt *p, int cseq, char *message, int terminate)
 {
-	struct sip_request req;
+	struct sip_msg_out req;
 	char tmp[BUFSIZ/2];
 
 	reqprep(&req, p, SIP_NOTIFY, 0, 1);
@@ -7543,7 +7547,7 @@
  */
 static int transmit_register(struct sip_registry *r, const char *auth, const char *authheader)
 {
-	struct sip_request req;
+	struct sip_msg_out req;
 	char from[256];
 	char to[256];
 	char tmp[80];
@@ -7729,7 +7733,7 @@
 /*! \brief Transmit text with SIP MESSAGE method */
 static int transmit_message_with_text(struct sip_pvt *p, const char *text)
 {
-	struct sip_request req;
+	struct sip_msg_out req;
 
 	reqprep(&req, p, SIP_MESSAGE, 0, 1);
 	add_text(&req, text);
@@ -7760,7 +7764,7 @@
 */
 static int transmit_refer(struct sip_pvt *p, const char *dest)
 {
-	struct sip_request req = { 
+	struct sip_msg_out req = { /* XXX do we need to init it ? */
 		.headers = 0,	
 	};
 	char from[256];
@@ -7831,7 +7835,7 @@
 /*! \brief Send SIP INFO dtmf message, see Cisco documentation on cisco.com */
 static int transmit_info_with_digit(struct sip_pvt *p, const char digit)
 {
-	struct sip_request req;
+	struct sip_msg_out req;
 
 	reqprep(&req, p, SIP_INFO, 0, 1);
 	add_digit(&req, digit);
@@ -7841,7 +7845,7 @@
 /*! \brief Send SIP INFO with video update request */
 static int transmit_info_with_vidupdate(struct sip_pvt *p)
 {
-	struct sip_request req;
+	struct sip_msg_out req;
 
 	reqprep(&req, p, SIP_INFO, 0, 1);
 	add_vidupdate(&req);
@@ -7851,7 +7855,7 @@
 /*! \brief Transmit generic SIP request */
 static int transmit_request(struct sip_pvt *p, int sipmethod, int seqno, enum xmittype reliable, int newbranch)
 {
-	struct sip_request resp;
+	struct sip_msg_out resp;
 
 	if (0 && sipmethod == SIP_ACK)
 		p->invitestate = INV_CONFIRMED;
@@ -7879,7 +7883,7 @@
 /*! \brief Transmit SIP request, auth added */
 static int transmit_request_with_auth(struct sip_pvt *p, int sipmethod, int seqno, enum xmittype reliable, int newbranch)
 {
-	struct sip_request resp;
+	struct sip_msg_out resp;
 
 	reqprep(&resp, p, sipmethod, seqno, newbranch);
 	if (!ast_strlen_zero(p->realm)) {
@@ -11508,7 +11512,7 @@
 
 	for (i = 3; i < argc; i++) {
 		struct sip_pvt *p;
-		struct sip_request req;
+		struct sip_msg_out req;
 		struct ast_variable *var;
 
 		if (!(p = sip_alloc(NULL, NULL, 0, SIP_NOTIFY))) {



More information about the asterisk-commits mailing list