diff options
author | George Hazan <george.hazan@gmail.com> | 2013-09-25 10:00:22 +0000 |
---|---|---|
committer | George Hazan <george.hazan@gmail.com> | 2013-09-25 10:00:22 +0000 |
commit | 77cc30f66c53cd638eb73bb92340c9144114e07a (patch) | |
tree | a5462767042dd144390a08ba49be1e7ebfce22ea /plugins/ConnectionNotify/src | |
parent | 66fe24c1af7b15aaf749413bf2aacc1d030610e2 (diff) |
warning fixes
git-svn-id: http://svn.miranda-ng.org/main/trunk@6223 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/ConnectionNotify/src')
-rw-r--r-- | plugins/ConnectionNotify/src/ConnectionNotify.cpp | 595 | ||||
-rw-r--r-- | plugins/ConnectionNotify/src/ConnectionNotify.h | 2 | ||||
-rw-r--r-- | plugins/ConnectionNotify/src/debug.cpp | 112 | ||||
-rw-r--r-- | plugins/ConnectionNotify/src/filter.cpp | 6 | ||||
-rw-r--r-- | plugins/ConnectionNotify/src/netstat.cpp | 22 | ||||
-rw-r--r-- | plugins/ConnectionNotify/src/netstat.h | 2 | ||||
-rw-r--r-- | plugins/ConnectionNotify/src/pid2name.cpp | 123 | ||||
-rw-r--r-- | plugins/ConnectionNotify/src/pid2name.h | 2 |
8 files changed, 350 insertions, 514 deletions
diff --git a/plugins/ConnectionNotify/src/ConnectionNotify.cpp b/plugins/ConnectionNotify/src/ConnectionNotify.cpp index 7edc537f0e..6a4d4a850c 100644 --- a/plugins/ConnectionNotify/src/ConnectionNotify.cpp +++ b/plugins/ConnectionNotify/src/ConnectionNotify.cpp @@ -68,7 +68,7 @@ BOOL strrep(TCHAR *src,TCHAR *needle,TCHAR *newstring) //strset(begining,' ');
//strset(tail,' ');
- if(!(found=_tcsstr(src,needle)))
+ if (!(found=_tcsstr(src,needle)))
return FALSE;
pos=(int)(found-src);
@@ -82,14 +82,6 @@ BOOL strrep(TCHAR *src,TCHAR *needle,TCHAR *newstring) pos=mir_sntprintf(src,_tcslen(src),_T("%s%s%s"),begining,newstring,tail);
return TRUE;
}
-/*miranda IM
-__declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion)
-{
- if(mirandaVersion<PLUGIN_MAKE_VERSION(0,1,0,1)) return NULL;
- pluginInfo.cbSize=sizeof(PLUGININFO); // needed as v0.6 does equality check
- return (PLUGININFO*)&pluginInfo;
-}
-*/
extern "C" __declspec(dllexport) const PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
{
@@ -137,16 +129,16 @@ struct CONNECTION* LoadSettingsConnections() {
struct CONNECTION *conn=(struct CONNECTION*)mir_alloc(sizeof(struct CONNECTION));
mir_snprintf(buff,sizeof(buff), "%dFilterIntIp", i);
- if(!db_get_ts(NULL, PLUGINNAME, buff, &dbv))
- wcsncpy(conn->strIntIp,dbv.ptszVal,_countof(conn->strIntIp) );
+ if (!db_get_ts(NULL, PLUGINNAME, buff, &dbv))
+ wcsncpy(conn->strIntIp,dbv.ptszVal,_countof(conn->strIntIp));
db_free(&dbv);
mir_snprintf(buff,sizeof(buff), "%dFilterExtIp", i);
- if(!db_get_ts(NULL, PLUGINNAME, buff, &dbv))
- wcsncpy(conn->strExtIp,dbv.ptszVal,_countof(conn->strExtIp) );
+ if (!db_get_ts(NULL, PLUGINNAME, buff, &dbv))
+ wcsncpy(conn->strExtIp,dbv.ptszVal,_countof(conn->strExtIp));
db_free(&dbv);
mir_snprintf(buff,sizeof(buff), "%dFilterPName", i);
- if(!db_get_ts(NULL, PLUGINNAME, buff, &dbv))
- wcsncpy(conn->PName,dbv.ptszVal,_countof(conn->PName) );
+ if (!db_get_ts(NULL, PLUGINNAME, buff, &dbv))
+ wcsncpy(conn->PName,dbv.ptszVal,_countof(conn->PName));
db_free(&dbv);
mir_snprintf(buff,sizeof(buff), "%dFilterIntPort", i);
@@ -206,14 +198,14 @@ void fillExceptionsListView(HWND hwndDlg) lvI.pszText=tmp->PName;
ListView_InsertItem(hwndList, &lvI);
lvI.iSubItem=1;
- if(tmp->intIntPort==-1)
+ if (tmp->intIntPort==-1)
mir_sntprintf(tmpAddress,_countof(tmpAddress),_T("%s:*"),tmp->strIntIp);
else
mir_sntprintf(tmpAddress,_countof(tmpAddress),_T("%s:%d"),tmp->strIntIp,tmp->intIntPort);
lvI.pszText=tmpAddress;
ListView_SetItem(hwndList, &lvI);
lvI.iSubItem=2;
- if(tmp->intExtPort==-1)
+ if (tmp->intExtPort==-1)
mir_sntprintf(tmpAddress,_countof(tmpAddress),_T("%s:*"),tmp->strExtIp);
else
mir_sntprintf(tmpAddress,_countof(tmpAddress),_T("%s:%d"),tmp->strExtIp,tmp->intExtPort);
@@ -241,12 +233,12 @@ static INT_PTR CALLBACK FilterEditProc(HWND hWnd, UINT message, WPARAM wParam, L SetDlgItemText(hWnd, ID_TXT_LOCAL_IP,conn->strIntIp);
SetDlgItemText(hWnd, ID_TXT_REMOTE_IP,conn->strExtIp);
- if(conn->intIntPort==-1)
+ if (conn->intIntPort==-1)
SetDlgItemText(hWnd, ID_TXT_LOCAL_PORT,_T("*"));
else
SetDlgItemInt(hWnd, ID_TXT_LOCAL_PORT,conn->intIntPort,FALSE);
- if(conn->intExtPort==-1)
+ if (conn->intExtPort==-1)
SetDlgItemText(hWnd, ID_TXT_REMOTE_PORT,_T("*"));
else
SetDlgItemInt(hWnd, ID_TXT_REMOTE_PORT,conn->intExtPort,FALSE);
@@ -304,11 +296,9 @@ static INT_PTR CALLBACK FilterEditProc(HWND hWnd, UINT message, WPARAM wParam, L INT_PTR CALLBACK DlgProcConnectionNotifyOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
{
HWND hwndList;
- switch(msg)
- {
- case WM_INITDIALOG://initialize dialog, so set properties from db.
+ switch(msg) {
+ case WM_INITDIALOG://initialize dialog, so set properties from db.
{
-
LVCOLUMN lvc={0};
LVITEM lvI={0};
TCHAR buff[256];
@@ -331,8 +321,7 @@ INT_PTR CALLBACK DlgProcConnectionNotifyOpts(HWND hwndDlg, UINT msg, WPARAM wPar SendDlgItemMessage(hwndDlg, IDC_BGCOLOR, CPM_SETCOLOUR, 0, (LPARAM)settingBgColor);
SendDlgItemMessage(hwndDlg, IDC_FGCOLOR, CPM_SETCOLOUR, 0, (LPARAM)settingFgColor);
- if(!settingSetColours)
- {
+ if (!settingSetColours) {
HWND hwnd = GetDlgItem(hwndDlg, IDC_BGCOLOR);
CheckDlgButton(hwndDlg, IDC_SETCOLOURS, FALSE);
EnableWindow(hwnd, FALSE);
@@ -360,15 +349,13 @@ INT_PTR CALLBACK DlgProcConnectionNotifyOpts(HWND hwndDlg, UINT msg, WPARAM wPar // Initialize LVITEM members that are common to all
// items.
lvI.mask = LVIF_TEXT;
- for(int i = 0; i < STATUS_COUNT; i++)
- {
+ for(int i = 0; i < STATUS_COUNT; i++) {
lvI.pszText= (TCHAR *)CallService(MS_CLIST_GETSTATUSMODEDESCRIPTION, (WPARAM)(ID_STATUS_ONLINE + i), GSMDF_TCHAR);
lvI.iItem = i;
ListView_InsertItem(hwndList, &lvI);
ListView_SetCheckState(hwndList, i, settingStatus[i]);
}
-
connExceptionsTmp=LoadSettingsConnections();
hwndList = GetDlgItem(hwndDlg, IDC_LIST_EXCEPTIONS);
SendMessage(hwndList,LVM_SETEXTENDEDLISTVIEWSTYLE, 0,LVS_EX_FULLROWSELECT);
@@ -389,255 +376,232 @@ INT_PTR CALLBACK DlgProcConnectionNotifyOpts(HWND hwndDlg, UINT msg, WPARAM wPar //fill exceptions list
fillExceptionsListView(hwndDlg);
-
- break;
}
- case WM_COMMAND://user changed something, so get changes to variables
- PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- switch(LOWORD(wParam))
+ break;
+
+ case WM_COMMAND://user changed something, so get changes to variables
+ PostMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
+ switch(LOWORD(wParam)) {
+ case IDC_INTERVAL: settingInterval =GetDlgItemInt(hwndDlg, IDC_INTERVAL, NULL, FALSE); break;
+ case IDC_INTERVAL1: settingInterval1 =GetDlgItemInt(hwndDlg, IDC_INTERVAL1, NULL, TRUE); break;
+ case IDC_RESOLVEIP: settingResolveIp=(BYTE) IsDlgButtonChecked(hwndDlg, IDC_RESOLVEIP); break;
+ case ID_CHK_DEFAULTACTION: settingDefaultAction=(BYTE) IsDlgButtonChecked(hwndDlg, ID_CHK_DEFAULTACTION); break;
+ case ID_ADD:
{
- case IDC_INTERVAL: settingInterval =GetDlgItemInt(hwndDlg, IDC_INTERVAL, NULL, FALSE); break;
- case IDC_INTERVAL1: settingInterval1 =GetDlgItemInt(hwndDlg, IDC_INTERVAL1, NULL, TRUE); break;
- case IDC_RESOLVEIP: settingResolveIp=(BYTE) IsDlgButtonChecked(hwndDlg, IDC_RESOLVEIP); break;
- case ID_CHK_DEFAULTACTION: settingDefaultAction=(BYTE) IsDlgButtonChecked(hwndDlg, ID_CHK_DEFAULTACTION); break;
- case ID_ADD:
+ struct CONNECTION *cur=(struct CONNECTION *)mir_alloc(sizeof(struct CONNECTION));
+ memset(cur,0,sizeof(struct CONNECTION));
+ cur->intExtPort=-1;
+ cur->intIntPort=-1;
+ cur->Pid=0;
+ cur->PName[0]='*';
+ cur->strExtIp[0]='*';
+ cur->strIntIp[0]='*';
+
+ if (DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_FILTER_DIALOG), hwndDlg, FilterEditProc, (LPARAM)cur)==IDCANCEL) {
+ mir_free(cur);
+ cur = NULL;
+ }
+ else {
+ cur->next = connExceptionsTmp;
+ connExceptionsTmp = cur;
+ }
+
+ fillExceptionsListView(hwndDlg);
+ ListView_SetItemState(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS),0,LVNI_FOCUSED|LVIS_SELECTED , LVNI_FOCUSED|LVIS_SELECTED );
+ SetFocus(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS));
+ }
+ break;
+
+ case ID_DELETE:
+ {
+ int pos,pos1;
+ struct CONNECTION *cur = connExceptionsTmp, *pre = NULL;
+
+ pos=(int)ListView_GetNextItem(GetDlgItem(hwndDlg, IDC_LIST_EXCEPTIONS),-1,LVNI_FOCUSED );
+ if (pos==-1)break;
+ pos1=pos;
+ while(pos--)
{
- struct CONNECTION *cur=(struct CONNECTION *)mir_alloc(sizeof(struct CONNECTION));
- memset(cur,0,sizeof(struct CONNECTION));
- cur->intExtPort=-1;
- cur->intIntPort=-1;
- cur->Pid=0;
- cur->PName[0]='*';
- cur->strExtIp[0]='*';
- cur->strIntIp[0]='*';
-
- if(DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_FILTER_DIALOG), hwndDlg, FilterEditProc, (LPARAM)cur)==IDCANCEL)
- {
- mir_free(cur);
- cur=NULL;
- }
- else
- {
- cur->next=connExceptionsTmp;
- connExceptionsTmp=cur;
- }
+ pre=cur;
+ cur=cur->next;
+ }
+ if (pre==NULL)
+ connExceptionsTmp=connExceptionsTmp->next;
+ else
+ (pre)->next=cur->next;
+ mir_free(cur);
+ fillExceptionsListView(hwndDlg);
+ ListView_SetItemState(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS),pos1,LVNI_FOCUSED|LVIS_SELECTED , LVNI_FOCUSED|LVIS_SELECTED );
+ SetFocus(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS));
+ break;
+ }
+ case ID_UP:
+ {
+ int pos,pos1;
+ struct CONNECTION *cur=NULL,*pre=NULL,*prepre=NULL;
- fillExceptionsListView(hwndDlg);
- ListView_SetItemState(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS),0,LVNI_FOCUSED|LVIS_SELECTED , LVNI_FOCUSED|LVIS_SELECTED );
- SetFocus(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS));
- break;
+ cur=connExceptionsTmp;
+
+ pos=(int)ListView_GetNextItem(GetDlgItem(hwndDlg, IDC_LIST_EXCEPTIONS),-1,LVNI_FOCUSED );
+ if (pos==-1)break;
+ pos1=pos;
+ while(pos--)
+ {
+ prepre=pre;
+ pre=cur;
+ cur=cur->next;
}
- case ID_DELETE:
+ if (prepre!=NULL)
{
- int pos,pos1;
- struct CONNECTION *cur=NULL,*pre=NULL;
+ pre->next=cur->next;
+ cur->next=pre;
+ prepre->next=cur;
+ }
+ else if (pre!=NULL)
+ {
+ pre->next=cur->next;
+ cur->next=pre;
+ connExceptionsTmp=cur;
+ }
+ fillExceptionsListView(hwndDlg);
+ ListView_SetItemState(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS),pos1-1,LVNI_FOCUSED|LVIS_SELECTED , LVNI_FOCUSED|LVIS_SELECTED );
+ SetFocus(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS));
+ break;
+ }
+ case ID_DOWN:
+ {
+ int pos,pos1;
+ struct CONNECTION *cur=NULL,*pre=NULL;
- cur=connExceptionsTmp;
+ cur=connExceptionsTmp;
- pos=(int)ListView_GetNextItem(GetDlgItem(hwndDlg, IDC_LIST_EXCEPTIONS),-1,LVNI_FOCUSED );
- if(pos==-1)break;
- pos1=pos;
- while(pos--)
- {
- pre=cur;
- cur=cur->next;
- }
- if (pre==NULL)
- connExceptionsTmp=connExceptionsTmp->next;
- else
- (pre)->next=cur->next;
- mir_free(cur);
- fillExceptionsListView(hwndDlg);
- ListView_SetItemState(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS),pos1,LVNI_FOCUSED|LVIS_SELECTED , LVNI_FOCUSED|LVIS_SELECTED );
- SetFocus(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS));
- break;
+ pos=(int)ListView_GetNextItem(GetDlgItem(hwndDlg, IDC_LIST_EXCEPTIONS),-1,LVNI_FOCUSED );
+ if (pos==-1)break;
+ pos1=pos;
+ while(pos--)
+ {
+ pre=cur;
+ cur=cur->next;
}
- case ID_UP:
+ if (cur==connExceptionsTmp&&cur->next!=NULL)
{
- int pos,pos1;
- struct CONNECTION *cur=NULL,*pre=NULL,*prepre=NULL;
+ connExceptionsTmp=cur->next;
+ cur->next=cur->next->next;
+ connExceptionsTmp->next=cur;
+ }
+ else if (cur->next!=NULL)
+ {
+ struct CONNECTION *tmp=cur->next->next;
+ pre->next=cur->next;
+ cur->next->next=cur;
+ cur->next=tmp;
+ }
+ fillExceptionsListView(hwndDlg);
+ ListView_SetItemState(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS),pos1+1,LVNI_FOCUSED|LVIS_SELECTED , LVNI_FOCUSED|LVIS_SELECTED );
+ SetFocus(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS));
+ break;
+ }
+ case IDC_SETCOLOURS:
+ {
+ HWND hwnd = GetDlgItem(hwndDlg, IDC_BGCOLOR);
+ settingSetColours=IsDlgButtonChecked(hwndDlg, IDC_SETCOLOURS);
+ EnableWindow(hwnd,settingSetColours );
+ hwnd = GetDlgItem(hwndDlg, IDC_FGCOLOR);
+ EnableWindow(hwnd, settingSetColours);
+ break;
+ }
+ case IDC_BGCOLOR: settingBgColor = (COLORREF)SendDlgItemMessage(hwndDlg, IDC_BGCOLOR, CPM_GETCOLOUR, 0, 0);break;
+ case IDC_FGCOLOR: settingFgColor = (COLORREF)SendDlgItemMessage(hwndDlg, IDC_FGCOLOR, CPM_GETCOLOUR, 0, 0);break;
- cur=connExceptionsTmp;
+ }
+ break;
+
+ case WM_NOTIFY://apply changes so write it to db
+ switch(((LPNMHDR)lParam)->idFrom) {
+ case 0:
+ switch (((LPNMHDR)lParam)->code) {
+ case PSN_RESET:
+ LoadSettings();
+ deleteConnectionsTable(connExceptionsTmp);
+ connExceptionsTmp=LoadSettingsConnections();
+ return TRUE;
- pos=(int)ListView_GetNextItem(GetDlgItem(hwndDlg, IDC_LIST_EXCEPTIONS),-1,LVNI_FOCUSED );
- if(pos==-1)break;
- pos1=pos;
- while(pos--)
- {
- prepre=pre;
- pre=cur;
- cur=cur->next;
- }
- if (prepre!=NULL)
- {
- pre->next=cur->next;
- cur->next=pre;
- prepre->next=cur;
- }
- else if(pre!=NULL)
- {
- pre->next=cur->next;
- cur->next=pre;
- connExceptionsTmp=cur;
- }
- fillExceptionsListView(hwndDlg);
- ListView_SetItemState(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS),pos1-1,LVNI_FOCUSED|LVIS_SELECTED , LVNI_FOCUSED|LVIS_SELECTED );
- SetFocus(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS));
- break;
+ case PSN_APPLY:
+ db_set_dw (NULL, PLUGINNAME, "Interval", settingInterval );
+ db_set_dw (NULL, PLUGINNAME, "PopupInterval", settingInterval1 );
+ db_set_b(NULL, PLUGINNAME, "PopupSetColours", settingSetColours);
+ db_set_dw(NULL, PLUGINNAME, "PopupBgColor", (DWORD)settingBgColor);
+ db_set_dw(NULL, PLUGINNAME, "PopupFgColor", (DWORD)settingFgColor);
+ db_set_b(NULL, PLUGINNAME, "ResolveIp", settingResolveIp);
+ db_set_b(NULL, PLUGINNAME, "FilterDefaultAction", settingDefaultAction);
+
+ for(int i = 0; i < STATUS_COUNT ; i++) {
+ char buff[128];
+ mir_snprintf(buff,_countof(buff), "Status%d", i);
+ settingStatus[i] = (ListView_GetCheckState(GetDlgItem(hwndDlg, IDC_STATUS), i) ? TRUE : FALSE);
+ db_set_b(0, PLUGINNAME, buff, settingStatus[i] ? 1 : 0);
}
- case ID_DOWN:
+ if (WAIT_OBJECT_0 == WaitForSingleObject(hExceptionsMutex, 100)) {
+ deleteConnectionsTable(connExceptions);
+ saveSettingsConnections(connExceptionsTmp);
+ connExceptions = connExceptionsTmp;
+ connExceptionsTmp = LoadSettingsConnections();
+ ReleaseMutex(hExceptionsMutex);
+ }
+ return TRUE;
+ }
+ break;
+ }
+
+ if (GetDlgItem(hwndDlg, IDC_LIST_EXCEPTIONS)==((LPNMHDR) lParam)->hwndFrom) {
+ switch (((LPNMHDR) lParam)->code) {
+ case NM_DBLCLK:
{
int pos,pos1;
- struct CONNECTION *cur=NULL,*pre=NULL;
+ struct CONNECTION *cur=NULL;
cur=connExceptionsTmp;
pos=(int)ListView_GetNextItem(GetDlgItem(hwndDlg, IDC_LIST_EXCEPTIONS),-1,LVNI_FOCUSED );
- if(pos==-1)break;
+ if (pos==-1)break;
pos1=pos;
while(pos--)
{
- pre=cur;
cur=cur->next;
}
- if (cur==connExceptionsTmp&&cur->next!=NULL)
- {
- connExceptionsTmp=cur->next;
- cur->next=cur->next->next;
- connExceptionsTmp->next=cur;
- }
- else if (cur->next!=NULL)
- {
- struct CONNECTION *tmp=cur->next->next;
- pre->next=cur->next;
- cur->next->next=cur;
- cur->next=tmp;
- }
+ DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_FILTER_DIALOG), hwndDlg, FilterEditProc, (LPARAM)cur);
fillExceptionsListView(hwndDlg);
- ListView_SetItemState(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS),pos1+1,LVNI_FOCUSED|LVIS_SELECTED , LVNI_FOCUSED|LVIS_SELECTED );
+ ListView_SetItemState(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS),pos1,LVNI_FOCUSED|LVIS_SELECTED , LVNI_FOCUSED|LVIS_SELECTED );
SetFocus(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS));
break;
- }
- case IDC_SETCOLOURS:
- {
- HWND hwnd = GetDlgItem(hwndDlg, IDC_BGCOLOR);
- settingSetColours=IsDlgButtonChecked(hwndDlg, IDC_SETCOLOURS);
- EnableWindow(hwnd,settingSetColours );
- hwnd = GetDlgItem(hwndDlg, IDC_FGCOLOR);
- EnableWindow(hwnd, settingSetColours);
- break;
}
- case IDC_BGCOLOR: settingBgColor = (COLORREF)SendDlgItemMessage(hwndDlg, IDC_BGCOLOR, CPM_GETCOLOUR, 0, 0);break;
- case IDC_FGCOLOR: settingFgColor = (COLORREF)SendDlgItemMessage(hwndDlg, IDC_FGCOLOR, CPM_GETCOLOUR, 0, 0);break;
-
}
- break;
+ }
- case WM_NOTIFY://apply changes so write it to db
- switch(((LPNMHDR)lParam)->idFrom)
- {
- case 0:
- {
- switch (((LPNMHDR)lParam)->code)
- {
- case PSN_RESET:
- LoadSettings();
- deleteConnectionsTable(connExceptionsTmp);
- connExceptionsTmp=LoadSettingsConnections();
- return TRUE;
- case PSN_APPLY:
- {
- db_set_dw (NULL, PLUGINNAME, "Interval", settingInterval );
- db_set_dw (NULL, PLUGINNAME, "PopupInterval", settingInterval1 );
- db_set_b(NULL, PLUGINNAME, "PopupSetColours", settingSetColours);
- db_set_dw(NULL, PLUGINNAME, "PopupBgColor", (DWORD)settingBgColor);
- db_set_dw(NULL, PLUGINNAME, "PopupFgColor", (DWORD)settingFgColor);
- db_set_b(NULL, PLUGINNAME, "ResolveIp", settingResolveIp);
- db_set_b(NULL, PLUGINNAME, "FilterDefaultAction", settingDefaultAction);
-
- for(int i = 0; i < STATUS_COUNT ; i++)
- {
- char buff[128];
- mir_snprintf(buff,_countof(buff), "Status%d", i);
- settingStatus[i] = (ListView_GetCheckState(GetDlgItem(hwndDlg, IDC_STATUS), i) ? TRUE : FALSE);
- db_set_b(0, PLUGINNAME, buff, settingStatus[i] ? 1 : 0);
- }
- if( WAIT_OBJECT_0 == WaitForSingleObject( hExceptionsMutex, 100 ) )
- {
- deleteConnectionsTable(connExceptions);
- saveSettingsConnections(connExceptionsTmp);
- connExceptions=connExceptionsTmp;
- connExceptionsTmp=LoadSettingsConnections();
- ReleaseMutex(hExceptionsMutex);
- }
- }//case PSN_APPLY
-
-
- return TRUE;
- break;
- }//switch ->code
- break;
- }//case 0
- }//id from
- if (GetDlgItem(hwndDlg, IDC_LIST_EXCEPTIONS)==((LPNMHDR) lParam)->hwndFrom)
- {
- switch (((LPNMHDR) lParam)->code)
- {
- case NM_DBLCLK:
- {
- int pos,pos1;
- struct CONNECTION *cur=NULL;
-
- cur=connExceptionsTmp;
-
- pos=(int)ListView_GetNextItem(GetDlgItem(hwndDlg, IDC_LIST_EXCEPTIONS),-1,LVNI_FOCUSED );
- if(pos==-1)break;
- pos1=pos;
- while(pos--)
- {
- cur=cur->next;
- }
- DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_FILTER_DIALOG), hwndDlg, FilterEditProc, (LPARAM)cur);
- fillExceptionsListView(hwndDlg);
- ListView_SetItemState(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS),pos1,LVNI_FOCUSED|LVIS_SELECTED , LVNI_FOCUSED|LVIS_SELECTED );
- SetFocus(GetDlgItem(hwndDlg,IDC_LIST_EXCEPTIONS));
- break;
- }
- }
- }
- if (GetDlgItem(hwndDlg, IDC_STATUS)==((LPNMHDR) lParam)->hwndFrom)
- {
- switch (((LPNMHDR) lParam)->code)
- {
- case LVN_ITEMCHANGED:
- {
- NMLISTVIEW *nmlv = (NMLISTVIEW *)lParam;
- if((nmlv->uNewState ^ nmlv->uOldState) & LVIS_STATEIMAGEMASK)
- {
- SendMessage( GetParent( hwndDlg ), PSM_CHANGED, 0, 0 );
- }
- break;
-
- }
- break;
- }
- }
- break;//switch(msg)
- case WM_DESTROY:
- {
- bOptionsOpen=FALSE;
- deleteConnectionsTable(connExceptionsTmp);
- connExceptionsTmp=NULL;
- return TRUE;
+ if (GetDlgItem(hwndDlg, IDC_STATUS) == ((LPNMHDR) lParam)->hwndFrom) {
+ switch (((LPNMHDR) lParam)->code) {
+ case LVN_ITEMCHANGED:
+ NMLISTVIEW *nmlv = (NMLISTVIEW *)lParam;
+ if ((nmlv->uNewState ^ nmlv->uOldState) & LVIS_STATEIMAGEMASK)
+ SendMessage( GetParent( hwndDlg ), PSM_CHANGED, 0, 0 );
+ break;
}
- }//end switch(msg)
+ }
+ break;
+
+ case WM_DESTROY:
+ bOptionsOpen=FALSE;
+ deleteConnectionsTable(connExceptionsTmp);
+ connExceptionsTmp=NULL;
+ return TRUE;
+ }
return 0;
}
+
//options page on miranda called
int ConnectionNotifyOptInit(WPARAM wParam,LPARAM)
{
- OPTIONSDIALOGPAGE odp={0};
- odp.cbSize = sizeof(odp);
+ OPTIONSDIALOGPAGE odp = { sizeof(odp) };
odp.hInstance = hInst;
odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_DIALOG);
odp.ptszTitle = _T(PLUGINNAME);
@@ -648,18 +612,18 @@ int ConnectionNotifyOptInit(WPARAM wParam,LPARAM) return 0;
}
-
//gives protocol avainable statuses
INT_PTR GetCaps(WPARAM wParam,LPARAM lParam)
{
- if(wParam==PFLAGNUM_1)
+ if (wParam==PFLAGNUM_1)
return 0;
- if(wParam==PFLAGNUM_2)
+ if (wParam==PFLAGNUM_2)
return PF2_ONLINE; // add the possible statuses here.
- if(wParam==PFLAGNUM_3)
+ if (wParam==PFLAGNUM_3)
return 0;
return 0;
}
+
//gives name to protocol module
INT_PTR GetName(WPARAM wParam,LPARAM lParam)
{
@@ -696,14 +660,14 @@ INT_PTR SetStatus(WPARAM wParam,LPARAM lParam) {
diffstat=0;
ResetEvent(killCheckThreadEvent);
- if(!hConnectionCheckThread)
+ if (!hConnectionCheckThread)
hConnectionCheckThread = (HANDLE)mir_forkthreadex(checkthread, 0, (unsigned int*)&ConnectionCheckThreadId);
}
else
{
int retv=0;
- if(settingStatus[wParam - ID_STATUS_ONLINE])
+ if (settingStatus[wParam - ID_STATUS_ONLINE])
retv= SetStatus(ID_STATUS_OFFLINE,lParam);
else
retv= SetStatus(ID_STATUS_ONLINE,lParam);
@@ -716,7 +680,7 @@ INT_PTR SetStatus(WPARAM wParam,LPARAM lParam) //broadcast the message
//oldStatus = currentStatus;
- if(currentStatus!=wParam)
+ if (currentStatus!=wParam)
ProtoBroadcastAck(PLUGINNAME,NULL,ACKTYPE_STATUS,ACKRESULT_SUCCESS,(HANDLE)currentStatus,wParam);
currentStatus = wParam;
return 0;
@@ -746,36 +710,28 @@ static unsigned __stdcall checkthread(void *dummy) {
struct CONNECTION* conn=NULL,*connOld=first,*cur=NULL;
#ifdef _DEBUG
- _OutputDebugString(_T("checking connections table..."));
+ _OutputDebugString(_T("checking connections table..."));
#endif
- if(WAIT_OBJECT_0 == WaitForSingleObject(killCheckThreadEvent,100))
- {
- hConnectionCheckThread=NULL;
- return 0;
- }
- //TranslateMessage(&msg);
- //DispatchMessage(&msg);
-
-// if(currentStatus==ID_STATUS_OFFLINE)
-// continue;//if status lets to check
+ if (WAIT_OBJECT_0 == WaitForSingleObject(killCheckThreadEvent,100))
+ {
+ hConnectionCheckThread=NULL;
+ return 0;
+ }
conn=GetConnectionsTable();
cur=conn;
- while(cur!=NULL)
- {
- if (searchConnection(first,cur->strIntIp,cur->strExtIp,cur->intIntPort,cur->intExtPort,cur->state)==NULL && (settingStatusMask & (1 << (cur->state-1))))
- {
-
+ while(cur!=NULL) {
+ if (searchConnection(first,cur->strIntIp,cur->strExtIp,cur->intIntPort,cur->intExtPort,cur->state)==NULL && (settingStatusMask & (1 << (cur->state-1)))) {
#ifdef _DEBUG
- TCHAR msg[1024];
- mir_sntprintf(msg,_countof(msg),_T("%s:%d\n%s:%d"),cur->strIntIp,cur->intIntPort,cur->strExtIp,cur->intExtPort);
- _OutputDebugString(_T("New connection: %s"),msg);
+ TCHAR msg[1024];
+ mir_sntprintf(msg,_countof(msg),_T("%s:%d\n%s:%d"),cur->strIntIp,cur->intIntPort,cur->strExtIp,cur->intExtPort);
+ _OutputDebugString(_T("New connection: %s"),msg);
#endif
- pid2name(cur->Pid,cur->PName);
- if( WAIT_OBJECT_0 == WaitForSingleObject( hExceptionsMutex, 100 ) )
+ pid2name(cur->Pid, cur->PName, SIZEOF(cur->PName));
+ if ( WAIT_OBJECT_0 == WaitForSingleObject( hExceptionsMutex, 100 ))
{
- if(checkFilter(connExceptions,cur))
+ if (checkFilter(connExceptions,cur))
{
showMsg(cur->PName,cur->Pid,cur->strIntIp,cur->strExtIp,cur->intIntPort,cur->intExtPort,cur->state);
SkinPlaySound(PLUGINNAME_NEWSOUND);
@@ -797,45 +753,34 @@ static unsigned __stdcall checkthread(void *dummy) //popup reactions
static LRESULT CALLBACK PopupDlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
- switch(message)
- {
- case WM_COMMAND:
- {
- if (HIWORD(wParam) == STN_CLICKED)//client clicked on popup with left mouse button
- {
- struct CONNECTION *conn = (struct CONNECTION*)mir_alloc(sizeof(struct CONNECTION));
- struct CONNECTION *mpd=(struct CONNECTION*) PUGetPluginData(hWnd);
-
- memcpy(conn,mpd,sizeof(struct CONNECTION));
- PUDeletePopup(hWnd);
- PostThreadMessage(FilterOptionsThreadId,WM_ADD_FILTER,(WPARAM)0, (LPARAM)conn);
- }
- break;
- }
-
- case WM_RBUTTONUP:
- {
- PUDeletePopup(hWnd);
- break;
- }
-
- case UM_INITPOPUP:
- {
- //struct CONNECTON *conn=NULL;
- //conn = (struct CONNECTION*)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd,(LPARAM)conn);
- //MessageBox(NULL,conn->extIp);
- //PUDeletePopUp(hWnd);
- break;
- }
+ switch(message) {
+ case WM_COMMAND:
+ if (HIWORD(wParam) == STN_CLICKED)//client clicked on popup with left mouse button
+ {
+ struct CONNECTION *conn = (struct CONNECTION*)mir_alloc(sizeof(struct CONNECTION));
+ struct CONNECTION *mpd=(struct CONNECTION*) PUGetPluginData(hWnd);
- case UM_FREEPLUGINDATA:
- {
- struct CONNECTION *mpd = (struct CONNECTION*)PUGetPluginData(hWnd);
- if (mpd > 0) mir_free(mpd);
- return TRUE; //TRUE or FALSE is the same, it gets ignored.
- }
- default:
- break;
+ memcpy(conn,mpd,sizeof(struct CONNECTION));
+ PUDeletePopup(hWnd);
+ PostThreadMessage(FilterOptionsThreadId,WM_ADD_FILTER,(WPARAM)0, (LPARAM)conn);
+ }
+ break;
+
+ case WM_RBUTTONUP:
+ PUDeletePopup(hWnd);
+ break;
+
+ case UM_INITPOPUP:
+ //struct CONNECTON *conn=NULL;
+ //conn = (struct CONNECTION*)CallService(MS_POPUP_GETPLUGINDATA, (WPARAM)hWnd,(LPARAM)conn);
+ //MessageBox(NULL,conn->extIp);
+ //PUDeletePopUp(hWnd);
+ break;
+
+ case UM_FREEPLUGINDATA:
+ struct CONNECTION *mpd = (struct CONNECTION*)PUGetPluginData(hWnd);
+ if (mpd > 0) mir_free(mpd);
+ return TRUE; //TRUE or FALSE is the same, it gets ignored.
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
@@ -859,19 +804,16 @@ void showMsg(TCHAR *pName, DWORD pid,TCHAR *intIp,TCHAR *extIp,int intPort,int e ZeroMemory(&ppd, sizeof(ppd)); //This is always a good thing to do.
ppd.lchContact = NULL;//(HANDLE)hContact; //Be sure to use a GOOD handle, since this will not be checked.
ppd.lchIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON1));
- if(settingResolveIp)
- {
+ if (settingResolveIp) {
TCHAR hostName[128];
- getDnsName(extIp,hostName);
+ getDnsName(extIp, hostName, SIZEOF(hostName));
mir_sntprintf(ppd.lptzText,MAX_SECONDLINE,_T("%s:%d\n%s:%d"),hostName,extPort,intIp,intPort);
}
- else
- mir_sntprintf(ppd.lptzText,MAX_SECONDLINE,_T("%s:%d\n%s:%d"),extIp,extPort,intIp,intPort);
+ else mir_sntprintf(ppd.lptzText,MAX_SECONDLINE,_T("%s:%d\n%s:%d"),extIp,extPort,intIp,intPort);
mir_sntprintf(ppd.lptzContactName,MAX_CONTACTNAME,_T("%s (%s)"),pName,tcpStates[state-1]);
- //lstrcpy(ppd.lpzText, text);
- if(settingSetColours)
- {
+
+ if (settingSetColours) {
ppd.colorBack = settingBgColor;
ppd.colorText = settingFgColor;
}
@@ -884,10 +826,7 @@ void showMsg(TCHAR *pName, DWORD pid,TCHAR *intIp,TCHAR *extIp,int intPort,int e mir_sntprintf(mpd->PName,_countof(mpd->PName),_T("%s"),pName);
mpd->intIntPort = intPort;
mpd->intExtPort = extPort;
- mpd->Pid=pid;
-
-
- //mpd->newStatus = ID_STATUS_ONLINE;
+ mpd->Pid = pid;
//Now that the plugin data has been filled, we add it to the PopUpData.
ppd.PluginData = mpd;
@@ -896,8 +835,6 @@ void showMsg(TCHAR *pName, DWORD pid,TCHAR *intIp,TCHAR *extIp,int intPort,int e PUAddPopupT(&ppd);
}
-
-
//called after all plugins loaded.
//all Connection staff will be called, that will not hang miranda on startup
static int modulesloaded(WPARAM,LPARAM)
@@ -986,16 +923,16 @@ extern "C" int __declspec(dllexport) Load(void) extern "C" int __declspec(dllexport) Unload(void)
{
WaitForSingleObjectEx(hConnectionCheckThread, INFINITE, FALSE);
- if(hConnectionCheckThread )CloseHandle(hConnectionCheckThread);
- if(hCheckEvent)DestroyHookableEvent(hCheckEvent);
+ if (hConnectionCheckThread )CloseHandle(hConnectionCheckThread);
+ if (hCheckEvent)DestroyHookableEvent(hCheckEvent);
if (hOptInit) UnhookEvent(hOptInit);
if (hCheckHook)UnhookEvent(hCheckHook);
- if(hHookModulesLoaded)UnhookEvent(hHookModulesLoaded);
- if(hHookPreShutdown)UnhookEvent(hHookPreShutdown);
- if(killCheckThreadEvent)
+ if (hHookModulesLoaded)UnhookEvent(hHookModulesLoaded);
+ if (hHookPreShutdown)UnhookEvent(hHookPreShutdown);
+ if (killCheckThreadEvent)
CloseHandle(killCheckThreadEvent);
- //if(hCurrentEditMutex) CloseHandle(hCurrentEditMutex);
- if(hExceptionsMutex) CloseHandle(hExceptionsMutex);
+ //if (hCurrentEditMutex) CloseHandle(hCurrentEditMutex);
+ if (hExceptionsMutex) CloseHandle(hExceptionsMutex);
#ifdef _DEBUG
_OutputDebugString(_T("Unloaded"));
diff --git a/plugins/ConnectionNotify/src/ConnectionNotify.h b/plugins/ConnectionNotify/src/ConnectionNotify.h index 75b64b0148..7480c5b38f 100644 --- a/plugins/ConnectionNotify/src/ConnectionNotify.h +++ b/plugins/ConnectionNotify/src/ConnectionNotify.h @@ -1,3 +1,5 @@ +#define _CRT_SECURE_NO_WARNINGS
+
#include <windows.h>
#include <Commctrl.h>
#include <assert.h>
diff --git a/plugins/ConnectionNotify/src/debug.cpp b/plugins/ConnectionNotify/src/debug.cpp index 0400b3a673..2af13f218c 100644 --- a/plugins/ConnectionNotify/src/debug.cpp +++ b/plugins/ConnectionNotify/src/debug.cpp @@ -2,71 +2,63 @@ void _OutputDebugString(TCHAR* lpOutputString, ... )
{
- TCHAR OutMsg[MAX_LENGTH];
- TCHAR format[MAX_LENGTH];
+ TCHAR OutMsg[MAX_LENGTH];
+ TCHAR format[MAX_LENGTH];
int i,j;
- va_list argptr;
-
- va_start( argptr, lpOutputString );
-
+ va_list argptr;
-
- for(i=0,j=0;lpOutputString[i] != '\0';i++)
- {
- format[j++] = lpOutputString[i];
+ va_start( argptr, lpOutputString );
+
+
+
+ for(i=0,j=0;lpOutputString[i] != '\0';i++)
+ {
+ format[j++] = lpOutputString[i];
+ format[j] = '\0';
+
+ if (lpOutputString[i] != '%')
+ continue;
+
+ format[j++] = lpOutputString[++i];
format[j] = '\0';
- // If escape character
- //if(lpOutputString[i] == '\\')
- //{
- // i++;
- // continue;
- //}
- // if not a substitutal character
- if(lpOutputString[i] != '%')
- continue;
-
- format[j++] = lpOutputString[++i];
- format[j] = '\0';
- switch(lpOutputString[i])
- {
- // string
- case 's':
- {
- TCHAR* s = va_arg( argptr, TCHAR * );
- mir_sntprintf(OutMsg, SIZEOF(OutMsg), format, s);
- _tcsncpy(format,OutMsg,_countof(OutMsg));
- j = _tcslen(format);
- _tcscat(format,_T(" "));
- break;
- }
- // character
- case 'c':
- {
- char c = (char) va_arg( argptr, int );
- mir_sntprintf(OutMsg, SIZEOF(OutMsg), format, c);
- _tcsncpy(format,OutMsg,_countof(OutMsg));
- j = _tcslen(format);
- _tcscat(format,_T(" "));
- break;
- }
- // integer
- case 'd':
- {
- int d = va_arg( argptr, int );
- mir_sntprintf(OutMsg, SIZEOF(OutMsg), format, d);
- _tcsncpy(format,OutMsg,_countof(OutMsg));
- j = _tcslen(format);
- _tcscat(format,_T(" "));
- break;
- }
- }
+ switch(lpOutputString[i])
+ {
+ // string
+ case 's':
+ {
+ TCHAR* s = va_arg( argptr, TCHAR * );
+ mir_sntprintf(OutMsg, SIZEOF(OutMsg), format, s);
+ _tcsncpy(format,OutMsg,_countof(OutMsg));
+ j = (int)_tcslen(format);
+ _tcscat(format,_T(" "));
+ break;
+ }
+ // character
+ case 'c':
+ {
+ char c = (char) va_arg( argptr, int );
+ mir_sntprintf(OutMsg, SIZEOF(OutMsg), format, c);
+ _tcsncpy(format,OutMsg,_countof(OutMsg));
+ j = (int)_tcslen(format);
+ _tcscat(format,_T(" "));
+ break;
+ }
+ // integer
+ case 'd':
+ {
+ int d = va_arg( argptr, int );
+ mir_sntprintf(OutMsg, SIZEOF(OutMsg), format, d);
+ _tcsncpy(format,OutMsg,_countof(OutMsg));
+ j = (int)_tcslen(format);
+ _tcscat(format,_T(" "));
+ break;
+ }
+ }
format[j+1] = '\0';
- }
+ }
_tcscat(format,_T("\n"));
- OutputDebugString(format);
+ OutputDebugString(format);
- va_end( argptr );
+ va_end( argptr );
}
-
-
diff --git a/plugins/ConnectionNotify/src/filter.cpp b/plugins/ConnectionNotify/src/filter.cpp index 50defeb1d7..2570826157 100644 --- a/plugins/ConnectionNotify/src/filter.cpp +++ b/plugins/ConnectionNotify/src/filter.cpp @@ -33,7 +33,7 @@ static unsigned __stdcall filterQueue(void *dummy) //while(1)
while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
{
- if(msg.message==WM_ADD_FILTER )
+ if (msg.message==WM_ADD_FILTER )
{
struct CONNECTION *conn=(struct CONNECTION *)msg.lParam;
filterAddDlg=CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_FILTER_DIALOG), NULL, ConnectionFilterEditProc,(LPARAM)conn);
@@ -87,7 +87,7 @@ static INT_PTR CALLBACK ConnectionFilterEditProc(HWND hWnd, UINT message, WPARAM MessageBox(hWnd,TranslateT("First close options window"),_T("ConnectionNotify"),MB_OK | MB_ICONSTOP);
break;
}
- if( WAIT_OBJECT_0 == WaitForSingleObject( hExceptionsMutex, 100 ) )
+ if ( WAIT_OBJECT_0 == WaitForSingleObject( hExceptionsMutex, 100 ))
{
if (connCurrentEdit==NULL)
{
@@ -145,7 +145,7 @@ BOOL checkFilter(struct CONNECTION *head,struct CONNECTION *conn) struct CONNECTION *cur=head;
while(cur!=NULL)
{
- if(wildcmp(cur->PName,conn->PName)&&wildcmp(cur->strIntIp,conn->strIntIp)&&wildcmp(cur->strExtIp,conn->strExtIp)&&(cur->intIntPort==-1||cur->intIntPort==conn->intIntPort)&&(cur->intExtPort==-1||cur->intExtPort==conn->intExtPort))
+ if (wildcmp(cur->PName,conn->PName)&&wildcmp(cur->strIntIp,conn->strIntIp)&&wildcmp(cur->strExtIp,conn->strExtIp)&&(cur->intIntPort==-1||cur->intIntPort==conn->intIntPort)&&(cur->intExtPort==-1||cur->intExtPort==conn->intExtPort))
return cur->Pid;
cur=cur->next;
}
diff --git a/plugins/ConnectionNotify/src/netstat.cpp b/plugins/ConnectionNotify/src/netstat.cpp index 36a8302571..ae813c9d1d 100644 --- a/plugins/ConnectionNotify/src/netstat.cpp +++ b/plugins/ConnectionNotify/src/netstat.cpp @@ -45,14 +45,14 @@ struct CONNECTION* GetConnectionsTable() memset(newConn,0,sizeof(struct CONNECTION));
//pid2name(pTcpTable->table[i].dwOwningPid,&newConn->Pname);
- if(pTcpTable->table[i].dwLocalAddr)
+ if (pTcpTable->table[i].dwLocalAddr)
{
IpAddr.S_un.S_addr = (ULONG) pTcpTable->table[i].dwLocalAddr;
//_snprintf(newConn->strIntIp,_countof(newConn->strIntIp),"%d.%d.%d.%d",IpAddr.S_un.S_un_b.s_b1,IpAddr.S_un.S_un_b.s_b2,IpAddr.S_un.S_un_b.s_b3,IpAddr.S_un.S_un_b.s_b4);
wcsncpy(newConn->strIntIp, mir_a2t(inet_ntoa(IpAddr)),_tcslen(mir_a2t(inet_ntoa(IpAddr))));
}
- if(pTcpTable->table[i].dwRemoteAddr)
+ if (pTcpTable->table[i].dwRemoteAddr)
{
IpAddr.S_un.S_addr = (u_long) pTcpTable->table[i].dwRemoteAddr;
wcsncpy(newConn->strExtIp, mir_a2t(inet_ntoa(IpAddr)),_tcslen(mir_a2t(inet_ntoa(IpAddr))));
@@ -147,27 +147,19 @@ struct CONNECTION* searchConnection(struct CONNECTION* head,TCHAR *intIp,TCHAR * struct CONNECTION *cur=head;
while(cur!=NULL)
{
- if(wcscmp(cur->strIntIp,intIp)==0 && wcscmp(cur->strExtIp,extIp)==0 && cur->intExtPort==extPort && cur->intIntPort==intPort && cur->state==state)
+ if (wcscmp(cur->strIntIp,intIp)==0 && wcscmp(cur->strExtIp,extIp)==0 && cur->intExtPort==extPort && cur->intIntPort==intPort && cur->state==state)
return cur;
cur=cur->next;
}
return NULL;
}
-void getDnsName(TCHAR *strIp,TCHAR *strHostName)
+void getDnsName(TCHAR *strIp, TCHAR *strHostName, size_t len)
{
- struct in_addr iaHost;
- struct hostent *h;
-
+ in_addr iaHost;
iaHost.s_addr = inet_addr(mir_t2a(strIp));
- if ((h = gethostbyaddr ((char *)&iaHost, sizeof(struct in_addr), AF_INET))== NULL)
- { // get the host info error
- _stprintf(strHostName,_T("%s"), strIp); //!!!!!!!!!!!
- return;
- }
- _stprintf(strHostName,_T("%s"),mir_a2t(h->h_name)); //!!!!!!!!!!!!!
- //_tcsncpy_s(strHostName,128, h->h_name,_tcslen(h->h_name));
-
+ hostent *h = gethostbyaddr((char *)&iaHost, sizeof(struct in_addr), AF_INET);
+ _tcsncpy_s(strHostName, len, (h == NULL) ? strIp : _A2T(h->h_name), _TRUNCATE);
}
int wildcmp(const TCHAR *wild, const TCHAR *string) {
diff --git a/plugins/ConnectionNotify/src/netstat.h b/plugins/ConnectionNotify/src/netstat.h index ccabf3df4b..fdd0908a72 100644 --- a/plugins/ConnectionNotify/src/netstat.h +++ b/plugins/ConnectionNotify/src/netstat.h @@ -17,5 +17,5 @@ struct CONNECTION struct CONNECTION* GetConnectionsTable();
void deleteConnectionsTable(struct CONNECTION* head);
struct CONNECTION* searchConnection(struct CONNECTION* head,TCHAR *intIp,TCHAR *extIp,int intPort,int extPort,int state);
-void getDnsName(TCHAR *strIp,TCHAR *strHostName);
+void getDnsName(TCHAR *strIp, TCHAR *strHostName, size_t len);
int wildcmp(const TCHAR *wild, const TCHAR *string);
\ No newline at end of file diff --git a/plugins/ConnectionNotify/src/pid2name.cpp b/plugins/ConnectionNotify/src/pid2name.cpp index e3365a574f..60dba4d241 100644 --- a/plugins/ConnectionNotify/src/pid2name.cpp +++ b/plugins/ConnectionNotify/src/pid2name.cpp @@ -1,111 +1,24 @@ #include "ConnectionNotify.h"
-void pid2name(DWORD procid,TCHAR* buffer)
+void pid2name(DWORD procid, TCHAR *buffer, size_t bufLen)
{
- HANDLE hSnap = INVALID_HANDLE_VALUE;
- HANDLE hProcess = INVALID_HANDLE_VALUE;
- PROCESSENTRY32 ProcessStruct;
- ProcessStruct.dwSize = sizeof(PROCESSENTRY32);
- hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
- if(hSnap == INVALID_HANDLE_VALUE)
- return;
- if(Process32First(hSnap, &ProcessStruct) == FALSE)
- return;
- do
- {
- if(ProcessStruct.th32ProcessID==procid)
- {
- _stprintf(buffer,_T("%s"),ProcessStruct.szExeFile); //!!!!!!!!!!!!
- break;
- }
- }
- while( Process32Next( hSnap, &ProcessStruct ) );
-
- CloseHandle( hSnap );
-}
-
-/*
-#define STATUS_SUCCESS ((NTSTATUS)0x00000000L)
-#define STATUS_INFO_LENGTH_MISMATCH ((NTSTATUS)0xC0000004L)
-
-typedef enum _SYSTEM_INFORMATION_CLASS {
- SystemProcessInformation = 5
-} SYSTEM_INFORMATION_CLASS;
-
-typedef struct _UNICODE_STRING {
- USHORT Length;
- USHORT MaximumLength;
- PWSTR Buffer;
-} UNICODE_STRING;
-
-typedef LONG KPRIORITY; // Thread priority
-
-typedef struct _SYSTEM_PROCESS_INFORMATION_DETAILD {
- ULONG NextEntryOffset;
- ULONG NumberOfThreads;
- LARGE_INTEGER SpareLi1;
- LARGE_INTEGER SpareLi2;
- LARGE_INTEGER SpareLi3;
- LARGE_INTEGER CreateTime;
- LARGE_INTEGER UserTime;
- LARGE_INTEGER KernelTime;
- UNICODE_STRING ImageName;
- KPRIORITY BasePriority;
- HANDLE UniqueProcessId;
- ULONG InheritedFromUniqueProcessId;
- ULONG HandleCount;
- BYTE Reserved4[4];
- PVOID Reserved5[11];
- SIZE_T PeakPagefileUsage;
- SIZE_T PrivatePageCount;
- LARGE_INTEGER Reserved6[6];
-} SYSTEM_PROCESS_INFORMATION_DETAILD, *PSYSTEM_PROCESS_INFORMATION_DETAILD;
-
-typedef NTSTATUS (WINAPI *PFN_NT_QUERY_SYSTEM_INFORMATION)(
- IN SYSTEM_INFORMATION_CLASS SystemInformationClass,
- IN OUT PVOID SystemInformation,
- IN ULONG SystemInformationLength,
- OUT OPTIONAL PULONG ReturnLength
-);
-
-void pid2name(DWORD procid,TCHAR* buffer)
-{
- size_t bufferSize = 102400;
- PSYSTEM_PROCESS_INFORMATION_DETAILD pspid=(PSYSTEM_PROCESS_INFORMATION_DETAILD) malloc (bufferSize);
- ULONG ReturnLength;
- PFN_NT_QUERY_SYSTEM_INFORMATION pfnNtQuerySystemInformation = (PFN_NT_QUERY_SYSTEM_INFORMATION)GetProcAddress (GetModuleHandle(TEXT("ntdll.dll")), "NtQuerySystemInformation");
- NTSTATUS status;
-
- while (TRUE)
- {
- status = pfnNtQuerySystemInformation (SystemProcessInformation, (PVOID)pspid, bufferSize, &ReturnLength);
- if (status == STATUS_SUCCESS)
- break;
- else if (status != STATUS_INFO_LENGTH_MISMATCH)
- { // 0xC0000004L
- //_tprintf (TEXT("ERROR 0x%X\n"), status);
- goto error_block;
- }
-
- bufferSize *= 2;
- pspid = (PSYSTEM_PROCESS_INFORMATION_DETAILD) realloc ((PVOID)pspid, bufferSize);
- }
-
- for (;;pspid=(PSYSTEM_PROCESS_INFORMATION_DETAILD)(pspid->NextEntryOffset + (PBYTE)pspid)) {
- if (pspid->UniqueProcessId == (HANDLE)procid)
- {
- _stprintf(buffer,"%ls",pspid->ImageName.Buffer);
+ HANDLE hSnap = INVALID_HANDLE_VALUE;
+ HANDLE hProcess = INVALID_HANDLE_VALUE;
+ PROCESSENTRY32 ProcessStruct;
+ ProcessStruct.dwSize = sizeof(PROCESSENTRY32);
+ hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
+ if (hSnap == INVALID_HANDLE_VALUE)
+ return;
+ if (Process32First(hSnap, &ProcessStruct) == FALSE)
+ return;
+
+ do {
+ if (ProcessStruct.th32ProcessID == procid) {
+ _tcsncpy_s(buffer, bufLen, ProcessStruct.szExeFile, _TRUNCATE);
break;
}
- //_tprintf (TEXT("ProcessId: %d, ImageFileName: %ls\n"), pspid->UniqueProcessId,(pspid->ImageName.Length && pspid->ImageName.Buffer)? pspid->ImageName.Buffer: L"");
- if (pspid->NextEntryOffset == 0) break;
- }
-error_block:
-if (pspid!=NULL)
-{
- free(pspid);
- pspid=NULL;
-}
-return;
+ }
+ while( Process32Next( hSnap, &ProcessStruct ));
+
+ CloseHandle( hSnap );
}
-*/
\ No newline at end of file diff --git a/plugins/ConnectionNotify/src/pid2name.h b/plugins/ConnectionNotify/src/pid2name.h index a3e46fca25..d1e7609f10 100644 --- a/plugins/ConnectionNotify/src/pid2name.h +++ b/plugins/ConnectionNotify/src/pid2name.h @@ -3,6 +3,6 @@ #ifndef _INC_PID2NAME
#define _INC_PID2NAME
-void pid2name(DWORD,TCHAR* );
+void pid2name(DWORD, TCHAR*, size_t);
#endif
|