84c7fe1e06
- Added support for retrieving the packet capture buffer from server to client (does not work consistently however - needs investigation) - getCaptureBuffer() Rpc signature changed - RPC: Added support in Rpc Channel (client) to queue calls - RPC: Added support for transferring arbitrary binary data from server to client (used to get packet capture files) - Rpc header changed - length is now 4 bytes instead of 2; there is no rsvd field any longer Fixes - RPC: Fix for the case when a msg is not received all at once over the socket - StreamConfigDialog: fixed display issue in packet view for combo protocols containing meta fields - Fixed issue with Stacked Vlan not retaining data for both CVlan and SVlan - Fixed incorrect payload size issue with increment/decrement frame length modes Refactoring, Cleanup etc. - RPC: Minor code and TODOs cleanup - Server: Minor code and TODOs cleanup - Server: Removed unused file(s): rxtx.cpp, rxtx.h - Server: Replaced direct use of ProtocolList with the ProtocolListIterator - Common: Minor code and TODOs cleanup - StreamBase::frameLen() now returns the length based on the mode/min/max and the passed in streamIndex - AbstractProtocol interface changed for methods - protocolFrameSize(), protocolFrameOffset(), protocolFramePayloadSize() : all of them now take streamIndex as an optional param with 0 as the default value - Protocols implementing the above methods changed accordingly
62 lines
1.4 KiB
C
62 lines
1.4 KiB
C
#ifndef _PB_RPC_COMMON_H
|
|
#define _PB_RPC_COMMON_H
|
|
|
|
//! \todo (LOW) check which one is right - wrong one seems to be working!!!!!
|
|
#if 0
|
|
#define GET16(p) (quint16)( \
|
|
(*((quint8*)(p)+0) << 8 ) \
|
|
| (*((quint8*)(p)+1)))
|
|
#else
|
|
#define GET16(p) (quint16)( \
|
|
(*((quint8*)(p)+1) << 8 ) \
|
|
| (*((quint8*)(p)+0)))
|
|
#define GET32(p) (quint32)( \
|
|
(*((quint8*)(p)+3) << 24) \
|
|
| (*((quint8*)(p)+2) << 16) \
|
|
| (*((quint8*)(p)+1) << 8 ) \
|
|
| (*((quint8*)(p)+0)))
|
|
#endif
|
|
|
|
#define BYTESWAP4(x) \
|
|
(((x & 0xFF000000) >> 24) | \
|
|
((x & 0x00FF0000) >> 8) | \
|
|
((x & 0x0000FF00) << 8) | \
|
|
((x & 0x000000FF) << 24))
|
|
|
|
#define BYTESWAP2(x) \
|
|
(((x & 0xFF00) >> 8) | \
|
|
((x & 0x00FF) << 8))
|
|
|
|
//! \todo (LOW) : portability
|
|
#if 1
|
|
#define HTONL(x) BYTESWAP4(x)
|
|
#define NTOHL(x) BYTESWAP4(x)
|
|
#define HTONS(x) BYTESWAP2(x)
|
|
#define NTOHS(x) BYTESWAP2(x)
|
|
#else
|
|
#define HTONL(x) (x)
|
|
#define NTOHL(x) (x)
|
|
#define HTONS(x) (x)
|
|
#define NTOHS(x) (x)
|
|
#endif
|
|
|
|
// Print a HexDump
|
|
#define BUFDUMP(ptr, len) qDebug("%s", QString(QByteArray((char*)(ptr), \
|
|
(len)).toHex()).toAscii().data());
|
|
|
|
/*
|
|
** RPC Header (8)
|
|
** - MSG_TYPE (2)
|
|
** - METHOD_ID (2)
|
|
** - LEN (4) [not including this header]
|
|
*/
|
|
#define PB_HDR_SIZE 8
|
|
|
|
#define PB_MSG_TYPE_REQUEST 1
|
|
#define PB_MSG_TYPE_RESPONSE 2
|
|
#define PB_MSG_TYPE_BINBLOB 3
|
|
|
|
#define MSGBUF_SIZE 4096
|
|
|
|
#endif
|