rem: int ss_nr;
context: int sl_send_reply(struct sip_msg *msg ,int code ,char *text ){	char               *buf;	unsigned int       len;	union sockaddr_union to;	str suffix_source[3];	struct socket_info* send_sock;	int ss_nr;	char *dset;	struct lump_rpl *dset_lump;	int dset_len;	if ( msg->first_line.u.request.method_value==METHOD_ACK)	{		DBG("DEBUG: sl_send_reply: I won't send a reply for ACK!!\n");		goto error;	}	/* family will be updated in update_sock to whatever appropriate;	   -jiri	to.sin_family = AF_INET; */	if (reply_to_via) {		if (update_sock_struct_from_via(  &(to),  msg->via1 )==-1)		{			LOG(L_ERR, "ERROR: sl_send_reply: "				"cannot lookup reply dst: %s\n",				msg->via1->host.s );			goto error;		}	} else update_sock_struct_from_ip( &to, msg );	/* if that is a redirection message, dump current message set to it */	if (code>=300 && code<400) {		dset=print_dset(msg, &dset_len);		if (dset) {			dset_lump=build_lump_rpl(dset, dset_len);			add_lump_rpl(msg, dset_lump);		}	}	/* add to tags only to invites with To without to-tag */	if ( msg->first_line.u.request.method_value==METHOD_INVITE 		&& (msg->to || (parse_headers(msg,HDR_TO, 0)!=-1 && msg->to))		&& (get_to(msg)->tag_value.s==0 || get_to(msg)->tag_value.len==0) ) /* try to send a reply even if there is no To */#ifdef _OBSOLETED	/* To header is needed (tag param in particular)*/	if (msg->to==0 && (parse_headers(msg,HDR_TO, 0)==-1 || msg->to==0) )	{		LOG(L_ERR, "ERROR: sl_send_reply: cannot find/parse To\n");		goto error;	}	/* to:tag is added only for INVITEs without To tag in order	to be able to capture the ACK*/	if ( msg->first_line.u.request.method_value==METHOD_INVITE	&& (get_to(msg)->tag_value.s==0 || get_to(msg)->tag_value.len==0) ) #endif	{		ss_nr=2;		suffix_source[0]=msg->via1->host;		suffix_source[1]=msg->via1->port_str;		if (msg->via1->branch) 			suffix_source[ss_nr++]=msg->via1->branch->value;		crcitt_string_array( tag_suffix, suffix_source, ss_nr );		buf = build_res_buf_from_sip_req(code,text,sl_tag,TOTAG_LEN,msg ,&len);	} else {		buf = build_res_buf_from_sip_req(code,text,0,0,msg ,&len);	}	if (!buf)	{		DBG("DEBUG: sl_send_reply: response building failed\n");		goto error;	}	send_sock=get_send_socket(&to);	if (send_sock!=0)	{		udp_send( send_sock,			buf, len,			/* v6; (union sockaddr_union*) */ &(to),			sizeof(union sockaddr_union));		*(sl_timeout) = get_ticks() + SL_RPL_WAIT_TIME;	}	pkg_free(buf);	update_sl_stats(code);	return 1;error:	update_sl_failures();	return -1;}