示例#1
0
void CpeepmBrowser::SaveCookie(char* cookie)
{
    if (cookie == NULL)
        return;

    const char* http = "http://";
    UINT len = strlen(http) + strlen(Server);
    char* buffer = new char[len + 1];
    ZeroMemory(buffer, len + 1);
    strcat(buffer, http);
    strcat(buffer, Server);
    wchar_t* host = CpeepmUtil::CharToWideChar(buffer, len);
    ReleaseArray(buffer);
    if (host == NULL)
        return;

    char* p = cookie;
    char* n = p;
    char* v = p;
    UINT nameLength = 0;
    UINT valueLength = 0;

    while (*p != '\0')
    {
        if (*p == '=')
        {
            while (n < p)
            {
                if (*n != '=' && *n != ';' && *n != ' ')
                    break;

                n++;
            }

            nameLength = p - n;
            v = p + 1;
        }

        if (*p == ';' && nameLength > 0)
        {
            valueLength = p - v;
            SaveCookie(host, n, nameLength, v, valueLength);
            nameLength = 0;
            valueLength = 0;
            n = p;
        }

        p++;
    }

    if (nameLength > 0 && v < p)
    {
        valueLength = p - v;
        SaveCookie(host, n, nameLength, v, valueLength);
    }

    ReleaseArray(host);
}
示例#2
0
void CpeepmBrowser::SaveCookie(const wchar_t* host, const char* name, UINT nameLength, const char* value, UINT valueLength)
{
    wchar_t* n = CpeepmUtil::CharToWideChar(name, nameLength);
    wchar_t* v = CpeepmUtil::CharToWideChar(value, valueLength);

    if (n != NULL && v != NULL)
        InternetSetCookie(host, n, v);

    ReleaseArray(n);
    ReleaseArray(v);
}
示例#3
0
void CpeepmBrowser::OnThreadBrowser(const char* url, char* cookie)
{
    wchar_t* u = CpeepmUtil::CharToWideChar(url, strlen(url));
    if (u == NULL)
        return;

    char* o = GetCookie();
    SaveCookie(cookie);
    m_Browser.Navigate(u, NULL, NULL, NULL, NULL);
    Sleep(1000);
    SaveCookie(o);
    ReleaseArray(o);
    ReleaseArray(u);
}
示例#4
0
int main() 
{ 
#ifndef VERIFIER
	int data[] = {44, 12, 145, -123, -1, 0, 121, 88}; 
	const unsigned int n = sizeof(data)/sizeof(int);

	printArray(data, n);

	MERGE_SORT(data, 0, n-1); 

	printArray(data, n);
#else
	int *Array = NULL;
	int size = 0;
	int test_case = 0;
	for (; test_case<MAX_TEST_CASE; test_case++)
	{
		Array = FillArray(&size);
		if (!Array)
			return 0;

		MERGE_SORT(Array, 0, size-1);

		CheckArrayElement(Array, size);

		ReleaseArray(Array);
	}
	printf("\n");
#endif

	return 0; 
} 
示例#5
0
void CpeepmBrowser::OnThreadProgress(UINT id, const char* username, const char* password, const char* progress)
{
    UINT len = strlen(username) + strlen(password) + 3;
    char* buffer = new char[len + 1];
    ZeroMemory(buffer, len + 1);
    strcat(buffer, username);
    strcat(buffer, " - ");
    strcat(buffer, password);
    wchar_t* text = CpeepmUtil::CharToWideChar(buffer, strlen(buffer));
    ReleaseArray(buffer);
    if (text != NULL)
    {
        SetWindowText(text);
        ReleaseArray(text);
    }
}
示例#6
0
char* CpeepmBrowser::GetCookie()
{
    const char* http = "http://";
    UINT len = strlen(http) + strlen(Server);
    char* buffer = new char[len + 1];
    ZeroMemory(buffer, len + 1);
    strcat(buffer, http);
    strcat(buffer, Server);
    wchar_t* host = CpeepmUtil::CharToWideChar(buffer, len);
    ReleaseArray(buffer);
    if (host == NULL)
        return NULL;

    wchar_t tmp[1] = {0};
    DWORD size = 0;
    InternetGetCookie(host, NULL, tmp, &size);
    if (size == 0)
    {
        ReleaseArray(host);
        return NULL;
    }

    wchar_t* cookie = new wchar_t[size / 2 + 1];
    wmemset(cookie, 0, size / 2 + 1);
    InternetGetCookie(host, NULL, cookie, &size);
    ReleaseArray(host);
    len = wcslen(cookie);
    if (len > 0)
    {
        char* c = CpeepmUtil::WideCharToChar(cookie, len);
        ReleaseArray(cookie);
        return c;
    }
    else
    {
        ReleaseArray(cookie);
        return NULL;
    }
}
示例#7
0
int main()
{
#ifndef VERIFIER
	int a[] = {19,5,2,6,7,12,10,3,8,4,11,18,17};
	const unsigned int n = sizeof(a)/sizeof(int);
	int *b = (int *)malloc(n*sizeof(int));
	if (!b)
		return 0;

	COUNTING_SORT(a, b, VALUE_UPPER_LIMIT, n);

	int i = 0;
	for(; i<n; i++)
		printf("%d ",b[i]);
	printf("\n");

	free(b);
#else
	int *Array = NULL;
	int size = 0;
	int test_case = 0;
	for (; test_case<MAX_TEST_CASE; test_case++)
	{
		Array = FillArray(&size);
		if (!Array)
			return 0;

		int *b = (int *)malloc(size*sizeof(int));
		if (!b)
			return 0;

		COUNTING_SORT(Array, b, VALUE_UPPER_LIMIT, size);

		CheckArrayElement(b, size);

		free(b);
		ReleaseArray(Array);
	}
	printf("\n");
#endif
	return 0;
}