====== $MyINFO command ====== **$MyINFO $ALL $ $$$$|** Command not allow **$** and **|**, except them in nick is not allowed space.\\ Description, connection and email is optional. Client sending this command to hub on login and when some info changed. Hub sending this command to all connected client. **Parameters:** * nick - User nick name. * description - User description. On end of description can be Tag starting with **<** and ending with **>** where client send some info about yourself (see below). * connection - User connection desription or speed. * magic byte - One byte (character) where bits are used to show statuses in original client (see below). * email - User email. * share size - User share size in bytes. ==== Tag ==== Is on end of description and looks for example like **<++ V:0.699,M:A,H:1/0/0,S:2>**\\ Tag is starting with **<** followed by client short name or short identification (here ++ for DC++) and followed by space. Next parts are separated by **,** and use one char identification followed by **:** and some text. Tag is ending with **>**. **Tag parts:** * **V:** - client version. * **M:** - client mode. Usually **A** for active, **P** for passive and **5** for socks5. With [[dcprotocol:hub_client:ipv6:ip64|IP64]] protocol extension is second character mode for IPv6. * **H:** - client hubs count. * Originally it was one number with total hub count. * Actually it is x/x/x where first number is hub count where is user unregistered. Second number is hub count where is user registered (without hubs where is operator). And third number is hub count where is user operator. * **S:** - client slot count. * **O:** - client value for auto open slots when upload is below this value. ==== Magic byte ==== One byte (char) after connection where bits are in original client used to show statuses. Because original software use only first 4 bits, newer software use other 4 bits to show support for protocol extensions. Hub is checking second 4 bits and broadcasting $MyINFO with enabled only bits for extensions that he is supporting.\\ **Original bits used for statuses:** * 1 - No status, probably used when no other bit is enabled to not have null character. * 2 - Away status, enabled when user is away. * 3 - Server status. Client with uptime more than 2 hours, sharing more than 2 GB and uploaded more than 200 MB. * 4 - Fireball status. Client is able to upload with speed more than 100 kB/s. **Extended bits used for extensions:** * 5 - Show support for TLS. * For all connections when [[dcprotocol:tls|TLS]] extension is supported. * For download only when [[dcprotocol:tls1|TLS1]] extension is supported. * 6 - Show support for TLS upload when [[dcprotocol:tls1|TLS1]] extension is supported. * 7 - Show IPv4 support when [[dcprotocol:hub_client:ipv6:ip64|IP64]] extension is supported. * 8 - Show IPv6 support when [[dcprotocol:hub_client:ipv6:ip64|IP64]] extension is supported. ==== $MyINFO examples ==== **$MyINFO $ALL matisskka $ $1A$$36913421887$|**\\ **$MyINFO $ALL damon <++ V:0.761,M:P,H:5/0/0,S:10>$ $1000A$$105848991048$|**\\ **$MyINFO $ALL DRUIDASLT $ $0.1I$comaslt@one.lt$98951178281$|**\\ **$MyINFO $ALL Laller26 <++ V:0.791,M:P,H:39/0/0,S:20>$ $0.5A$biznisz30@freemail.hu$0$|**\\ **$MyINFO $ALL PPK _@o*$ $CableƉ$PPK@CzDC.org$77396125917$|**\\ ==== Notes ==== Common mistake is that magic byte is one byte integer where value 1 is normal, 2 and 3 is away, 4 and 5 is server, 6 and 7 is server away, 8 and 9 is fireball, 10 and 11 is fireball away. Many clients in older versions support it that way, but most of them fix that when extensions using unused bits were introduced.