diff options
author | Jaap Keuter <jaap.keuter@xs4all.nl> | 2006-09-18 14:29:58 +0000 |
---|---|---|
committer | Jaap Keuter <jaap.keuter@xs4all.nl> | 2006-09-18 14:29:58 +0000 |
commit | 00588165992988b13df0154534969436f70a760b (patch) | |
tree | cd5fe151f6d6b918ad1e969424d6d03a5623ffdb /epan/dissectors/packet-ymsg.c | |
parent | a3821bf4c3acca96c10c858774bbeedf60a25912 (diff) |
From G.F. aka Gena01
I have put together a patch for YMSG packet dissector. This is based on my own code and service lists (this
should match Gaim and Kopete service lists). This new code should bring the code up to par to most of the
known services. Which should cover up to Yahoo 7.x or most of it.
I have also setup a new set of constants which are specific to YMSG packets. These are the types that I've
seen in miranda network logs and they should reveal more information. The other constants are mostly for buddy
statuses and need nor apply to the YMSG header. I have left them in the code (for now). These constants are
currently used in my own code.
svn path=/trunk/; revision=19255
Diffstat (limited to 'epan/dissectors/packet-ymsg.c')
-rw-r--r-- | epan/dissectors/packet-ymsg.c | 72 |
1 files changed, 51 insertions, 21 deletions
diff --git a/epan/dissectors/packet-ymsg.c b/epan/dissectors/packet-ymsg.c index 26ff966b66..fdebb3549c 100644 --- a/epan/dissectors/packet-ymsg.c +++ b/epan/dissectors/packet-ymsg.c @@ -1,5 +1,5 @@ /* packet-ymsg.c - * Routines for Yahoo Messenger YMSG protocol packet version 9 dissection + * Routines for Yahoo Messenger YMSG protocol packet version 13 dissection * Copyright 2003, Wayne Parrott <wayne_p@pacific.net.au> * Copied from packet-yhoo.c and updated * @@ -145,14 +145,29 @@ enum yahoo_service { /* these are easier to see in hex */ YAHOO_SERVICE_CHATLOGOUT = 0xa0, YAHOO_SERVICE_CHATPING, YAHOO_SERVICE_COMMENT = 0xa8, + YAHOO_SERVICE_GAME_INVITE = 0xb7, + YAHOO_SERVICE_STEALTH_PERM = 0xb9, + YAHOO_SERVICE_STEALTH_SESSION = 0xba, YAHOO_SERVICE_AVATAR = 0xbc, YAHOO_SERVICE_PICTURE_CHECKSUM = 0xbd, YAHOO_SERVICE_PICTURE = 0xbe, YAHOO_SERVICE_PICTURE_UPDATE = 0xc1, YAHOO_SERVICE_PICTURE_UPLOAD = 0xc2, - YAHOO_SERVICE_YAHOO6_STATUS_UPDATE = 0xc6, - YAHOO_SERVICE_AVATAR_UPDATE = 0xc7, + YAHOO_SERVICE_YAB_UPDATE = 0xc4, + YAHOO_SERVICE_Y6_VISIBLE_TOGGLE = 0xc5, /* YMSG13, key 13: 2 = invisible, 1 = visible */ + YAHOO_SERVICE_Y6_STATUS_UPDATE = 0xc6, /* YMSG13 */ + YAHOO_SERVICE_PICTURE_STATUS = 0xc7, /* YMSG13, key 213: 0 = none, 1 = avatar, 2 = picture */ + YAHOO_SERVICE_VERIFY_ID_EXISTS = 0xc8, YAHOO_SERVICE_AUDIBLE = 0xd0, + YAHOO_SERVICE_Y7_PHOTO_SHARING = 0xd2, + YAHOO_SERVICE_Y7_CONTACT_DETAILS = 0xd3,/* YMSG13 */ + YAHOO_SERVICE_Y7_CHAT_SESSION = 0xd4, + YAHOO_SERVICE_Y7_AUTHORIZATION = 0xd6, /* YMSG13 */ + YAHOO_SERVICE_Y7_FILETRANSFER = 0xdc, /* YMSG13 */ + YAHOO_SERVICE_Y7_FILETRANSFERINFO, /* YMSG13 */ + YAHOO_SERVICE_Y7_FILETRANSFERACCEPT, /* YMSG13 */ + YAHOO_SERVICE_Y7_MINGLE = 0xe1, /* YMSG13 */ + YAHOO_SERVICE_Y7_CHANGE_GROUP = 0xe7, /* YMSG13 */ YAHOO_SERVICE_WEBLOGIN = 0x0226, YAHOO_SERVICE_SMS_MSG = 0x02ea }; @@ -177,6 +192,17 @@ enum yahoo_status { YAHOO_STATUS_TYPING = 0x16 }; +enum ypacket_status { + YPACKET_STATUS_DISCONNECTED = -1, + YPACKET_STATUS_DEFAULT = 0, + YPACKET_STATUS_SERVERACK = 1, + YPACKET_STATUS_GAME = 0x2, + YPACKET_STATUS_CONTINUED = 0x5, + YPACKET_STATUS_INVISIBLE = 12, + YPACKET_STATUS_NOTIFY = 0x16, /* TYPING */ + YPACKET_STATUS_WEBLOGIN = 0x5a55aa55 +}; + struct yahoo_rawpacket { char ymsg[4]; /* Packet identification string (YMSG) */ @@ -247,36 +273,40 @@ static const value_string ymsg_service_vals[] = { {YAHOO_SERVICE_CHATLOGOUT, "YAHOO_SERVICE_CHATLOGOUT"}, {YAHOO_SERVICE_CHATPING, "YAHOO_SERVICE_CHATPING"}, {YAHOO_SERVICE_COMMENT, "YAHOO_SERVICE_COMMENT"}, + {YAHOO_SERVICE_GAME_INVITE,"YAHOO_SERVICE_GAME_INVITE "}, + {YAHOO_SERVICE_STEALTH_PERM, "YAHOO_SERVICE_STEALTH_PERM"}, + {YAHOO_SERVICE_STEALTH_SESSION, "YAHOO_SERVICE_STEALTH_SESSION"}, {YAHOO_SERVICE_AVATAR, "YAHOO_SERVICE_AVATAR"}, {YAHOO_SERVICE_PICTURE_CHECKSUM, "YAHOO_SERVICE_PICTURE_CHECKSUM"}, {YAHOO_SERVICE_PICTURE, "YAHOO_SERVICE_PICTURE"}, {YAHOO_SERVICE_PICTURE_UPDATE, "YAHOO_SERVICE_PICTURE_UPDATE"}, {YAHOO_SERVICE_PICTURE_UPLOAD, "YAHOO_SERVICE_PICTURE_UPLOAD"}, - {YAHOO_SERVICE_YAHOO6_STATUS_UPDATE, "YAHOO_SERVICE_YAHOO6_STATUS_UPDATE"}, - {YAHOO_SERVICE_AVATAR_UPDATE, "YAHOO_SERVICE_AVATAR_UPDATE"}, + {YAHOO_SERVICE_YAB_UPDATE,"YAHOO_SERVICE_YAB_UPDATE"}, + {YAHOO_SERVICE_Y6_VISIBLE_TOGGLE, "YAHOO_SERVICE_Y6_VISIBLE_TOGGLE"}, + {YAHOO_SERVICE_Y6_STATUS_UPDATE, "YAHOO_SERVICE_Y6_STATUS_UPDATE"}, + {YAHOO_SERVICE_PICTURE_STATUS, "YAHOO_SERVICE_PICTURE_STATUS"}, + {YAHOO_SERVICE_VERIFY_ID_EXISTS, "YAHOO_SERVICE_VERIFY_ID_EXISTS"}, {YAHOO_SERVICE_AUDIBLE, "YAHOO_SERVICE_AUDIBLE"}, + {YAHOO_SERVICE_Y7_CONTACT_DETAILS,"YAHOO_SERVICE_Y7_CONTACT_DETAILS"}, + {YAHOO_SERVICE_Y7_CHAT_SESSION, "YAHOO_SERVICE_Y7_CHAT_SESSION"}, + {YAHOO_SERVICE_Y7_AUTHORIZATION,"YAHOO_SERVICE_Y7_AUTHORIZATION"}, + {YAHOO_SERVICE_Y7_FILETRANSFER,"YAHOO_SERVICE_Y7_FILETRANSFER"}, + {YAHOO_SERVICE_Y7_FILETRANSFERINFO,"YAHOO_SERVICE_Y7_FILETRANSFERINFO"}, + {YAHOO_SERVICE_Y7_FILETRANSFERACCEPT,"YAHOO_SERVICE_Y7_FILETRANSFERACCEPT"}, + {YAHOO_SERVICE_Y7_CHANGE_GROUP, "YAHOO_SERVICE_Y7_CHANGE_GROUP"}, {YAHOO_SERVICE_WEBLOGIN, "YAHOO_SERVICE_WEBLOGIN"}, {YAHOO_SERVICE_SMS_MSG, "YAHOO_SERVICE_SMS_MSG"}, {0, NULL} }; static const value_string ymsg_status_vals[] = { - {YAHOO_STATUS_AVAILABLE, "YAHOO_STATUS_AVAILABLE"}, - {YAHOO_STATUS_BRB, "YAHOO_STATUS_BRB"}, - {YAHOO_STATUS_BUSY, "YAHOO_STATUS_BUSY"}, - {YAHOO_STATUS_NOTATHOME, "YAHOO_STATUS_NOTATHOME"}, - {YAHOO_STATUS_NOTATDESK, "YAHOO_STATUS_NOTATDESK"}, - {YAHOO_STATUS_NOTINOFFICE, "YAHOO_STATUS_NOTINOFFICE"}, - {YAHOO_STATUS_ONPHONE, "YAHOO_STATUS_ONPHONE"}, - {YAHOO_STATUS_ONVACATION, "YAHOO_STATUS_ONVACATION"}, - {YAHOO_STATUS_OUTTOLUNCH, "YAHOO_STATUS_OUTTOLUNCH"}, - {YAHOO_STATUS_STEPPEDOUT, "YAHOO_STATUS_STEPPEDOUT"}, - {YAHOO_STATUS_INVISIBLE, "YAHOO_STATUS_INVISIBLE"}, - {YAHOO_STATUS_CUSTOM, "YAHOO_STATUS_CUSTOM"}, - {YAHOO_STATUS_IDLE, "YAHOO_STATUS_IDLE"}, - {YAHOO_STATUS_WEBLOGIN, "YAHOO_STATUS_WEBLOGIN"}, - {YAHOO_STATUS_OFFLINE, "YAHOO_STATUS_OFFLINE"}, - {YAHOO_STATUS_TYPING, "YAHOO_STATUS_TYPING"}, + {YPACKET_STATUS_DISCONNECTED,"Disconnected"}, + {YPACKET_STATUS_DEFAULT,""}, + {YPACKET_STATUS_SERVERACK,"Server Ack"}, + {YPACKET_STATUS_GAME,"Playing Game"}, + {YPACKET_STATUS_CONTINUED,"More Packets??"}, + {YPACKET_STATUS_NOTIFY, "Notify"}, + {YPACKET_STATUS_WEBLOGIN,"Web Login"}, {0, NULL} }; |