Hi,
I am new to WS development, I now have a plugin which works well.
however if I select "sslbp.frametype" in the display filter , I can
select "Status" in the predefined values
however:
my printfs appear on the console, for both frametypes but no packets
are displayed
I know I must be doing something stupid, but I cant get this to work
thanks in advance
Stuart
---------------------------------------------------------------------
#include <glib.h>
#include <epan/packet.h>
#include "packet-sslbp.h"
#include <epan/prefs.h>
static int proto_sslbp = -1;
static int hf_sslbp_type = -1;
static gint ett_sslbp = -1;
static gint ett_sslbp_header = -1;
static gint ett_sslbp_status = -1;
static gint ett_sslbp_announce = -1;
static const value_string frame_type[] = {
{MYFT_ANNOUNCE, "Announce"},
{MYFT_STATUS, "Status"},
{0, NULL}
};
static void
dissect_sslbp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
int offset = 0;
proto_tree *sslbp_tree;
proto_item *ti;
proto_tree *header_tree;
proto_item *header_item;
guint16 magic; guint8 protocol_ver;
int start_offset;
int msglen;
unsigned int frmtyp;
// add stuff to columns in main window
if (check_col(pinfo->cinfo, COL_PROTOCOL)) // set
the protcol column
col_set_str(pinfo->cinfo, COL_PROTOCOL, "sslbp");
if (check_col(pinfo->cinfo, COL_INFO)) // clear
the info column
col_clear(pinfo->cinfo, COL_INFO);
// basic data
magic = tvb_get_ntohs(tvb, offset + 0);
protocol_ver = tvb_get_guint8(tvb, offset + 2);
frmtyp = tvb_get_guint8(tvb, offset + 3);
msglen = tvb_reported_length_remaining(tvb, offset);
printf("disect_sslbp: magic [%x] ver [%x] typ [%x]
length[%d]\n",magic,protocol_ver,frmtyp,msglen);
if (check_col(pinfo->cinfo, COL_INFO)) {
/*
* Indicate what kind of message this is.
*/
if ((frmtyp != MYFT_ANNOUNCE) && (frmtyp !=
MYFT_STATUS))
col_set_str(pinfo->cinfo, COL_INFO, "- Invalid -");
else
col_set_str(pinfo->cinfo,
COL_INFO,val_to_str(frmtyp,frame_type,"Unknown (0x%02x)"));
col_append_fstr(pinfo->cinfo, COL_INFO," len=%u", msglen
);
}
if (tree == NULL) {
printf("disect_sslbp: No tree");
return;
}
DETAILED CODE REMOVED
}
void
proto_register_sslbp(void)
{
static hf_register_info hf[] = {
{ &hf_sslbp_type, { "Frame type", "sslbp.type", FT_UINT8,
BASE_DEC,VALS(frame_type), 0x0, NULL, HFILL }},
};
static gint *ett[] = {
&ett_sslbp,
&ett_sslbp_header,
&ett_sslbp_status,
&ett_sslbp_announce,
};
module_t *sslbp_module;
proto_sslbp = proto_register_protocol("xxxxxx xxxxxxxxxxxxx",
"sslbp",
"sslbp");
proto_register_field_array(proto_sslbp, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
sslbp_module = prefs_register_protocol(proto_sslbp, NULL);
}
void
proto_reg_handoff_sslbp(void)
{
dissector_handle_t sslbp_handle;
sslbp_handle = create_dissector_handle(dissect_sslbp, proto_sslbp);
dissector_add("udp.port", 10000, sslbp_handle);
}
-
--
_________________________________
Dr Stuart Marsden
MyPhones.com - Extreme Digital Voice
Meade House
Chesham Rd
Wigginton
Tring
Herts
HP23 6JE
Myphones Voice: +44 (0)1494 414100
Legacy Voice: +44 (0)1494 758204
Fax: +44 (0)1494 757000
Mob: +44 (0)7788 107013
mail to: stuart@xxxxxxxxxxxx
_________________________________
|