2 * Routines for Yahoo Messenger YMSG protocol packet version 13 dissection
3 * Copyright 2003, Wayne Parrott <wayne_p@pacific.net.au>
4 * Copied from packet-yhoo.c and updated
6 * Wireshark - Network traffic analyzer
7 * By Gerald Combs <gerald@wireshark.org>
8 * Copyright 1998 Gerald Combs
10 * SPDX-License-Identifier: GPL-2.0-or-later
15 #include <epan/packet.h>
17 #include "packet-tcp.h"
18 #include <epan/prefs.h>
19 #include <wsutil/strtoi.h>
21 void proto_register_ymsg(void);
22 void proto_reg_handoff_ymsg(void);
24 static int proto_ymsg
;
25 static int hf_ymsg_version
;
26 static int hf_ymsg_vendor
;
27 static int hf_ymsg_len
;
28 static int hf_ymsg_command
;
29 static int hf_ymsg_status
;
30 static int hf_ymsg_session_id
;
32 static int hf_ymsg_content
;
33 static int hf_ymsg_content_line
;
34 static int hf_ymsg_content_line_key
;
35 static int hf_ymsg_content_line_value
;
38 static int ett_ymsg_content
;
39 static int ett_ymsg_content_line
;
41 #define TCP_PORT_YMSG 23 /* XXX - this is Telnet! */
42 #define TCP_PORT_YMSG_2 25 /* And this is SMTP! */
43 #define TCP_PORT_YMSG_3 5050 /* This, however, is regular Yahoo Messenger */
45 /* desegmentation of YMSG over TCP */
46 static bool ymsg_desegment
= true;
49 * This is based on libyahoo2's yahoolib2.c and enums reversed from Y!M 9.0.0.2162 DLLs
53 * http://libyahoo2.sourceforge.net/ymsg-9.txt
54 * Snapshot: https://web.archive.org/web/20230726025458/http://libyahoo2.sourceforge.net/ymsg-9.txt
58 * http://www.venkydude.com/articles/yahoo.htm
59 * Snapshot: https://web.archive.org/web/20100407060623/http://www.venkydude.com/articles/yahoo.htm
63 * http://www.cse.iitb.ac.in/~varunk/YahooProtocol.htm
64 * Snapshot: https://web.archive.org/web/20040214071503/http://www.cse.iitb.ac.in/~varunk/YahooProtocol.htm
68 * http://www.geocrawler.com/archives/3/4893/2002/1/0/7459037/
73 * http://www.geocities.com/ziggycubbe/ym.html
74 * Snapshot: https://web.archive.org/web/20091026045625/http://www.geocities.com/ziggycubbe/ym.html
78 * https://gitlab.com/escargot-chat/server/-/wikis/YMSG-Protocol
79 * Snapshot: https://web.archive.org/web/20220818055244/https://gitlab.com/escargot-chat/server/-/wikis/YMSG-Protocol
82 /* The size of the below struct minus 6 bytes of content */
83 #define YAHOO_HEADER_SIZE 20
86 struct yahoo_rawpacket
88 char ymsg
[4]; /* Packet identification string (YMSG) */
89 unsigned char version
[2]; /* 2 bytes, little endian */
90 unsigned char vendor
[2]; /* 2 bytes, little endian */
91 unsigned char len
[2]; /* length - little endian */
92 unsigned char command
[2]; /* command - little endian */
93 unsigned char status
[4]; /* Status - ok, notify etc. */
94 unsigned char session_id
[4]; /* Session ID */
95 char content
[6]; /* 6 is the minimum size of the content */
102 * Extracted from ymsglite.dll -> YMSGMessage::commandToString(void *outString, uint command)
105 YAHOO_CMD_USER_LOGIN
= 1,
106 YAHOO_CMD_USER_LOGOFF
= 2,
107 YAHOO_CMD_USER_AWAY
= 3,
108 YAHOO_CMD_USER_BACK
= 4,
109 YAHOO_CMD_USER_GET_MSGS
= 5,
110 YAHOO_CMD_USER_HAS_MSG
= 6,
111 YAHOO_CMD_ACTIVATE_ID
= 7,
112 YAHOO_CMD_DEACTIVATE_ID
= 8,
113 YAHOO_CMD_GET_USER_STATUS
= 0xa,
114 YAHOO_CMD_USER_HAS_MAIL
= 0xb,
115 YAHOO_CMD_START_CONFERENCE
= 0xc,
116 YAHOO_CMD_CALENDAR_ALERT
= 0xd,
117 YAHOO_CMD_USER_PERSONAL_MESSAGE
= 0xe,
118 YAHOO_CMD_UPDATE_BUDDY_LIST
= 0xf,
119 YAHOO_CMD_UPDATE_ID_LIST
= 0x10,
120 YAHOO_CMD_UPDATE_IGNORE_LIST
= 0x11,
121 YAHOO_CMD_PING
= 0x12,
122 YAHOO_CMD_UPDATE_GROUP
= 0x13,
123 YAHOO_CMD_SYSTEM_MESSAGE
= 0x14,
124 YAHOO_CMD_CLIENT_STATS
= 0x15,
125 YAHOO_CMD_CLIENT_ALERT_STATS
= 0x16,
126 YAHOO_CMD_GROUP_MESSAGE
= 0x17,
127 YAHOO_CMD_HOST_CONFERENCE
= 0x18,
128 YAHOO_CMD_JOIN_CONFERENCE
= 0x19,
129 YAHOO_CMD_DECLINE_CONFERENCE
= 0x1a,
130 YAHOO_CMD_LEAVE_CONFERENCE
= 0x1b,
131 YAHOO_CMD_INVITE_CONFERENCE
= 0x1c,
132 YAHOO_CMD_SAY_CONFERENCE
= 0x1d,
133 YAHOO_CMD_CHAT_LOGIN
= 0x1e,
134 YAHOO_CMD_CHAT_LOGOFF
= 0x1f,
135 YAHOO_CMD_CHAT_MSG
= 0x20,
136 YAHOO_CMD_GAMES_USER_LOGIN
= 0x28,
137 YAHOO_CMD_GAMES_USER_LOGOFF
= 0x29,
138 YAHOO_CMD_GAMES_USER_HAS_MSG
= 0x2a,
139 YAHOO_CMD_NET2PHONE_STATS
= 0x2c,
140 YAHOO_CMD_ADDRESS_BOOK_ALERT
= 0x33,
141 YAHOO_CMD_AUCTION_ALERT
= 0x3c,
142 YAHOO_CMD_USER_FT
= 0x46,
143 YAHOO_CMD_USER_FT_REPLY
= 0x47,
144 YAHOO_CMD_USER_CONVERSE
= 0x48,
145 YAHOO_CMD_USER_WEB_TOUR
= 0x49,
146 YAHOO_CMD_IM_ENABLE_VOICE
= 0x4a,
147 YAHOO_CMD_USER_SEND_MSG
= 0x4b,
148 YAHOO_CMD_SEND_PORT_CHECK
= 0x4c,
149 YAHOO_CMD_SEND_DATA_THRU
= 0x4d,
150 YAHOO_CMD_P2P_START
= 0x4f,
151 YAHOO_CMD_MSGR_WEBCAM_TOKEN
= 0x50,
152 YAHOO_CMD_STATS
= 0x51,
153 YAHOO_CMD_USER_LOGIN2
= 0x54,
154 YAHOO_CMD_PRE_LOGIN_DATA
= 0x55,
155 YAHOO_CMD_GET_COOKIE_DATA
= 0x56,
156 YAHOO_CMD_HELO
= 0x57,
157 YAHOO_CMD_FEATURE_NOT_SUPPORTED
= 0x58,
158 YAHOO_CMD_ADD_BUDDY
= 0x83,
159 YAHOO_CMD_REMOVE_BUDDY
= 0x84,
160 YAHOO_CMD_MODIFY_IGNORE_LIST
= 0x85,
161 YAHOO_CMD_DENY_BUDDY_ADD
= 0x86,
162 YAHOO_CMD_RENAME_GROUP
= 0x89,
163 YAHOO_CMD_KEEP_ALIVE
= 0x8a,
164 YAHOO_CMD_YPC_ADD_FRIEND_APPROVAL
= 0x8b,
165 YAHOO_CMD_CHALLENGE
= 0x8c,
166 YAHOO_CMD_ADD_BUDDY_INSTANT_APPROVAL
= 0x8d,
167 YAHOO_CMD_CHAT_MSGR_USER_LOGIN
= 0x96,
168 YAHOO_CMD_CHAT_GOTO_USER
= 0x97,
169 YAHOO_CMD_CHAT_ROOM_JOIN
= 0x98,
170 YAHOO_CMD_CHAT_ROOM_PART
= 0x9b,
171 YAHOO_CMD_CHAT_ROOM_INVITE
= 0x9d,
172 YAHOO_CMD_CHAT_MSGR_USER_LOGOFF
= 0xa0,
173 YAHOO_CMD_CHAT_PING
= 0xa1,
174 YAHOO_CMD_CHAT_WEBCAM_TOKEN
= 0xa7,
175 YAHOO_CMD_CHAT_PUBLIC_MSG
= 0xa8,
176 YAHOO_CMD_CHAT_ROOM_CREATE
= 0xa9,
177 YAHOO_CMD_GAMES_INVITE
= 0xb7,
178 YAHOO_CMD_GAMES_SEND_DATA
= 0xb8,
179 YAHOO_CMD_EDIT_INVISIBLE_TO_LIST
= 0xb9,
180 YAHOO_CMD_EDIT_VISIBLE_TO_LIST
= 0xba,
181 YAHOO_CMD_ANTI_BOT
= 0xbb,
182 YAHOO_CMD_AVATAR_CHANGED
= 0xbc,
183 YAHOO_CMD_FRIEND_ICON
= 0xbd,
184 YAHOO_CMD_FRIEND_ICON_DOWNLOAD
= 0xbe,
185 YAHOO_CMD_AVATAR_GET_FILE
= 0xbf,
186 YAHOO_CMD_AVATAR_GET_HASH
= 0xc0,
187 YAHOO_CMD_DISPLAY_TYPE_CHANGED
= 0xc1,
188 YAHOO_CMD_FRIEND_ICON_FT
= 0xc2,
189 YAHOO_CMD_GET_COOKIE
= 0xc3,
190 YAHOO_CMD_ADDRESS_BOOK_CHANGED
= 0xc4,
191 YAHOO_CMD_SET_VISIBILITY
= 0xc5,
192 YAHOO_CMD_SET_AWAY_STATUS
= 0xc6,
193 YAHOO_CMD_DISPLAY_IMAGE_PREFS
= 0xc7,
194 YAHOO_CMD_VERIFY_USER
= 0xc8,
195 YAHOO_CMD_AUDIBLE
= 0xd0,
196 YAHOO_CMD_IM_PANEL_FEATURE
= 0xd2,
197 YAHOO_CMD_SHARE_CONTACTS
= 0xd3,
198 YAHOO_CMD_IM_SESSION
= 0xd4,
199 YAHOO_CMD_SUBSCRIPTION
= 0xd5,
200 YAHOO_CMD_BUDDY_AUTHORIZE
= 0xd6,
201 YAHOO_CMD_PHOTO_ADD
= 0xd7,
202 YAHOO_CMD_PHOTO_SELECT
= 0xd8,
203 YAHOO_CMD_PHOTO_DELETE
= 0xd9,
204 YAHOO_CMD_PHOTO_FILE_REQUEST
= 0xda,
205 YAHOO_CMD_PHOTO_POINTER
= 0xdb,
206 YAHOO_CMD_FXFER_INVITE
= 0xdc,
207 YAHOO_CMD_FXFER_SEND
= 0xdd,
208 YAHOO_CMD_FXFER_RECEIVE
= 0xde,
209 YAHOO_CMD_UPDATE_CAPABILITY
= 0xdf,
210 YAHOO_CMD_REPORT_SPAM
= 0xe0,
211 YAHOO_CMD_MINGLE_DATA
= 0xe1,
212 YAHOO_CMD_ALERT
= 0xe2,
213 YAHOO_CMD_APP_REGISTRY
= 0xe3,
214 YAHOO_CMD_NEW_USER
= 0xe4,
215 YAHOO_CMD_ACCEPT_MSGR_INVITE
= 0xe5,
216 YAHOO_CMD_MSGR_USAGE
= 0xe6,
217 YAHOO_CMD_BUDDY_MOVE
= 0xe7,
218 YAHOO_CMD_GET_VOICE_CRUMB
= 0xe8,
219 YAHOO_CMD_PLUGIN_SESSION_INITIATION
= 0xe9,
220 YAHOO_CMD_APPLICATION_MESSAGE
= 0xea,
221 YAHOO_CMD_APPLICATION_PRESENCE
= 0xeb,
222 YAHOO_CMD_FXFER_PLUGIN_INVITE
= 0xec,
223 YAHOO_CMD_PC2MOBILE_FXFER
= 0xed,
224 YAHOO_CMD_PREFERENCE
= 0xef,
225 YAHOO_CMD_BUDDY_INFO
= 0xf0,
226 YAHOO_CMD_BUDDY_LIST
= 0xf1,
227 YAHOO_CMD_CHECK_PREMIUM_SMS_BALANCE
= 0xf2,
228 YAHOO_CMD_WIDGET_BUDDY_LIST
= 0xfc,
229 YAHOO_CMD_WIDGET_BUDDY_INFO
= 0xfd,
230 YAHOO_CMD_WIDGET_ACTION
= 0xfe,
231 YAHOO_CMD_NEWS_ALERTS
= 0x12c,
232 YAHOO_CMD_CORP_USER_LOGIN
= 0x1c2,
233 YAHOO_CMD_MSG_RE_LOGIN
= 0x1c3,
234 YAHOO_CMD_CORP_ID_COPR_P2P_INIT
= 0x1c4,
235 YAHOO_CMD_CORP_CHAT_MSG
= 0x1c5,
236 YAHOO_CMD_CORP_GAMES_USER_HAS_MSG
= 0x1c6,
237 YAHOO_CMD_SECURE_USER_LOGIN
= 0x1cc,
238 YAHOO_CMD_SECURE_IM_MSG
= 0x1cd,
239 YAHOO_CMD_SECURE_CHAT_SAY_MSG
= 0x1cf,
240 YAHOO_CMD_SECURE_GAMES_USER_HAS_MSG
= 0x1d0,
241 YAHOO_CMD_SYMANTEC_MSGS
= 0x1f4,
242 YAHOO_CMD_MOBILE_SEND_SMS_MESSAGE
= 0x2ea,
243 YAHOO_CMD_MOBILE_SMS_LOGIN
= 0x2ec,
244 YAHOO_CMD_MOBILE_SMS_NUMBER
= 0x2ed,
245 YAHOO_CMD_ANON_LOGOFF
= 0x322,
246 YAHOO_CMD_ANON_HAS_MSG
= 0x326,
247 YAHOO_CMD_CLIENT_NETSTAT
= 0x3e8,
248 YAHOO_CMD_P2P_USER
= 0x3e9,
249 YAHOO_CMD_P2P_STATE
= 0x3ea,
250 YAHOO_CMD_LWM_LOGIN
= 0x44c,
251 YAHOO_CMD_LWM_LOGOFF
= 0x44d,
252 YAHOO_CMD_OPI_LOGIN
= 0x44e,
253 YAHOO_CMD_OPI_LOGOFF
= 0x44f,
254 YAHOO_CMD_OPI_IM
= 0x450,
255 YAHOO_CMD_USER_HAS_OPI_MESSAGE
= 0x451,
256 YAHOO_CMD_LWMOPI_CHECK_LOGIN
= 0x452,
257 YAHOO_CMD_LWMOPI_START_OPI
= 0x453,
258 YAHOO_CMD_LWMOPI_STOP_OPI
= 0x454,
264 * Extracted from ymsglite.dll -> YMSGMessage::statusToString(void *outString, int status)
267 YAHOO_STATUS_DUPLICATE
= -3,
268 YAHOO_STATUS_ERR
= -1,
270 YAHOO_STATUS_NOTIFY
= 1,
271 YAHOO_STATUS_NOT_AVAILABLE
= 2,
272 YAHOO_STATUS_NEW_BUDDYOF
= 3,
273 YAHOO_STATUS_PARTIAL_LIST
= 5,
274 YAHOO_STATUS_SAVED_MSG
= 6,
275 YAHOO_STATUS_BUDDYOF_DENIED
= 7,
276 YAHOO_STATUS_INVALID_USER
= 8,
277 YAHOO_STATUS_CHUNKING
= 9,
278 YAHOO_STATUS_INVITED
= 0xb,
279 YAHOO_STATUS_DONT_DISTURB
= 0xc,
280 YAHOO_STATUS_DISTURB_ME
= 0xd,
281 YAHOO_STATUS_NEW_BUDDYOF_AUTH
= 0xf,
282 YAHOO_STATUS_WEB_MSG
= 0x10,
283 YAHOO_STATUS_ACK
= 0x12,
284 YAHOO_STATUS_RE_LOGIN
= 0x13,
285 YAHOO_STATUS_SPECIFIC_SNDR
= 0x16,
286 YAHOO_STATUS_INCOMP_VERSION
= 0x18,
287 YAHOO_STATUS_REQUEST
= 0x1a,
288 YAHOO_STATUS_SMS_CARRIER
= 0x1d,
289 YAHOO_STATUS_IS_GROUP_IM
= 0x21,
290 YAHOO_STATUS_PRE_LOGIN_SUCCEEDED
= 0x64,
291 YAHOO_STATUS_SERVER_CONNECTED
= 0x65,
292 YAHOO_STATUS_FD_CONNECT_SUCCESS
= 0x66,
293 YAHOO_STATUS_CMD_SENT_ACK
= 0x3e8,
294 YAHOO_STATUS_UNKNOWN_USER
= 0x5a55aa55,
295 YAHOO_STATUS_KNOWN_USER
= 0x5a55aa56,
301 * Extracted from ymsglite.dll -> YMSGMessage::fieldToString(void *param_1, int field)
304 YAHOO_FLD_USERNAME
= 0,
305 YAHOO_FLD_CURRENT_ID
= 1,
306 YAHOO_FLD_ACTIVE_ID
= 2,
307 YAHOO_FLD_USER_ID
= 3,
308 YAHOO_FLD_SENDER
= 4,
309 YAHOO_FLD_TARGET_USER
= 5,
310 YAHOO_FLD_PASSWORD
= 6,
312 YAHOO_FLD_NUM_BUDDIES
= 8,
313 YAHOO_FLD_NUM_EMAILS
= 9,
314 YAHOO_FLD_AWAY_STATUS
= 10,
315 YAHOO_FLD_SESSION_ID
= 0xb,
316 YAHOO_FLD_IP_ADDRESS
= 0xc,
317 YAHOO_FLD_FLAG
= 0xd,
319 YAHOO_FLD_TIME
= 0xf,
320 YAHOO_FLD_ERR_MSG
= 0x10,
321 YAHOO_FLD_PORT
= 0x11,
322 YAHOO_FLD_MAIL_SUBJECT
= 0x12,
323 YAHOO_FLD_AWAY_MSG
= 0x13,
324 YAHOO_FLD_URL
= 0x14,
325 YAHOO_FLD_ALERT_TIME
= 0x15,
326 YAHOO_FLD_NEWS
= 0x16,
327 YAHOO_FLD_DEV_SPEED
= 0x17,
328 YAHOO_FLD_WEB_ID
= 0x18,
329 YAHOO_FLD_USER_ALERT_STATS
= 0x19,
330 YAHOO_FLD_STATS_DATA
= 0x1a,
331 YAHOO_FLD_FILE_NAME
= 0x1b,
332 YAHOO_FLD_FILE_SIZE
= 0x1c,
333 YAHOO_FLD_FILE_DATA
= 0x1d,
334 YAHOO_FLD_SYMANTEC_IPADDR
= 0x1e,
335 YAHOO_FLD_COMMAND
= 0x1f,
336 YAHOO_FLD_STATUS
= 0x20,
337 YAHOO_FLD_NUM_NEWS
= 0x21,
338 YAHOO_FLD_NUM_MSGS
= 0x22,
339 YAHOO_FLD_ITEM
= 0x23,
340 YAHOO_FLD_OLD_GRP_NAME
= 0x24,
341 YAHOO_FLD_NEW_GRP_NAME
= 0x25,
342 YAHOO_FLD_EXPIRATION_TIME
= 0x26,
343 YAHOO_FLD_NUM_PERSONAL_MSGS
= 0x27,
344 YAHOO_FLD_SYS_MSG_CODE
= 0x28,
345 YAHOO_FLD_MSG_NUM_DUMMY
= 0x29,
346 YAHOO_FLD_FROM_EMAIL
= 0x2a,
347 YAHOO_FLD_FROM_NAME
= 0x2b,
348 YAHOO_FLD_ADD_ID
= 0x2c,
349 YAHOO_FLD_DELETE_ID
= 0x2d,
350 YAHOO_FLD_DEBUG_INFO
= 0x2e,
351 YAHOO_FLD_CUSTOM_DND_STATUS
= 0x2f,
352 YAHOO_FLD_CONTAINS_TAGS
= 0x30,
353 YAHOO_FLD_APP_NAME
= 0x31,
354 YAHOO_FLD_INVITOR_NAME
= 0x32,
355 YAHOO_FLD_NET2PHONE_CALL_LEN
= 0x32,
356 YAHOO_FLD_INVITEE_NAME
= 0x33,
357 YAHOO_FLD_AD_SPACE_ID
= 0x33,
358 YAHOO_FLD_INVITED_USER
= 0x34,
359 YAHOO_FLD_USES_IMIP_CLIENT
= 0x34,
360 YAHOO_FLD_JOINED_USER
= 0x35,
361 YAHOO_FLD_SHORTCUT
= 0x35,
362 YAHOO_FLD_DECLINED_USER
= 0x36,
363 YAHOO_FLD_FEED_VER
= 0x36,
364 YAHOO_FLD_UNAVAILABLE_USER
= 0x37,
365 YAHOO_FLD_LEFT_USER
= 0x38,
366 YAHOO_FLD_ROOM_NAME
= 0x39,
367 YAHOO_FLD_CONF_TOPIC
= 0x3a,
368 YAHOO_FLD_COOKIE
= 0x3b,
369 YAHOO_FLD_DEVICE_TYPE
= 0x3c,
370 YAHOO_FLD_USER_TYPE
= 0x3c,
371 YAHOO_FLD_WEBCAM_TOKEN
= 0x3d,
372 YAHOO_FLD_TIMED_P2P_CONN_FLG
= 0x3d,
373 YAHOO_FLD_WEBCAM_STATUS
= 0x3e,
374 YAHOO_FLD_IMV_ID
= 0x3f,
375 YAHOO_FLD_IMV_FLAG
= 0x40,
376 YAHOO_FLD_BUDDY_GRP_NAME
= 0x41,
377 YAHOO_FLD_ERROR_CODE
= 0x42,
378 YAHOO_FLD_NEW_BUDDY_GRP_NAME
= 0x43,
379 YAHOO_FLD_PHONE_CARRIER_CODE
= 0x44,
380 YAHOO_FLD_SCREEN_NAME
= 0x45,
381 YAHOO_FLD_CONVERSE_COMMAND
= 0x46,
382 YAHOO_FLD_SMS_PHONE
= 0x46,
383 YAHOO_FLD_CONVERSE_IDENTITY
= 0x47,
384 YAHOO_FLD_CONVERSE_OTHER_GUY
= 0x48,
385 YAHOO_FLD_CONVERSE_TOPIC
= 0x49,
386 YAHOO_FLD_CONVERSE_COMMENT
= 0x4a,
387 YAHOO_FLD_CONVERSE_MAX
= 0x4b,
388 YAHOO_FLD_CONVERSE_URL
= 0x4c,
389 YAHOO_FLD_CONVERSE_YOUR_COMMENT
= 0x4d,
390 YAHOO_FLD_STAT_TYPE
= 0x4e,
391 YAHOO_FLD_IMIP_SERVICE
= 0x4f,
392 YAHOO_FLD_IMIP_LOGIN
= 0x50,
393 YAHOO_FLD_ALERT_TYPE_ID
= 0x51,
394 YAHOO_FLD_ALERT_SUBTYPE_ID
= 0x52,
395 YAHOO_FLD_ALERT_DOC_TITLE
= 0x53,
396 YAHOO_FLD_ALERT_PRIO_LEVEL
= 0x54,
397 YAHOO_FLD_ALERT_TYPE
= 0x55,
398 YAHOO_FLD_ALERT_COUNTRY
= 0x56,
399 YAHOO_FLD_BUDDY_LIST
= 0x57,
400 YAHOO_FLD_IGNORE_LIST
= 0x58,
401 YAHOO_FLD_IDENTITY_LIST
= 0x59,
402 YAHOO_FLD_HAS_MAIL
= 0x5a,
403 YAHOO_FLD_CONVERSE_CMD_DEC_TEXT
= 0x5a,
404 YAHOO_FLD_ANON_NAME
= 0x5b,
405 YAHOO_FLD_ANON_ID
= 0x5c,
406 YAHOO_FLD_T_COOKIE_EXPIRE
= 0x5d,
407 YAHOO_FLD_CHALLENGE
= 0x5e,
408 YAHOO_FLD_OLD_PASSWORD
= 0x60,
409 YAHOO_FLD_UTF8_FLAG
= 0x61,
410 YAHOO_FLD_COUNTRY_CODE
= 0x62,
411 YAHOO_FLD_CO_BRAND_CODE
= 0x63,
412 YAHOO_FLD_DATE
= 0x64,
413 YAHOO_FLD_IMV_DATA
= 0x65,
414 YAHOO_FLD_WEBCAM_FARM
= 0x66,
415 YAHOO_FLD_CHAT_IGNORE_USER
= 0x67,
416 YAHOO_FLD_CHAT_ROOM_NAME
= 0x68,
417 YAHOO_FLD_CHAT_ROOM_TOPIC
= 0x69,
418 YAHOO_FLD_CHAT_ROOM_URL
= 0x6a,
419 YAHOO_FLD_CHAT_ROOM_PARAMETER
= 0x6b,
420 YAHOO_FLD_CHAT_NUM_USERS
= 0x6c,
421 YAHOO_FLD_CHAT_ROOM_USERNAME
= 0x6d,
422 YAHOO_FLD_CHAT_ROOM_USER_AGE
= 0x6e,
423 YAHOO_FLD_CHAT_ROOM_USER_GENDER
= 0x6f,
424 YAHOO_FLD_CHAT_ROOM_USER_TIMESTAMP
= 0x70,
425 YAHOO_FLD_CHAT_ROOM_USER_FLAG
= 0x71,
426 YAHOO_FLD_CHAT_ERR_NO
= 0x72,
427 YAHOO_FLD_CHAT_SIMILAR_ROOM
= 0x73,
428 YAHOO_FLD_CHAT_EMOT_MSG
= 0x74,
429 YAHOO_FLD_CHAT_MSG
= 0x75,
430 YAHOO_FLD_CHAT_INVITED_USER
= 0x76,
431 YAHOO_FLD_CHAT_INVITER
= 0x77,
432 YAHOO_FLD_CHAT_EXTENDED_DATA_ID
= 0x78,
433 YAHOO_FLD_CHAT_EXTENDED_DATA
= 0x79,
434 YAHOO_FLD_CHAT_USER_SETTINGS
= 0x7a,
435 YAHOO_FLD_CHAT_LOGOFF_MSG
= 0x7b,
436 YAHOO_FLD_CHAT_MSG_TYPE
= 0x7c,
437 YAHOO_FLD_CHAT_FRAME_NAME
= 0x7d,
438 YAHOO_FLD_CHAT_FLG
= 0x7e,
439 YAHOO_FLD_CHAT_ROOM_TYPE
= 0x7f,
440 YAHOO_FLD_CHAT_ROOM_CATEGORY
= 0x80,
441 YAHOO_FLD_CHAT_ROOM_SPACE_ID
= 0x81,
442 YAHOO_FLD_CHAT_VOICE_AUTH
= 0x82,
443 YAHOO_FLD_ALERT_BUTTON_LABEL
= 0x83,
444 YAHOO_FLD_ALERT_BUTTON_LINK
= 0x84,
445 YAHOO_FLD_ALERT_MIN_DIMENSION
= 0x85,
446 YAHOO_FLD_BIZ_MAIL_TEXT
= 0x86,
447 YAHOO_FLD_VERSION
= 0x87,
448 YAHOO_FLD_CO_BRAND_ROOM_INFO
= 0x88,
449 YAHOO_FLD_IDLE_TIME
= 0x89,
450 YAHOO_FLD_NO_IDLE_TIME
= 0x8a,
451 YAHOO_FLD_CHAT_USER_NICKNAME
= 0x8d,
452 YAHOO_FLD_CHAT_USER_LOCATION
= 0x8e,
453 YAHOO_FLD_PING_INTERVAL
= 0x8f,
454 YAHOO_FLD_KEEP_ALIVE_INTERVAL
= 0x90,
455 YAHOO_FLD_CPU_TYPE
= 0x91,
456 YAHOO_FLD_OS_VERSION
= 0x92,
457 YAHOO_FLD_TIME_ZONE
= 0x93,
458 YAHOO_FLD_TIME_BIAS
= 0x94,
459 YAHOO_FLD_BLINDED_USER_ID
= 0x95,
460 YAHOO_FLD_CACHE_CRYPTO_KEY
= 0x96,
461 YAHOO_FLD_LOCAL_CRYPTO_KEY
= 0x97,
462 YAHOO_FLD_YPC_PREFS
= 0x99,
463 YAHOO_FLD_PARENT_ID
= 0x9a,
464 YAHOO_FLD_MSG_NUM
= 0x9f,
465 YAHOO_FLD_EE_CONFIRM_DELIVERY
= 0xa0,
466 YAHOO_FLD_EE_SENDER
= 0xa1,
467 YAHOO_FLD_EE_NONCE
= 0xa2,
468 YAHOO_FLD_GAME_ID
= 0xb4,
469 YAHOO_FLD_GAME_NAME
= 0xb5,
470 YAHOO_FLD_GAME_DATA
= 0xb6,
471 YAHOO_FLD_GAME_URL
= 0xb7,
472 YAHOO_FLD_STATUS_DATA
= 0xb8,
473 YAHOO_FLD_INVISIBLE_TO
= 0xb9,
474 YAHOO_FLD_VISIBLE_TO
= 0xba,
475 YAHOO_FLD_STATUS_LINK_TYPE
= 0xbb,
476 YAHOO_FLD_AVATAR_FLAG
= 0xbe,
477 YAHOO_FLD_AVATAR_MOOD_ID
= 0xbf,
478 YAHOO_FLD_ICON_CHECKSUM
= 0xc0,
479 YAHOO_FLD_ICON_DATA
= 0xc1,
480 YAHOO_FLD_SEQUENCE_NO
= 0xc2,
481 YAHOO_FLD_MAX_SEQUENCE_NO
= 0xc3,
482 YAHOO_FLD_ANTI_BOT_TEXT
= 0xc4,
483 YAHOO_FLD_AVATAR_HASH
= 0xc5,
484 YAHOO_FLD_AVATAR_USER
= 0xc6,
485 YAHOO_FLD_WIDTH
= 0xc7,
486 YAHOO_FLD_HEIGHT
= 0xc8,
487 YAHOO_FLD_ALERT_DATA
= 0xcb,
488 YAHOO_FLD_AVATAR_DEF_MOOD
= 0xcc,
489 YAHOO_FLD_AVATAR_ZOOM
= 0xcd,
490 YAHOO_FLD_DISPLAY_TYPE
= 0xce,
491 YAHOO_FLD_BT_USER_ID
= 0xcf,
492 YAHOO_FLD_T_COOKIE
= 0xd0,
493 YAHOO_FLD_STATS_BUFFER
= 0xd3,
494 YAHOO_FLD_APPLY_TO_ALL
= 0xd4,
495 YAHOO_FLD_SHOW_MY_AVATAR_IN_FRIEND_TREE
= 0xd5,
496 YAHOO_FLD_GAME_PROWLER_PREF
= 0xd6,
497 YAHOO_FLD_VAS_USER
= 0xd7,
498 YAHOO_FLD_FIRSTNAME
= 0xd8,
499 YAHOO_FLD_YPM_KEY
= 0xd9,
500 YAHOO_FLD_COOKIE_CUTTER
= 0xdb, /* Not defined in ymsglite.dll, but it's always sent right after a YAHOO_FLD_COOKIE */
501 YAHOO_FLD_FEATURE_ID
= 0xdd,
502 YAHOO_FLD_ACTION_TYPE
= 0xde,
503 YAHOO_FLD_UNAUTH
= 0xdf,
504 YAHOO_FLD_GROUP
= 0xe0,
505 YAHOO_FLD_ANTI_BOT_URL
= 0xe1,
506 YAHOO_FLD_ANTI_BOT_SECRET
= 0xe2,
507 YAHOO_FLD_ANTI_BOT_RESPONSE
= 0xe3,
508 YAHOO_FLD_AUDIBLE_ID
= 0xe6,
509 YAHOO_FLD_AUDIBLE_TEXT
= 0xe7,
510 YAHOO_FLD_AUDIBLE_HASH
= 0xe8,
511 YAHOO_FLD_IGNORED_USER
= 0xec,
512 YAHOO_FLD_PROFILE_ID
= 0xed,
513 YAHOO_FLD_INVISIBLE_TO_FRIEND
= 0xee,
514 YAHOO_FLD_VISIBLE_TO_FRIEND
= 0xef,
515 YAHOO_FLD_CONTACT_INFO
= 0xf0,
516 YAHOO_FLD_CLOUD_ID
= 0xf1,
517 YAHOO_FLD_BRANDING_ID
= 0xf2,
518 YAHOO_FLD_NUM_ATTRIBUTED_BUDDIES
= 0xf3,
519 YAHOO_FLD_CAPABILITY_MATRIX
= 0xf4,
520 YAHOO_FLD_OBJECT_ID
= 0xf5,
521 YAHOO_FLD_OBJECT_NAME
= 0xf6,
522 YAHOO_FLD_META_DATA
= 0xf7,
523 YAHOO_FLD_OBJECT_SIZE
= 0xf8,
524 YAHOO_FLD_TRANSFER_TYPE
= 0xf9,
525 YAHOO_FLD_TRANSFER_TAG
= 0xfa,
526 YAHOO_FLD_TOKEN
= 0xfb,
527 YAHOO_FLD_HASH
= 0xfc,
528 YAHOO_FLD_CHECKSUM
= 0xfd,
529 YAHOO_FLD_LASTNAME
= 0xfe,
530 YAHOO_FLD_DATA
= 0x101,
531 YAHOO_FLD_APP_ID
= 0x102,
532 YAHOO_FLD_INSTANCE_ID
= 0x103,
533 YAHOO_FLD_ALERT_ID
= 0x104,
534 YAHOO_FLD_OPI_STATUS
= 0x105,
535 YAHOO_FLD_APP_REGISTER
= 0x106,
536 YAHOO_FLD_CHECK_LOGIN_STATUS
= 0x107,
537 YAHOO_FLD_TARGET_GROUP
= 0x108,
538 YAHOO_FLD_FT_SESSION_ID
= 0x109,
539 YAHOO_FLD_TOTAL_FILE_COUNT
= 0x10a,
540 YAHOO_FLD_THUMBNAIL
= 0x10b,
541 YAHOO_FLD_FILE_INFO
= 0x10c,
542 YAHOO_FLD_SPAMMER_ID
= 0x10d,
543 YAHOO_FLD_INITIATOR
= 0x10e,
544 YAHOO_FLD_FT_ONE_FILE_DONE
= 0x10f,
545 YAHOO_FLD_X_POS
= 0x110,
546 YAHOO_FLD_Y_POS
= 0x111,
547 YAHOO_FLD_MSG_RECORD
= 0x112,
548 YAHOO_FLD_FLAG_MINGLE_USER
= 0x113,
549 YAHOO_FLD_ABUSE_SIGNATURE
= 0x114,
550 YAHOO_FLD_LOGIN_Y_COOKIE
= 0x115,
551 YAHOO_FLD_LOGIN_T_COOKIE
= 0x116,
552 YAHOO_FLD_LOGIN_CRUMB
= 0x117,
553 YAHOO_FLD_BUDDY_DETAIL
= 0x118,
554 YAHOO_FLD_VALID_CLIENT_COOKIES
= 0x119,
555 YAHOO_FLD_NUM_LCS_BUDDIES
= 0x11a,
556 YAHOO_FLD_IS_RELOGIN
= 0x11b,
557 YAHOO_FLD_START_OF_RECORD
= 0x12c,
558 YAHOO_FLD_END_OF_RECORD
= 0x12d,
559 YAHOO_FLD_START_OF_LIST
= 0x12e,
560 YAHOO_FLD_END_OF_LIST
= 0x12f,
561 YAHOO_FLD_COUNTRYCODE
= 0x130,
562 YAHOO_FLD_PSTN_DID
= 0x131,
563 YAHOO_FLD_PSTN_PREMIUM_FLAG
= 0x132,
564 YAHOO_FLD_CRUMB_HASH
= 0x133,
565 YAHOO_FLD_LOCALE
= 0x136,
566 YAHOO_FLD_PREFERENCES
= 0x138,
567 YAHOO_FLD_PREF_CATEGORY
= 0x139,
568 YAHOO_FLD_PREF_MASK
= 0x13a,
569 YAHOO_FLD_BUDDY_INFO
= 0x13b,
570 YAHOO_FLD_PLUGIN_INFO
= 0x13c,
571 YAHOO_FLD_VISIBILITY_FLAG
= 0x13d,
572 YAHOO_FLD_GROUPS_RECORD_LIST
= 0x13e,
573 YAHOO_FLD_BUDDIES_RECORD_LIST
= 0x13f,
574 YAHOO_FLD_IGNORED_BUDDIES_RECORD_LIST
= 0x140,
575 YAHOO_FLD_PREMIUM_SMS_RATE
= 0x141,
576 YAHOO_FLD_PREMIUM_SMS_BALANCE
= 0x142,
577 YAHOO_FLD_PREMIUM_SMS_SYMBOL
= 0x143,
578 YAHOO_FLD_PREMIUM_SMS_SYMBOL_POS
= 0x144,
579 YAHOO_FLD_PREMIUM_SMS_MAX_MSGS
= 0x145,
580 YAHOO_FLD_NETSTAT_MSG
= 0x3e8,
581 YAHOO_FLD_SERVER_TYPE
= 0x3e9,
582 YAHOO_FLD_TRY_P2P
= 0x3ea,
583 YAHOO_FLD_P2P_CONN_STATE
= 0x3eb,
584 YAHOO_FLD_INTERNET_CONN_TYPE
= 0x3ec,
585 YAHOO_FLD_NEED_CMD_RETURN
= 0x3ed,
588 static const value_string ymsg_command_vals
[] = {
589 {YAHOO_CMD_USER_LOGIN
, "User Login"},
590 {YAHOO_CMD_USER_LOGOFF
, "User Logoff"},
591 {YAHOO_CMD_USER_AWAY
, "User Away"},
592 {YAHOO_CMD_USER_BACK
, "User Back"},
593 {YAHOO_CMD_USER_GET_MSGS
, "User Get Msgs"},
594 {YAHOO_CMD_USER_HAS_MSG
, "User Has Msg"},
595 {YAHOO_CMD_ACTIVATE_ID
, "Activate Id"},
596 {YAHOO_CMD_DEACTIVATE_ID
, "Deactivate Id"},
597 {YAHOO_CMD_GET_USER_STATUS
, "Get User Status"},
598 {YAHOO_CMD_USER_HAS_MAIL
, "User Has Mail"},
599 {YAHOO_CMD_START_CONFERENCE
, "Start Conference"},
600 {YAHOO_CMD_CALENDAR_ALERT
, "Calendar Alert"},
601 {YAHOO_CMD_USER_PERSONAL_MESSAGE
, "User Personal Message"},
602 {YAHOO_CMD_UPDATE_BUDDY_LIST
, "Update Buddy List"},
603 {YAHOO_CMD_UPDATE_ID_LIST
, "Update Id List"},
604 {YAHOO_CMD_UPDATE_IGNORE_LIST
, "Update Ignore List"},
605 {YAHOO_CMD_PING
, "Ping"},
606 {YAHOO_CMD_UPDATE_GROUP
, "Update Group"},
607 {YAHOO_CMD_SYSTEM_MESSAGE
, "System Message"},
608 {YAHOO_CMD_CLIENT_STATS
, "Client Stats"},
609 {YAHOO_CMD_CLIENT_ALERT_STATS
, "Client Alert Stats"},
610 {YAHOO_CMD_GROUP_MESSAGE
, "Group Message"},
611 {YAHOO_CMD_HOST_CONFERENCE
, "Host Conference"},
612 {YAHOO_CMD_JOIN_CONFERENCE
, "Join Conference"},
613 {YAHOO_CMD_DECLINE_CONFERENCE
, "Decline Conference"},
614 {YAHOO_CMD_LEAVE_CONFERENCE
, "Leave Conference"},
615 {YAHOO_CMD_INVITE_CONFERENCE
, "Invite Conference"},
616 {YAHOO_CMD_SAY_CONFERENCE
, "Say Conference"},
617 {YAHOO_CMD_CHAT_LOGIN
, "Chat Login"},
618 {YAHOO_CMD_CHAT_LOGOFF
, "Chat Logoff"},
619 {YAHOO_CMD_CHAT_MSG
, "Chat Message"},
620 {YAHOO_CMD_GAMES_USER_LOGIN
, "Games User Login"},
621 {YAHOO_CMD_GAMES_USER_LOGOFF
, "Games User Logoff"},
622 {YAHOO_CMD_GAMES_USER_HAS_MSG
, "Games User Has Msg"},
623 {YAHOO_CMD_NET2PHONE_STATS
, "Net2Phone Stats"},
624 {YAHOO_CMD_ADDRESS_BOOK_ALERT
, "Address Book Alert"},
625 {YAHOO_CMD_AUCTION_ALERT
, "Auction Alert"},
626 {YAHOO_CMD_USER_FT
, "User File Transfer"},
627 {YAHOO_CMD_USER_FT_REPLY
, "User File Transfer Reply"},
628 {YAHOO_CMD_USER_CONVERSE
, "User Converse"},
629 {YAHOO_CMD_USER_WEB_TOUR
, "User Web Tour"},
630 {YAHOO_CMD_IM_ENABLE_VOICE
, "IM Enable Voice"},
631 {YAHOO_CMD_USER_SEND_MSG
, "User Send Msg"},
632 {YAHOO_CMD_SEND_PORT_CHECK
, "Send Port Check"},
633 {YAHOO_CMD_SEND_DATA_THRU
, "Send Data Thru"},
634 {YAHOO_CMD_P2P_START
, "P2P Start"},
635 {YAHOO_CMD_MSGR_WEBCAM_TOKEN
, "Msgr Webcam Token"},
636 {YAHOO_CMD_STATS
, "Stats"},
637 {YAHOO_CMD_USER_LOGIN2
, "User Login2"},
638 {YAHOO_CMD_PRE_LOGIN_DATA
, "PreLogin Data"},
639 {YAHOO_CMD_GET_COOKIE_DATA
, "Get Cookie Data"},
640 {YAHOO_CMD_HELO
, "HELO"},
641 {YAHOO_CMD_FEATURE_NOT_SUPPORTED
, "Feature Not Supported"},
642 {YAHOO_CMD_ADD_BUDDY
, "Add Buddy"},
643 {YAHOO_CMD_REMOVE_BUDDY
, "Remove Buddy"},
644 {YAHOO_CMD_MODIFY_IGNORE_LIST
, "Modify Ignore List"},
645 {YAHOO_CMD_DENY_BUDDY_ADD
, "Deny Buddy Add"},
646 {YAHOO_CMD_RENAME_GROUP
, "Rename Group"},
647 {YAHOO_CMD_KEEP_ALIVE
, "Keep Alive"},
648 {YAHOO_CMD_YPC_ADD_FRIEND_APPROVAL
, "YPC Add Friend Approval"},
649 {YAHOO_CMD_CHALLENGE
, "Challenge"},
650 {YAHOO_CMD_ADD_BUDDY_INSTANT_APPROVAL
,"Add Buddy Instant Approval"},
651 {YAHOO_CMD_CHAT_MSGR_USER_LOGIN
, "Chat Msgr User Login"},
652 {YAHOO_CMD_CHAT_GOTO_USER
, "Chat Goto User"},
653 {YAHOO_CMD_CHAT_ROOM_JOIN
, "Chat Room Join"},
654 {YAHOO_CMD_CHAT_ROOM_PART
, "Chat Room Part"},
655 {YAHOO_CMD_CHAT_ROOM_INVITE
, "Chat Room Invite"},
656 {YAHOO_CMD_CHAT_MSGR_USER_LOGOFF
, "Chat Msgr User Logoff"},
657 {YAHOO_CMD_CHAT_PING
, "Chat Ping"},
658 {YAHOO_CMD_CHAT_WEBCAM_TOKEN
, "Chat Webcam Token"},
659 {YAHOO_CMD_CHAT_PUBLIC_MSG
, "Chat Public Msg"},
660 {YAHOO_CMD_CHAT_ROOM_CREATE
, "Chat Room Create"},
661 {YAHOO_CMD_GAMES_INVITE
, "Games Invite"},
662 {YAHOO_CMD_GAMES_SEND_DATA
, "Games Send Data"},
663 {YAHOO_CMD_EDIT_INVISIBLE_TO_LIST
, "Edit Invisible To List"},
664 {YAHOO_CMD_EDIT_VISIBLE_TO_LIST
, "Edit Visible To List"},
665 {YAHOO_CMD_ANTI_BOT
, "Anti Bot"},
666 {YAHOO_CMD_AVATAR_CHANGED
, "Avatar Changed"},
667 {YAHOO_CMD_FRIEND_ICON
, "Friend Icon"},
668 {YAHOO_CMD_FRIEND_ICON_DOWNLOAD
, "Friend Icon Download"},
669 {YAHOO_CMD_AVATAR_GET_FILE
, "Avatar Get File"},
670 {YAHOO_CMD_AVATAR_GET_HASH
, "Avatar Get Hash"},
671 {YAHOO_CMD_DISPLAY_TYPE_CHANGED
, "Display Type Changed"},
672 {YAHOO_CMD_FRIEND_ICON_FT
, "Friend Icon File Transfer"},
673 {YAHOO_CMD_GET_COOKIE
, "Get Cookie"},
674 {YAHOO_CMD_ADDRESS_BOOK_CHANGED
, "Address Book Changed"},
675 {YAHOO_CMD_SET_VISIBILITY
, "Set Visibility"},
676 {YAHOO_CMD_SET_AWAY_STATUS
, "Set Away Status"},
677 {YAHOO_CMD_DISPLAY_IMAGE_PREFS
, "Display Image Prefs"},
678 {YAHOO_CMD_VERIFY_USER
, "Verify User"},
679 {YAHOO_CMD_AUDIBLE
, "Audible"},
680 {YAHOO_CMD_IM_PANEL_FEATURE
, "IM Panel Feature"},
681 {YAHOO_CMD_SHARE_CONTACTS
, "Share Contacts"},
682 {YAHOO_CMD_IM_SESSION
, "IM Session"},
683 {YAHOO_CMD_SUBSCRIPTION
, "Subscription"},
684 {YAHOO_CMD_BUDDY_AUTHORIZE
, "Buddy Authorize"},
685 {YAHOO_CMD_PHOTO_ADD
, "Photo Add"},
686 {YAHOO_CMD_PHOTO_SELECT
, "Photo Select"},
687 {YAHOO_CMD_PHOTO_DELETE
, "Photo Delete"},
688 {YAHOO_CMD_PHOTO_FILE_REQUEST
, "Photo File Request"},
689 {YAHOO_CMD_PHOTO_POINTER
, "Photo Pointer"},
690 {YAHOO_CMD_FXFER_INVITE
, "File Transfer Invite"},
691 {YAHOO_CMD_FXFER_SEND
, "File Transfer Send"},
692 {YAHOO_CMD_FXFER_RECEIVE
, "File Transfer Receive"},
693 {YAHOO_CMD_UPDATE_CAPABILITY
, "Update Capability"},
694 {YAHOO_CMD_REPORT_SPAM
, "Report Spam"},
695 {YAHOO_CMD_MINGLE_DATA
, "Mingle Data"},
696 {YAHOO_CMD_ALERT
, "Alert"},
697 {YAHOO_CMD_APP_REGISTRY
, "App Registry"},
698 {YAHOO_CMD_NEW_USER
, "New User"},
699 {YAHOO_CMD_ACCEPT_MSGR_INVITE
, "Accept Msgr Invite"},
700 {YAHOO_CMD_MSGR_USAGE
, "Msgr Usage"},
701 {YAHOO_CMD_BUDDY_MOVE
, "Buddy Move"},
702 {YAHOO_CMD_GET_VOICE_CRUMB
, "Get Voice Crumb"},
703 {YAHOO_CMD_PLUGIN_SESSION_INITIATION
, "Plugin Session Initiation"},
704 {YAHOO_CMD_APPLICATION_MESSAGE
, "Application Message"},
705 {YAHOO_CMD_APPLICATION_PRESENCE
, "Application Presence"},
706 {YAHOO_CMD_FXFER_PLUGIN_INVITE
, "File Transfer Plugin Invite"},
707 {YAHOO_CMD_PC2MOBILE_FXFER
, "PC2Mobile File Transfer"},
708 {YAHOO_CMD_PREFERENCE
, "Preference"},
709 {YAHOO_CMD_BUDDY_INFO
, "Buddy Info"},
710 {YAHOO_CMD_BUDDY_LIST
, "Buddy List"},
711 {YAHOO_CMD_CHECK_PREMIUM_SMS_BALANCE
, "Check Premium SMS Balance"},
712 {YAHOO_CMD_WIDGET_BUDDY_LIST
, "Widget Buddy List"},
713 {YAHOO_CMD_WIDGET_BUDDY_INFO
, "Widget Buddy Info"},
714 {YAHOO_CMD_WIDGET_ACTION
, "Widget Action"},
715 {YAHOO_CMD_NEWS_ALERTS
, "News Alerts"},
716 {YAHOO_CMD_CORP_USER_LOGIN
, "Corp User Login"},
717 {YAHOO_CMD_MSG_RE_LOGIN
, "Msgr ReLogin"},
718 {YAHOO_CMD_CORP_ID_COPR_P2P_INIT
, "Corp Id Copr P2P Init"},
719 {YAHOO_CMD_CORP_CHAT_MSG
, "Corp Chat Msg"},
720 {YAHOO_CMD_CORP_GAMES_USER_HAS_MSG
, "Corp Games User Has Msg"},
721 {YAHOO_CMD_SECURE_USER_LOGIN
, "Secure User Login"},
722 {YAHOO_CMD_SECURE_IM_MSG
, "Secure IM Msg"},
723 {YAHOO_CMD_SECURE_CHAT_SAY_MSG
, "Secure Chat Say Msg"},
724 {YAHOO_CMD_SECURE_GAMES_USER_HAS_MSG
, "Secure Games User Has Msg"},
725 {YAHOO_CMD_SYMANTEC_MSGS
, "Symantec Msgs"},
726 {YAHOO_CMD_MOBILE_SEND_SMS_MESSAGE
, "Mobile Send SMS Message"},
727 {YAHOO_CMD_MOBILE_SMS_LOGIN
, "Mobile SMS Login"},
728 {YAHOO_CMD_MOBILE_SMS_NUMBER
, "Mobile SMS Number"},
729 {YAHOO_CMD_ANON_LOGOFF
, "Anon Logoff"},
730 {YAHOO_CMD_ANON_HAS_MSG
, "Anon Has Msg"},
731 {YAHOO_CMD_CLIENT_NETSTAT
, "Client Netstat"},
732 {YAHOO_CMD_P2P_USER
, "P2P User"},
733 {YAHOO_CMD_P2P_STATE
, "P2P State"},
734 {YAHOO_CMD_LWM_LOGIN
, "LWM Login"},
735 {YAHOO_CMD_LWM_LOGOFF
, "LWM Logoff"},
736 {YAHOO_CMD_OPI_LOGIN
, "OPI Login"},
737 {YAHOO_CMD_OPI_LOGOFF
, "OPI Logoff"},
738 {YAHOO_CMD_OPI_IM
, "OPI IM"},
739 {YAHOO_CMD_USER_HAS_OPI_MESSAGE
, "User Has OPI Message"},
740 {YAHOO_CMD_LWMOPI_CHECK_LOGIN
, "LWM OPI Check Login"},
741 {YAHOO_CMD_LWMOPI_START_OPI
, "LWM OPI Start OPI"},
742 {YAHOO_CMD_LWMOPI_STOP_OPI
, "LWM OPI Stop OPI"},
746 static const value_string ymsg_status_vals
[] = {
747 {YAHOO_STATUS_DUPLICATE
, "Duplicate"},
748 {YAHOO_STATUS_ERR
, "Error"},
749 {YAHOO_STATUS_OK
, "Ok"},
750 {YAHOO_STATUS_NOTIFY
, "Notify"},
751 {YAHOO_STATUS_NOT_AVAILABLE
, "Not Available"},
752 {YAHOO_STATUS_NEW_BUDDYOF
, "New BuddyOf"},
753 {YAHOO_STATUS_PARTIAL_LIST
, "Partial List"},
754 {YAHOO_STATUS_SAVED_MSG
, "Saved Msg"},
755 {YAHOO_STATUS_BUDDYOF_DENIED
, "BuddyOf Denied"},
756 {YAHOO_STATUS_INVALID_USER
, "Invalid User"},
757 {YAHOO_STATUS_CHUNKING
, "Chunking"},
758 {YAHOO_STATUS_INVITED
, "Invited"},
759 {YAHOO_STATUS_DONT_DISTURB
, "Do Not Disturb"},
760 {YAHOO_STATUS_DISTURB_ME
, "Disturb Me"},
761 {YAHOO_STATUS_NEW_BUDDYOF_AUTH
, "New BuddyOf Auth"},
762 {YAHOO_STATUS_WEB_MSG
, "Web Msg"},
763 {YAHOO_STATUS_ACK
, "Ack"},
764 {YAHOO_STATUS_RE_LOGIN
, "ReLogin"},
765 {YAHOO_STATUS_SPECIFIC_SNDR
, "Specific Sender"},
766 {YAHOO_STATUS_INCOMP_VERSION
, "Incompatible Version"},
767 {YAHOO_STATUS_REQUEST
, "Request"},
768 {YAHOO_STATUS_SMS_CARRIER
, "SMS Carrier"},
769 {YAHOO_STATUS_IS_GROUP_IM
, "Is Group IM"},
770 {YAHOO_STATUS_PRE_LOGIN_SUCCEEDED
, "PreLogin Succeeded"},
771 {YAHOO_STATUS_SERVER_CONNECTED
, "Server Connected"},
772 {YAHOO_STATUS_FD_CONNECT_SUCCESS
, "FD Connect Success"},
773 {YAHOO_STATUS_CMD_SENT_ACK
, "CMD Sent Ack"},
774 {YAHOO_STATUS_UNKNOWN_USER
, "Unknown User"},
775 {YAHOO_STATUS_KNOWN_USER
, "Known User"},
779 static const value_string ymsg_field_vals
[] = {
780 {YAHOO_FLD_USERNAME
, "Username"},
781 {YAHOO_FLD_CURRENT_ID
, "CurrentId"},
782 {YAHOO_FLD_ACTIVE_ID
, "ActiveId"},
783 {YAHOO_FLD_USER_ID
, "UserId"},
784 {YAHOO_FLD_SENDER
, "Sender"},
785 {YAHOO_FLD_TARGET_USER
, "TargetUser"},
786 {YAHOO_FLD_PASSWORD
, "Password"},
787 {YAHOO_FLD_BUDDY
, "Buddy"},
788 {YAHOO_FLD_NUM_BUDDIES
, "NumBuddies"},
789 {YAHOO_FLD_NUM_EMAILS
, "NumEmails"},
790 {YAHOO_FLD_AWAY_STATUS
, "AwayStatus"},
791 {YAHOO_FLD_SESSION_ID
, "SessionId"},
792 {YAHOO_FLD_IP_ADDRESS
, "IPAddress"},
793 {YAHOO_FLD_FLAG
, "Flag"},
794 {YAHOO_FLD_MSG
, "Msg"},
795 {YAHOO_FLD_TIME
, "Time"},
796 {YAHOO_FLD_ERR_MSG
, "ErrMsg"},
797 {YAHOO_FLD_PORT
, "Port"},
798 {YAHOO_FLD_MAIL_SUBJECT
, "MailSubject"},
799 {YAHOO_FLD_AWAY_MSG
, "AwayMsg"},
800 {YAHOO_FLD_URL
, "URL"},
801 {YAHOO_FLD_ALERT_TIME
, "AlertTime"},
802 {YAHOO_FLD_NEWS
, "News"},
803 {YAHOO_FLD_DEV_SPEED
, "DevSpeed"},
804 {YAHOO_FLD_WEB_ID
, "WebId"},
805 {YAHOO_FLD_USER_ALERT_STATS
, "UserAlertStats"},
806 {YAHOO_FLD_STATS_DATA
, "StatsData"},
807 {YAHOO_FLD_FILE_NAME
, "FileName"},
808 {YAHOO_FLD_FILE_SIZE
, "FileSize"},
809 {YAHOO_FLD_FILE_DATA
, "FileData"},
810 {YAHOO_FLD_SYMANTEC_IPADDR
, "SymantecIPAddr"},
811 {YAHOO_FLD_COMMAND
, "Command"},
812 {YAHOO_FLD_STATUS
, "Status"},
813 {YAHOO_FLD_NUM_NEWS
, "NumNews"},
814 {YAHOO_FLD_NUM_MSGS
, "NumMsgs"},
815 {YAHOO_FLD_ITEM
, "Item"},
816 {YAHOO_FLD_OLD_GRP_NAME
, "OldGrpName"},
817 {YAHOO_FLD_NEW_GRP_NAME
, "NewGrpName"},
818 {YAHOO_FLD_EXPIRATION_TIME
, "ExpirationTime"},
819 {YAHOO_FLD_NUM_PERSONAL_MSGS
, "NumPersonalMsgs"},
820 {YAHOO_FLD_SYS_MSG_CODE
, "SysMsgCode"},
821 {YAHOO_FLD_MSG_NUM_DUMMY
, "MsgNumDummy"},
822 {YAHOO_FLD_FROM_EMAIL
, "FromEmail"},
823 {YAHOO_FLD_FROM_NAME
, "FromName"},
824 {YAHOO_FLD_ADD_ID
, "AddId"},
825 {YAHOO_FLD_DELETE_ID
, "DeleteId"},
826 {YAHOO_FLD_DEBUG_INFO
, "DebugInfo"},
827 {YAHOO_FLD_CUSTOM_DND_STATUS
, "CustomDndStatus"},
828 {YAHOO_FLD_CONTAINS_TAGS
, "ContainsTags"},
829 {YAHOO_FLD_APP_NAME
, "AppName"},
830 {YAHOO_FLD_INVITOR_NAME
, "InvitorName|Net2PhoneCallLen"},
831 {YAHOO_FLD_INVITEE_NAME
, "InviteeName|AdSpaceId"},
832 {YAHOO_FLD_INVITED_USER
, "InvitedUser|UsesIMIPClient"},
833 {YAHOO_FLD_JOINED_USER
, "JoinedUser|Shortcut"},
834 {YAHOO_FLD_DECLINED_USER
, "DeclinedUser|FeedVer"},
835 {YAHOO_FLD_UNAVAILABLE_USER
, "UnavailableUser"},
836 {YAHOO_FLD_LEFT_USER
, "LeftUser"},
837 {YAHOO_FLD_ROOM_NAME
, "RoomName"},
838 {YAHOO_FLD_CONF_TOPIC
, "ConfTopic"},
839 {YAHOO_FLD_COOKIE
, "Cookie"},
840 {YAHOO_FLD_USER_TYPE
, "UserType|DeviceType"},
841 {YAHOO_FLD_WEBCAM_TOKEN
, "WebcamToken|TimedP2PConnFlg"},
842 {YAHOO_FLD_WEBCAM_STATUS
, "WebcamStatus"},
843 {YAHOO_FLD_IMV_ID
, "IMVId"},
844 {YAHOO_FLD_IMV_FLAG
, "IMVFlag"},
845 {YAHOO_FLD_BUDDY_GRP_NAME
, "BuddyGrpName"},
846 {YAHOO_FLD_ERROR_CODE
, "ErrorCode"},
847 {YAHOO_FLD_NEW_BUDDY_GRP_NAME
, "NewBuddyGrpName"},
848 {YAHOO_FLD_PHONE_CARRIER_CODE
, "PhoneCarrierCode"},
849 {YAHOO_FLD_SCREEN_NAME
, "ScreenName"},
850 {YAHOO_FLD_SMS_PHONE
, "SmsPhone|ConverseCommand"},
851 {YAHOO_FLD_CONVERSE_IDENTITY
, "ConverseIdentity"},
852 {YAHOO_FLD_CONVERSE_OTHER_GUY
, "ConverseOtherGuy"},
853 {YAHOO_FLD_CONVERSE_TOPIC
, "ConverseTopic"},
854 {YAHOO_FLD_CONVERSE_COMMENT
, "ConverseComment"},
855 {YAHOO_FLD_CONVERSE_MAX
, "ConverseMax"},
856 {YAHOO_FLD_CONVERSE_URL
, "ConverseUrl"},
857 {YAHOO_FLD_CONVERSE_YOUR_COMMENT
, "ConverseYourComment"},
858 {YAHOO_FLD_STAT_TYPE
, "StatType"},
859 {YAHOO_FLD_IMIP_SERVICE
, "IMIPService"},
860 {YAHOO_FLD_IMIP_LOGIN
, "IMIPLogin"},
861 {YAHOO_FLD_ALERT_TYPE_ID
, "AlertTypeId"},
862 {YAHOO_FLD_ALERT_SUBTYPE_ID
, "AlertSubtypeId"},
863 {YAHOO_FLD_ALERT_DOC_TITLE
, "AlertDocTitle"},
864 {YAHOO_FLD_ALERT_PRIO_LEVEL
, "AlertPrioLevel"},
865 {YAHOO_FLD_ALERT_TYPE
, "AlertType"},
866 {YAHOO_FLD_ALERT_COUNTRY
, "AlertCountry"},
867 {YAHOO_FLD_BUDDY_LIST
, "BuddyList"},
868 {YAHOO_FLD_IGNORE_LIST
, "IgnoreList"},
869 {YAHOO_FLD_IDENTITY_LIST
, "IdentityList"},
870 {YAHOO_FLD_HAS_MAIL
, "HasMail|ConverseCmdDecText"},
871 {YAHOO_FLD_ANON_NAME
, "AnonName"},
872 {YAHOO_FLD_ANON_ID
, "AnonId"},
873 {YAHOO_FLD_T_COOKIE_EXPIRE
, "TCookieExpire"},
874 {YAHOO_FLD_CHALLENGE
, "Challenge"},
875 {YAHOO_FLD_OLD_PASSWORD
, "OldPassword"},
876 {YAHOO_FLD_UTF8_FLAG
, "Utf8Flag"},
877 {YAHOO_FLD_COUNTRY_CODE
, "CountryCode"},
878 {YAHOO_FLD_CO_BRAND_CODE
, "CoBrandCode"},
879 {YAHOO_FLD_DATE
, "Date"},
880 {YAHOO_FLD_IMV_DATA
, "ImvData"},
881 {YAHOO_FLD_WEBCAM_FARM
, "WebcamFarm"},
882 {YAHOO_FLD_CHAT_IGNORE_USER
, "ChatIgnoreUser"},
883 {YAHOO_FLD_CHAT_ROOM_NAME
, "ChatRoomName"},
884 {YAHOO_FLD_CHAT_ROOM_TOPIC
, "ChatRoomTopic"},
885 {YAHOO_FLD_CHAT_ROOM_URL
, "ChatRoomUrl"},
886 {YAHOO_FLD_CHAT_ROOM_PARAMETER
, "ChatRoomParameter"},
887 {YAHOO_FLD_CHAT_NUM_USERS
, "ChatNumUsers"},
888 {YAHOO_FLD_CHAT_ROOM_USERNAME
, "ChatRoomUsername"},
889 {YAHOO_FLD_CHAT_ROOM_USER_AGE
, "ChatRoomUserAge"},
890 {YAHOO_FLD_CHAT_ROOM_USER_GENDER
, "ChatRoomUserGender"},
891 {YAHOO_FLD_CHAT_ROOM_USER_TIMESTAMP
, "ChatRoomUserTimestamp"},
892 {YAHOO_FLD_CHAT_ROOM_USER_FLAG
, "ChatRoomUserFlag"},
893 {YAHOO_FLD_CHAT_ERR_NO
, "ChatErrNo"},
894 {YAHOO_FLD_CHAT_SIMILAR_ROOM
, "ChatSimilarRoom"},
895 {YAHOO_FLD_CHAT_EMOT_MSG
, "ChatEmotMsg"},
896 {YAHOO_FLD_CHAT_MSG
, "ChatMsg"},
897 {YAHOO_FLD_CHAT_INVITED_USER
, "ChatInvitedUser"},
898 {YAHOO_FLD_CHAT_INVITER
, "ChatInviter"},
899 {YAHOO_FLD_CHAT_EXTENDED_DATA_ID
, "ChatExtendedDataId"},
900 {YAHOO_FLD_CHAT_EXTENDED_DATA
, "ChatExtendedData"},
901 {YAHOO_FLD_CHAT_USER_SETTINGS
, "ChatUserSettings"},
902 {YAHOO_FLD_CHAT_LOGOFF_MSG
, "ChatLogoffMsg"},
903 {YAHOO_FLD_CHAT_MSG_TYPE
, "ChatMsgType"},
904 {YAHOO_FLD_CHAT_FRAME_NAME
, "ChatFrameName"},
905 {YAHOO_FLD_CHAT_FLG
, "ChatFlag"},
906 {YAHOO_FLD_CHAT_ROOM_TYPE
, "ChatRoomType"},
907 {YAHOO_FLD_CHAT_ROOM_CATEGORY
, "ChatRoomCategory"},
908 {YAHOO_FLD_CHAT_ROOM_SPACE_ID
, "ChatRoomSpaceId"},
909 {YAHOO_FLD_CHAT_VOICE_AUTH
, "ChatVoiceAuth"},
910 {YAHOO_FLD_ALERT_BUTTON_LABEL
, "AlertButtonLabel"},
911 {YAHOO_FLD_ALERT_BUTTON_LINK
, "AlertButtonLink"},
912 {YAHOO_FLD_ALERT_MIN_DIMENSION
, "AlertMinDimension"},
913 {YAHOO_FLD_BIZ_MAIL_TEXT
, "BizMailText"},
914 {YAHOO_FLD_VERSION
, "Version"},
915 {YAHOO_FLD_CO_BRAND_ROOM_INFO
, "CoBrandRoomInfo"},
916 {YAHOO_FLD_IDLE_TIME
, "IdleTime"},
917 {YAHOO_FLD_NO_IDLE_TIME
, "NoIdleTime"},
918 {YAHOO_FLD_CHAT_USER_NICKNAME
, "ChatUserNickname"},
919 {YAHOO_FLD_CHAT_USER_LOCATION
, "ChatUserLocation"},
920 {YAHOO_FLD_PING_INTERVAL
, "PingInterval"},
921 {YAHOO_FLD_KEEP_ALIVE_INTERVAL
, "KeepAliveInterval"},
922 {YAHOO_FLD_CPU_TYPE
, "CPUType"},
923 {YAHOO_FLD_OS_VERSION
, "OsVersion"},
924 {YAHOO_FLD_TIME_ZONE
, "TimeZone"},
925 {YAHOO_FLD_TIME_BIAS
, "TimeBias"},
926 {YAHOO_FLD_BLINDED_USER_ID
, "BlindedUserId"},
927 {YAHOO_FLD_CACHE_CRYPTO_KEY
, "CacheCryptoKey"},
928 {YAHOO_FLD_LOCAL_CRYPTO_KEY
, "LocalCryptoKey"},
929 {YAHOO_FLD_YPC_PREFS
, "YPCPrefs"},
930 {YAHOO_FLD_PARENT_ID
, "ParentId"},
931 {YAHOO_FLD_MSG_NUM
, "MsgNum"},
932 {YAHOO_FLD_EE_CONFIRM_DELIVERY
, "EeConfirmDelivery"},
933 {YAHOO_FLD_EE_SENDER
, "EeSender"},
934 {YAHOO_FLD_EE_NONCE
, "EeNonce"},
935 {YAHOO_FLD_GAME_ID
, "GameId"},
936 {YAHOO_FLD_GAME_NAME
, "GameName"},
937 {YAHOO_FLD_GAME_DATA
, "GameData"},
938 {YAHOO_FLD_GAME_URL
, "GameUrl"},
939 {YAHOO_FLD_STATUS_DATA
, "StatusData"},
940 {YAHOO_FLD_INVISIBLE_TO
, "InvisibleTo"},
941 {YAHOO_FLD_VISIBLE_TO
, "VisibleTo"},
942 {YAHOO_FLD_STATUS_LINK_TYPE
, "StatusLinkType"},
943 {YAHOO_FLD_AVATAR_FLAG
, "AvatarFlag"},
944 {YAHOO_FLD_AVATAR_MOOD_ID
, "AvatarMoodId"},
945 {YAHOO_FLD_ICON_CHECKSUM
, "IconChecksum"},
946 {YAHOO_FLD_ICON_DATA
, "IconData"},
947 {YAHOO_FLD_SEQUENCE_NO
, "SequenceNo"},
948 {YAHOO_FLD_MAX_SEQUENCE_NO
, "MaxSequenceNo"},
949 {YAHOO_FLD_ANTI_BOT_TEXT
, "AntiBotText"},
950 {YAHOO_FLD_AVATAR_HASH
, "AvatarHash"},
951 {YAHOO_FLD_AVATAR_USER
, "AvatarUser"},
952 {YAHOO_FLD_WIDTH
, "Width"},
953 {YAHOO_FLD_HEIGHT
, "Height"},
954 {YAHOO_FLD_ALERT_DATA
, "AlertData"},
955 {YAHOO_FLD_AVATAR_DEF_MOOD
, "AvatarDefMood"},
956 {YAHOO_FLD_AVATAR_ZOOM
, "AvatarZoom"},
957 {YAHOO_FLD_DISPLAY_TYPE
, "DisplayType"},
958 {YAHOO_FLD_BT_USER_ID
, "BTUserId"},
959 {YAHOO_FLD_T_COOKIE
, "TCookie"},
960 {YAHOO_FLD_STATS_BUFFER
, "StatsBuffer"},
961 {YAHOO_FLD_APPLY_TO_ALL
, "ApplyToAll"},
962 {YAHOO_FLD_SHOW_MY_AVATAR_IN_FRIEND_TREE
, "ShowMyAvatarInFriendTree"},
963 {YAHOO_FLD_GAME_PROWLER_PREF
, "GameProwlerPref"},
964 {YAHOO_FLD_VAS_USER
, "VASUser"},
965 {YAHOO_FLD_FIRSTNAME
, "Firstname"},
966 {YAHOO_FLD_YPM_KEY
, "YPMKey"},
967 {YAHOO_FLD_COOKIE_CUTTER
, "CookieCutter"},
968 {YAHOO_FLD_FEATURE_ID
, "FeatureId"},
969 {YAHOO_FLD_ACTION_TYPE
, "ActionType"},
970 {YAHOO_FLD_UNAUTH
, "UnAuth"},
971 {YAHOO_FLD_GROUP
, "Group"},
972 {YAHOO_FLD_ANTI_BOT_URL
, "AntiBotUrl"},
973 {YAHOO_FLD_ANTI_BOT_SECRET
, "AntiBotSecret"},
974 {YAHOO_FLD_ANTI_BOT_RESPONSE
, "AntiBotResponse"},
975 {YAHOO_FLD_AUDIBLE_ID
, "AudibleId"},
976 {YAHOO_FLD_AUDIBLE_TEXT
, "AudibleText"},
977 {YAHOO_FLD_AUDIBLE_HASH
, "AudibleHash"},
978 {YAHOO_FLD_IGNORED_USER
, "IgnoredUser"},
979 {YAHOO_FLD_PROFILE_ID
, "ProfileId"},
980 {YAHOO_FLD_INVISIBLE_TO_FRIEND
, "InvisibleToFriend"},
981 {YAHOO_FLD_VISIBLE_TO_FRIEND
, "VisibleToFriend"},
982 {YAHOO_FLD_CONTACT_INFO
, "ContactInfo"},
983 {YAHOO_FLD_CLOUD_ID
, "CloudId"},
984 {YAHOO_FLD_BRANDING_ID
, "BrandingId"},
985 {YAHOO_FLD_NUM_ATTRIBUTED_BUDDIES
, "NumAttributedBuddies"},
986 {YAHOO_FLD_CAPABILITY_MATRIX
, "CapabilityMatrix"},
987 {YAHOO_FLD_OBJECT_ID
, "ObjectId"},
988 {YAHOO_FLD_OBJECT_NAME
, "ObjectName"},
989 {YAHOO_FLD_META_DATA
, "MetaData"},
990 {YAHOO_FLD_OBJECT_SIZE
, "ObjectSize"},
991 {YAHOO_FLD_TRANSFER_TYPE
, "TransferType"},
992 {YAHOO_FLD_TRANSFER_TAG
, "TransferTag"},
993 {YAHOO_FLD_TOKEN
, "Token"},
994 {YAHOO_FLD_HASH
, "Hash"},
995 {YAHOO_FLD_CHECKSUM
, "Checksum"},
996 {YAHOO_FLD_LASTNAME
, "Lastname"},
997 {YAHOO_FLD_DATA
, "Data"},
998 {YAHOO_FLD_APP_ID
, "AppId"},
999 {YAHOO_FLD_INSTANCE_ID
, "InstanceId"},
1000 {YAHOO_FLD_ALERT_ID
, "AlertId"},
1001 {YAHOO_FLD_OPI_STATUS
, "OpiStatus"},
1002 {YAHOO_FLD_APP_REGISTER
, "AppRegister"},
1003 {YAHOO_FLD_CHECK_LOGIN_STATUS
, "CheckLoginStatus"},
1004 {YAHOO_FLD_TARGET_GROUP
, "TargetGroup"},
1005 {YAHOO_FLD_FT_SESSION_ID
, "FtSessionId"},
1006 {YAHOO_FLD_TOTAL_FILE_COUNT
, "TotalFileCount"},
1007 {YAHOO_FLD_THUMBNAIL
, "Thumbnail"},
1008 {YAHOO_FLD_FILE_INFO
, "FileInfo"},
1009 {YAHOO_FLD_SPAMMER_ID
, "SpammerId"},
1010 {YAHOO_FLD_INITIATOR
, "Initiator"},
1011 {YAHOO_FLD_FT_ONE_FILE_DONE
, "FtOneFileDone"},
1012 {YAHOO_FLD_X_POS
, "XPos"},
1013 {YAHOO_FLD_Y_POS
, "YPos"},
1014 {YAHOO_FLD_MSG_RECORD
, "MsgRecord"},
1015 {YAHOO_FLD_FLAG_MINGLE_USER
, "FlagMingleUser"},
1016 {YAHOO_FLD_ABUSE_SIGNATURE
, "AbuseSignature"},
1017 {YAHOO_FLD_LOGIN_Y_COOKIE
, "LoginYCookie"},
1018 {YAHOO_FLD_LOGIN_T_COOKIE
, "LoginTCookie"},
1019 {YAHOO_FLD_LOGIN_CRUMB
, "LoginCrumb"},
1020 {YAHOO_FLD_BUDDY_DETAIL
, "BuddyDetail"},
1021 {YAHOO_FLD_VALID_CLIENT_COOKIES
, "ValidClientCookies"},
1022 {YAHOO_FLD_NUM_LCS_BUDDIES
, "NumLcsBuddies"},
1023 {YAHOO_FLD_IS_RELOGIN
, "IsReLogin"},
1024 {YAHOO_FLD_START_OF_RECORD
, "StartOfRecord"},
1025 {YAHOO_FLD_END_OF_RECORD
, "EndOfRecord"},
1026 {YAHOO_FLD_START_OF_LIST
, "StartOfList"},
1027 {YAHOO_FLD_END_OF_LIST
, "EndOfList"},
1028 {YAHOO_FLD_COUNTRYCODE
, "Countrycode"},
1029 {YAHOO_FLD_PSTN_DID
, "PSTNDid"},
1030 {YAHOO_FLD_PSTN_PREMIUM_FLAG
, "PSTNPremiumFlag"},
1031 {YAHOO_FLD_CRUMB_HASH
, "CrumbHash"},
1032 {YAHOO_FLD_LOCALE
, "Locale"},
1033 {YAHOO_FLD_PREFERENCES
, "Preferences"},
1034 {YAHOO_FLD_PREF_CATEGORY
, "PrefCategory"},
1035 {YAHOO_FLD_PREF_MASK
, "PrefMask"},
1036 {YAHOO_FLD_BUDDY_INFO
, "BuddyInfo"},
1037 {YAHOO_FLD_PLUGIN_INFO
, "PluginInfo"},
1038 {YAHOO_FLD_VISIBILITY_FLAG
, "VisibilityFlag"},
1039 {YAHOO_FLD_GROUPS_RECORD_LIST
, "GroupsRecordList"},
1040 {YAHOO_FLD_BUDDIES_RECORD_LIST
, "BuddiesRecordList"},
1041 {YAHOO_FLD_IGNORED_BUDDIES_RECORD_LIST
, "IgnoredBuddiesRecordList"},
1042 {YAHOO_FLD_PREMIUM_SMS_RATE
, "PremiumSmsRate"},
1043 {YAHOO_FLD_PREMIUM_SMS_BALANCE
, "PremiumSmsBalance"},
1044 {YAHOO_FLD_PREMIUM_SMS_SYMBOL
, "PremiumSmsSymbol"},
1045 {YAHOO_FLD_PREMIUM_SMS_SYMBOL_POS
, "PremiumSmsSymbolPos"},
1046 {YAHOO_FLD_PREMIUM_SMS_MAX_MSGS
, "PremiumSmsMaxMsgs"},
1047 {YAHOO_FLD_NETSTAT_MSG
, "NetstatMsg"},
1048 {YAHOO_FLD_SERVER_TYPE
, "ServerType"},
1049 {YAHOO_FLD_TRY_P2P
, "TryP2P"},
1050 {YAHOO_FLD_P2P_CONN_STATE
, "P2PConnState"},
1051 {YAHOO_FLD_INTERNET_CONN_TYPE
, "InternetConnType"},
1052 {YAHOO_FLD_NEED_CMD_RETURN
, "NeedCmdReturn"},
1057 * These fields' values are themselves fields. Possible values are:
1058 * - YAHOO_FLD_GROUPS_RECORD_LIST,
1059 * - YAHOO_FLD_BUDDIES_RECORD_LIST,
1060 * - YAHOO_FLD_IGNORED_BUDDIES_RECORD_LIST,
1061 * - YAHOO_FLD_PREFERENCES,
1063 static const int yahoo_fields_with_field_values
[] = {
1064 YAHOO_FLD_START_OF_LIST
,
1065 YAHOO_FLD_END_OF_LIST
,
1066 YAHOO_FLD_START_OF_RECORD
,
1067 YAHOO_FLD_END_OF_RECORD
,
1070 /* Find the end of the current content line and return its length */
1071 static int get_content_item_length(tvbuff_t
*tvb
, int offset
)
1073 int origoffset
= offset
;
1075 /* Keep reading until the magic delimiter (or end of tvb) is found */
1076 while (tvb_captured_length_remaining(tvb
, offset
) >= 2) {
1077 if (tvb_get_ntohs(tvb
, offset
) == 0xc080) {
1082 return offset
- origoffset
;
1086 get_ymsg_pdu_len(packet_info
*pinfo _U_
, tvbuff_t
*tvb
, int offset
, void *data _U_
)
1091 * Get the length of the YMSG packet.
1093 plen
= tvb_get_ntohs(tvb
, offset
+ 8);
1096 * That length doesn't include the length of the header itself; add that in.
1098 return plen
+ YAHOO_HEADER_SIZE
;
1101 static bool is_field_with_field_value(int key
)
1103 for (unsigned i
= 0; i
< G_N_ELEMENTS(yahoo_fields_with_field_values
); i
++) {
1104 if (key
== yahoo_fields_with_field_values
[i
]) {
1113 dissect_ymsg_pdu(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void* data _U_
)
1115 proto_tree
*ymsg_tree
, *ti
;
1116 proto_item
*content_item
;
1117 proto_tree
*content_tree
;
1118 const char *val_buf
;
1127 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "YMSG");
1129 col_add_fstr(pinfo
->cinfo
, COL_INFO
,
1131 val_to_str(tvb_get_ntohs(tvb
, offset
+ 10),
1132 ymsg_command_vals
, "Unknown Command: %u"),
1133 val_to_str(tvb_get_ntohl(tvb
, offset
+ 12),
1134 ymsg_status_vals
, "Unknown Status: %u")
1138 ti
= proto_tree_add_item(tree
, proto_ymsg
, tvb
, offset
, -1, ENC_NA
);
1139 ymsg_tree
= proto_item_add_subtree(ti
, ett_ymsg
);
1141 offset
+= 4; /* skip the YMSG string */
1144 proto_tree_add_item(ymsg_tree
, hf_ymsg_version
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1148 proto_tree_add_item(ymsg_tree
, hf_ymsg_vendor
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1152 content_len
= tvb_get_ntohs(tvb
, offset
);
1153 proto_tree_add_item(ymsg_tree
, hf_ymsg_len
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1157 proto_item_append_text(ti
, " (%s)",
1158 val_to_str_const(tvb_get_ntohs(tvb
, offset
),
1162 proto_tree_add_item(ymsg_tree
, hf_ymsg_command
, tvb
, offset
, 2, ENC_BIG_ENDIAN
);
1166 proto_tree_add_item(ymsg_tree
, hf_ymsg_status
, tvb
, offset
, 4, ENC_BIG_ENDIAN
);
1170 proto_tree_add_item(ymsg_tree
, hf_ymsg_session_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
1175 /* Create content subtree */
1176 content_item
= proto_tree_add_item(ymsg_tree
, hf_ymsg_content
, tvb
,
1177 offset
, -1, ENC_NA
);
1178 content_tree
= proto_item_add_subtree(content_item
, ett_ymsg_content
);
1180 /* Each entry consists of:
1181 <key int32> <delimiter> <value string> <delimiter>
1184 /* Parse and show each line of the contents */
1188 proto_tree
*content_line_tree
;
1190 /* Don't continue unless there is room for another whole item.
1191 (including 2 2-byte delimiters */
1192 if (offset
>= (YAHOO_HEADER_SIZE
+ content_len
- 4))
1197 /* Get the length of the key */
1198 key_len
= get_content_item_length(tvb
, offset
);
1199 /* Extract the key */
1200 key_valid
= ws_strtoi32(tvb_format_text(pinfo
->pool
, tvb
, offset
, key_len
), NULL
, &key
);
1205 /* Get the length of the value */
1206 val_len
= get_content_item_length(tvb
, offset
+ key_len
+ 2);
1207 /* Extract the value */
1208 val_buf
= tvb_format_text(pinfo
->pool
, tvb
, offset
+ key_len
+ 2, val_len
);
1210 /* If the key is a field with field values, convert the value to an int and get its field name */
1211 if (is_field_with_field_value(key
) && ws_strtoi32(val_buf
, NULL
, &val_key
)) {
1212 val_buf
= val_to_str(val_key
, ymsg_field_vals
, "Unknown(%u)");
1215 /* Add a text item with the key... */
1216 ti_2
= proto_tree_add_string_format(content_tree
, hf_ymsg_content_line
, tvb
,
1217 offset
, key_len
+ 2 + val_len
+ 2,
1218 "", "%s: %s", val_to_str(key
, ymsg_field_vals
, "Unknown(%u)"),
1220 content_line_tree
= proto_item_add_subtree(ti_2
, ett_ymsg_content_line
);
1222 /* And add the key and value separately inside */
1223 proto_tree_add_item(content_line_tree
, hf_ymsg_content_line_key
, tvb
,
1224 offset
, key_len
, ENC_ASCII
);
1225 proto_tree_add_item(content_line_tree
, hf_ymsg_content_line_value
, tvb
,
1226 offset
+ key_len
+ 2, val_len
, ENC_ASCII
);
1228 /* Move beyond key and value lines */
1229 offset
+= key_len
+ 2 + val_len
+ 2;
1234 col_set_fence(pinfo
->cinfo
, COL_INFO
);
1236 return tvb_captured_length(tvb
);
1241 dissect_ymsg(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data
)
1243 if (tvb_captured_length(tvb
) < 4) {
1246 if (tvb_memeql(tvb
, 0, (const uint8_t*)"YMSG", 4) == -1) {
1247 /* Not a Yahoo Messenger packet. */
1251 tcp_dissect_pdus(tvb
, pinfo
, tree
, ymsg_desegment
, 10, get_ymsg_pdu_len
,
1252 dissect_ymsg_pdu
, data
);
1257 proto_register_ymsg(void)
1259 static hf_register_info hf
[] = {
1260 { &hf_ymsg_version
, {
1261 "Version", "ymsg.version", FT_UINT16
, BASE_DEC
,
1262 NULL
, 0, "Packet version identifier", HFILL
}},
1263 { &hf_ymsg_vendor
, {
1264 "Vendor ID", "ymsg.vendor", FT_UINT16
, BASE_DEC
,
1265 NULL
, 0, "Vendor identifier", HFILL
}},
1267 "Packet Length", "ymsg.len", FT_UINT16
, BASE_DEC
,
1268 NULL
, 0, NULL
, HFILL
}},
1269 { &hf_ymsg_command
, {
1270 "Command", "ymsg.command", FT_UINT16
, BASE_DEC
,
1271 VALS(ymsg_command_vals
), 0, "Command Type", HFILL
}},
1272 { &hf_ymsg_status
, {
1273 "Status", "ymsg.status", FT_UINT32
, BASE_DEC
,
1274 VALS(ymsg_status_vals
), 0, "Message Type Flags", HFILL
}},
1275 { &hf_ymsg_session_id
, {
1276 "Session ID", "ymsg.session_id", FT_UINT32
, BASE_HEX
,
1277 NULL
, 0, "Connection ID", HFILL
}},
1279 { &hf_ymsg_content
, {
1280 "Content", "ymsg.content", FT_BYTES
, BASE_NONE
,
1281 NULL
, 0, "Data portion of the packet", HFILL
}},
1282 { &hf_ymsg_content_line
, {
1283 "Content-line", "ymsg.content-line", FT_STRING
, BASE_NONE
,
1284 NULL
, 0, "Content line", HFILL
}},
1285 { &hf_ymsg_content_line_key
, {
1286 "Key", "ymsg.content-line.key", FT_STRING
, BASE_NONE
,
1287 NULL
, 0, "Content line key", HFILL
}},
1288 { &hf_ymsg_content_line_value
, {
1289 "Value", "ymsg.content-line.value", FT_STRING
, BASE_NONE
,
1290 NULL
, 0, "Content line value", HFILL
}}
1292 static int *ett
[] = {
1295 &ett_ymsg_content_line
1297 module_t
*ymsg_module
;
1299 proto_ymsg
= proto_register_protocol("Yahoo YMSG Messenger Protocol",
1302 proto_register_field_array(proto_ymsg
, hf
, array_length(hf
));
1304 proto_register_subtree_array(ett
, array_length(ett
));
1306 ymsg_module
= prefs_register_protocol(proto_ymsg
, NULL
);
1307 prefs_register_bool_preference(ymsg_module
, "desegment",
1308 "Reassemble YMSG messages spanning multiple TCP segments",
1309 "Whether the YMSG dissector should reassemble messages spanning multiple TCP segments. "
1310 "To use this option, you must also enable"
1311 " \"Allow subdissectors to reassemble TCP streams\" in the TCP protocol settings.",
1316 proto_reg_handoff_ymsg(void)
1319 * DO NOT register for port 23, as that's Telnet, or for port
1320 * 25, as that's SMTP.
1322 * Also, DO NOT register for port 5050, as that's used by the
1323 * old and new Yahoo messenger protocols.
1325 * Just register as a heuristic TCP dissector, and reject stuff
1326 * that doesn't begin with a YMSG signature.
1328 heur_dissector_add("tcp", dissect_ymsg
, "Yahoo YMSG Messenger over TCP", "ymsg_tcp", proto_ymsg
, HEURISTIC_ENABLE
);
1332 * Editor modelines - https://www.wireshark.org/tools/modelines.html
1337 * indent-tabs-mode: nil
1340 * vi: set shiftwidth=4 tabstop=8 expandtab:
1341 * :indentSize=4:tabSize=8:noTabs=true: