/*
 * $Id$
 *
 */

#include <stdio.h>
#include "error.h"

/* current function's error; */
int ser_error=-1;
/* previous error */
int prev_ser_error=-1;

int err2reason_phrase( 
	int ser_error,  /* current itnernal ser error */
	int *sip_error,  /* the sip error code to which ser 	
					    ser error will be turned */
	char *phrase,    /* resulting error text */
	int etl, 		/* error text buffer length */
	char *signature ) /* extra text to be appended */
{

	char *error_txt;

	switch( ser_error ) {
		case E_OUT_OF_MEM:
			error_txt="Excuse me I ran out of memory";
			*sip_error=500;
			break;
		case E_SEND:
			error_txt="Unfortunately error on sending to next hop occured";
			*sip_error=-ser_error;
			break;
		case E_BAD_ADDRESS:
			error_txt="Unresolveable destination";
			*sip_error=-ser_error;
			break;
		case E_BAD_REQ:
			error_txt="Bad Request";
			*sip_error=-ser_error;
			break;
		case E_BAD_URI:
			error_txt="Regretfuly, we were not able to process the URI";
			*sip_error=-ser_error;
			break;
		default:
			error_txt="I'm terribly sorry, server error occured";
			*sip_error=500;
			break;
	}
	return snprintf( phrase, etl, "%s (%d/%s)", error_txt, 
		-ser_error, signature );
}