本文整理汇总了C++中col_append_sep_str函数的典型用法代码示例。如果您正苦于以下问题:C++ col_append_sep_str函数的具体用法?C++ col_append_sep_str怎么用?C++ col_append_sep_str使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了col_append_sep_str函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dissect_btsmp_auth_req
static int
dissect_btsmp_auth_req(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree)
{
guint8 value;
const guint8 *ph;
col_append_str(pinfo->cinfo, COL_INFO, "AuthReq: ");
proto_tree_add_bitmask(tree, tvb, offset, hf_btsmp_authreq, ett_btsmp_auth_req, hfx_btsmp_authreq, ENC_LITTLE_ENDIAN);
value = tvb_get_guint8(tvb, offset);
ph = val_to_str_const(value & 0x03, bonding_flag_vals, "<unknown>");
col_append_sep_str(pinfo->cinfo, COL_INFO, "", ph);
if (value & 0x04)
col_append_sep_str(pinfo->cinfo, COL_INFO, ", ", "MITM");
if (value & 0x08)
col_append_sep_str(pinfo->cinfo, COL_INFO, ", ", "SecureConnection");
if (value & 0x10)
col_append_sep_str(pinfo->cinfo, COL_INFO, ", ", "Keypress");
if (value & 0xE0)
col_append_sep_str(pinfo->cinfo, COL_INFO, ", ", "Reserved");
return offset + 1;
}
示例2: dissect_wimax_ffb_decoder
static void dissect_wimax_ffb_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
gint offset = 0;
guint length, num_of_ffbs, i;
proto_item *ffb_item = NULL;
proto_tree *ffb_tree = NULL;
/* update the info column */
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "Fast Feedback Burst:");
if (tree)
{ /* we are being asked for details */
/* get the tvb reported length */
length = tvb_reported_length(tvb);
/* display Fast Feedback Burst dissector info */
ffb_item = proto_tree_add_protocol_format(tree, proto_wimax_ffb_decoder, tvb, offset, length, "Fast Feedback Burst (%u bytes)", length);
/* add Fast Feedback Burst subtree */
ffb_tree = proto_item_add_subtree(ffb_item, ett_wimax_ffb_decoder);
/* get the number of FFBs */
num_of_ffbs = tvb_get_guint8(tvb, offset);
/* display the number of FFBs */
proto_tree_add_item(ffb_tree, hf_ffb_num_of_ffbs, tvb, offset++, 1, ENC_BIG_ENDIAN);
/* display the FFB type */
proto_tree_add_item(ffb_tree, hf_ffb_type, tvb, offset++, 1, ENC_BIG_ENDIAN);
/* display the FFBs */
for(i = 0; i < num_of_ffbs; i++)
{
proto_tree_add_item(ffb_tree, hf_ffb_subchannel, tvb, offset++, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(ffb_tree, hf_ffb_symboloffset, tvb, offset++, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(ffb_tree, hf_ffb_value, tvb, offset++, 1, ENC_BIG_ENDIAN);
}
}
}
示例3: dissect_mac_mgmt_msg_res_cmd_decoder
/* Wimax Mac RES-CMD Message Dissector */
static void dissect_mac_mgmt_msg_res_cmd_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
guint offset = 0;
guint tvb_len;
gint tlv_type, tlv_len, tlv_value_offset;
proto_item *res_cmd_item;
proto_tree *res_cmd_tree;
proto_tree *tlv_tree = NULL;
tlv_info_t tlv_info;
{ /* we are being asked for details */
/* Get the tvb reported length */
tvb_len = tvb_reported_length(tvb);
/* display MAC payload type RES-CMD */
res_cmd_item = proto_tree_add_protocol_format(tree, proto_mac_mgmt_msg_res_cmd_decoder, tvb, offset, -1, "Reset Command (RES-CMD)");
/* add MAC RES-CMD subtree */
res_cmd_tree = proto_item_add_subtree(res_cmd_item, ett_mac_mgmt_msg_res_cmd_decoder);
/* Decode and display the Reset Command (RES-CMD) */
/* process the RES-CMD TLVs */
while(offset < tvb_len)
{
/* get the TLV information */
init_tlv_info(&tlv_info, tvb, offset);
/* get the TLV type */
tlv_type = get_tlv_type(&tlv_info);
/* get the TLV length */
tlv_len = get_tlv_length(&tlv_info);
if(tlv_type == -1 || tlv_len > MAX_TLV_LEN || tlv_len < 1)
{ /* invalid tlv info */
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "RES-CMD TLV error");
proto_tree_add_item(res_cmd_tree, hf_res_cmd_invalid_tlv, tvb, offset, (tvb_len - offset), ENC_NA);
break;
}
/* get the TLV value offset */
tlv_value_offset = get_tlv_value_offset(&tlv_info);
#ifdef DEBUG /* for debug only */
proto_tree_add_protocol_format(res_cmd_tree, proto_mac_mgmt_msg_res_cmd_decoder, tvb, offset, (tlv_len + tlv_value_offset), "RES-CMD Type: %u (%u bytes, offset=%u, tlv_len=%u, tvb_len=%u)", tlv_type, (tlv_len + tlv_value_offset), offset, tlv_len, tvb_len);
#endif
/* process RES-CMD TLV Encoded information */
switch (tlv_type)
{
case HMAC_TUPLE: /* Table 348d */
/* decode and display the HMAC Tuple */
tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_res_cmd_decoder, res_cmd_tree, proto_mac_mgmt_msg_res_cmd_decoder, tvb, offset, tlv_len, "HMAC Tuple");
wimax_hmac_tuple_decoder(tlv_tree, tvb, offset+tlv_value_offset, tlv_len);
break;
case CMAC_TUPLE: /* Table 348b */
/* decode and display the CMAC Tuple */
tlv_tree = add_protocol_subtree(&tlv_info, ett_mac_mgmt_msg_res_cmd_decoder, res_cmd_tree, proto_mac_mgmt_msg_res_cmd_decoder, tvb, offset, tlv_len, "CMAC Tuple");
wimax_cmac_tuple_decoder(tlv_tree, tvb, offset+tlv_value_offset, tlv_len);
break;
default:
/* display the unknown tlv in hex */
add_tlv_subtree(&tlv_info, res_cmd_tree, hf_res_cmd_unknown_type, tvb, offset, ENC_NA);
break;
}
offset += (tlv_len+tlv_value_offset);
} /* end of TLV process while loop */
}
}
示例4: dissect_wimax_hack_decoder
static void dissect_wimax_hack_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
gint offset = 0;
guint length, num_of_hacks, i;
proto_item *hack_item = NULL;
proto_tree *hack_tree = NULL;
/* update the info column */
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "HARQ ACK Burst:");
if (tree)
{ /* we are being asked for details */
/* get the tvb reported length */
length = tvb_reported_length(tvb);
/* display HARQ ACK Burst dissector info */
hack_item = proto_tree_add_protocol_format(tree, proto_wimax_hack_decoder, tvb, offset, length, "HARQ ACK Burst (%u bytes)", length);
/* add HARQ ACK Burst subtree */
hack_tree = proto_item_add_subtree(hack_item, ett_wimax_hack_decoder);
/* get the number of HARQ ACKs */
num_of_hacks = tvb_get_guint8(tvb, offset);
/* display the number of HARQ ACKs */
proto_tree_add_item(hack_tree, hf_hack_num_of_hacks, tvb, offset++, 1, ENC_BIG_ENDIAN);
/* display the HARQ ACKs */
for(i = 0; i < num_of_hacks; i++)
{
proto_tree_add_item(hack_tree, hf_hack_subchannel, tvb, offset++, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(hack_tree, hf_hack_symboloffset, tvb, offset++, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(hack_tree, hf_hack_half_slot_flag, tvb, offset++, 1, ENC_BIG_ENDIAN);
proto_tree_add_item(hack_tree, hf_hack_value, tvb, offset++, 1, ENC_BIG_ENDIAN);
}
}
}
示例5: dissect_wimax_cdma_code_decoder
static void dissect_wimax_cdma_code_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
gint offset = 0;
guint length;
proto_item *cdma_item = NULL;
proto_tree *cdma_tree = NULL;
/* update the info column */
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "CDMA Code Attribute");
if (tree)
{ /* we are being asked for details */
/* get the tvb reported length */
length = tvb_reported_length(tvb);
/* display CDMA dissector info */
cdma_item = proto_tree_add_protocol_format(tree, proto_wimax_cdma_code_decoder, tvb, offset, length, "CDMA Code Attribute (%u bytes)", length);
/* add CDMA Code subtree */
cdma_tree = proto_item_add_subtree(cdma_item, ett_wimax_cdma_code_decoder);
/* display the first CDMA Code */
proto_tree_add_item(cdma_tree, hf_wimax_ranging_code, tvb, offset, 1, FALSE);
/* display the 2nd CDMA Code */
proto_tree_add_item(cdma_tree, hf_wimax_ranging_symbol_offset, tvb, offset+1, 1, FALSE);
/* display the 3rd CDMA Code */
proto_tree_add_item(cdma_tree, hf_wimax_ranging_subchannel_offset, tvb, offset+2, 1, FALSE);
}
}
示例6: pdu_burst_decoder
/* Decode and display the PDU Burst */
static void pdu_burst_decoder(proto_tree *tree, tvbuff_t *tvb, gint offset, gint length, packet_info *pinfo, gint burst_number, gint frag_type, gint frag_number)
{
fragment_head *pdu_frag;
tvbuff_t *pdu_tvb = NULL;
/* update the info column */
switch (frag_type)
{
case TLV_FIRST_FRAG:
col_append_sep_fstr(pinfo->cinfo, COL_INFO, NULL, "First TLV Fragment (%d)", frag_number);
break;
case TLV_LAST_FRAG:
col_append_sep_fstr(pinfo->cinfo, COL_INFO, NULL, "Last TLV Fragment (%d)", frag_number);
break;
case TLV_MIDDLE_FRAG:
col_append_sep_fstr(pinfo->cinfo, COL_INFO, NULL, "Middle TLV Fragment %d", frag_number);
break;
}
if(frag_type == TLV_NO_FRAG)
{ /* not fragmented PDU */
pdu_tvb = tvb_new_subset_length(tvb, offset, length);
}
else /* fragmented PDU */
{ /* add the fragment */
pdu_frag = fragment_add_seq(&pdu_reassembly_table, tvb, offset, pinfo, burst_number, NULL, frag_number - 1, length, ((frag_type==TLV_LAST_FRAG)?0:1), 0);
if(pdu_frag && frag_type == TLV_LAST_FRAG)
{
/* create the new tvb for defragmented frame */
pdu_tvb = tvb_new_chain(tvb, pdu_frag->tvb_data);
/* add the defragmented data to the data source list */
add_new_data_source(pinfo, pdu_tvb, "Reassembled WiMax PDU Frame");
}
else
{
pdu_tvb = NULL;
if(frag_type == TLV_LAST_FRAG)
{ /* update the info column */
col_append_sep_str(pinfo->cinfo, COL_INFO, ", ", "Incomplete PDU frame");
}
}
}
/* process the defragmented PDU burst */
if(pdu_tvb)
{
if(wimax_pdu_burst_handle)
{/* decode and display PDU Burst */
call_dissector(wimax_pdu_burst_handle, pdu_tvb, pinfo, tree);
}
else /* display PDU Burst info */
{ /* update the info column */
col_append_str(pinfo->cinfo, COL_INFO, "PDU Burst");
}
}
}
示例7: dissect_btsmp_key_dist
static int
dissect_btsmp_key_dist(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, gboolean initiator)
{
guint8 value;
gboolean next = FALSE;
if (initiator) {
col_append_str(pinfo->cinfo, COL_INFO, " | Initiator Key(s): ");
proto_tree_add_bitmask(tree, tvb, offset, hf_btsmp_initiator_key_distribution, ett_btsmp_key_dist, hfx_btsmp_key_distribution, ENC_LITTLE_ENDIAN);
} else {
col_append_str(pinfo->cinfo, COL_INFO, " | Responder Key(s): ");
proto_tree_add_bitmask(tree, tvb, offset, hf_btsmp_responder_key_distribution, ett_btsmp_key_dist, hfx_btsmp_key_distribution, ENC_LITTLE_ENDIAN);
}
value = tvb_get_guint8(tvb, offset);
if (value & 0x01) {
col_append_str(pinfo->cinfo, COL_INFO, "LTK");
next = TRUE;
}
if (value & 0x02) {
col_append_sep_str(pinfo->cinfo, COL_INFO, next ? ", " : "", "IRK");
next = TRUE;
}
if (value & 0x04) {
col_append_sep_str(pinfo->cinfo, COL_INFO, next ? ", " : "", "CSRK");
next = TRUE;
}
if (value & 0x08) {
col_append_sep_str(pinfo->cinfo, COL_INFO, next ? ", " : "", "Linkkey");
next = TRUE;
}
if (value & 0xF0) {
col_append_sep_str(pinfo->cinfo, COL_INFO, next ? ", " : "", "Reserved");
}
if (!next) {
col_append_str(pinfo->cinfo, COL_INFO, "<none>");
}
return offset + 1;
}
示例8: decode_iei_control_bits
static void
decode_iei_control_bits(nsip_ie_t *ie, build_info_t *bi, int ie_start_offset) {
guint8 control_bits;
proto_item *tf;
proto_tree *field_tree;
control_bits = tvb_get_guint8(bi->tvb, bi->offset);
if (bi->nsip_tree) {
tf = proto_tree_add_text(bi->nsip_tree, bi->tvb, ie_start_offset,
ie->total_length,
"NS SDU Control bits: %#02x", control_bits);
field_tree = proto_item_add_subtree(tf, ett_nsip_control_bits);
proto_tree_add_boolean(field_tree, hf_nsip_control_bits_r, bi->tvb,
bi->offset, 1,
control_bits & NSIP_MASK_CONTROL_BITS_R);
proto_tree_add_boolean(field_tree, hf_nsip_control_bits_c, bi->tvb,
bi->offset, 1,
control_bits & NSIP_MASK_CONTROL_BITS_C);
proto_tree_add_uint(field_tree, hf_nsip_control_bits_spare,
bi->tvb, bi->offset, 1,
control_bits & NSIP_MASK_CONTROL_BITS_SPARE);
}
bi->offset++;
if (check_col(bi->pinfo->cinfo, COL_INFO)) {
if (control_bits & NSIP_MASK_CONTROL_BITS_R) {
col_append_sep_str(bi->pinfo->cinfo, COL_INFO, NSIP_SEP, "Req CF");
proto_item_append_text(bi->ti, ", Request Change Flow");
}
if (control_bits & NSIP_MASK_CONTROL_BITS_C) {
col_append_sep_str(bi->pinfo->cinfo, COL_INFO, NSIP_SEP, "Conf CF");
proto_item_append_text(bi->ti, ", Confirm Change Flow");
}
}
}
示例9: dissect_kt_replication
static int
dissect_kt_replication(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset)
{
gint new_offset;
guint32 next32, size;
guint64 ts;
nstime_t ns_ts;
proto_item *pi;
new_offset = offset;
proto_tree_add_item(tree, hf_kt_magic, tvb, new_offset, 1, ENC_BIG_ENDIAN);
new_offset++;
if (tvb_reported_length_remaining(tvb, new_offset) > 0) {
next32 = tvb_get_ntohl(tvb, new_offset);
if (next32 <= 1) { /* This means request. the 32 bits are flags */
proto_tree_add_item(tree, hf_kt_flags, tvb, new_offset, 4, ENC_BIG_ENDIAN);
new_offset += 4;
proto_tree_add_item(tree, hf_kt_ts, tvb, new_offset, 8, ENC_BIG_ENDIAN);
new_offset += 8;
proto_tree_add_item(tree, hf_kt_sid, tvb, new_offset, 2, ENC_BIG_ENDIAN);
new_offset += 2;
} else { /* This is a response. The 32 bits are the first half of the ts */
ts = tvb_get_ntoh64(tvb, new_offset);
ns_ts.secs = (time_t)(ts/1000000000);
ns_ts.nsecs = (int)(ts%1000000000);
proto_tree_add_time(tree, hf_kt_ts, tvb, new_offset, 8, &ns_ts);
new_offset += 8;
size = tvb_get_ntohl(tvb, new_offset);
proto_tree_add_uint(tree, hf_kt_size, tvb, new_offset, 4, size);
new_offset += 4;
proto_tree_add_item(tree, hf_kt_log, tvb, new_offset, size, ENC_NA);
new_offset += size;
}
} else {
/* This is an empty ack to the message with magic 0xB0. */
pi = proto_tree_add_uint(tree, hf_kt_type, tvb, offset, 1, KT_OPER_RESPONSE);
PROTO_ITEM_SET_GENERATED(pi);
col_append_sep_str(pinfo->cinfo, COL_INFO, " ", "[response]");
}
return new_offset;
}
示例10: parse_teredo_orig
static int
parse_teredo_orig(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
int offset, e_teredohdr *teredoh)
{
proto_item *ti = NULL;
col_append_sep_str (pinfo->cinfo, COL_INFO, ", ",
"Origin indication");
if (tree) {
ti = proto_tree_add_item(tree, hf_teredo_orig, tvb, offset,
8, ENC_NA);
tree = proto_item_add_subtree(ti, ett_teredo_orig);
}
offset += 2;
teredoh->th_orgport = tvb_get_ntohs(tvb, offset);
if (tree) {
/*
* The "usual arithmetic conversions" will convert
* "teredoh->th_orgport" to an "int" (because all
* "unsigned short" values will fit in an "int"),
* which will zero-extend it. This means that
* complementing it will turn all the zeroes in
* the upper 16 bits into ones; we just want the
* lower 16 bits (containing the port number)
* complemented, with the result zero-extended.
*
* That's what the cast is for.
*/
proto_tree_add_uint(tree, hf_teredo_orig_port, tvb,
offset, 2,
(guint16)~teredoh->th_orgport);
}
offset += 2;
teredoh->th_iporgaddr = tvb_get_ipv4(tvb, offset);
if (tree) {
proto_tree_add_ipv4(tree, hf_teredo_orig_addr, tvb,
offset, 4, ~teredoh->th_iporgaddr);
}
offset += 4;
return offset;
}
示例11: dissect_wimax_phy_attributes_decoder
static void dissect_wimax_phy_attributes_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
guint offset = 0;
guint tvb_len;
/* guint num_of_slots;*/
proto_item *phy_item = NULL;
proto_tree *phy_tree = NULL;
/* update the info column */
/*col_append_str(pinfo->cinfo, COL_INFO, "PDU Burst Physical Attributes:");*/
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "PHY-attr");
if (tree)
{ /* we are being asked for details */
/* get the tvb reported length */
tvb_len = tvb_reported_length(tvb);
/* display PDU Burst Physical Attributes dissector info */
phy_item = proto_tree_add_protocol_format(tree, proto_wimax_phy_attributes_decoder, tvb, offset, tvb_len, "PDU Burst Physical Attributes (%u bytes)", tvb_len);
/* add PDU Burst Physical Attributes subtree */
phy_tree = proto_item_add_subtree(phy_item, ett_wimax_phy_attributes_decoder);
/* display the subchannelization type */
proto_tree_add_item(phy_tree, hf_phy_attributes_subchannelization_type, tvb, offset++, 1, ENC_BIG_ENDIAN);
/* display the permbase */
proto_tree_add_item(phy_tree, hf_phy_attributes_permbase, tvb, offset++, 1, ENC_BIG_ENDIAN);
/* display the modulation rate */
proto_tree_add_item(phy_tree, hf_phy_attributes_modulation_rate, tvb, offset++, 1, ENC_BIG_ENDIAN);
/* display the encoding type */
proto_tree_add_item(phy_tree, hf_phy_attributes_encoding_type, tvb, offset++, 1, ENC_BIG_ENDIAN);
/* display the numRepeat */
proto_tree_add_item(phy_tree, hf_phy_attributes_num_repeat, tvb, offset++, 1, ENC_BIG_ENDIAN);
/* display the symbol offset */
proto_tree_add_item(phy_tree, hf_phy_attributes_symbol_offset, tvb, offset++, 1, ENC_BIG_ENDIAN);
/* display the number of slots */
proto_tree_add_item(phy_tree, hf_phy_attributes_num_of_slots, tvb, offset, 2, ENC_BIG_ENDIAN);
/* get the number of slots */
/* num_of_slots = tvb_get_guint16(tvb, offset);*/
/* move to next field */
offset += 2;
/* display the physical subchannel list */
while(offset < tvb_len)
{
proto_tree_add_item(phy_tree, hf_phy_attributes_subchannel, tvb, offset++, 1, ENC_BIG_ENDIAN);
}
}
}
示例12: dissect_mac_mgmt_msg_decoder
static void dissect_mac_mgmt_msg_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
guint offset = 0;
guint message_type;
proto_item *message_item;
proto_tree *message_tree;
const char* mgt_msg_str;
message_item = proto_tree_add_protocol_format(tree, proto_mac_mgmt_msg_decoder, tvb, offset, -1,
"MAC Management Message Type (%u bytes)", tvb_reported_length(tvb));
message_tree = proto_item_add_subtree(message_item, ett_mac_mgmt_msg_decoder);
if (tvb_reported_length(tvb) == 0)
{
expert_add_info(pinfo, message_item, &ei_empty_payload);
return;
}
/* Get the payload type */
message_type = tvb_get_guint8(tvb, offset);
proto_tree_add_item(message_tree, hf_mac_mgmt_msg_type, tvb, offset, 1, ENC_NA);
mgt_msg_str = val_to_str_ext_const(message_type, &mgt_msg_abbrv_vals_ext, "Unknown");
/* Display message type in Info column */
col_append_sep_str(pinfo->cinfo, COL_INFO, ", ", mgt_msg_str);
/* add the payload type into the info column */
if (try_val_to_str_ext(message_type, &mgt_msg_abbrv_vals_ext) == NULL)
{
/* display the MAC payload in Hex */
proto_tree_add_item(message_tree, hf_mac_mgmt_msg_values, tvb, offset, -1, ENC_NA);
return;
}
/* add the MAC header info to parent*/
proto_item_append_text(proto_tree_get_parent(tree), ", %s", mgt_msg_str);
/* Decode and display the MAC payload */
if (!dissector_try_uint(subdissector_message_table, message_type,
tvb_new_subset_remaining(tvb, 1), pinfo, tree))
{
proto_tree_add_item(message_tree, hf_mac_mgmt_msg_values, tvb, offset, -1, ENC_NA);
}
}
示例13: ssh_dissect_kex_dh_gex
static int ssh_dissect_kex_dh_gex(guint8 msg_code, tvbuff_t *tvb,
packet_info *pinfo, int offset, proto_tree *tree)
{
proto_tree_add_item(tree, hf_ssh2_kex_dh_gex_msg_code, tvb, offset, 1, ENC_NA);
offset += 1;
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL,
val_to_str(msg_code, ssh2_kex_dh_gex_msg_vals, "Unknown (%u)"));
switch (msg_code) {
case SSH_MSG_KEX_DH_GEX_REQUEST_OLD:
proto_tree_add_item(tree, hf_ssh_dh_gex_nbits, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
break;
case SSH_MSG_KEX_DH_GEX_GROUP:
offset += ssh_tree_add_mpint(tvb, offset, tree, hf_ssh_mpint_p);
offset += ssh_tree_add_mpint(tvb, offset, tree, hf_ssh_mpint_g);
break;
case SSH_MSG_KEX_DH_GEX_INIT:
offset += ssh_tree_add_mpint(tvb, offset, tree, hf_ssh_mpint_e);
break;
case SSH_MSG_KEX_DH_GEX_REPLY:
offset += ssh_tree_add_string(tvb, offset, tree, hf_ssh_kexdh_host_key, hf_ssh_kexdh_host_key_length);
offset += ssh_tree_add_mpint(tvb, offset, tree, hf_ssh_mpint_f);
offset += ssh_tree_add_string(tvb, offset, tree, hf_ssh_kexdh_h_sig, hf_ssh_kexdh_h_sig_length);
break;
case SSH_MSG_KEX_DH_GEX_REQUEST:
proto_tree_add_item(tree, hf_ssh_dh_gex_min, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
proto_tree_add_item(tree, hf_ssh_dh_gex_nbits, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
proto_tree_add_item(tree, hf_ssh_dh_gex_max, tvb, offset, 4, ENC_BIG_ENDIAN);
offset += 4;
break;
}
return offset;
}
示例14: dissect_wimax_cdma_code_decoder
static void dissect_wimax_cdma_code_decoder(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
gint offset = 0;
proto_item *cdma_item;
proto_tree *cdma_tree;
/* update the info column */
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL, "CDMA Code Attribute");
if (tree)
{ /* we are being asked for details */
/* display CDMA dissector info */
cdma_item = proto_tree_add_item(tree, proto_wimax_cdma_code_decoder, tvb, offset, -1, ENC_NA);
/* add CDMA Code subtree */
cdma_tree = proto_item_add_subtree(cdma_item, ett_wimax_cdma_code_decoder);
/* display the first CDMA Code */
proto_tree_add_item(cdma_tree, hf_wimax_ranging_code, tvb, offset, 1, ENC_BIG_ENDIAN);
/* display the 2nd CDMA Code */
proto_tree_add_item(cdma_tree, hf_wimax_ranging_symbol_offset, tvb, offset+1, 1, ENC_BIG_ENDIAN);
/* display the 3rd CDMA Code */
proto_tree_add_item(cdma_tree, hf_wimax_ranging_subchannel_offset, tvb, offset+2, 1, ENC_BIG_ENDIAN);
}
}
示例15: ssh_dissect_kex_dh
static int ssh_dissect_kex_dh(guint8 msg_code, tvbuff_t *tvb,
packet_info *pinfo, int offset, proto_tree *tree)
{
proto_tree_add_item(tree, hf_ssh2_kex_dh_msg_code, tvb, offset, 1, ENC_NA);
offset += 1;
col_append_sep_str(pinfo->cinfo, COL_INFO, NULL,
val_to_str(msg_code, ssh2_kex_dh_msg_vals, "Unknown (%u)"));
switch (msg_code) {
case SSH_MSG_KEXDH_INIT:
offset += ssh_tree_add_mpint(tvb, offset, tree, hf_ssh_mpint_e);
break;
case SSH_MSG_KEXDH_REPLY:
offset += ssh_tree_add_string(tvb, offset, tree, hf_ssh_kexdh_host_key, hf_ssh_kexdh_host_key_length);
offset += ssh_tree_add_mpint(tvb, offset, tree, hf_ssh_mpint_f);
offset += ssh_tree_add_string(tvb, offset, tree, hf_ssh_kexdh_h_sig, hf_ssh_kexdh_h_sig_length);
break;
}
return offset;
}