1
0
Files
irix-657m-src/irix/cmd/netman/lib/pb_decode.c
2022-09-29 17:59:04 +03:00

42 lines
876 B
C

/*
* Copyright 1988 Silicon Graphics, Inc. All rights reserved.
*
* PacketBuf and Packet decoders.
*/
#include "datastream.h"
#include "packetbuf.h"
#include "packetview.h"
#include "protocol.h"
#include "snooper.h"
void
pb_decode(PacketBuf *pb, Snooper *sn, int hex, PacketView *pv)
{
DecodeArgs da;
DA_INIT(&da, sn, hex, pv);
pb_scan(pb, pb_decodepacket, &da);
}
/* ARGSUSED */
int
pb_decodepacket(PacketBuf *pb, Packet *p, void *arg)
{
DecodeArgs *da = arg;
return p_decode(p, da->da_snoop, da->da_hex, da->da_view);
}
int
p_decode(Packet *p, Snooper *sn, int hex, PacketView *pv)
{
Protocol *rawproto;
DataStream ds;
rawproto = sn->sn_rawproto;
ds_init(&ds, p->p_sp.sp_data + sn->sn_rawhdrpad,
p->p_len - sn->sn_rawhdrpad, DS_DECODE,
rawproto ? rawproto->pr_byteorder : DS_BIG_ENDIAN);
return pv_decodepacket(pv, sn, &p->p_sp.sp_hdr, hex, &ds);
}