diff options
Diffstat (limited to 'libpurple/protocols/qq/qq_define.h')
-rw-r--r-- | libpurple/protocols/qq/qq_define.h | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/libpurple/protocols/qq/qq_define.h b/libpurple/protocols/qq/qq_define.h new file mode 100644 index 0000000000..ab6c474ad5 --- /dev/null +++ b/libpurple/protocols/qq/qq_define.h @@ -0,0 +1,136 @@ +/** + * @file qq_define.h + * + * purple + * + * Purple is the legal property of its developers, whose names are too numerous + * to list here. Please refer to the COPYRIGHT file distributed with this + * source distribution. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA + */ + +#ifndef _QQ_HEADER_INFO_H_ +#define _QQ_HEADER_INFO_H_ + +#include <glib.h> + +#define QQ_UDP_HEADER_LENGTH 7 +#define QQ_TCP_HEADER_LENGTH 9 + +#define QQ_PACKET_TAG 0x02 /* all QQ text packets starts with it */ +#define QQ_PACKET_TAIL 0x03 /* all QQ text packets end with it */ + +#define QQ_CLIENT_0D55 0x0d55 /* QQ2005 used by openq before */ +#define QQ_CLIENT_111D 0x111D /* QQ2007 */ +#define QQ_CLIENT_115B 0x115B /* QQ2008 He Sui*/ + +const gchar *qq_get_ver_desc(gint source); + +/* list of known QQ commands */ +enum { + QQ_CMD_LOGOUT = 0x0001, /* log out */ + QQ_CMD_KEEP_ALIVE = 0x0002, /* get onlines from tencent */ + QQ_CMD_UPDATE_INFO = 0x0004, /* update information */ + QQ_CMD_SEARCH_USER = 0x0005, /* search for user */ + QQ_CMD_GET_BUDDY_INFO = 0x0006, /* get user information */ + QQ_CMD_ADD_BUDDY_NO_AUTH = 0x0009, /* add buddy without auth */ + QQ_CMD_REMOVE_BUDDY = 0x000a, /* delete a buddy */ + QQ_CMD_ADD_BUDDY_AUTH = 0x000b, /* buddy authentication */ + QQ_CMD_CHANGE_STATUS = 0x000d, /* change my online status */ + QQ_CMD_ACK_SYS_MSG = 0x0012, /* ack system message */ + QQ_CMD_SEND_IM = 0x0016, /* send message */ + QQ_CMD_RECV_IM = 0x0017, /* receive message */ + QQ_CMD_REMOVE_ME = 0x001c, /* remove self */ + QQ_CMD_REQUEST_KEY = 0x001d, /* request key for file transfer */ + QQ_CMD_CELL_PHONE_1 = 0x0021, /* cell phone 1 */ + QQ_CMD_LOGIN = 0x0022, /* login */ + QQ_CMD_GET_BUDDIES_LIST = 0x0026, /* get buddies list */ + QQ_CMD_GET_BUDDIES_ONLINE = 0x0027, /* get online buddies list */ + QQ_CMD_CELL_PHONE_2 = 0x0029, /* cell phone 2 */ + QQ_CMD_ROOM = 0x0030, /* room command */ + QQ_CMD_GET_BUDDIES_AND_ROOMS = 0x0058, + QQ_CMD_GET_LEVEL = 0x005C, /* get level for one or more buddies */ + QQ_CMD_TOKEN = 0x0062, /* get login token */ + QQ_CMD_RECV_MSG_SYS = 0x0080, /* receive a system message */ + QQ_CMD_BUDDY_CHANGE_STATUS = 0x0081, /* buddy change status */ + /* for QQ2007*/ + QQ_CMD_GET_SERVER = 0x0091, /* select login server */ + QQ_CMD_TOKEN_EX = 0x00BA, /* get LOGIN token */ + QQ_CMD_CHECK_PWD = 0x00DD, /* Password verify */ + QQ_CMD_AUTH_CODE = 0x00AE, /* the request verification of information */ + QQ_CMD_ADD_BUDDY_NO_AUTH_EX = 0x00A7, /* add friend without auth */ + QQ_CMD_ADD_BUDDY_AUTH_EX = 0x00A8, /* add buddy with auth */ + QQ_CMD_BUDDY_CHECK_CODE = 0x00B5, + QQ_CMD_BUDDY_QUESTION = 0x00B7, +}; + +const gchar *qq_get_cmd_desc(gint type); + +enum { + QQ_ROOM_CMD_CREATE = 0x01, + QQ_ROOM_CMD_MEMBER_OPT = 0x02, + QQ_ROOM_CMD_CHANGE_INFO = 0x03, + QQ_ROOM_CMD_GET_INFO = 0x04, + QQ_ROOM_CMD_ACTIVATE = 0x05, + QQ_ROOM_CMD_SEARCH = 0x06, + QQ_ROOM_CMD_JOIN = 0x07, + QQ_ROOM_CMD_AUTH = 0x08, + QQ_ROOM_CMD_QUIT = 0x09, + QQ_ROOM_CMD_SEND_MSG = 0x0a, + QQ_ROOM_CMD_GET_ONLINES = 0x0b, + QQ_ROOM_CMD_GET_BUDDIES = 0x0c, + + QQ_ROOM_CMD_CHANGE_CARD = 0x0E, + QQ_ROOM_CMD_GET_REALNAMES = 0x0F, + QQ_ROOM_CMD_GET_CARD = 0x10, + QQ_ROOM_CMD_SEND_IM_EX = 0x1A, + QQ_ROOM_CMD_ADMIN = 0x1B, + QQ_ROOM_CMD_TRANSFER = 0x1C, + QQ_ROOM_CMD_TEMP_CREATE = 0x30, + QQ_ROOM_CMD_TEMP_CHANGE_MEMBER = 0x31, + QQ_ROOM_CMD_TEMP_QUIT = 0x32, + QQ_ROOM_CMD_TEMP_GET_INFO = 0x33, + QQ_ROOM_CMD_TEMP_SEND_IM = 0x35, + QQ_ROOM_CMD_TEMP_GET_MEMBERS = 0x37, +}; + +const gchar *qq_get_room_cmd_desc(gint room_cmd); + +enum { + QQ_SERVER_BUDDY_ADDED = 1, + QQ_SERVER_BUDDY_ADD_REQUEST = 2, + QQ_SERVER_BUDDY_ADDED_ME = 3, + QQ_SERVER_BUDDY_REJECTED_ME = 4, + QQ_SERVER_NOTICE= 6, + QQ_SERVER_NEW_CLIENT = 9, + QQ_SERVER_BUDDY_ADDING_EX = 40, + QQ_SERVER_BUDDY_ADD_REQUEST_EX = 41, + QQ_SERVER_BUDDY_ADDED_ANSWER = 42, + QQ_SERVER_BUDDY_ADDED_EX = 43, +}; + +enum { + QQ_BUDDY_OFFLINE = 0x00, + QQ_BUDDY_ONLINE_NORMAL = 10, + QQ_BUDDY_CHANGE_TO_OFFLINE = 20, + QQ_BUDDY_ONLINE_AWAY = 30, + QQ_BUDDY_ONLINE_INVISIBLE = 40, + QQ_BUDDY_ONLINE_BUSY = 50, +}; + +gboolean is_online(guint8 status); + +#endif |