|  |  |  | @ -1802,6 +1802,7 @@ static int sip_subscription_send_request(struct sip_subscription_tree *sub_tree, | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if (allocate_tdata_buffer(tdata)) { | 
			
		
	
		
			
				
					|  |  |  |  | 		ast_log(LOG_ERROR, "SIP request %s is too large to send.\n", tdata->info); | 
			
		
	
		
			
				
					|  |  |  |  | 		pjsip_tx_data_dec_ref(tdata); | 
			
		
	
		
			
				
					|  |  |  |  | 		return -1; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -2912,7 +2913,6 @@ static struct ast_sip_publication *sip_create_publication(struct ast_sip_endpoin | 
			
		
	
		
			
				
					|  |  |  |  | static int sip_publication_respond(struct ast_sip_publication *pub, int status_code, | 
			
		
	
		
			
				
					|  |  |  |  | 		pjsip_rx_data *rdata) | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  | 	pj_status_t status; | 
			
		
	
		
			
				
					|  |  |  |  | 	pjsip_tx_data *tdata; | 
			
		
	
		
			
				
					|  |  |  |  | 	pjsip_transaction *tsx; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -2921,26 +2921,24 @@ static int sip_publication_respond(struct ast_sip_publication *pub, int status_c | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if (PJSIP_IS_STATUS_IN_CLASS(status_code, 200)) { | 
			
		
	
		
			
				
					|  |  |  |  | 		RAII_VAR(char *, entity_tag, NULL, ast_free_ptr); | 
			
		
	
		
			
				
					|  |  |  |  | 		RAII_VAR(char *, expires, NULL, ast_free_ptr); | 
			
		
	
		
			
				
					|  |  |  |  | 		char buf[30]; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if ((ast_asprintf(&entity_tag, "%d", pub->entity_tag) < 0) || | 
			
		
	
		
			
				
					|  |  |  |  | 			(ast_asprintf(&expires, "%d", pub->expires) < 0)) { | 
			
		
	
		
			
				
					|  |  |  |  | 			pjsip_tx_data_dec_ref(tdata); | 
			
		
	
		
			
				
					|  |  |  |  | 			return -1; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		snprintf(buf, sizeof(buf), "%d", pub->entity_tag); | 
			
		
	
		
			
				
					|  |  |  |  | 		ast_sip_add_header(tdata, "SIP-ETag", buf); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		ast_sip_add_header(tdata, "SIP-ETag", entity_tag); | 
			
		
	
		
			
				
					|  |  |  |  | 		ast_sip_add_header(tdata, "Expires", expires); | 
			
		
	
		
			
				
					|  |  |  |  | 		snprintf(buf, sizeof(buf), "%d", pub->expires); | 
			
		
	
		
			
				
					|  |  |  |  | 		ast_sip_add_header(tdata, "Expires", buf); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if ((status = pjsip_tsx_create_uas(&pubsub_module, rdata, &tsx)) != PJ_SUCCESS) { | 
			
		
	
		
			
				
					|  |  |  |  | 	if (pjsip_tsx_create_uas(&pubsub_module, rdata, &tsx) != PJ_SUCCESS) { | 
			
		
	
		
			
				
					|  |  |  |  | 		pjsip_tx_data_dec_ref(tdata); | 
			
		
	
		
			
				
					|  |  |  |  | 		return -1; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	pjsip_tsx_recv_msg(tsx, rdata); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if (pjsip_tsx_send_msg(tsx, tdata) != PJ_SUCCESS) { | 
			
		
	
		
			
				
					|  |  |  |  | 		pjsip_tx_data_dec_ref(tdata); | 
			
		
	
		
			
				
					|  |  |  |  | 		return -1; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |