view rvinterf/lowlevel/logsent.c @ 937:06f96627ac9a

rvinterf TM log: decode TMFFS2 commands
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 24 May 2023 04:25:47 +0000
parents bd6dd6120180
children 8fc3b72eb2c6
line wrap: on
line source

/*
 * This module implements the logging of sent packets
 */

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

extern int no_output, verbose;
extern FILE *logF;

extern void output_cont();

static void
log_sent_ati(pkt, pktlen)
	u_char *pkt;
{
	char buf[MAX_PKT_TO_TARGET*4+10];

	strcpy(buf, "Sent to ATI: ");
	safe_print_trace(pkt + 1, pktlen - 1, buf + 13);
	output_line(buf);
}

static void
log_sent_gpf(pkt, pktlen)
	u_char *pkt;
{
	char buf[MAX_PKT_TO_TARGET*4+30];

	strcpy(buf, "Sent ");
	format_g23_packet(pkt, pktlen, buf + 5);
	output_line(buf);
}

void
log_sent_packet(pkt, pktlen)
	u_char *pkt;
{
	if (no_output && !logF)
		return;
	switch (pkt[0]) {
	case RVT_L23_HEADER:
		log_sent_gpf(pkt, pktlen);
		return;
	case RVT_TM_HEADER:
		log_sent_tm(pkt, pktlen);
		return;
	case RVT_AT_HEADER:
		log_sent_ati(pkt, pktlen);
		return;
	case RVT_TCH_HEADER:
		if (verbose >= 2) {
			output_line("Sent TCH packet");
			packet_hex_dump(pkt, pktlen, output_cont);
		} else {
			tch_inc_count_tx();
		}
		return;
	default:
		output_line("Sent misc packet");
		packet_hex_dump(pkt, pktlen, output_cont);
	}
}