From a519dcd7b93e6e78a25f1ccb1d9261a4ba853981 Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Sat, 2 May 2015 07:21:23 +0000 Subject: cosmetics git-svn-id: http://svn.miranda-ng.org/main/trunk@13357 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/MRA/docs/proto.htm | 103 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 protocols/MRA/docs/proto.htm (limited to 'protocols/MRA/docs/proto.htm') diff --git a/protocols/MRA/docs/proto.htm b/protocols/MRA/docs/proto.htm new file mode 100644 index 0000000000..ec334ffb30 --- /dev/null +++ b/protocols/MRA/docs/proto.htm @@ -0,0 +1,103 @@ + + + + + +//*************************************************************************** +// $Id: proto.h,v 1.141 2005/10/24 15:32:33 shingrus Exp $ +//*************************************************************************** +#ifndef MRIM_PROTO_H #define MRIM_PROTO_H #include #define +PROTO_VERSION_MAJOR 1 #define PROTO_VERSION_MINOR 10 #define PROTO_VERSION +((((u_long)(PROTO_VERSION_MAJOR))<<16)|(u_long)(PROTO_VERSION_MINOR)) +#define PROTO_MAJOR(p) (((p)&0xFFFF0000)>>16) #define PROTO_MINOR(p) +((p)&0x0000FFFF) typedef struct mrim_packet_header_t { u_long magic; // +Magic u_long proto; // Версия протокола u_long seq; // Sequence u_long msg; // +Тип пакета u_long dlen; // Длина данных u_long from; // Адрес отправителя u_long +fromport; // Порт отправителя u_char reserved[16]; // Зарезервировано } +mrim_packet_header_t; #define CS_MAGIC 0xDEADBEEF // Клиентский Magic ( C +<-> S ) +/*************************************************************************** +ПРОТОКОЛ СВЯЗИ КЛИЕНТ-СЕРВЕР +***************************************************************************/ +#define MRIM_CS_HELLO 0x1001 // C -> S // empty #define MRIM_CS_HELLO_ACK +0x1002 // S -> C // mrim_connection_params_t #define MRIM_CS_LOGIN_ACK 0x1004 +// S -> C // empty #define MRIM_CS_LOGIN_REJ 0x1005 // S -> C // LPS +reason #define MRIM_CS_PING 0x1006 // C -> S // empty #define MRIM_CS_MESSAGE +0x1008 // C -> S // UL flags // LPS to // LPS message // LPS rtf-formatted +message (>=1.1) #define MESSAGE_FLAG_OFFLINE 0x00000001 #define +MESSAGE_FLAG_NORECV 0x00000004 #define MESSAGE_FLAG_AUTHORIZE 0x00000008 // +X-MRIM-Flags: 00000008 #define MESSAGE_FLAG_SYSTEM 0x00000040 #define +MESSAGE_FLAG_RTF 0x00000080 #define MESSAGE_FLAG_CONTACT 0x00000200 #define +MESSAGE_FLAG_NOTIFY 0x00000400 #define MESSAGE_FLAG_MULTICAST 0x00001000 #define +MAX_MULTICAST_RECIPIENTS 50 #define MESSAGE_USERFLAGS_MASK 0x000036A8 // Flags +that user is allowed to set himself #define MRIM_CS_MESSAGE_ACK 0x1009 // S +-> C // UL msg_id // UL flags // LPS from // LPS message // LPS rtf-formatted +message (>=1.1) #define MRIM_CS_MESSAGE_RECV 0x1011 // C -> S // LPS from +// UL msg_id #define MRIM_CS_MESSAGE_STATUS 0x1012 // S -> C // UL status +#define MESSAGE_DELIVERED 0x0000 // Message delivered directly to user #define +MESSAGE_REJECTED_NOUSER 0x8001 // Message rejected - no such user #define +MESSAGE_REJECTED_INTERR 0x8003 // Internal server error #define +MESSAGE_REJECTED_LIMIT_EXCEEDED 0x8004 // Offline messages limit exceeded +#define MESSAGE_REJECTED_TOO_LARGE 0x8005 // Message is too large #define +MESSAGE_REJECTED_DENY_OFFMSG 0x8006 // User does not accept offline messages +#define MRIM_CS_USER_STATUS 0x100F // S -> C // UL status #define +STATUS_OFFLINE 0x00000000 #define STATUS_ONLINE 0x00000001 #define STATUS_AWAY +0x00000002 #define STATUS_UNDETERMINATED 0x00000003 #define +STATUS_FLAG_INVISIBLE 0x80000000 // LPS user #define MRIM_CS_LOGOUT 0x1013 // S +-> C // UL reason #define LOGOUT_NO_RELOGIN_FLAG 0x0010 // Logout due to +double login #define MRIM_CS_CONNECTION_PARAMS 0x1014 // S -> C // +mrim_connection_params_t #define MRIM_CS_USER_INFO 0x1015 // S -> C // (LPS +key, LPS value)* X #define MRIM_CS_ADD_CONTACT 0x1019 // C -> S // UL flags +(group(2) or usual(0) // UL group id (unused if contact is group) // LPS contact +// LPS name #define CONTACT_FLAG_REMOVED 0x00000001 #define CONTACT_FLAG_GROUP +0x00000002 #define CONTACT_FLAG_INVISIBLE 0x00000004 #define +CONTACT_FLAG_VISIBLE 0x00000008 #define CONTACT_FLAG_IGNORE 0x00000010 #define +CONTACT_FLAG_SHADOW 0x00000020 #define MRIM_CS_ADD_CONTACT_ACK 0x101A // S -> +C // UL status // UL contact_id or (u_long)-1 if status is not OK #define +CONTACT_OPER_SUCCESS 0x0000 #define CONTACT_OPER_ERROR 0x0001 #define +CONTACT_OPER_INTERR 0x0002 #define CONTACT_OPER_NO_SUCH_USER 0x0003 #define +CONTACT_OPER_INVALID_INFO 0x0004 #define CONTACT_OPER_USER_EXISTS 0x0005 #define +CONTACT_OPER_GROUP_LIMIT 0x6 #define MRIM_CS_MODIFY_CONTACT 0x101B // C -> S +// UL id // UL flags - same as for MRIM_CS_ADD_CONTACT // UL group id (unused if +contact is group) // LPS contact // LPS name #define MRIM_CS_MODIFY_CONTACT_ACK +0x101C // S -> C // UL status, same as for MRIM_CS_ADD_CONTACT_ACK #define +MRIM_CS_OFFLINE_MESSAGE_ACK 0x101D // S -> C // UIDL // LPS offline message +#define MRIM_CS_DELETE_OFFLINE_MESSAGE 0x101E // C -> S // UIDL #define +MRIM_CS_AUTHORIZE 0x1020 // C -> S // LPS user #define MRIM_CS_AUTHORIZE_ACK +0x1021 // S -> C // LPS user #define MRIM_CS_CHANGE_STATUS 0x1022 // C -> +S // UL new status #define MRIM_CS_GET_MPOP_SESSION 0x1024 // C -> S #define +MRIM_CS_MPOP_SESSION 0x1025 // S -> C #define MRIM_GET_SESSION_FAIL 0 #define +MRIM_GET_SESSION_SUCCESS 1 //UL status // LPS mpop session //white pages! +#define MRIM_CS_WP_REQUEST 0x1029 //C->S //DWORD field, LPS value #define +PARAMS_NUMBER_LIMIT 50 #define PARAM_VALUE_LENGTH_LIMIT 64 //if last symbol in +value eq '*' it will be replaced by LIKE '%' // params define // must be in +consecutive order (0..N) to quick check in check_anketa_info_request enum { +MRIM_CS_WP_REQUEST_PARAM_USER = 0, MRIM_CS_WP_REQUEST_PARAM_DOMAIN, +MRIM_CS_WP_REQUEST_PARAM_NICKNAME, MRIM_CS_WP_REQUEST_PARAM_FIRSTNAME, +MRIM_CS_WP_REQUEST_PARAM_LASTNAME, MRIM_CS_WP_REQUEST_PARAM_SEX , +MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY, MRIM_CS_WP_REQUEST_PARAM_DATE1 , +MRIM_CS_WP_REQUEST_PARAM_DATE2 , //!!!!!!!!!!!!!!!!!!!online request param must +be at end of request!!!!!!!!!!!!!!! MRIM_CS_WP_REQUEST_PARAM_ONLINE , +MRIM_CS_WP_REQUEST_PARAM_STATUS , // we do not used it, yet +MRIM_CS_WP_REQUEST_PARAM_CITY_ID, MRIM_CS_WP_REQUEST_PARAM_ZODIAC, +MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_MONTH, MRIM_CS_WP_REQUEST_PARAM_BIRTHDAY_DAY, +MRIM_CS_WP_REQUEST_PARAM_COUNTRY_ID, MRIM_CS_WP_REQUEST_PARAM_MAX }; #define +MRIM_CS_ANKETA_INFO 0x1028 //S->C //DWORD status #define +MRIM_ANKETA_INFO_STATUS_OK 1 #define MRIM_ANKETA_INFO_STATUS_NOUSER 0 #define +MRIM_ANKETA_INFO_STATUS_DBERR 2 #define MRIM_ANKETA_INFO_STATUS_RATELIMERR 3 +//DWORD fields_num //DWORD max_rows //DWORD server_time sec since 1970 +(unixtime) // fields set //%fields_num == 0 //values set //%fields_num == 0 +//LPS value (numbers too) #define MRIM_CS_MAILBOX_STATUS 0x1033 //DWORD new +messages in mailbox #define MRIM_CS_CONTACT_LIST2 0x1037 //S->C // UL status +#define GET_CONTACTS_OK 0x0000 #define GET_CONTACTS_ERROR 0x0001 #define +GET_CONTACTS_INTERR 0x0002 //DWORD status - if ...OK than this staff: //DWORD +groups number //mask symbols table: //'s' - lps //'u' - unsigned long //'z' - +zero terminated string //LPS groups fields mask //LPS contacts fields mask +//group fields //contacts fields //groups mask 'us' == flags, name //contact +mask 'uussuu' flags, flags, internal flags, status #define +CONTACT_INTFLAG_NOT_AUTHORIZED 0x0001 //old packet cs_login with cs_statistic +#define MRIM_CS_LOGIN2 0x1038 // C -> S #define MAX_CLIENT_DESCRIPTION 256 // +LPS login // LPS password // DWORD status //+ statistic packet data: // LPS +client description //max 256 typedef struct mrim_connection_params_t { unsigned +long ping_period; } mrim_connection_params_t; #endif // MRIM_PROTO_H + -- cgit v1.2.3