示例#1
0
void	PerformLogin(char *User, char *Pass)
{ 
	uint			ReUse = 1;
	int				LogRes;
	Host			CurLS;

	SetConsoleTitle("FakeSkype - Performing Login..");

	InitLSQueue();
	
	LSSock = socket(AF_INET, SOCK_STREAM, 0);
	setsockopt(LSSock, SOL_SOCKET, SO_REUSEADDR, (const char *)&ReUse, sizeof(ReUse));

	while (!LSQueue.empty())
	{
		CurLS = LSQueue.front();
		if (SendHandShake2LS(CurLS))
		{
			/*LogRes = -1;
			while (LogRes == -1)
			{*/
				printf("Login Server %s OK ! Let's authenticate..\n", CurLS.ip);
				LogRes = SendAuthentificationBlobLS(CurLS, User, Pass);

				if (LogRes == 1)
				{
					closesocket(LSSock);
					return ;
				}

				/*if (LogRes == -1)
				{
					if (Connected)
						ResetLSSock();
					Sleep(5000);
					SendHandShake2LS(CurLS);
				}
			}*/
		}
		if (Connected)
			ResetLSSock();
		LSQueue.pop();
	}

	closesocket(LSSock);
	
	printf("Login Failed..\n");
	ExitProcess(0);
}
示例#2
0
int PerformLogin(Skype_Inst *pInst, const char *User, const char *Pass)
{
	uint			ReUse = 1;
	int				i;
	LSConnection	conn={0};
	int				iRet = 0;

	for (i=0; !iRet && i<sizeof(LoginServers)/sizeof(LoginServers[0]); i++)
	{
		conn.LSSock = socket(AF_INET, SOCK_STREAM, 0);
		setsockopt(conn.LSSock, SOL_SOCKET, SO_REUSEADDR, (const char *)&ReUse, sizeof(ReUse));

		if (SendHandShake2LS(pInst, &conn, &LoginServers[i]))
		{
			pInst->pfLog(pInst->pLogStream, "Login Server %s OK ! Let's authenticate..\n", LoginServers[i].ip);
			iRet = SendAuthentificationBlobLS(pInst, &conn, User, Pass);
		}
		closesocket(conn.LSSock);
	}

	if (!iRet) pInst->pfLog(pInst->pLogStream, "Login Failed..\n");
	return iRet;
}