from_kiss(buf, l)
void from_kiss(buf, l)
from_kiss(buf, l)unsigned char *buf;int l;{	unsigned char *a, *ipaddr;	if (l<15) {		LOGL2("from_kiss: dumped - length wrong!\n");		stats.kiss_tooshort++;		return;	}	if (loglevel>2)		dump_ax25frame("from_kiss: ", buf, l);	if(digi) {			/* if we are in digi mode */		a = next_addr(buf);		if(NOT_ME(a)){			stats.kiss_not_for_me++;			LOGL4("from_kiss: (digi) dumped - not for me\n");			return;		}		if (a==buf) {		/* must be a digi */			stats.kiss_i_am_dest++;			LOGL2("from_kiss: (digi) dumped - I am destination!\n");			return;		}		SETREPEATED(a);		a = next_addr(buf);	/* find who gets it after us */	} else {			/* must be tnc mode */		a = next_addr(buf);#ifdef TNC_FILTER		if (IS_ME(a)) {			LOGL2("from_kiss: (tnc) dumped - addressed to self!\n");			return;		}#endif	}                       /* end of tnc mode */	/* Lookup the IP address for this route */	ipaddr = call_to_ip(a);	if (ipaddr==NULL) {		if (is_call_bcast(a)) {			/* Warning - assuming buffer has room for 2 bytes */			add_crc(buf, l); l+=2;			send_broadcast(buf, l);		} else {			stats.kiss_no_ip_addr++;			LOGL2("from_kiss: dumped - cannot figure out where to send this!\n");		}		return;	} else {		/* Warning - assuming buffer has room for 2 bytes */		add_crc(buf, l); l+=2;		send_ip(buf, l, ipaddr);		if (is_call_bcast(a)) {			send_broadcast(buf, l);		}	}}