view rvinterf/libasync/rvtrace.c @ 718:098fea21ba13

doc/Host-tools-overview: tiffs-mkfs description updated The first version of tiffs-mkfs did not include a journal file in the created FFS, expecting the firmware to create it on first boot. All historical firmwares prior to a recent FC fix (2020-05) contain a bug in that code path, thus images made with the first version of tiffs-mkfs were only acceptable to very recent FC firmwares. tiffs-mkfs has now been extended to include an empty journal in the created FFS, thus the restriction of working with recent fw only has been lifted.
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 23 Aug 2020 04:55:02 +0000
parents e7502631a0f9
children 6a0aa8d36d06
line wrap: on
line source

/*
 * Here we detect and handle "Lost Message" packets.
 */

#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <stdlib.h>
#include "pktmux.h"
#include "limits.h"
#include "localsock.h"

extern u_char rvi_msg[];
extern int rvi_msg_len;

void
safe_print_trace(src, srclen, dest)
	u_char *src;
	char *dest;
{
	int i, c;
	char *dp;

	dp = dest;
	for (i = 0; i < srclen; i++) {
		c = src[i];
		if (c & 0x80) {
			*dp++ = 'M';
			*dp++ = '-';
			c &= 0x7F;
		}
		if (c < 0x20) {
			*dp++ = '^';
			*dp++ = c + '@';
		} else if (c == 0x7F) {
			*dp++ = '^';
			*dp++ = '?';
		} else
			*dp++ = c;
	}
	*dp = '\0';
}

void
handle_useid_0()
{
	char buf[MAX_PKT_FROM_TARGET*4];

	if (strncmp(rvi_msg + 7, "RVT: Lost Message", 17))
		return;
	safe_print_trace(rvi_msg + 7, rvi_msg_len - 7, buf);
	async_msg_output(buf);
}