DB/BannedAddOns: Difference between revisions

From wowdev
Jump to navigation Jump to search
 
(7 intermediate revisions by 3 users not shown)
Line 2: Line 2:


{{Template:Sandbox/VersionRange|min_expansionlevel=3}}
{{Template:Sandbox/VersionRange|min_expansionlevel=3}}
This DBC is used to ban addons. In addition to the DBC, there is also the [[baddons.wcf]] file, which is an early form of hotfixing when there was no hotfixing tech.
Upon connecting to the server,
* [[DB/BannedAddOns]] is loaded
* [[baddons.wcf]] is loaded
* the maximum <code>m_lastModified</code> over both files is determined
* <code>GetAddOnInfoRequest</code> is sent with other data and the timestamp
* <code>SetAddOnInfoRequest</code> is received with new banned addons and other data
* new ban data is merged with existing data
* [[baddons.wcf]] is written with the updated data
* loaded addons are checked if they match and if they do, they are refused loading
===3.0.2.8905-3.3.5.12340-6.0.1.18179===
===3.0.2.8905-3.3.5.12340-6.0.1.18179===
====Table====
====Table====
Line 9: Line 23:
! width="180 " | Field  
! width="180 " | Field  
! width="80" | Type  
! width="80" | Type  
! width="600" | Notes
! width="200" | Notes
|-  
|-  
|1  || ID  || Integer  ||  
|1  || ID  || Integer  ||  
|-  
|-  
|2  || NameMD5  || char[0x10] ||
|2  || NameMD5  || char[0x10] || MD5 of the toc Title tag
|-  
|-  
|3  || VersionMD5  || char[0x10] ||
|3  || VersionMD5  || char[0x10] || MD5 of the toc Version tag
|-  
|-  
|4  || LastModified  || Integer ||
|4  || LastModified  || Integer || In unix time
|-  
|-  
|5  || Flags  || Integer ||
|5  || Flags  || Integer ||
Line 26: Line 40:
   uint32_t m_ID;
   uint32_t m_ID;
   uint32_t m_nameMD5_[4];
   uint32_t m_nameMD5_[4];
   uint32_t m_versionMD5_[4];
   uint32_t m_versionMD5_[4]; // md5("") to ban all addons just matching name
   uint32_t m_lastModified;
   uint32_t m_lastModified;  // seconds since epoch (unix time)
  enum {
    flag_is_banned = 1,      // entries without this flag are ignored in FindBannedAddOn
  };
   uint32_t m_flags;
   uint32_t m_flags;
  };
  };
===7.0.3.22248 +===
====Table====
{| style="background:#FCFCFC; color:black"
|-
! width="80" | Column
! width="180 " | Field
! width="80" | Type
! width="200" | Notes
|-
|1  || ID  || Integer  ||
|-
|2  || Name  || string || The toc Title tag
|-
|3  || Version  || string || The toc Version tag
|-
|4  || Flags  || Byte || Same as above
|}
=baddons.wcf=
The cache file has the exact same format as the DB entries. This file is generated by the client from the <code>SMSG_ADDON_INFO</code> packet. There is no header or anything. It is just a plain array of entries:
BannedAddOnsRec cached_banned_addons[];
[[Category:DBC]]
[[Category:DBC]]
[[Category:DBC_WotLK]] [[Category:3.0.2.8905]] [[Category:3.3.5.12340]]
[[Category:DBC_WotLK]] [[Category:3.0.2.8905]] [[Category:3.3.5.12340]]
[[Category:DBC_WoD]] [[Category:6.0.1.18179]]
[[Category:DBC_WoD]] [[Category:6.0.1.18179]]

Latest revision as of 12:42, 16 September 2017

≥ Wrath

This DBC is used to ban addons. In addition to the DBC, there is also the baddons.wcf file, which is an early form of hotfixing when there was no hotfixing tech.

Upon connecting to the server,

  • DB/BannedAddOns is loaded
  • baddons.wcf is loaded
  • the maximum m_lastModified over both files is determined
  • GetAddOnInfoRequest is sent with other data and the timestamp
  • SetAddOnInfoRequest is received with new banned addons and other data
  • new ban data is merged with existing data
  • baddons.wcf is written with the updated data
  • loaded addons are checked if they match and if they do, they are refused loading

3.0.2.8905-3.3.5.12340-6.0.1.18179

Table

Column Field Type Notes
1 ID Integer
2 NameMD5 char[0x10] MD5 of the toc Title tag
3 VersionMD5 char[0x10] MD5 of the toc Version tag
4 LastModified Integer In unix time
5 Flags Integer

Struct

struct BannedAddOnsRec {
  uint32_t m_ID;
  uint32_t m_nameMD5_[4];
  uint32_t m_versionMD5_[4]; // md5("") to ban all addons just matching name
  uint32_t m_lastModified;   // seconds since epoch (unix time)
  enum {
    flag_is_banned = 1,      // entries without this flag are ignored in FindBannedAddOn
  };
  uint32_t m_flags;
};

7.0.3.22248 +

Table

Column Field Type Notes
1 ID Integer
2 Name string The toc Title tag
3 Version string The toc Version tag
4 Flags Byte Same as above

baddons.wcf

The cache file has the exact same format as the DB entries. This file is generated by the client from the SMSG_ADDON_INFO packet. There is no header or anything. It is just a plain array of entries:

BannedAddOnsRec cached_banned_addons[];