Example #1
0
void PingThread(CWlanInfoFileLogDlg* context)
{
	ICMP_ECHO_REPLY     reply;

	while(g_bIsAlivePingThread)
	{
		WriteFileLog(1, _T("[PING] IP : %s\r\n"), g_strPingDestIP);
		CString strPingResult = _T("");

		if( PingTest(g_strPingDestIP, reply) == TRUE )
		{
			if (reply.RoundTripTime < 1)
			{
				strPingResult.Format(_T("[PING] RTT<1ms, TTL=%d, Data=%dbytes\r\n"), reply.Options.Ttl, reply.DataSize);
			}
			else
			{
				strPingResult.Format(_T("[PING] RTT=%dms, TTL=%d, Data=%dbytes\r\n"), reply.RoundTripTime, reply.Options.Ttl, reply.DataSize);
			}
		}
		else
		{
			strPingResult.Format(_T("[PING] Request timeout.\r\n") );
		}

		WriteFileLog(0, strPingResult.GetBuffer(strPingResult.GetLength()) );

		int nLen = context->m_EditPingResult.GetWindowTextLength();
		context->m_EditPingResult.SetSel(nLen, nLen);
		context->m_EditPingResult.ReplaceSel(strPingResult, TRUE);

		Sleep(1000);
	}
}
Example #2
0
void DriverLog::WriteLine(LPCTSTR message, ...)
{
	if (!Active() || message == 0)
		return;

    m_cs.Enter();
    
    static TCHAR lineStart[512];
    int lineStartSize = _stprintf_s(lineStart, 512, _T("[%4d][%6d]"), ::GetCurrentThreadId(), ::GetTickCount() - startTick);
    WriteFileLog(lineStart, lineStartSize);

    va_list args;
    va_start( args, message );

    int characters = _vsctprintf(message, args);
    if (characters != -1) {
		DynamicArray<TCHAR> buffer(characters + 5);
        if(-1 != _vstprintf_s(buffer, characters + 5, message, args)) {
			WritePipeLog(buffer, characters);
            buffer[characters] = _T('\r');
            buffer[characters + 1] = _T('\n');
            WriteFileLog(buffer, characters + 2);
        }
    }
    
    m_cs.Leave();
}
Example #3
0
void CWlanInfoFileLogDlg::OnButtonLogStart() 
{
	// TODO: Add your control notification handler code here

	UpdateData();
	g_bFileLogEnable = m_bIsCheckLogEn;


	WriteFileLog(1, _T("[WLAN Adaptor Name] : %s \r\n"), g_tszWirelessName);

	// for USI module
	// Get RoamingTrigger Setting Value 
	if( _tcscmp(g_tszWirelessName, _T("BCMSDDHD1")) == 0 )
	{
		CReg *regIP = new CReg(HKEY_LOCAL_MACHINE, _T("\\Comm\\BCMSDDHD1\\Parms"));
		TCHAR tszTriggerValue[32] = {'\0',};

		regIP->ValueSZ(_T("RoamTrigger"), tszTriggerValue, 32);

		WriteFileLog(1, _T("[TRIGGER] tszTriggerValue : %s \r\n"), tszTriggerValue);

		delete regIP;
	}

	// Network Refresh Timer (Default 3sec)
	SetTimer(TIMER_WZC_NETWORK_REFRESH, NETWORK_REFRESH_INTERVAL, NULL);

	g_bIsDetecingWLInfo = TRUE;
	HANDLE hThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)APInfoThread, this, 0, NULL);
	CloseHandle(hThread);


	// Control Disable / Enable
	GetDlgItem(IDC_BUTTON_LOG_START)->EnableWindow(FALSE);
	GetDlgItem(IDC_EDIT_IPADRESS)->EnableWindow(FALSE);
	GetDlgItem(IDC_CHECK_FILELOG)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTON_LOG_END)->EnableWindow(TRUE);
		
	
	GetDlgItemText(IDC_EDIT_IPADRESS, g_strPingDestIP);
	

	if(g_strPingDestIP.GetLength() > 7) // Vaild IP주소값인지 체크해야하나, 일단 지금은 대략 7자 이상만 되면 진행시작
	{

		g_bIsAlivePingThread = TRUE;
		HANDLE hPingThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)PingThread, this, 0, NULL);
		CloseHandle(hPingThread);
	}
	
	
}
Example #4
0
CString GetIPAddress(void)
{
	WORD wVersionRequested = MAKEWORD(2,2);
	WSADATA wsaData = {0,};
	char pcHostName[255] = {'\0',};
	CString strIPAddress = _T("");
	PHOSTENT pHostInfo = NULL;
	
	if( WSAStartup(wVersionRequested, &wsaData) == 0 )
	{
		if( gethostname(pcHostName, sizeof(pcHostName)) == 0 )
		{
			pHostInfo=gethostbyname(pcHostName);
			
			if( pHostInfo != NULL )
			{
				strIPAddress=inet_ntoa(*(struct in_addr *)*pHostInfo->h_addr_list);
			}
		}
		WSACleanup();
	}

	WriteFileLog(1, _T("[IPADDRESS] : %s \r\n"), strIPAddress);
	return strIPAddress;
	
}
Example #5
0
int WriteFileLogf(wstring fmt, ...) {
	wchar_t szBuf[2048] = L"";
	va_list args;
	va_start(args, fmt);
	_snwprintf_s(szBuf, 2048, 2048, fmt.data(), args);
	WriteFileLog(*defaultlog, wstring(szBuf));
	va_end(args);
	return 0;
}
Example #6
0
// Ping test
BOOL PingTest(LPCWSTR strIpAddr, ICMP_ECHO_REPLY& reply)
{
    CString strIP       = strIpAddr;
    LPWSTR  addr        = strIP.GetBuffer(strIP.GetLength());
	CHAR    cIPString[128] = {'\0',};

    WideCharToMultiByte(CP_ACP, 0, addr, -1, cIPString, sizeof(cIPString), NULL, NULL);

    IPAddr		ipaddr;	 
	WSADATA		wsadata;
	HANDLE		hIcmp;

    BOOL        bResult = FALSE;

    if(strlen(cIPString))
	{
		// start winsock, requesting min version of 1.01
		WSAStartup(0x0101, &wsadata );
		
		//*******************************************************************
		// Now we ping the IP address resolved above
		//*******************************************************************
		
		// convert the IP char string to a IPAddr representation
		ipaddr = inet_addr((const char*)cIPString);
		
		if(ipaddr == INADDR_NONE)
		{
			AfxMessageBox(TEXT("Invalid Host or IP Entered"));
			WriteFileLog(1, _T("[PING] Invalid Host or IP Entered\r\n") );
		}
		else
		{
			INT		iPacketSize		= 0;
			
            // ping test을 위한 핸들 생성
			hIcmp = IcmpCreateFile();
			
			if(hIcmp == INVALID_HANDLE_VALUE)
			{
				AfxMessageBox(TEXT("Could not create ICMP handle"));
				WriteFileLog(1, _T("[PING] Could not create ICMP handle\r\n") );
			}
			else
			{
				LPVOID	lpData			= NULL;
				LPVOID	lpRevBuffer		= NULL;

				// determine the size of the data packet to send
				iPacketSize = 32;
				
				// allocate memory for the ping function call return and packet size
				lpData = LocalAlloc(LPTR, iPacketSize);
				lpRevBuffer = LocalAlloc(LPTR, sizeof(ICMP_ECHO_REPLY) * iPacketSize);
				
				if(lpData && lpRevBuffer)
				{
					// send the ping
					if( NULL == IcmpSendEcho( hIcmp,
                                              ipaddr,
                                              lpData,
                                              iPacketSize,
                                              NULL,
                                              lpRevBuffer,
                                              (sizeof(ICMP_ECHO_REPLY) * iPacketSize),
                                              1000))
					{					
                        // ping test 실패
                        bResult = FALSE;
						WriteFileLog(1, _T("[PING] IcmpSendEcho Failed(%d)\r\n"), GetLastError() );
					}
					else
					{
                        // ping test 성공
                        //&reply = (ICMP_ECHO_REPLY*)lpRevBuffer;
                        memcpy(&reply, lpRevBuffer, sizeof(ICMP_ECHO_REPLY));
                        bResult = TRUE;
					}
				}

				free(lpData);
				free(lpRevBuffer);
				IcmpCloseHandle(hIcmp);
			}					
		}
		WSACleanup();
	}
	else
	{
		WriteFileLog(1, _T("[PING] Invalid IP Address\r\n") );
	}

    return bResult;
}
Example #7
0
void PrintWifiInfo(CWlanInfoFileLogDlg* context)
{       
    INTF_ENTRY_EX Intf;
    DWORD dwOutFlags;
    memset(&Intf, 0x00, sizeof(INTF_ENTRY_EX));
    Intf.wszGuid = g_tszWirelessName;
    

    DWORD dwStatus = WZCQueryInterfaceEx(NULL, INTF_ALL, &Intf, &dwOutFlags);

    if (dwStatus != ERROR_SUCCESS)
    {
        RETAILMSG(1,(L"WZCQueryInterfaceEx() error 0x%08X\r\n", dwStatus));
        return;
    }

    
	// Get Current MAC Address
	PRAW_DATA prdMAC = &Intf.rdBSSID;
	WCHAR tszMac[128] = {'\0',};
	
	// MAC	
	if (prdMAC->dwDataLen != 0)
	{
		swprintf(tszMac,(TEXT("%02X:%02X:%02X:%02X:%02X:%02X")), prdMAC->pData[0], prdMAC->pData[1], prdMAC->pData[2], prdMAC->pData[3], prdMAC->pData[4], prdMAC->pData[5]);
	}
   
	// Get Around SSID List
    PRAW_DATA prdBSSIDList = &Intf.rdBSSIDList;
	
	NDIS_802_11_RSSI rssi = 0;
	NDIS_802_11_MAC_ADDRESS APmacAddr = {0,};
	NDIS_802_11_SSID ssid = {0,};

	TCHAR tszSSID[256] = {'\0'};
	TCHAR tszAPMAC[128] = {'\0'};

    if (!(prdBSSIDList == NULL || prdBSSIDList->dwDataLen == 0))
    {
        PWZC_802_11_CONFIG_LIST pConfigList = (PWZC_802_11_CONFIG_LIST)prdBSSIDList->pData;

        for (UINT i = 0; i < pConfigList->NumberOfItems; i++)
        {
            PWZC_WLAN_CONFIG pConfig = &(pConfigList->Config[i]);
			wsprintf(tszAPMAC, _T("%02X:%02X:%02X:%02X:%02X:%02X"), pConfig->MacAddress[0], pConfig->MacAddress[1], pConfig->MacAddress[2], pConfig->MacAddress[3], pConfig->MacAddress[4], pConfig->MacAddress[5] );

			// Is same with current SSID Macaddr?
			if(wcscmp(tszMac, tszAPMAC) == 0)
			{
				WriteFileLog(0, "SSID : [%s] / ", pConfig->Ssid.Ssid);
				WriteFileLog(0, _T("[%d] / (%s) \r\n"), pConfig->Rssi, tszAPMAC);


				// for TCHAR SSID
				WCHAR tszSsid[128] = {'\0',};

				for (UINT i = 0; i < pConfig->Ssid.SsidLength; i++)
				{
					tszSsid[i] = pConfig->Ssid.Ssid[i];
					tszSsid[i+1] = L'\0';
				}
				// Display Current Info
				SetDlgItemText(context->m_hWnd, IDC_EDIT_CUR_SSID, tszSsid);
				SetDlgItemInt(context->m_hWnd, IDC_EDIT_CUR_RSSI, pConfig->Rssi, TRUE);
				SetDlgItemText(context->m_hWnd, IDC_EDIT_CUR_MAC, tszAPMAC);
			}
			else
			{
				WriteFileLog(0, "SSID : %s / ", pConfig->Ssid.Ssid);
				WriteFileLog(0, _T("[%d] / (%s) \r\n"), pConfig->Rssi, tszAPMAC);
			}
			
        }
		WriteFileLog(0, _T("\r\n") );
    }

    WZCDeleteIntfObjEx(&Intf);

}