2001-06-06 01:30:30 +00:00
|
|
|
/* packet-gnutella.h
|
|
|
|
* Declarations for gnutella dissection
|
|
|
|
* Copyright 2001, B. Johannessen <bob@havoq.com>
|
|
|
|
*
|
2006-05-21 04:49:01 +00:00
|
|
|
* Wireshark - Network traffic analyzer
|
|
|
|
* By Gerald Combs <gerald@wireshark.org>
|
2001-06-06 01:30:30 +00:00
|
|
|
* Copyright 1998 Gerald Combs
|
|
|
|
*
|
2018-02-12 11:23:27 +00:00
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
2001-06-06 01:30:30 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#define GNUTELLA_TCP_PORT 6346
|
|
|
|
|
2005-01-31 00:28:02 +00:00
|
|
|
/*
|
|
|
|
* Used to determine whether a chunk of data looks like a Gnutella packet
|
|
|
|
* or not - it might be a transfer stream, or it might be part of a
|
|
|
|
* Gnutella packet that starts in an earlier missing TCP segment.
|
|
|
|
*
|
|
|
|
* One Gnutella spec says packets SHOULD be no bigger than 4K, although
|
|
|
|
* that's SHOULD, not MUST.
|
|
|
|
*/
|
|
|
|
#define GNUTELLA_MAX_SNAP_SIZE 4096
|
2001-06-06 01:30:30 +00:00
|
|
|
|
|
|
|
#define GNUTELLA_UNKNOWN_NAME "Unknown"
|
|
|
|
#define GNUTELLA_PING 0x00
|
|
|
|
#define GNUTELLA_PING_NAME "Ping"
|
|
|
|
#define GNUTELLA_PONG 0x01
|
|
|
|
#define GNUTELLA_PONG_NAME "Pong"
|
|
|
|
#define GNUTELLA_PUSH 0x40
|
|
|
|
#define GNUTELLA_PUSH_NAME "Push"
|
|
|
|
#define GNUTELLA_QUERY 0x80
|
|
|
|
#define GNUTELLA_QUERY_NAME "Query"
|
|
|
|
#define GNUTELLA_QUERYHIT 0x81
|
|
|
|
#define GNUTELLA_QUERYHIT_NAME "QueryHit"
|
|
|
|
|
|
|
|
#define GNUTELLA_HEADER_LENGTH 23
|
|
|
|
#define GNUTELLA_SERVENT_ID_LENGTH 16
|
|
|
|
#define GNUTELLA_PORT_LENGTH 2
|
|
|
|
#define GNUTELLA_IP_LENGTH 4
|
|
|
|
#define GNUTELLA_LONG_LENGTH 4
|
|
|
|
#define GNUTELLA_SHORT_LENGTH 2
|
|
|
|
#define GNUTELLA_BYTE_LENGTH 1
|
|
|
|
|
|
|
|
#define GNUTELLA_PONG_LENGTH 14
|
|
|
|
#define GNUTELLA_PONG_PORT_OFFSET 0
|
|
|
|
#define GNUTELLA_PONG_IP_OFFSET 2
|
|
|
|
#define GNUTELLA_PONG_FILES_OFFSET 6
|
|
|
|
#define GNUTELLA_PONG_KBYTES_OFFSET 10
|
|
|
|
|
|
|
|
#define GNUTELLA_QUERY_SPEED_OFFSET 0
|
|
|
|
#define GNUTELLA_QUERY_SEARCH_OFFSET 2
|
|
|
|
|
|
|
|
#define GNUTELLA_QUERYHIT_HEADER_LENGTH 11
|
|
|
|
#define GNUTELLA_QUERYHIT_COUNT_OFFSET 0
|
|
|
|
#define GNUTELLA_QUERYHIT_PORT_OFFSET 1
|
|
|
|
#define GNUTELLA_QUERYHIT_IP_OFFSET 3
|
|
|
|
#define GNUTELLA_QUERYHIT_SPEED_OFFSET 7
|
|
|
|
#define GNUTELLA_QUERYHIT_FIRST_HIT_OFFSET 11
|
|
|
|
#define GNUTELLA_QUERYHIT_HIT_INDEX_OFFSET 0
|
|
|
|
#define GNUTELLA_QUERYHIT_HIT_SIZE_OFFSET 4
|
|
|
|
#define GNUTELLA_QUERYHIT_END_OF_STRING_LENGTH 2
|
|
|
|
|
|
|
|
#define GNUTELLA_PUSH_SERVENT_ID_OFFSET 0
|
|
|
|
#define GNUTELLA_PUSH_INDEX_OFFSET 16
|
|
|
|
#define GNUTELLA_PUSH_IP_OFFSET 20
|
|
|
|
#define GNUTELLA_PUSH_PORT_OFFSET 24
|
|
|
|
|
|
|
|
#define GNUTELLA_HEADER_ID_OFFSET 0
|
|
|
|
#define GNUTELLA_HEADER_PAYLOAD_OFFSET 16
|
|
|
|
#define GNUTELLA_HEADER_TTL_OFFSET 17
|
|
|
|
#define GNUTELLA_HEADER_HOPS_OFFSET 18
|
|
|
|
#define GNUTELLA_HEADER_SIZE_OFFSET 19
|