view rvinterf/libasync/rvtrace.c @ 1009:009d5bf2ff4c
rvinterf/lowlevel: formatting of FC-specific packet types split off
into format_fc.c
author |
Mychaela Falconia <falcon@ivan.Harhan.ORG> |
date |
Sun, 20 Mar 2016 20:23:54 +0000 (2016-03-20) |
parents |
40b8557b9d04 |
children |
|
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);
}