示例#1
0
void CLuzj_ZTEDlg::OnTimer(UINT nIDEvent)
{
	static char *csStatus[] = {"初始化完毕", "认证中", "认证成功", "正在获取IP地址", "成功获取IP地址",
		"网页认证中", "网页认证成功", "在线", "离线"};

	static STATUS lastStatus = INIT;
		
	time_t t =time(NULL);
	char szTime[MAX_STRING];
	strftime(szTime,MAX_STRING,"%H:%M:%S", localtime(&t));
	m_StatusBar.SetText(szTime,0,0);

	if(m_bAuth && Config.m_bReauth && stricmp(szTime, Config.m_csReauthTime) == 0) {
		OnLogoff();
		OnStart();
	}

	if (m_bAuth) {
		t -= m_startTime;
		strftime(szTime,MAX_STRING,"在线时间%H:%M:%S",gmtime(&t));
		m_StatusBar.SetText(szTime,1,0);
	} else {
		m_StatusBar.SetText("...",1,0);
	}

	m_StatusBar.SetText(csStatus[status],2,0);

	if(lastStatus != status) {
		lastStatus = status;
		SetBubble("状态", csStatus[status]);
	}
		
	CDialog::OnTimer(nIDEvent);
}
示例#2
0
void CLuzj_ZTEDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == SC_MINIMIZE || (nID & 0xFFF0) == SC_CLOSE)
	{
		ShowWindow(SW_HIDE);
		SetProcessWorkingSetSize(GetCurrentProcess(),-1,-1);
		SetBubble("提示",STR_AppName" 正在后台运行着……",1);
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}
示例#3
0
OP_STATUS OpBubbleHandler::CreateBubble(OpWindow *parent_window, const uni_char *text)
{
	OpBubble *b = OP_NEW(OpBubble, (this));
	if (!b)
		return OpStatus::ERR_NO_MEMORY;
	OP_STATUS status = b->Init(parent_window);
	if (OpStatus::IsError(status))
	{
		OP_DELETE(b);
		return status;
	}

	status = b->SetText(text);
	if (OpStatus::IsError(status))
	{
		OP_DELETE(b);
		return status;
	}
	SetBubble(b);
	return OpStatus::OK;
}
示例#4
0
void CLuzj_ZTEDlg::Log (int level, const char *fmt, ...)
{

	if(level == I_INFO && !Config.m_bDebug) return;

    va_list args;
    char msg[MAX_STRING];
    va_start (args, fmt);
    vsnprintf (msg, MAX_STRING, fmt, args);
    va_end (args);

	time_t t=time(NULL);
	char szTime[MAX_STRING];
	strftime(szTime,MAX_STRING,"%H:%M:%S",localtime(&t));
	strcat(szTime, " "); strcat(szTime, msg); strcat(szTime, "\r\n");

	int nLength = editLog->SendMessage(WM_GETTEXTLENGTH);
    editLog->SetSel(nLength, nLength);
    editLog->ReplaceSel(szTime);
	editLog->SendMessage(WM_VSCROLL,SB_BOTTOM,0);

	if(level == I_WARN) SetBubble("Warnning", szTime);
	if(level == I_ERR) AfxMessageBox(szTime, MB_ICONSTOP, 0);
}
示例#5
0
void CLuzj_ZTEDlg::OnStart() 
{
	UpdateStatus(TRUE);

	//////////////////////////////////////////////////////////////////////////
	//		先存放设置参数
	CString strTemp;

	//取得用户名密码
	GetDlgItem(IDC_USERNAME)->GetWindowText((char*)m_username, sizeof(m_username));
	m_usernameLen=strlen((char*)m_username);
	GetDlgItem(IDC_PWD)->GetWindowText((char*)m_password, sizeof(m_password));
	m_passwordLen=strlen((char*)m_password);

	if (m_usernameLen<1 || m_passwordLen<1)	{
		this->Log(I_ERR, "用户名或者密码太短!"); UpdateStatus(FALSE); return;	
	}
	
	Config.m_csNetCard=m_csAdapters[((CComboBox*)GetDlgItem(IDC_NETCARD))->GetCurSel()];
	
	if (IsDlgButtonChecked(IDC_REMEMBER)) {		
		Config.m_bRememberPWD=TRUE;
	} else {		
		Config.m_bRememberPWD=FALSE;
	}

	Config.m_csLastUser=(char*)m_username;
	if(Config.m_bRememberPWD)
		Config.m_UserInfo[(char*)m_username]=(char*)m_password;

	Config.SaveConfig();
	//////////////////////////////////////////////////////////////////////////
	SetBubble("提示",STR_AppName" 开始联网认证……");
		
	char m_errorBuffer[PCAP_ERRBUF_SIZE];
	int retcode = 0;
		
	/////////////////////////////////////////////////////////////////////////
	//寻找所选的网卡的MAC	
	if (GetMacIP(Config.m_csNetCard, NULL, m_MacAdd) != 0)	{
		if(m_MacAdd[0] == 0 && m_MacAdd[1] == 0 && m_MacAdd[2] == 0 && 
			m_MacAdd[3] == 0 && m_MacAdd[4] == 0 && m_MacAdd[5] == 0) {
			Log(I_ERR, "GetMacIP:no mac address."); UpdateStatus(FALSE);
			return;
		}
	} else {
		Log(I_INFO, "MAC:%02X-%02X-%02X-%02X-%02X-%02X", m_MacAdd[0], m_MacAdd[1], m_MacAdd[2], 
			m_MacAdd[3], m_MacAdd[4], m_MacAdd[5]);
	}
	//////////////////////////////////////////////////////////////////////////
	// 打开指定适配器
	m_adapterHandle=pcap_open_live(ToNPFName(Config.m_csNetCard),65536,1,Config.m_iTimeout,m_errorBuffer);
    if(m_adapterHandle == NULL) {	
		Log(I_INFO, "pcap_open_live:%s", m_errorBuffer); UpdateStatus(FALSE);
		return;
    }

	char	FilterStr[100];		//包过滤字符串
	struct bpf_program	mfcode;	

	sprintf(FilterStr, "(ether proto 0x888e) and (ether dst host %02x:%02x:%02x:%02x:%02x:%02x)",
			m_MacAdd[0],m_MacAdd[1],m_MacAdd[2],m_MacAdd[3],m_MacAdd[4],m_MacAdd[5]);

    if((retcode=pcap_compile(m_adapterHandle, &mfcode, FilterStr, 1, 0xff))==-1
		||(retcode=pcap_setfilter(m_adapterHandle, &mfcode))==-1)
    {
		Log(I_INFO, "pcap_compile & pcap_setfilter:%s", pcap_strerror(retcode));
		pcap_close(m_adapterHandle); UpdateStatus(FALSE);
		return;
    }

	status = AUTHING;

	CPacket packet;	
	//////////////////////////////////////////////////////////////////////////
	///开始认证包
    if(!(retcode=packet.send_packet_start(m_adapterHandle,m_MacAdd))) {   
		Log(I_INFO, "send_packet_start:(%d)%s", retcode, pcap_geterr(m_adapterHandle));	 UpdateStatus(FALSE);	
		return;
    }
	Log(I_INFO, "Client:EAPOL_START...");

	m_AuthThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)eap_thread, this, 0, 0);
	if(m_AuthThread == NULL) Log(I_INFO, "CreateThread:(%d)", GetLastError());
}
示例#6
0
void OpBubbleHandler::Close()
{
	// Just remove the current bubble for now (never reuse it)
	SetBubble(NULL);
}