/*
 * Copyright 2002 Christopher SEKIYA <wileyc@rezrov.net>
 * portions copyright 1997-2000 by Pawel Krawczyk <kravietz@ceti.pl>
 *
 * hdr_check.c  Perform basic sanity checks on received packet.
 */

#include "tacshell.h"

extern u_int8_t sequence_number;

int
tac_check_header(struct tacacs_header * th, int type)
{

	if (th->type != type) {
		fprintf(stderr,
			"tacshell: unrelated reply, type %x, expected %x\n",
			th->type, type);
		return -1;
	} else if ((th->seq_no & 0x01)) {
		fprintf(stderr, "tacshell: odd reply sequence number: %x\n", th->seq_no);
		return -1;
	} else if (ntohl(th->session_id) != session_id) {
		fprintf(stderr,
		 "tacshell: unrelated reply, received %x != sent %x\n",
			ntohl(th->session_id), session_id);
		return -1;
	}
	sequence_number++;
	return 0;		/* header is ok */

}


syntax highlighted by Code2HTML, v. 0.9.1