file_protocol.h
上传用户:tany51
上传日期:2013-06-12
资源大小:1397k
文件大小:4k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /*
  2.  * Copyright (C) 1998,1999  Ross Combs (rocombs@cs.nmsu.edu)
  3.  *
  4.  * This program is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU General Public License
  6.  * as published by the Free Software Foundation; either version 2
  7.  * of the License, or (at your option) any later version.
  8.  *
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  17.  */
  18. #ifndef INCLUDED_FILE_PROTOCOL_TYPES
  19. #define INCLUDED_FILE_PROTOCOL_TYPES
  20. #ifdef JUST_NEED_TYPES
  21. # include "common/bn_type.h"
  22. #else
  23. # define JUST_NEED_TYPES
  24. # include "common/bn_type.h"
  25. # undef JUST_NEED_TYPES
  26. #endif
  27. /******************************************************/
  28. typedef struct
  29. {
  30.     bn_short size;
  31.     bn_short type;
  32. } t_file_header PACKED_ATTR();
  33. /******************************************************/
  34. /******************************************************/
  35. typedef struct
  36. {
  37.     t_file_header h;
  38. } t_file_generic PACKED_ATTR();
  39. /******************************************************/
  40. /******************************************************/
  41. /*
  42. CLIENT FILE MPQ REQ
  43.                           2D 00 00 01 36 38 58 49            -...68XI
  44. 50 58 45 53 00 00 00 00   00 00 00 00 00 00 00 00    PXES............
  45. 00 2C 58 E1 09 28 BC 01   49 58 38 36 76 65 72 31    .,X..(..IX86ver1
  46. 2E 6D 70 71 00                                       .mpq.
  47. CLIENT FILE TOS REQ
  48.                           28 00 00 01 36 38 58 49            (...68XI
  49. 50 58 45 53 00 00 00 00   00 00 00 00 00 00 00 00    PXES............
  50. 30 C3 89 86 09 4F BD 01   74 6F 73 2E 74 78 74 00    0....O..tos.txt.
  51. CLIENT FILE AD REQ
  52.                           2D 00 00 01 36 38 58 49            -...68XI
  53. 50 58 45 53 2B 51 02 00   2E 70 63 78 00 00 00 00    PXES+Q...pcx....
  54. 00 00 00 00 58 01 B2 00   61 64 30 32 35 31 32 62    ....X...ad02512b
  55. 2E 70 63 78 00                                       .pcx.
  56. */
  57. #define CLIENT_FILE_REQ 0x0100
  58. typedef struct
  59. {
  60.     t_file_header h;
  61.     bn_int        archtag;
  62.     bn_int        clienttag;
  63.     bn_int        adid;
  64.     bn_int        extensiontag; /* unlike other tags, this one is "forward" */
  65.     bn_int        startoffset; /* is this actually used in the original clients? */
  66.     bn_long       timestamp;
  67.     /* filename */
  68. } t_client_file_req PACKED_ATTR();
  69. /******************************************************/
  70. /* ADDED BY UNDYING SOULZZ 4/3/02 */
  71. #define CLIENT_WAR3113_FILE_REQ1 0x0200
  72. #define CLIENT_WAR3113_FILE_REQ2 0x0000
  73. typedef struct
  74. {
  75.     bn_int unknown1;
  76.     bn_long timestamp;
  77.     bn_long unknown2;
  78.     bn_long unknown3;
  79.     bn_long unknown4;
  80.     bn_long unknown5;
  81.     bn_long unknown6;
  82.     /* filename */
  83. } t_client_war3113_file_req PACKED_ATTR();
  84. /******************************************************/
  85. /* SERVER FILE MPQ REPLY
  86.                           25 00 00 00 33 1B 00 00            %...3...
  87. 00 00 00 00 00 00 00 00   00 2C 58 E1 09 28 BC 01    .........,X..(..
  88. 49 58 38 36 76 65 72 31   2E 6D 70 71 00             IX86ver1.mpq.
  89. SERVER FILE TOS REPLY
  90.                           20 00 00 00 E4 00 00 00    P."..... .......
  91. 00 00 00 00 00 00 00 00   30 C3 89 86 09 4F BD 01    ........0....O..
  92. 74 6F 73 2E 74 78 74 00                              tos.txt.
  93. SERVER FILE AD REPLY
  94.                           25 00 00 00 30 2E 00 00            %...0...
  95. 2B 51 02 00 2E 70 63 78   00 00 00 00 58 01 B2 00    +Q...pcx....X...
  96. 61 64 30 32 35 31 32 62   2E 70 63 78 00             ad02512b.pcx.
  97. */
  98. #define SERVER_FILE_REPLY 0x0000
  99. typedef struct
  100. {
  101.     t_file_header h;
  102.     bn_int        filelen;
  103.     bn_int        adid;
  104.     bn_int        extensiontag; /* unlike other tags, this one is "forward" */
  105.     bn_long       timestamp;
  106.     /* filename */
  107. } t_server_file_reply PACKED_ATTR();
  108. /******************************************************/
  109. /* ADDED BY UNDYING SOULZZ 4/3/02 */
  110. #define SERVER_FILE_UNKNOWN1 0x0200
  111. typedef struct
  112. {
  113.     bn_short unknown1;
  114.     bn_short unknown2;
  115. } t_server_file_unknown1 PACKED_ATTR();
  116. #endif