Lines Matching defs:sip_msg

38 #include "sip_msg.h"
88 sip_send_resp(sip_conn_object_t conn_obj, _sip_msg_t *sip_msg, int resp)
92 sip_msg_resp = (_sip_msg_t *)sip_create_response((sip_msg_t)sip_msg,
120 sip_check_common_headers(sip_conn_object_t conn_obj, _sip_msg_t *sip_msg)
124 if (sip_get_to_uri_str((sip_msg_t)sip_msg, &err) == NULL)
126 if (sip_get_from_uri_str((sip_msg_t)sip_msg, &err) == NULL)
128 if (sip_get_callseq_num((sip_msg_t)sip_msg, &err) < 0)
130 if (sip_get_callid((sip_msg_t)sip_msg, &err) == NULL)
134 sip_send_resp(conn_obj, sip_msg, SIP_BAD_REQUEST);
142 sip_setup_header_pointers(_sip_msg_t *sip_msg)
148 msg = sip_msg->sip_msg_buf;
149 end = sip_msg->sip_msg_buf + sip_msg->sip_msg_len;
168 if (sip_msg->sip_msg_headers_end != NULL) {
170 sip_msg->sip_msg_headers_end->sip_hdr_end = msg;
181 sip_msg->sip_msg_headers_end->sip_hdr_end = msg;
194 sip_msg->sip_msg_headers_end;
196 sip_msg_header->sip_hdr_sipmsg = sip_msg;
197 sip_msg->sip_msg_headers_end->sip_hdr_next =
199 sip_msg->sip_msg_headers_end = sip_msg_header;
201 if (sip_msg->sip_msg_headers_start == NULL) {
212 sip_msg_header->sip_hdr_sipmsg = sip_msg;
213 sip_msg->sip_msg_headers_start = sip_msg_header;
214 sip_msg->sip_msg_headers_end = sip_msg_header;
221 if (msg - sip_msg->sip_msg_buf >= sip_msg->sip_msg_len)
225 if (sip_msg->sip_msg_headers_start == NULL)
231 sip_msg->sip_msg_start_line = sip_msg->sip_msg_headers_start;
232 sip_msg->sip_msg_headers_start =
233 sip_msg->sip_msg_headers_start->sip_hdr_next;
234 sip_msg->sip_msg_start_line->sip_hdr_prev = NULL;
235 sip_msg->sip_msg_start_line->sip_hdr_next = NULL;
237 if (sip_msg->sip_msg_headers_start == NULL)
239 sip_msg->sip_msg_headers_start->sip_hdr_prev = NULL;
245 sip_msg->sip_msg_content = calloc(1, sizeof (sip_content_t));
246 sip_msg->sip_msg_content->sip_content_start = msg;
247 sip_msg->sip_msg_content->sip_content_end = sip_msg->sip_msg_buf +
248 sip_msg->sip_msg_len;
249 sip_msg->sip_msg_content->sip_content_allocated = B_FALSE;
250 sip_msg->sip_msg_content_len =
251 sip_msg->sip_msg_content->sip_content_end -
252 sip_msg->sip_msg_content->sip_content_start;
260 sip_sendmsg(sip_conn_object_t obj, sip_msg_t sip_msg, sip_dialog_t dialog,
272 _sip_msg = (_sip_msg_t *)sip_msg;
289 sip_trans = (sip_xaction_t *)sip_xaction_get(obj, sip_msg,
310 dialog = (sip_dialog_t)sip_seed_dialog(obj, sip_msg,
323 (sip_msg_t)sip_msg, dialog->sip_dlg_msgcnt,
391 sip_valid_sent_by(sip_msg_t sip_msg)
398 via = (sip_header_t)sip_get_header(sip_msg, SIP_VIA, NULL, &error);
420 _sip_msg_t *sip_msg;
448 sip_msg = (_sip_msg_t *)sip_new_msg();
449 if (sip_msg == NULL) {
455 sip_msg->sip_msg_buf = (char *)msgstr;
456 sip_msg->sip_msg_len = msglen;
457 (void) pthread_mutex_lock(&sip_msg->sip_msg_mutex);
458 if (sip_setup_header_pointers(sip_msg) != 0) {
459 (void) pthread_mutex_unlock(&sip_msg->sip_msg_mutex);
461 sip_free_msg((sip_msg_t)sip_msg);
464 if (sip_parse_first_line(sip_msg->sip_msg_start_line,
465 &sip_msg->sip_msg_req_res)) {
466 (void) pthread_mutex_unlock(&sip_msg->sip_msg_mutex);
468 sip_free_msg((sip_msg_t)sip_msg);
471 sip_msg_info = sip_msg->sip_msg_req_res;
472 (void) pthread_mutex_unlock(&sip_msg->sip_msg_mutex);
474 if (sip_check_common_headers(conn_object, sip_msg)) {
476 sip_free_msg((sip_msg_t)sip_msg);
485 if (!sip_msg_info->is_request && !sip_valid_sent_by(sip_msg)) {
487 sip_free_msg((sip_msg_t)sip_msg);
492 (sip_msg_t)sip_msg,
496 if (sip_xaction_input(conn_object, sip_trans, &sip_msg) != 0) {
499 sip_free_msg((sip_msg_t)sip_msg);
507 if (sip_msg == NULL)
519 sip_send_resp(conn_object, sip_msg, SIP_TRYING);
523 dialog = sip_dialog_find(sip_msg);
531 conn_object, sip_msg,
538 dialog = sip_update_dialog(dialog, sip_msg);
540 } else if (sip_dialog_process(sip_msg, &dialog) != 0) {
548 sip_send_resp(conn_object, sip_msg,
552 sip_free_msg((sip_msg_t)sip_msg);
558 B_FALSE, sip_msg->sip_msg_len);
561 B_FALSE, sip_msg->sip_msg_len);
563 sip_ulp_recv(conn_object, (sip_msg_t)sip_msg, dialog);
564 sip_free_msg((sip_msg_t)sip_msg);