コード例 #1
0
ファイル: tools.c プロジェクト: baoson/warfacebot
char *wf_get_query_content(const char *msg)
{
    if (msg == NULL)
        return NULL;

    char *compressedData = strstr(msg, "compressedData='");

    if (!compressedData)
        return get_info(msg, "urn:cryonline:k01'>", "</query>", NULL);

    compressedData += sizeof ("compressedData='") - 1;

    char *originalSize = strstr(msg, "originalSize='");

    if (!originalSize)
        return NULL;

    originalSize += sizeof ("originalSize='") - 1;

    size_t outsize = strtol(originalSize, NULL, 10);
    size_t insize = strstr(compressedData, "'") - compressedData + 1;

    char *ret = zlibb64decode(compressedData, insize, outsize);

#ifdef DEBUG
    if (ret != NULL)
    {
        xprintf("##(%3u/%3u)-< \033[1;36m%s\033[0m\n",
                (unsigned) outsize, (unsigned) insize, ret);
    }
#endif

    return ret;
}
コード例 #2
0
ファイル: tools.c プロジェクト: robertownuk/warfacebot
char *wf_get_query_content(const char *msg)
{
    char *compressedData = strstr(msg, "compressedData='");

    if (!compressedData)
        return get_info(msg, "urn:cryonline:k01'>", "</query>", NULL);

    compressedData += sizeof ("compressedData='") - 1;

    char *originalSize = strstr(msg, "originalSize='");

    if (!originalSize)
        return NULL;

    originalSize += sizeof ("originalSize='") - 1;

    size_t outsize = strtol(originalSize, NULL, 10);
    size_t insize = strstr(compressedData, "'") - compressedData + 1;

    return zlibb64decode(compressedData, insize, outsize);
}