Changeset 386042c for protocols/oscar


Ignore:
Timestamp:
2012-10-19T23:16:52Z (12 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
6042a54
Parents:
0eb971a
Message:

Removing some more cruft now that I've (re)discovered ld garbage collection.
Mostly stuff related to obsolete Y!MSG login obfuscation schemes.

Location:
protocols/oscar
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • protocols/oscar/aim.h

    r0eb971a r386042c  
    626626#define AIM_CLIENTTYPE_WINAIM41 0x0003
    627627#define AIM_CLIENTTYPE_AOL_TOC  0x0004
    628 unsigned short aim_fingerprintclient(unsigned char *msghdr, int len);
    629628
    630629#define AIM_RATE_CODE_CHANGE     0x0001
  • protocols/oscar/im.c

    r0eb971a r386042c  
    2323#include "im.h"
    2424#include "info.h"
    25 
    26 /*
    27  * Takes a msghdr (and a length) and returns a client type
    28  * code.  Note that this is *only a guess* and has a low likelihood
    29  * of actually being accurate.
    30  *
    31  * Its based on experimental data, with the help of Eric Warmenhoven
    32  * who seems to have collected a wide variety of different AIM clients.
    33  *
    34  *
    35  * Heres the current collection:
    36  *  0501 0003 0101 0101 01       AOL Mobile Communicator, WinAIM 1.0.414
    37  *  0501 0003 0101 0201 01       WinAIM 2.0.847, 2.1.1187, 3.0.1464,
    38  *                                      4.3.2229, 4.4.2286
    39  *  0501 0004 0101 0102 0101     WinAIM 4.1.2010, libfaim (right here)
    40  *  0501 0001 0101 01            AOL v6.0, CompuServe 2000 v6.0, any
    41  *                                      TOC client
    42  *
    43  * Note that in this function, only the feature bytes are tested, since
    44  * the rest will always be the same.
    45  *
    46  */
    47 guint16 aim_fingerprintclient(guint8 *msghdr, int len)
    48 {
    49         static const struct {
    50                 guint16 clientid;
    51                 int len;
    52                 guint8 data[10];
    53         } fingerprints[] = {
    54                 /* AOL Mobile Communicator, WinAIM 1.0.414 */
    55                 { AIM_CLIENTTYPE_MC,
    56                   3, {0x01, 0x01, 0x01}},
    57 
    58                 /* WinAIM 2.0.847, 2.1.1187, 3.0.1464, 4.3.2229, 4.4.2286 */
    59                 { AIM_CLIENTTYPE_WINAIM,
    60                   3, {0x01, 0x01, 0x02}},
    61 
    62                 /* WinAIM 4.1.2010, libfaim */
    63                 { AIM_CLIENTTYPE_WINAIM41,
    64                   4, {0x01, 0x01, 0x01, 0x02}},
    65 
    66                 /* AOL v6.0, CompuServe 2000 v6.0, any TOC client */
    67                 { AIM_CLIENTTYPE_AOL_TOC,
    68                   1, {0x01}},
    69 
    70                 { 0, 0}
    71         };
    72         int i;
    73 
    74         if (!msghdr || (len <= 0))
    75                 return AIM_CLIENTTYPE_UNKNOWN;
    76 
    77         for (i = 0; fingerprints[i].len; i++) {
    78                 if (fingerprints[i].len != len)
    79                         continue;
    80                 if (memcmp(fingerprints[i].data, msghdr, fingerprints[i].len) == 0)
    81                         return fingerprints[i].clientid;
    82         }
    83 
    84         return AIM_CLIENTTYPE_UNKNOWN;
    85 }
    8625
    8726/* This should be endian-safe now... but who knows... */
Note: See TracChangeset for help on using the changeset viewer.