コード例 #1
0
ファイル: tcp.c プロジェクト: Mybrc91/junkie
static void tcp_deserialize(struct proto_info *info_, uint8_t const **buf)
{
    struct tcp_proto_info *info = DOWNCAST(info_, info, tcp_proto_info);
    proto_info_deserialize(info_, buf);
    info->key.port[0] = deserialize_2(buf);
    info->key.port[1] = deserialize_2(buf);
    unsigned flags = deserialize_1(buf);
    info->syn = !!(flags & 0x01);
    info->ack = !!(flags & 0x02);
    info->rst = !!(flags & 0x04);
    info->fin = !!(flags & 0x08);
    info->urg = !!(flags & 0x10);
    info->psh = !!(flags & 0x20);
    info->to_srv = !!(flags & 0x40);
    info->window = deserialize_2(buf);
    info->urg_ptr = deserialize_2(buf);
    info->ack_num = deserialize_4(buf);
    info->seq_num = deserialize_4(buf);
    info->rel_seq_num = deserialize_4(buf);
    info->set_values = deserialize_1(buf);
    info->mss = deserialize_2(buf);
    info->wsf = deserialize_1(buf);
    info->nb_options = deserialize_1(buf);
    for (unsigned o = 0; o < info->nb_options; o++) {
        info->options[o] = deserialize_1(buf);
    }
}
コード例 #2
0
ファイル: cap.c プロジェクト: bonnefoa/junkie
static void cap_deserialize(struct proto_info *info_, uint8_t const **buf)
{
    struct cap_proto_info *info = DOWNCAST(info_, info, cap_proto_info);
    proto_info_deserialize(info_, buf);
    info->dev_id = deserialize_2(buf);
    timeval_deserialize(&info->tv, buf);
}
コード例 #3
0
ファイル: sip.c プロジェクト: bsmr-c-cpp/junkie
static void sip_deserialize(struct proto_info *info_, uint8_t const **buf)
{
    struct sip_proto_info *info = DOWNCAST(info_, info, sip_proto_info);
    proto_info_deserialize(info_, buf);
    info->set_values = deserialize_2(buf);
    if (info->set_values & SIP_CMD_SET)
        info->cmd = deserialize_1(buf);
    if (info->set_values & SIP_FROM_SET)
        deserialize_str(buf, info->from, sizeof(info->from));
    if (info->set_values & SIP_TO_SET)
        deserialize_str(buf, info->to, sizeof(info->to));
    if (info->set_values & SIP_CALLID_SET)
        deserialize_str(buf, info->call_id, sizeof(info->call_id));
    if (info->set_values & SIP_MIME_SET)
        deserialize_str(buf, info->mime_type, sizeof(info->mime_type));
    if (info->set_values & SIP_VIA_SET) {
        info->via.protocol = deserialize_1(buf);
        ip_addr_deserialize(&info->via.addr, buf);
        info->via.port = deserialize_2(buf);
    }
    if (info->set_values & SIP_LENGTH_SET)
        info->content_length = deserialize_4(buf);
    if (info->set_values & SIP_CODE_SET)
        info->code = deserialize_4(buf);
    if (info->set_values & SIP_CSEQ_SET)
        info->cseq = deserialize_4(buf);
}
コード例 #4
0
ファイル: rtp.c プロジェクト: bonnefoa/junkie
static void rtp_deserialize(struct proto_info *info_, uint8_t const **buf)
{
    struct rtp_proto_info *info = DOWNCAST(info_, info, rtp_proto_info);
    proto_info_deserialize(info_, buf);
    info->sync_src = deserialize_4(buf);
    info->seq_num = deserialize_2(buf);
    info->payload_type = deserialize_1(buf);
    info->timestamp = deserialize_4(buf);
}
コード例 #5
0
ファイル: eth.c プロジェクト: bsmr-c-cpp/junkie
static void eth_deserialize(struct proto_info *info_, uint8_t const **buf)
{
    struct eth_proto_info *info = DOWNCAST(info_, info, eth_proto_info);
    proto_info_deserialize(info_, buf);
    info->vlan_id = deserialize_3(buf);
    if (info->vlan_id == 0xffffff) info->vlan_id = -1;
    deserialize_n(buf, info->addr[0], ETH_ADDR_LEN);
    deserialize_n(buf, info->addr[1], ETH_ADDR_LEN);
    info->protocol = deserialize_2(buf);
}
コード例 #6
0
ファイル: sdp.c プロジェクト: Mybrc91/junkie
static void sdp_deserialize(struct proto_info *info_, uint8_t const **buf)
{
    struct sdp_proto_info *info = DOWNCAST(info_, info, sdp_proto_info);
    proto_info_deserialize(info_, buf);
    info->set_values = deserialize_1(buf);
    if (info->set_values & SDP_HOST_SET)
        ip_addr_deserialize(&info->host, buf);
    if (info->set_values & SDP_PORT_SET)
        info->port = deserialize_2(buf);
}
コード例 #7
0
ファイル: dhcp.c プロジェクト: bonnefoa/junkie
static void dhcp_deserialize(struct proto_info *info_, uint8_t const **buf)
{
    struct dhcp_proto_info *info = DOWNCAST(info_, info, dhcp_proto_info);
    proto_info_deserialize(info_, buf);
    unsigned u = deserialize_1(buf);
    info->hw_addr_is_eth = u & 1U;
    info->opcode = u >> 1U;
    info->set_values = deserialize_1(buf);
    if (info->set_values & DHCP_CLIENT_SET) ip_addr_deserialize(&info->client, buf);
    deserialize_n(buf, info->client_mac, sizeof(info->client_mac));
    deserialize_str(buf, info->server_name, sizeof(info->server_name));
}
コード例 #8
0
ファイル: skinny.c プロジェクト: bonnefoa/junkie
static void skinny_deserialize(struct proto_info *info_, uint8_t const **buf)
{
    struct skinny_proto_info *info = DOWNCAST(info_, info, skinny_proto_info);
    proto_info_deserialize(&info->info, buf);
    // TODO
}