summaryrefslogtreecommitdiff
path: root/plugins/ProxySwitch/src
diff options
context:
space:
mode:
authorMataes <mataes2007@gmail.com>2018-06-24 13:46:11 +0300
committerMataes <mataes2007@gmail.com>2018-06-24 13:46:11 +0300
commit67c2759392bd6a1cde3d1a63196be99e02e5c995 (patch)
treea5b3659b726f8a59bc4b97c978ca87d9afc862d3 /plugins/ProxySwitch/src
parent321c618576ce8dd64da80a05932f3f2c4ee90f72 (diff)
ProxySwitch: code cleaning
Diffstat (limited to 'plugins/ProxySwitch/src')
-rw-r--r--plugins/ProxySwitch/src/ip.cpp1338
-rw-r--r--plugins/ProxySwitch/src/main.cpp95
-rw-r--r--plugins/ProxySwitch/src/opt.cpp358
-rw-r--r--plugins/ProxySwitch/src/proxy.cpp501
-rw-r--r--plugins/ProxySwitch/src/stdafx.h112
5 files changed, 1296 insertions, 1108 deletions
diff --git a/plugins/ProxySwitch/src/ip.cpp b/plugins/ProxySwitch/src/ip.cpp
index abd793e3eb..6874c2756f 100644
--- a/plugins/ProxySwitch/src/ip.cpp
+++ b/plugins/ProxySwitch/src/ip.cpp
@@ -17,29 +17,29 @@ the proxy settings of Miranda and Internet Explorer accordingly.
NETWORK_INTERFACE_LIST NIF_List;
CRITICAL_SECTION csNIF_List;
char opt_hideIntf[MAX_IPLIST_LENGTH];
-void UpdateInterfacesMenu (void) { }
+void UpdateInterfacesMenu(void) { }
PLUGINLINK *pluginLink;
int main(void) {
- NETWORK_INTERFACE_LIST list;
- char opt[200] = "2.252.83.0-2.252.85.0;10.100.0.0/16;2.252.83.32-38;;;32.64.128.0/255.255.255.0";
- IP_RANGE_LIST range;
- InitializeCriticalSection(&csNIF_List);
- lstrcpy(opt_hideIntf, "VMnet*");
- printf("Started\n");
- printf("IP Helper procs: %s\n", Load_ExIpHelper_Procedures() ? "Loaded" : "Not found");
- if ( Create_NIF_List( &list ) >=0 ) {
- printf("%s\n", Print_NIF_List(list, NULL));
-
- Create_Range_List( &range, opt, FALSE );
- printf("'%s' matches: %s\n", opt, Match_Range_List(range, list) ? "yes" : "no" );
- Free_Range_List( &range );
-
-
- Free_NIF_List( &list );
- }
- DeleteCriticalSection(&csNIF_List);
- printf("Finished\n");
- return 0;
+ NETWORK_INTERFACE_LIST list;
+ char opt[200] = "2.252.83.0-2.252.85.0;10.100.0.0/16;2.252.83.32-38;;;32.64.128.0/255.255.255.0";
+ IP_RANGE_LIST range;
+ InitializeCriticalSection(&csNIF_List);
+ lstrcpy(opt_hideIntf, "VMnet*");
+ printf("Started\n");
+ printf("IP Helper procs: %s\n", Load_ExIpHelper_Procedures() ? "Loaded" : "Not found");
+ if (Create_NIF_List(&list) >= 0) {
+ printf("%s\n", Print_NIF_List(list, NULL));
+
+ Create_Range_List(&range, opt, FALSE);
+ printf("'%s' matches: %s\n", opt, Match_Range_List(range, list) ? "yes" : "no");
+ Free_Range_List(&range);
+
+
+ Free_NIF_List(&list);
+ }
+ DeleteCriticalSection(&csNIF_List);
+ printf("Finished\n");
+ return 0;
}
#endif
@@ -48,681 +48,763 @@ wchar_t tempstr[MAX_SECONDLINE];
/* ################################################################################ */
#ifndef IP_DEBUG
-void IP_WatchDog (void *arg) {
- OVERLAPPED overlap;
- DWORD ret;
- wchar_t msg[300];
- HANDLE event_list[2];
- HANDLE hand = WSACreateEvent();
- overlap.hEvent = WSACreateEvent();
-
- for (;;) {
-
- ret = NotifyAddrChange(&hand, &overlap);
- if (ret != NO_ERROR && WSAGetLastError() != WSA_IO_PENDING) {
- wchar_t err[100];
- mir_snwprintf(err, L"NotifyAddrChange Error: %d/nRestart Miranda IM to restore IP monitor.", WSAGetLastError());
- ERRORMSG(err);
- break;
- }
-
- event_list[0] = overlap.hEvent;
- event_list[1] = hEventRebound;
-
- ret = MsgWaitForMultipleObjectsEx( 2, event_list, INFINITE, 0, MWMO_ALERTABLE );
- if (ret == WAIT_IO_COMPLETION && Miranda_IsTerminated()) break;
- if (ret == WAIT_OBJECT_0 || ret == WAIT_TIMEOUT || ret == (WAIT_OBJECT_0+1) ) {
- NETWORK_INTERFACE_LIST list;
-
- if ( Create_NIF_List_Ex( &list ) >=0 ) {
- int change = INCUPD_INTACT;
-
- EnterCriticalSection(&csNIF_List);
- change = IncUpdate_NIF_List(&NIF_List, list);
- if ( change != INCUPD_INTACT && change != INCUPD_CONN_BIND ) {
- char proxy = -1;
- int change_Miranda = 0;
- int reset_Miranda = 0;
- int change_IE = 0;
- int change_Firefox = 0;
- IP_RANGE_LIST range;
-
- if ( proxy == -1 ) {
- Create_Range_List( &range, opt_useProxy, TRUE );
- if ( Match_Range_List( range, NIF_List ) ) proxy = 1;
- Free_Range_List( &range );
- }
- if ( proxy == -1 ) {
- Create_Range_List( &range, opt_noProxy, FALSE );
- if ( Match_Range_List( range, NIF_List ) ) proxy = 0;
- Free_Range_List( &range );
- }
- if ( proxy == -1 ) {
- Create_Range_List( &range, opt_useProxy, FALSE );
- if ( Match_Range_List( range, NIF_List ) ) proxy = 1;
- Free_Range_List( &range );
- }
-
- if ( proxy != -1 && proxy != Get_Miranda_Proxy_Status() ) change_Miranda = reset_Miranda = opt_miranda;
- if ( proxy != -1 && proxy != Get_IE_Proxy_Status() ) change_IE = opt_ie;
- if ( proxy != -1 && proxy != Get_Firefox_Proxy_Status() ) change_Firefox = opt_firefox;
- if ( opt_alwayReconnect ) reset_Miranda = 1;
-
- mir_wstrcpy(msg, L"");
- if ( opt_showProxyState && change_Miranda ) {
- mir_wstrcat(msg, TranslateT("\nMiranda "));
- mir_wstrcat(msg, proxy ? TranslateT("Proxy") : TranslateT("Direct"));
- }
- if ( opt_showProxyState && change_IE ) {
- mir_wstrcat(msg, TranslateT("\nExplorer "));
- mir_wstrcat(msg, proxy ? TranslateT("Proxy") : TranslateT("Direct"));
- }
- if ( opt_showProxyState && change_Firefox ) {
- mir_wstrcat(msg, TranslateT("\nFirefox "));
- mir_wstrcat(msg, proxy ? TranslateT("Proxy") : TranslateT("Direct"));
- }
- UpdateInterfacesMenu();
- PopupMyIPAddrs(mir_wstrlen(msg) ? msg : NULL);
-
- if ( change_IE ) Set_IE_Proxy_Status( proxy );
- if ( change_Firefox ) Set_Firefox_Proxy_Status( proxy );
- if ( reset_Miranda ) {
- PROTO_SETTINGS protocols;
- Disconnect_All_Protocols( &protocols, change_Miranda );
- Sleep( 1000 );
- if ( change_Miranda ) Set_Miranda_Proxy_Status( proxy );
- Connect_All_Protocols( &protocols );
- }
- }
- LeaveCriticalSection(&csNIF_List);
-
- Free_NIF_List( &list );
- }
- }
-
- ResetEvent(hEventRebound);
- WSAResetEvent(hand);
- WSAResetEvent(overlap.hEvent);
- }
-
- WSACloseEvent(hand);
- WSACloseEvent(overlap.hEvent);
+void IP_WatchDog(void *arg)
+{
+ OVERLAPPED overlap;
+ DWORD ret;
+ wchar_t msg[300];
+ HANDLE event_list[2];
+ HANDLE hand = WSACreateEvent();
+ overlap.hEvent = WSACreateEvent();
+
+ for (;;) {
+
+ ret = NotifyAddrChange(&hand, &overlap);
+ if (ret != NO_ERROR && WSAGetLastError() != WSA_IO_PENDING) {
+ wchar_t err[100];
+ mir_snwprintf(err, L"NotifyAddrChange Error: %d/nRestart Miranda IM to restore IP monitor.", WSAGetLastError());
+ ERRORMSG(err);
+ break;
+ }
+
+ event_list[0] = overlap.hEvent;
+ event_list[1] = hEventRebound;
+
+ ret = MsgWaitForMultipleObjectsEx(2, event_list, INFINITE, 0, MWMO_ALERTABLE);
+ if (ret == WAIT_IO_COMPLETION && Miranda_IsTerminated())
+ break;
+ if (ret == WAIT_OBJECT_0 || ret == WAIT_TIMEOUT || ret == (WAIT_OBJECT_0 + 1)) {
+ NETWORK_INTERFACE_LIST list;
+
+ if (Create_NIF_List_Ex(&list) >= 0) {
+ int change = INCUPD_INTACT;
+
+ EnterCriticalSection(&csNIF_List);
+ change = IncUpdate_NIF_List(&NIF_List, list);
+ if (change != INCUPD_INTACT && change != INCUPD_CONN_BIND) {
+ char proxy = -1;
+ int change_Miranda = 0;
+ int reset_Miranda = 0;
+ int change_IE = 0;
+ int change_Firefox = 0;
+ IP_RANGE_LIST range;
+
+ if (proxy == -1) {
+ Create_Range_List(&range, opt_useProxy, TRUE);
+ if (Match_Range_List(range, NIF_List))
+ proxy = 1;
+ Free_Range_List(&range);
+ }
+ if (proxy == -1) {
+ Create_Range_List(&range, opt_noProxy, FALSE);
+ if (Match_Range_List(range, NIF_List))
+ proxy = 0;
+ Free_Range_List(&range);
+ }
+ if (proxy == -1) {
+ Create_Range_List(&range, opt_useProxy, FALSE);
+ if (Match_Range_List(range, NIF_List))
+ proxy = 1;
+ Free_Range_List(&range);
+ }
+
+ if (proxy != -1 && proxy != Get_Miranda_Proxy_Status())
+ change_Miranda = reset_Miranda = opt_miranda;
+ if (proxy != -1 && proxy != Get_IE_Proxy_Status())
+ change_IE = opt_ie;
+ if (proxy != -1 && proxy != Get_Firefox_Proxy_Status())
+ change_Firefox = opt_firefox;
+ if (opt_alwayReconnect)
+ reset_Miranda = 1;
+
+ mir_wstrcpy(msg, L"");
+ if (opt_showProxyState && change_Miranda) {
+ mir_wstrcat(msg, TranslateT("\nMiranda "));
+ mir_wstrcat(msg, proxy ? TranslateT("Proxy") : TranslateT("Direct"));
+ }
+ if (opt_showProxyState && change_IE) {
+ mir_wstrcat(msg, TranslateT("\nExplorer "));
+ mir_wstrcat(msg, proxy ? TranslateT("Proxy") : TranslateT("Direct"));
+ }
+ if (opt_showProxyState && change_Firefox) {
+ mir_wstrcat(msg, TranslateT("\nFirefox "));
+ mir_wstrcat(msg, proxy ? TranslateT("Proxy") : TranslateT("Direct"));
+ }
+ UpdateInterfacesMenu();
+ PopupMyIPAddrs(mir_wstrlen(msg) ? msg : NULL);
+
+ if (change_IE)
+ Set_IE_Proxy_Status(proxy);
+ if (change_Firefox)
+ Set_Firefox_Proxy_Status(proxy);
+ if (reset_Miranda) {
+ PROTO_SETTINGS protocols;
+ Disconnect_All_Protocols(&protocols, change_Miranda);
+ Sleep(1000);
+ if (change_Miranda)
+ Set_Miranda_Proxy_Status(proxy);
+ Connect_All_Protocols(&protocols);
+ }
+ }
+ LeaveCriticalSection(&csNIF_List);
+
+ Free_NIF_List(&list);
+ }
+ }
+
+ ResetEvent(hEventRebound);
+ WSAResetEvent(hand);
+ WSAResetEvent(overlap.hEvent);
+ }
+
+ WSACloseEvent(hand);
+ WSACloseEvent(overlap.hEvent);
}
#endif
/* ################################################################################ */
-int Create_NIF_List_Ex (NETWORK_INTERFACE_LIST *list) {
- UINT delay = 1;
- int out;
+int Create_NIF_List_Ex(NETWORK_INTERFACE_LIST *list)
+{
+ UINT delay = 1;
+ int out;
- while ( (out = Create_NIF_List(list)) == -2 && delay < 10 ) {
- Sleep(delay*50);
- delay++;
- }
- if (out == -2) ERRORMSG(TranslateT("Cannot retrieve IP or Adapter data."));
- return out < 0 ? -1 : out;
+ while ((out = Create_NIF_List(list)) == -2 && delay < 10) {
+ Sleep(delay * 50);
+ delay++;
+ }
+ if (out == -2)
+ ERRORMSG(TranslateT("Cannot retrieve IP or Adapter data."));
+ return out < 0 ? -1 : out;
}
-PNETWORK_INTERFACE Find_NIF_IP(NETWORK_INTERFACE_LIST list, const LONG IP) {
+PNETWORK_INTERFACE Find_NIF_IP(NETWORK_INTERFACE_LIST list, const LONG IP)
+{
UCHAR idx = 0;
UCHAR i;
while (idx < list.count) {
for (i = 0; i < list.item[idx].IPcount; i++) {
- if (list.item[idx].IP[i] == IP) return &(list.item[idx]);
+ if (list.item[idx].IP[i] == IP)
+ return &(list.item[idx]);
}
idx++;
}
return NULL;
}
-int Create_NIF_List (NETWORK_INTERFACE_LIST *list) {
-
- PIP_ADAPTER_INFO pAdapterInfo, pAdapt;
- PIP_ADDR_STRING pAddrStr;
- PIP_ADAPTER_ADDRESSES pAddresses, pAddr;
- PNETWORK_INTERFACE nif;
- ULONG outBufLen;
- wchar_t *tmp_opt, *intf, *rest, *name;
- BOOL skip;
- DWORD out;
- UCHAR idx;
-
- // prepare and load IP_ADAPTER_ADDRESSES
- outBufLen = 0;
- if (GetAdaptersAddresses(AF_INET, 0, NULL, NULL, &outBufLen) == ERROR_BUFFER_OVERFLOW) {
- pAddresses = (PIP_ADAPTER_ADDRESSES) malloc(outBufLen);
- if (pAddresses == NULL) {
- ERRORMSG(TranslateT("Cannot allocate memory for pAddresses"));
- return -1;
- }
- if ((out = GetAdaptersAddresses(AF_INET, 0, NULL, pAddresses, &outBufLen)) != ERROR_SUCCESS) {
- free(pAddresses);
- return -2;
- }
- } else {
- ERRORMSG(TranslateT("GetAdaptersAddresses sizing failed"));
- return -1;
- }
-
- // prepare and load IP_ADAPTER_INFO
- outBufLen = 0;
- if (GetAdaptersInfo(NULL, &outBufLen) == ERROR_BUFFER_OVERFLOW) {
- pAdapterInfo = (PIP_ADAPTER_INFO) malloc(outBufLen);
- if (pAdapterInfo == NULL) {
- ERRORMSG(TranslateT("Cannot allocate memory for pAdapterInfo"));
- free(pAddresses);
- return -1;
- }
- if (GetAdaptersInfo(pAdapterInfo, &outBufLen) != NO_ERROR) {
- free(pAdapterInfo);
- free(pAddresses);
- return -2;
- }
- } else {
- ERRORMSG(TranslateT("GetAdaptersInfo sizing failed"));
- free(pAddresses);
- return -1;
- }
-
- ZeroMemory(list, sizeof(NETWORK_INTERFACE_LIST));
-
- pAdapt = pAdapterInfo;
- while (pAdapt) {
-
- // add a new interface into the list
- list->count++;
- list->item = (PNETWORK_INTERFACE)mir_realloc( list->item, list->count * sizeof(NETWORK_INTERFACE) );
- nif = &(list->item[list->count - 1]);
- ZeroMemory(nif, sizeof(NETWORK_INTERFACE));
-
- // copy AdapterName
- nif->AdapterName = (char*)mir_alloc(mir_strlen(pAdapt->AdapterName)+4);
- nif->AdapterName = mir_strdup(pAdapt->AdapterName);
-
- // find its FriendlyName and copy it
- pAddr = pAddresses;
- while(pAddr && mir_strcmp(pAddr->AdapterName, pAdapt->AdapterName)) {
- pAddr = pAddr->Next;
- }
- if ( pAddr ) {
- nif->FriendlyName = (wchar_t*)mir_alloc(wcslen(pAddr->FriendlyName)+4);
- nif->FriendlyName = mir_wstrdup(pAddr->FriendlyName);
- }
-
- skip = FALSE;
- tmp_opt = intf = rest = mir_wstrdup( opt_hideIntf );
- while ( rest && rest[0] && ! skip ) {
- rest = wcschr( rest, ';' );
- if ( rest != NULL ) {
- rest[0] = 0;
- rest++;
- }
- if ( intf[0] ) {
- if ( intf[mir_wstrlen(intf)-1] == '*' && mir_wstrlen(intf)-1 <= mir_wstrlen(nif->FriendlyName) ) {
- intf[mir_wstrlen(intf)-1] = 0;
- name = nif->FriendlyName;
- skip = TRUE;
- while ( intf[0] ) {
- if ( intf[0] != name[0] ) {
- skip = FALSE;
- break;
- }
- intf++;
- name++;
- }
- }
- if ( mir_wstrcmp(nif->FriendlyName, intf) == 0 ) {
- skip = TRUE;
- }
- }
- intf = rest;
- }
- free(tmp_opt);
-
- if ( skip ) {
- list->count--;
- list->item = (PNETWORK_INTERFACE)mir_realloc( list->item, list->count * sizeof(NETWORK_INTERFACE) );
- pAdapt = pAdapt->Next;
- continue;
- }
-
- // get required size for IPstr and IP
- outBufLen = 0;
- pAddrStr = &(pAdapt->IpAddressList);
- while(pAddrStr) {
- if ( strcmp("0.0.0.0", pAddrStr->IpAddress.String) ) {
- nif->IPcount++; // count IP addresses
- outBufLen += strlen(pAddrStr->IpAddress.String); // count length of IPstr
- }
- pAddrStr = pAddrStr->Next;
- if (pAddrStr) outBufLen += 2; // count length of IPstr (add ", ")
- }
-
- // create IPstr and IP
- if ( nif->IPcount ) {
- nif->IPstr = (char*)mir_alloc( outBufLen+4 );
- strcpy(nif->IPstr, "");
- nif->IP = (LONG*)mir_alloc( (nif->IPcount+1) * sizeof(LONG) );
- outBufLen = 0;
- pAddrStr = &(pAdapt->IpAddressList);
- while(pAddrStr) {
- if ( strcmp("0.0.0.0", pAddrStr->IpAddress.String) ) {
- strcat( nif->IPstr, pAddrStr->IpAddress.String );
- nif->IP[outBufLen] = inet_addr( pAddrStr->IpAddress.String );
- outBufLen++;
- }
- pAddrStr = pAddrStr->Next;
- if (pAddrStr) strcat( nif->IPstr, ", ");
- }
- nif->IP[outBufLen] = 0L;
- }
- pAdapt = pAdapt->Next;
- }
-
- free(pAdapterInfo);
- free(pAddresses);
-
- EnterCriticalSection(&csConnection_List);
- for ( idx=0 ; idx < Connection_List.count ; idx++ ) {
- nif = Find_NIF_IP( *list, Connection_List.item[idx].IP );
- if ( nif ) {
- nif->Bound = 1;
- }
- }
- LeaveCriticalSection(&csConnection_List);
-
- return 0;
+int Create_NIF_List(NETWORK_INTERFACE_LIST *list)
+{
+ PIP_ADAPTER_INFO pAdapterInfo, pAdapt;
+ PIP_ADDR_STRING pAddrStr;
+ PIP_ADAPTER_ADDRESSES pAddresses, pAddr;
+ PNETWORK_INTERFACE nif;
+ ULONG outBufLen;
+ wchar_t *tmp_opt, *intf, *rest, *name;
+ BOOL skip;
+ DWORD out;
+ UCHAR idx;
+
+ // prepare and load IP_ADAPTER_ADDRESSES
+ outBufLen = 0;
+ if (GetAdaptersAddresses(AF_INET, 0, NULL, NULL, &outBufLen) == ERROR_BUFFER_OVERFLOW) {
+ pAddresses = (PIP_ADAPTER_ADDRESSES)malloc(outBufLen);
+ if (pAddresses == NULL) {
+ ERRORMSG(TranslateT("Cannot allocate memory for pAddresses"));
+ return -1;
+ }
+ if ((out = GetAdaptersAddresses(AF_INET, 0, NULL, pAddresses, &outBufLen)) != ERROR_SUCCESS) {
+ free(pAddresses);
+ return -2;
+ }
+ }
+ else {
+ ERRORMSG(TranslateT("GetAdaptersAddresses sizing failed"));
+ return -1;
+ }
+
+ // prepare and load IP_ADAPTER_INFO
+ outBufLen = 0;
+ if (GetAdaptersInfo(NULL, &outBufLen) == ERROR_BUFFER_OVERFLOW) {
+ pAdapterInfo = (PIP_ADAPTER_INFO)malloc(outBufLen);
+ if (pAdapterInfo == NULL) {
+ ERRORMSG(TranslateT("Cannot allocate memory for pAdapterInfo"));
+ free(pAddresses);
+ return -1;
+ }
+ if (GetAdaptersInfo(pAdapterInfo, &outBufLen) != NO_ERROR) {
+ free(pAdapterInfo);
+ free(pAddresses);
+ return -2;
+ }
+ }
+ else {
+ ERRORMSG(TranslateT("GetAdaptersInfo sizing failed"));
+ free(pAddresses);
+ return -1;
+ }
+
+ ZeroMemory(list, sizeof(NETWORK_INTERFACE_LIST));
+
+ pAdapt = pAdapterInfo;
+ while (pAdapt) {
+
+ // add a new interface into the list
+ list->count++;
+ list->item = (PNETWORK_INTERFACE)mir_realloc(list->item, list->count * sizeof(NETWORK_INTERFACE));
+ nif = &(list->item[list->count - 1]);
+ ZeroMemory(nif, sizeof(NETWORK_INTERFACE));
+
+ // copy AdapterName
+ nif->AdapterName = (char*)mir_alloc(mir_strlen(pAdapt->AdapterName) + 4);
+ nif->AdapterName = mir_strdup(pAdapt->AdapterName);
+
+ // find its FriendlyName and copy it
+ pAddr = pAddresses;
+ while (pAddr && mir_strcmp(pAddr->AdapterName, pAdapt->AdapterName)) {
+ pAddr = pAddr->Next;
+ }
+ if (pAddr) {
+ nif->FriendlyName = (wchar_t*)mir_alloc(wcslen(pAddr->FriendlyName) + 4);
+ nif->FriendlyName = mir_wstrdup(pAddr->FriendlyName);
+ }
+
+ skip = FALSE;
+ tmp_opt = intf = rest = mir_wstrdup(opt_hideIntf);
+ while (rest && rest[0] && !skip) {
+ rest = wcschr(rest, ';');
+ if (rest != NULL) {
+ rest[0] = 0;
+ rest++;
+ }
+ if (intf[0]) {
+ if (intf[mir_wstrlen(intf) - 1] == '*' && mir_wstrlen(intf) - 1 <= mir_wstrlen(nif->FriendlyName)) {
+ intf[mir_wstrlen(intf) - 1] = 0;
+ name = nif->FriendlyName;
+ skip = TRUE;
+ while (intf[0]) {
+ if (intf[0] != name[0]) {
+ skip = FALSE;
+ break;
+ }
+ intf++;
+ name++;
+ }
+ }
+ if (mir_wstrcmp(nif->FriendlyName, intf) == 0) {
+ skip = TRUE;
+ }
+ }
+ intf = rest;
+ }
+ free(tmp_opt);
+
+ if (skip) {
+ list->count--;
+ list->item = (PNETWORK_INTERFACE)mir_realloc(list->item, list->count * sizeof(NETWORK_INTERFACE));
+ pAdapt = pAdapt->Next;
+ continue;
+ }
+
+ // get required size for IPstr and IP
+ outBufLen = 0;
+ pAddrStr = &(pAdapt->IpAddressList);
+ while (pAddrStr) {
+ if (strcmp("0.0.0.0", pAddrStr->IpAddress.String)) {
+ nif->IPcount++; // count IP addresses
+ outBufLen += strlen(pAddrStr->IpAddress.String); // count length of IPstr
+ }
+ pAddrStr = pAddrStr->Next;
+ if (pAddrStr) outBufLen += 2; // count length of IPstr (add ", ")
+ }
+
+ // create IPstr and IP
+ if (nif->IPcount) {
+ nif->IPstr = (char*)mir_alloc(outBufLen + 4);
+ strcpy(nif->IPstr, "");
+ nif->IP = (LONG*)mir_alloc((nif->IPcount + 1) * sizeof(LONG));
+ outBufLen = 0;
+ pAddrStr = &(pAdapt->IpAddressList);
+ while (pAddrStr) {
+ if (strcmp("0.0.0.0", pAddrStr->IpAddress.String)) {
+ strcat(nif->IPstr, pAddrStr->IpAddress.String);
+ nif->IP[outBufLen] = inet_addr(pAddrStr->IpAddress.String);
+ outBufLen++;
+ }
+ pAddrStr = pAddrStr->Next;
+ if (pAddrStr)
+ strcat(nif->IPstr, ", ");
+ }
+ nif->IP[outBufLen] = 0L;
+ }
+ pAdapt = pAdapt->Next;
+ }
+
+ free(pAdapterInfo);
+ free(pAddresses);
+
+ EnterCriticalSection(&csConnection_List);
+ for (idx = 0; idx < Connection_List.count; idx++) {
+ nif = Find_NIF_IP(*list, Connection_List.item[idx].IP);
+ if (nif) {
+ nif->Bound = 1;
+ }
+ }
+ LeaveCriticalSection(&csConnection_List);
+
+ return 0;
}
/* ################################################################################ */
-PNETWORK_INTERFACE Find_NIF_AdapterName ( NETWORK_INTERFACE_LIST list, const char *AdapterName) {
- UCHAR idx = 0;
+PNETWORK_INTERFACE Find_NIF_AdapterName(NETWORK_INTERFACE_LIST list, const char *AdapterName)
+{
+ UCHAR idx = 0;
- while ( idx < list.count ) {
- if ( strcmp(list.item[idx].AdapterName, AdapterName) == 0 ) return &(list.item[idx]);
- idx++;
- }
- return NULL;
+ while (idx < list.count) {
+ if (strcmp(list.item[idx].AdapterName, AdapterName) == 0)
+ return &(list.item[idx]);
+ idx++;
+ }
+ return NULL;
}
-PNETWORK_INTERFACE Find_NIF_MenuItem ( NETWORK_INTERFACE_LIST list, const HGENMENU MenuItem) {
- UCHAR idx = 0;
+PNETWORK_INTERFACE Find_NIF_MenuItem(NETWORK_INTERFACE_LIST list, const HGENMENU MenuItem)
+{
+ UCHAR idx = 0;
- while ( idx < list.count ) {
- if ( list.item[idx].MenuItem == MenuItem ) return &(list.item[idx]);
- idx++;
- }
- return NULL;
+ while (idx < list.count) {
+ if (list.item[idx].MenuItem == MenuItem)
+ return &(list.item[idx]);
+ idx++;
+ }
+ return NULL;
}
/* ################################################################################ */
-BOOL Compare_NIF_Lists (NETWORK_INTERFACE_LIST list1, NETWORK_INTERFACE_LIST list2) {
- UCHAR idx = 0;
-
- if ( list1.count != list2.count ) return 1;
- while ( idx < list1.count ) {
- if ( mir_strcmp(list1.item[idx].AdapterName, list2.item[idx].AdapterName) ) return 1;
- if ( mir_strcmp(list1.item[idx].IPstr, list2.item[idx].IPstr) ) return 1;
- if ( mir_wstrcmp(list1.item[idx].FriendlyName, list2.item[idx].FriendlyName) ) return 1;
- idx++;
- }
- return 0;
+BOOL Compare_NIF_Lists(NETWORK_INTERFACE_LIST list1, NETWORK_INTERFACE_LIST list2)
+{
+ UCHAR idx = 0;
+
+ if (list1.count != list2.count)
+ return 1;
+
+ while (idx < list1.count) {
+ if (mir_strcmp(list1.item[idx].AdapterName, list2.item[idx].AdapterName))
+ return 1;
+ if (mir_strcmp(list1.item[idx].IPstr, list2.item[idx].IPstr))
+ return 1;
+ if (mir_wstrcmp(list1.item[idx].FriendlyName, list2.item[idx].FriendlyName))
+ return 1;
+ idx++;
+ }
+ return 0;
}
/* ################################################################################ */
-int IncUpdate_NIF_List (NETWORK_INTERFACE_LIST *trg, NETWORK_INTERFACE_LIST src) {
- UCHAR idx;
- PNETWORK_INTERFACE nif;
- int change = INCUPD_INTACT;
-
- for (idx = 0 ; idx < src.count ; idx++) {
- nif = Find_NIF_AdapterName( *trg, src.item[idx].AdapterName );
- if ( nif ) {
- if ( nif->Disabled ) nif->Disabled = 0;
- if ( strcmp(NVL(nif->IPstr), NVL(src.item[idx].IPstr)) ) {
- if (nif->IPstr) free(nif->IPstr);
- nif->IPstr = src.item[idx].IPstr ? mir_strdup( src.item[idx].IPstr ) : NULL;
- INCUPD(change, INCUPD_UPDATED);
- }
- if ( mir_wstrcmp(NVLW(nif->FriendlyName), NVLW(src.item[idx].FriendlyName)) ) {
- if (nif->FriendlyName) free(nif->FriendlyName);
- nif->FriendlyName = src.item[idx].FriendlyName ? mir_wstrdup( src.item[idx].FriendlyName ) : NULL;
- INCUPD(change, INCUPD_UPDATED);
- }
- if ( nif->IPcount != src.item[idx].IPcount ) {
- if ( nif->IPcount > src.item[idx].IPcount && nif->Bound ) {
- INCUPD(change, INCUPD_CONN_LOST );
- UnboundConnections( nif->IP, src.item[idx].IP );
- }
- nif->IPcount = src.item[idx].IPcount;
- if (nif->IP) free(nif->IP);
- if (src.item[idx].IP) {
- nif->IP = (LONG*)mir_alloc( (nif->IPcount+1) * sizeof(LONG) );
- memcpy( nif->IP, src.item[idx].IP, (nif->IPcount+1) * sizeof(LONG) );
- } else {
- nif->IP = NULL;
- }
- INCUPD(change, INCUPD_UPDATED);
- } else {
- if ( nif->IPcount > 0 && memcmp( nif->IP, src.item[idx].IP, nif->IPcount * sizeof(LONG) ) ) {
- free(nif->IP);
- nif->IP = (LONG*)mir_alloc( (nif->IPcount+1) * sizeof(LONG) );
- memcpy( nif->IP, src.item[idx].IP, (nif->IPcount+1) * sizeof(LONG) );
- INCUPD(change, INCUPD_UPDATED);
- }
- }
- if ( nif->Bound != src.item[idx].Bound ) {
- nif->Bound = src.item[idx].Bound;
- INCUPD(change, INCUPD_CONN_BIND);
- }
- } else {
- trg->count++;
- trg->item = (PNETWORK_INTERFACE)mir_realloc( trg->item, trg->count * sizeof(NETWORK_INTERFACE) );
- nif = &(trg->item[trg->count - 1]);
- ZeroMemory(nif, sizeof(NETWORK_INTERFACE));
- nif->AdapterName = src.item[idx].AdapterName ? mir_strdup( src.item[idx].AdapterName ) : NULL;
- nif->FriendlyName = src.item[idx].FriendlyName ? mir_wstrdup( src.item[idx].FriendlyName ) : NULL;
- nif->IPstr = src.item[idx].IPstr ? strdup( src.item[idx].IPstr ) : NULL;
- nif->IPcount = src.item[idx].IPcount;
- nif->Bound = src.item[idx].Bound;
- if ( nif->IPcount > 0 ) {
- nif->IP = (LONG*)mir_alloc( (nif->IPcount+1) * sizeof(LONG) );
- memcpy( nif->IP, src.item[idx].IP, (nif->IPcount+1) * sizeof(LONG) );
- }
- INCUPD(change, INCUPD_UPDATED);
- }
- }
- for (idx = 0 ; idx < trg->count ; idx++) {
- if ( trg->item[idx].Disabled ) continue;
- nif = Find_NIF_AdapterName( src, trg->item[idx].AdapterName );
- if ( ! nif ) {
- if ( trg->item[idx].Bound ) {
- INCUPD(change, INCUPD_CONN_LOST );
- UnboundConnections( trg->item[idx].IP, NULL );
- } else {
- INCUPD(change, INCUPD_UPDATED );
- }
- if (trg->item[idx].IPstr) free(trg->item[idx].IPstr);
- if (trg->item[idx].IP) free(trg->item[idx].IP);
- trg->item[idx].IPstr = NULL;
- trg->item[idx].IPcount = 0;
- trg->item[idx].IP = NULL;
- trg->item[idx].Bound = FALSE;
- trg->item[idx].Disabled = 1;
- }
- }
- return change;
+int IncUpdate_NIF_List(NETWORK_INTERFACE_LIST *trg, NETWORK_INTERFACE_LIST src)
+{
+ UCHAR idx;
+ PNETWORK_INTERFACE nif;
+ int change = INCUPD_INTACT;
+
+ for (idx = 0; idx < src.count; idx++) {
+ nif = Find_NIF_AdapterName(*trg, src.item[idx].AdapterName);
+ if (nif) {
+ if (nif->Disabled)
+ nif->Disabled = 0;
+ if (strcmp(NVL(nif->IPstr), NVL(src.item[idx].IPstr))) {
+ if (nif->IPstr)
+ free(nif->IPstr);
+ nif->IPstr = src.item[idx].IPstr ? mir_strdup(src.item[idx].IPstr) : NULL;
+ INCUPD(change, INCUPD_UPDATED);
+ }
+ if (mir_wstrcmp(NVLW(nif->FriendlyName), NVLW(src.item[idx].FriendlyName))) {
+ if (nif->FriendlyName)
+ free(nif->FriendlyName);
+ nif->FriendlyName = src.item[idx].FriendlyName ? mir_wstrdup(src.item[idx].FriendlyName) : NULL;
+ INCUPD(change, INCUPD_UPDATED);
+ }
+ if (nif->IPcount != src.item[idx].IPcount) {
+ if (nif->IPcount > src.item[idx].IPcount && nif->Bound) {
+ INCUPD(change, INCUPD_CONN_LOST);
+ UnboundConnections(nif->IP, src.item[idx].IP);
+ }
+ nif->IPcount = src.item[idx].IPcount;
+ if (nif->IP)
+ free(nif->IP);
+ if (src.item[idx].IP) {
+ nif->IP = (LONG*)mir_alloc((nif->IPcount + 1) * sizeof(LONG));
+ memcpy(nif->IP, src.item[idx].IP, (nif->IPcount + 1) * sizeof(LONG));
+ }
+ else {
+ nif->IP = NULL;
+ }
+ INCUPD(change, INCUPD_UPDATED);
+ }
+ else {
+ if (nif->IPcount > 0 && memcmp(nif->IP, src.item[idx].IP, nif->IPcount * sizeof(LONG))) {
+ free(nif->IP);
+ nif->IP = (LONG*)mir_alloc((nif->IPcount + 1) * sizeof(LONG));
+ memcpy(nif->IP, src.item[idx].IP, (nif->IPcount + 1) * sizeof(LONG));
+ INCUPD(change, INCUPD_UPDATED);
+ }
+ }
+ if (nif->Bound != src.item[idx].Bound) {
+ nif->Bound = src.item[idx].Bound;
+ INCUPD(change, INCUPD_CONN_BIND);
+ }
+ }
+ else {
+ trg->count++;
+ trg->item = (PNETWORK_INTERFACE)mir_realloc(trg->item, trg->count * sizeof(NETWORK_INTERFACE));
+ nif = &(trg->item[trg->count - 1]);
+ ZeroMemory(nif, sizeof(NETWORK_INTERFACE));
+ nif->AdapterName = src.item[idx].AdapterName ? mir_strdup(src.item[idx].AdapterName) : NULL;
+ nif->FriendlyName = src.item[idx].FriendlyName ? mir_wstrdup(src.item[idx].FriendlyName) : NULL;
+ nif->IPstr = src.item[idx].IPstr ? strdup(src.item[idx].IPstr) : NULL;
+ nif->IPcount = src.item[idx].IPcount;
+ nif->Bound = src.item[idx].Bound;
+ if (nif->IPcount > 0) {
+ nif->IP = (LONG*)mir_alloc((nif->IPcount + 1) * sizeof(LONG));
+ memcpy(nif->IP, src.item[idx].IP, (nif->IPcount + 1) * sizeof(LONG));
+ }
+ INCUPD(change, INCUPD_UPDATED);
+ }
+ }
+ for (idx = 0; idx < trg->count; idx++) {
+ if (trg->item[idx].Disabled)
+ continue;
+ nif = Find_NIF_AdapterName(src, trg->item[idx].AdapterName);
+ if (!nif) {
+ if (trg->item[idx].Bound) {
+ INCUPD(change, INCUPD_CONN_LOST);
+ UnboundConnections(trg->item[idx].IP, NULL);
+ }
+ else {
+ INCUPD(change, INCUPD_UPDATED);
+ }
+ if (trg->item[idx].IPstr)
+ free(trg->item[idx].IPstr);
+ if (trg->item[idx].IP)
+ free(trg->item[idx].IP);
+ trg->item[idx].IPstr = NULL;
+ trg->item[idx].IPcount = 0;
+ trg->item[idx].IP = NULL;
+ trg->item[idx].Bound = FALSE;
+ trg->item[idx].Disabled = 1;
+ }
+ }
+ return change;
}
/* ################################################################################ */
-wchar_t *Print_NIF (PNETWORK_INTERFACE nif) {
- ZeroMemory( tempstr, sizeof(tempstr) );
- mir_snwprintf( tempstr, L"%s:\t%s", nif->FriendlyName, nif->IPstr ? _A2T(nif->IPstr) : TranslateT("disconnected"));
- return tempstr;
+wchar_t *Print_NIF(PNETWORK_INTERFACE nif)
+{
+ ZeroMemory(tempstr, sizeof(tempstr));
+ mir_snwprintf(tempstr, L"%s:\t%s", nif->FriendlyName, nif->IPstr ? _A2T(nif->IPstr) : TranslateT("disconnected"));
+ return tempstr;
}
-wchar_t *Print_NIF_List (NETWORK_INTERFACE_LIST list, wchar_t *msg) {
- UCHAR idx;
- int pos = 0;
-
- ZeroMemory( tempstr, sizeof(tempstr) );
- for( idx = 0 ; idx < list.count ; idx++ ) {
- pos += mir_snwprintf( tempstr+pos, _countof(tempstr), L"%s:\t%s%s%s\n",
- list.item[idx].FriendlyName,
- list.item[idx].Bound ? L"[u]":L"",
- list.item[idx].IPstr ? _A2T(list.item[idx].IPstr) : TranslateT("disconnected"),
- list.item[idx].Bound ? L"[/u]":L""
- );
- }
- if ( msg ) mir_wstrcat(tempstr, msg); else tempstr[mir_wstrlen(tempstr)-1] = 0;
- return tempstr;
+wchar_t *Print_NIF_List(NETWORK_INTERFACE_LIST list, wchar_t *msg)
+{
+ UCHAR idx;
+ int pos = 0;
+
+ ZeroMemory(tempstr, sizeof(tempstr));
+ for (idx = 0; idx < list.count; idx++) {
+ pos += mir_snwprintf(tempstr + pos, _countof(tempstr), L"%s:\t%s%s%s\n",
+ list.item[idx].FriendlyName,
+ list.item[idx].Bound ? L"[u]" : L"",
+ list.item[idx].IPstr ? _A2T(list.item[idx].IPstr) : TranslateT("disconnected"),
+ list.item[idx].Bound ? L"[/u]" : L""
+ );
+ }
+ if (msg)
+ mir_wstrcat(tempstr, msg);
+ else
+ tempstr[mir_wstrlen(tempstr) - 1] = 0;
+ return tempstr;
}
/* ################################################################################ */
-void Free_NIF (PNETWORK_INTERFACE nif) {
- if (nif->AdapterName) free(nif->AdapterName);
- if (nif->FriendlyName) free(nif->FriendlyName);
- if (nif->IPstr) free(nif->IPstr);
- if (nif->IP) free(nif->IP);
- ZeroMemory(nif, sizeof(NETWORK_INTERFACE));
+void Free_NIF(PNETWORK_INTERFACE nif)
+{
+ if (nif->AdapterName)
+ free(nif->AdapterName);
+ if (nif->FriendlyName)
+ free(nif->FriendlyName);
+ if (nif->IPstr)
+ free(nif->IPstr);
+ if (nif->IP)
+ free(nif->IP);
+ ZeroMemory(nif, sizeof(NETWORK_INTERFACE));
}
-void Free_NIF_List (NETWORK_INTERFACE_LIST *list) {
- UCHAR idx;
+void Free_NIF_List(NETWORK_INTERFACE_LIST *list)
+{
+ UCHAR idx;
- for( idx = 0 ; idx < list->count ; idx++ ) {
- Free_NIF( &(list->item[idx]) );
- }
- free( list->item );
- ZeroMemory(list, sizeof(NETWORK_INTERFACE_LIST));
+ for (idx = 0; idx < list->count; idx++) {
+ Free_NIF(&(list->item[idx]));
+ }
+ free(list->item);
+ ZeroMemory(list, sizeof(NETWORK_INTERFACE_LIST));
}
/* ################################################################################ */
-void Parse_Range ( PIP_RANGE range, wchar_t *str, BOOL prioritized ) {
- wchar_t *ext;
- unsigned long num;
-
- range->cmpType = CMP_SKIP;
-
- if ((str[0] == '!' && ! prioritized) || (str[0] != '!' && prioritized)) {
- range->mask = range->net = 0L;
- return;
- }
- if (str[0] == '!') str++;
-
- // ip/mask
- if ( (ext = wcschr( str, '/' )) != NULL ) {
- ext[0] = 0; ext++;
-
- // ip/bits (10.0.0.1/16)
- if ( wcsspn(ext, DIGITS) == mir_wstrlen(ext) ) {
- num = _wtol(ext);
- if ( num >= 0 && num <= 32 && (range->net = inet_addr(_T2A(str))) != INADDR_NONE ) {
- range->cmpType = CMP_MASK;
- range->mask = NETORDER(num ? ~(0xFFFFFFFF >> (num)) : ~0);
- range->net = range->net & range->mask;
- }
- } else {
-
- // ip/subnet (10.0.0.1/255.255.0.0)
- if ( (range->net = inet_addr(_T2A(str))) != INADDR_NONE && (range->mask = inet_addr(_T2A(ext))) != INADDR_NONE ) {
- for ( num = 0 ; num < 32 ; num++ ) {
- if ( range->mask == NETORDER(num ? ~(0xFFFFFFFF >> (32-num)) : ~0)) {
- range->cmpType = CMP_MASK;
- range->net = range->net & range->mask;
- break;
- }
- }
- }}
- } else {
-
- // ipbegin-end
- if ( (ext = wcschr( str, '-' )) != NULL ) {
- ext[0] = 0; ext++;
-
- // ipA.B.C.D1-D2 (10.0.0.1-12)
- if ( wcsspn(ext, DIGITS) == mir_wstrlen(ext) ) {
- num = _wtol(ext);
- if ( num > 0 && num <= 255 && (range->loIP = inet_addr(_T2A(str))) != INADDR_NONE && (range->loIP >> 24) <= num ) {
- range->cmpType = CMP_SPAN;
- range->hiIP = ((range->loIP & 0x00FFFFFF) | (num << 24));
- range->loIP = (range->loIP);
- }
- } else {
-
- // ipstart-ipend (10.0.0.1-10.0.10.255)
- if ( (range->loIP = inet_addr(_T2A(str))) != INADDR_NONE && (range->hiIP = inet_addr(_T2A(ext))) != INADDR_NONE ) {
-
- range->loIP = (range->loIP);
- range->hiIP = (range->hiIP);
- if ( range->loIP <= range->hiIP ) {
- range->cmpType = CMP_SPAN;
- }
- }
- }} else {
-
- // ip
- if ( mir_wstrlen(str) > 0 && (range->net = inet_addr(_T2A(str))) != INADDR_NONE ) {
- range->cmpType = CMP_MASK;
- range->mask = 0xFFFFFFFF;
- }}}
-
- if ( range->cmpType == CMP_SKIP ) {
- range->mask = range->net = 0L;
- }
-}
+void Parse_Range(PIP_RANGE range, wchar_t *str, BOOL prioritized)
+{
+ wchar_t *ext;
+ unsigned long num;
-int Create_Range_List ( IP_RANGE_LIST *list, wchar_t *str, BOOL prioritized ) {
- wchar_t *range, *rest, *tmp;
- int size, idx;
+ range->cmpType = CMP_SKIP;
- ZeroMemory(list, sizeof(IP_RANGE_LIST));
-
- // get expected number of ranges
- range = str;
- size = mir_wstrlen( range ) > 0 ? 1 : 0;
- while ( range[0] ) { if ( range[0] == ';') size++; range++; };
+ if ((str[0] == '!' && !prioritized) || (str[0] != '!' && prioritized)) {
+ range->mask = range->net = 0L;
+ return;
+ }
+ if (str[0] == '!')
+ str++;
+
+ // ip/mask
+ if ((ext = wcschr(str, '/')) != NULL) {
+ ext[0] = 0; ext++;
+
+ // ip/bits (10.0.0.1/16)
+ if (wcsspn(ext, DIGITS) == mir_wstrlen(ext)) {
+ num = _wtol(ext);
+ if (num >= 0 && num <= 32 && (range->net = inet_addr(_T2A(str))) != INADDR_NONE) {
+ range->cmpType = CMP_MASK;
+ range->mask = NETORDER(num ? ~(0xFFFFFFFF >> (num)) : ~0);
+ range->net = range->net & range->mask;
+ }
+ }
+ else {
+
+ // ip/subnet (10.0.0.1/255.255.0.0)
+ if ((range->net = inet_addr(_T2A(str))) != INADDR_NONE && (range->mask = inet_addr(_T2A(ext))) != INADDR_NONE) {
+ for (num = 0; num < 32; num++) {
+ if (range->mask == NETORDER(num ? ~(0xFFFFFFFF >> (32 - num)) : ~0)) {
+ range->cmpType = CMP_MASK;
+ range->net = range->net & range->mask;
+ break;
+ }
+ }
+ }
+ }
+ }
+ else {
+
+ // ipbegin-end
+ if ((ext = wcschr(str, '-')) != NULL) {
+ ext[0] = 0; ext++;
+
+ // ipA.B.C.D1-D2 (10.0.0.1-12)
+ if (wcsspn(ext, DIGITS) == mir_wstrlen(ext)) {
+ num = _wtol(ext);
+ if (num > 0 && num <= 255 && (range->loIP = inet_addr(_T2A(str))) != INADDR_NONE && (range->loIP >> 24) <= num) {
+ range->cmpType = CMP_SPAN;
+ range->hiIP = ((range->loIP & 0x00FFFFFF) | (num << 24));
+ range->loIP = (range->loIP);
+ }
+ }
+ else {
+
+ // ipstart-ipend (10.0.0.1-10.0.10.255)
+ if ((range->loIP = inet_addr(_T2A(str))) != INADDR_NONE && (range->hiIP = inet_addr(_T2A(ext))) != INADDR_NONE) {
+
+ range->loIP = (range->loIP);
+ range->hiIP = (range->hiIP);
+ if (range->loIP <= range->hiIP) {
+ range->cmpType = CMP_SPAN;
+ }
+ }
+ }
+ }
+ else {
- if (size == 0) return 0;
+ // ip
+ if (mir_wstrlen(str) > 0 && (range->net = inet_addr(_T2A(str))) != INADDR_NONE) {
+ range->cmpType = CMP_MASK;
+ range->mask = 0xFFFFFFFF;
+ }
+ }
+ }
- // alloc required space
- list->item = (PIP_RANGE)mir_alloc( size * sizeof( IP_RANGE ) );
- ZeroMemory( list->item, size * sizeof( IP_RANGE ) );
+ if (range->cmpType == CMP_SKIP) {
+ range->mask = range->net = 0L;
+ }
+}
- tmp = range = rest = mir_wstrdup( str );
- idx = 0;
- while ( rest && rest[0] ) {
- rest = wcschr( rest, ';' );
- if ( rest != NULL ) {
- rest[0] = 0;
- rest++;
- }
- Parse_Range( &(list->item[idx]), range, prioritized );
- if ( list->item[idx].cmpType != CMP_SKIP ) idx++;
- range = rest;
- }
+int Create_Range_List(IP_RANGE_LIST *list, wchar_t *str, BOOL prioritized)
+{
+ wchar_t *range, *rest, *tmp;
+ int size, idx;
+
+ ZeroMemory(list, sizeof(IP_RANGE_LIST));
+
+ // get expected number of ranges
+ range = str;
+ size = mir_wstrlen(range) > 0 ? 1 : 0;
+ while (range[0]) {
+ if (range[0] == ';')
+ size++;
+ range++;
+ };
+
+ if (size == 0)
+ return 0;
+
+ // alloc required space
+ list->item = (PIP_RANGE)mir_alloc(size * sizeof(IP_RANGE));
+ ZeroMemory(list->item, size * sizeof(IP_RANGE));
+
+ tmp = range = rest = mir_wstrdup(str);
+ idx = 0;
+ while (rest && rest[0]) {
+ rest = wcschr(rest, ';');
+ if (rest != NULL) {
+ rest[0] = 0;
+ rest++;
+ }
+ Parse_Range(&(list->item[idx]), range, prioritized);
+ if (list->item[idx].cmpType != CMP_SKIP)
+ idx++;
+ range = rest;
+ }
- list->count = idx;
- list->item = (PIP_RANGE)mir_realloc( list->item, (idx+1) * sizeof( IP_RANGE ) );
+ list->count = idx;
+ list->item = (PIP_RANGE)mir_realloc(list->item, (idx + 1) * sizeof(IP_RANGE));
- ZeroMemory( &(list->item[idx]), sizeof( IP_RANGE ) );
- list->item[idx].cmpType = CMP_END;
+ ZeroMemory(&(list->item[idx]), sizeof(IP_RANGE));
+ list->item[idx].cmpType = CMP_END;
- free( tmp );
+ free(tmp);
- return 0;
+ return 0;
}
-int Match_Range_List (IP_RANGE_LIST range, NETWORK_INTERFACE_LIST nif) {
- PIP_RANGE rng;
- UCHAR idx;
- ULONG *ip;
-
- if ( range.count == 0 || nif.count == 0 ) return 0;
-
- rng = range.item;
- while( rng->cmpType != CMP_END ) {
-
- switch ( rng->cmpType ) {
- case CMP_SKIP:
- break;
-
- case CMP_MASK:
- for ( idx = 0 ; idx < nif.count ; idx++ ) {
- ip = (ULONG *)nif.item[idx].IP;
- while (ip && *ip) {
- if ( (ULONG)(*ip & rng->mask) == rng->net ) return 1;
- ip++;
- }
- }
- break;
-
- case CMP_SPAN:
- for ( idx = 0 ; idx < nif.count ; idx++ ) {
- ip = (ULONG *)nif.item[idx].IP;
- while (ip && *ip) {
- if ( (NETORDER(rng->loIP) <= NETORDER(*ip)) && (NETORDER(*ip) <= NETORDER(rng->hiIP)) ) return 1;
- ip++;
- }
- }
- break;
- }
- rng++;
- }
-
- return 0;
+int Match_Range_List(IP_RANGE_LIST range, NETWORK_INTERFACE_LIST nif)
+{
+ PIP_RANGE rng;
+ UCHAR idx;
+ ULONG *ip;
+
+ if (range.count == 0 || nif.count == 0)
+ return 0;
+
+ rng = range.item;
+ while (rng->cmpType != CMP_END) {
+
+ switch (rng->cmpType) {
+ case CMP_SKIP:
+ break;
+
+ case CMP_MASK:
+ for (idx = 0; idx < nif.count; idx++) {
+ ip = (ULONG *)nif.item[idx].IP;
+ while (ip && *ip) {
+ if ((ULONG)(*ip & rng->mask) == rng->net)
+ return 1;
+ ip++;
+ }
+ }
+ break;
+
+ case CMP_SPAN:
+ for (idx = 0; idx < nif.count; idx++) {
+ ip = (ULONG *)nif.item[idx].IP;
+ while (ip && *ip) {
+ if ((NETORDER(rng->loIP) <= NETORDER(*ip)) && (NETORDER(*ip) <= NETORDER(rng->hiIP)))
+ return 1;
+ ip++;
+ }
+ }
+ break;
+ }
+ rng++;
+ }
+
+ return 0;
}
-void Free_Range_List (IP_RANGE_LIST *list) {
- if ( list->item ) free( list->item );
- ZeroMemory(list, sizeof(IP_RANGE_LIST));
+void Free_Range_List(IP_RANGE_LIST *list)
+{
+ if (list->item)
+ free(list->item);
+ ZeroMemory(list, sizeof(IP_RANGE_LIST));
}
-int ManageConnections (WPARAM wParam,LPARAM lParam) {
- NETLIBCONNECTIONEVENTINFO *info = (NETLIBCONNECTIONEVENTINFO *)wParam;
- int found;
- UCHAR i;
-
- EnterCriticalSection(&csConnection_List);
- found = -1;
- for (i=0 ; i<Connection_List.count ; i++) {
- if ( Connection_List.item[i].IP == info->local.sin_addr.s_addr && Connection_List.item[i].Port == info->local.sin_port ) {
- found = i;
- break;
- }
- }
- if ( (found >= 0 && info->connected) || (found == -1 && !info->connected)) {
- LeaveCriticalSection(&csConnection_List);
- return 0;
- }
- if ( found >= 0 ) {
- Connection_List.count--;
- for( i=found ; i<Connection_List.count ; i++ ) memcpy( &(Connection_List.item[i]), &(Connection_List.item[i+1]), sizeof(ACTIVE_CONNECTION) );
- } else {
- if ( Connection_List.count >= Connection_List._alloc ) {
- Connection_List._alloc += 10;
- Connection_List.item = (PACTIVE_CONNECTION)mir_realloc( Connection_List.item, Connection_List._alloc * sizeof(ACTIVE_CONNECTION) );
- }
- Connection_List.item[Connection_List.count].IP = info->local.sin_addr.s_addr;
- Connection_List.item[Connection_List.count].Port = info->local.sin_port;
- Connection_List.count++;
- }
- LeaveCriticalSection(&csConnection_List);
-
- SetEvent( hEventRebound );
-
- return 0;
+int ManageConnections(WPARAM wParam, LPARAM lParam)
+{
+ NETLIBCONNECTIONEVENTINFO *info = (NETLIBCONNECTIONEVENTINFO *)wParam;
+ int found;
+ UCHAR i;
+
+ EnterCriticalSection(&csConnection_List);
+ found = -1;
+ for (i = 0; i < Connection_List.count; i++) {
+ if (Connection_List.item[i].IP == info->local.sin_addr.s_addr && Connection_List.item[i].Port == info->local.sin_port) {
+ found = i;
+ break;
+ }
+ }
+ if ((found >= 0 && info->connected) || (found == -1 && !info->connected)) {
+ LeaveCriticalSection(&csConnection_List);
+ return 0;
+ }
+ if (found >= 0) {
+ Connection_List.count--;
+ for (i = found; i < Connection_List.count; i++)
+ memcpy(&(Connection_List.item[i]), &(Connection_List.item[i + 1]), sizeof(ACTIVE_CONNECTION));
+ }
+ else {
+ if (Connection_List.count >= Connection_List._alloc) {
+ Connection_List._alloc += 10;
+ Connection_List.item = (PACTIVE_CONNECTION)mir_realloc(Connection_List.item, Connection_List._alloc * sizeof(ACTIVE_CONNECTION));
+ }
+ Connection_List.item[Connection_List.count].IP = info->local.sin_addr.s_addr;
+ Connection_List.item[Connection_List.count].Port = info->local.sin_port;
+ Connection_List.count++;
+ }
+ LeaveCriticalSection(&csConnection_List);
+
+ SetEvent(hEventRebound);
+
+ return 0;
}
-void UnboundConnections ( LONG *OldIP, LONG *NewIP ) {
- UCHAR i, j;
- LONG *IP;
-
- while ( OldIP != NULL && *OldIP != 0 ) {
- IP = NewIP;
- while ( IP != NULL && *IP != 0 && *IP != *OldIP ) IP++;
- if ( IP == NULL || *IP != *OldIP ) {
- EnterCriticalSection(&csConnection_List);
- i = 0;
- while ( i < Connection_List.count ) {
- if (Connection_List.item[i].IP == (ULONG)*OldIP) {
- Connection_List.count--;
- for( j=i ; j<Connection_List.count ; j++ ) memcpy( &(Connection_List.item[j]), &(Connection_List.item[j+1]), sizeof(ACTIVE_CONNECTION) );
- } else {
- i++;
- }
- }
- LeaveCriticalSection(&csConnection_List);
- }
- OldIP++;
- }
+void UnboundConnections(LONG *OldIP, LONG *NewIP)
+{
+ UCHAR i, j;
+ LONG *IP;
+
+ while (OldIP != NULL && *OldIP != 0) {
+ IP = NewIP;
+ while (IP != NULL && *IP != 0 && *IP != *OldIP)
+ IP++;
+ if (IP == NULL || *IP != *OldIP) {
+ EnterCriticalSection(&csConnection_List);
+ i = 0;
+ while (i < Connection_List.count) {
+ if (Connection_List.item[i].IP == (ULONG)*OldIP) {
+ Connection_List.count--;
+ for (j = i; j < Connection_List.count; j++)
+ memcpy(&(Connection_List.item[j]), &(Connection_List.item[j + 1]), sizeof(ACTIVE_CONNECTION));
+ }
+ else {
+ i++;
+ }
+ }
+ LeaveCriticalSection(&csConnection_List);
+ }
+ OldIP++;
+ }
}
diff --git a/plugins/ProxySwitch/src/main.cpp b/plugins/ProxySwitch/src/main.cpp
index 5266e901aa..9173a1db97 100644
--- a/plugins/ProxySwitch/src/main.cpp
+++ b/plugins/ProxySwitch/src/main.cpp
@@ -137,12 +137,42 @@ void CopyIP2Clipboard(UCHAR idx)
LeaveCriticalSection(&csNIF_List);
}
-static int CopyIP2Clipboard0(WPARAM wParam, LPARAM lParam) { CopyIP2Clipboard(0); return 0; }
-static int CopyIP2Clipboard1(WPARAM wParam, LPARAM lParam) { CopyIP2Clipboard(1); return 0; }
-static int CopyIP2Clipboard2(WPARAM wParam, LPARAM lParam) { CopyIP2Clipboard(2); return 0; }
-static int CopyIP2Clipboard3(WPARAM wParam, LPARAM lParam) { CopyIP2Clipboard(3); return 0; }
-static int CopyIP2Clipboard4(WPARAM wParam, LPARAM lParam) { CopyIP2Clipboard(4); return 0; }
-static int CopyIP2Clipboard5(WPARAM wParam, LPARAM lParam) { CopyIP2Clipboard(5); return 0; }
+static int CopyIP2Clipboard0(WPARAM wParam, LPARAM lParam)
+{
+ CopyIP2Clipboard(0);
+ return 0;
+}
+
+static int CopyIP2Clipboard1(WPARAM wParam, LPARAM lParam)
+{
+ CopyIP2Clipboard(1);
+ return 0;
+}
+
+static int CopyIP2Clipboard2(WPARAM wParam, LPARAM lParam)
+{
+ CopyIP2Clipboard(2);
+ return 0;
+}
+
+static int CopyIP2Clipboard3(WPARAM wParam, LPARAM lParam)
+{
+ CopyIP2Clipboard(3);
+ return 0;
+}
+
+static int CopyIP2Clipboard4(WPARAM wParam, LPARAM lParam)
+{
+ CopyIP2Clipboard(4);
+ return 0;
+}
+
+static int CopyIP2Clipboard5(WPARAM wParam, LPARAM lParam)
+{
+ CopyIP2Clipboard(5);
+ return 0;
+}
+
void UpdateInterfacesMenu(void)
{
@@ -150,7 +180,8 @@ void UpdateInterfacesMenu(void)
CMenuItem mi(g_plugin);
char svc[60];
- if (!opt_showProxyIP && !opt_not_restarted) return;
+ if (!opt_showProxyIP && !opt_not_restarted)
+ return;
EnterCriticalSection(&csNIF_List);
for (idx = 0; idx < NIF_List.count; idx++) {
@@ -187,12 +218,29 @@ void UpdateInterfacesMenu(void)
}
// create and register service for this menu item
switch (idx) {
- case 0: hSvcCopyClip0 = CreateServiceFunction(svc, CopyIP2Clipboard0); break;
- case 1: hSvcCopyClip1 = CreateServiceFunction(svc, CopyIP2Clipboard1); break;
- case 2: hSvcCopyClip2 = CreateServiceFunction(svc, CopyIP2Clipboard2); break;
- case 3: hSvcCopyClip3 = CreateServiceFunction(svc, CopyIP2Clipboard3); break;
- case 4: hSvcCopyClip4 = CreateServiceFunction(svc, CopyIP2Clipboard4); break;
- case 5: hSvcCopyClip5 = CreateServiceFunction(svc, CopyIP2Clipboard5); break;
+ case 0:
+ hSvcCopyClip0 = CreateServiceFunction(svc, CopyIP2Clipboard0);
+ break;
+
+ case 1:
+ hSvcCopyClip1 = CreateServiceFunction(svc, CopyIP2Clipboard1);
+ break;
+
+ case 2:
+ hSvcCopyClip2 = CreateServiceFunction(svc, CopyIP2Clipboard2);
+ break;
+
+ case 3:
+ hSvcCopyClip3 = CreateServiceFunction(svc, CopyIP2Clipboard3);
+ break;
+
+ case 4:
+ hSvcCopyClip4 = CreateServiceFunction(svc, CopyIP2Clipboard4);
+ break;
+
+ case 5:
+ hSvcCopyClip5 = CreateServiceFunction(svc, CopyIP2Clipboard5);
+ break;
}
}
}
@@ -205,7 +253,8 @@ void UpdatePopupMenu(BOOL State)
{
CMenuItem mi(g_plugin);
- if (!hEnableDisablePopupMenu) return;
+ if (!hEnableDisablePopupMenu)
+ return;
//ZeroMemory(&mi, sizeof(mi));
//mi.cbSize = sizeof(mi);
@@ -256,22 +305,28 @@ int CMPlugin::Load()
if (opt_ie || opt_miranda || opt_firefox) {
Create_Range_List(&range, opt_useProxy, TRUE);
- if (Match_Range_List(range, NIF_List)) proxy = 1;
+ if (Match_Range_List(range, NIF_List))
+ proxy = 1;
Free_Range_List(&range);
if (proxy == -1) {
Create_Range_List(&range, opt_noProxy, FALSE);
- if (Match_Range_List(range, NIF_List)) proxy = 0;
+ if (Match_Range_List(range, NIF_List))
+ proxy = 0;
Free_Range_List(&range);
}
if (proxy == -1) {
Create_Range_List(&range, opt_useProxy, FALSE);
- if (Match_Range_List(range, NIF_List)) proxy = 1;
+ if (Match_Range_List(range, NIF_List))
+ proxy = 1;
Free_Range_List(&range);
}
if (proxy != -1) {
- if (opt_miranda && Get_Miranda_Proxy_Status() != proxy) Set_Miranda_Proxy_Status(proxy);
- if (opt_ie && Get_IE_Proxy_Status() != proxy) Set_IE_Proxy_Status(proxy);
- if (opt_firefox && Get_Firefox_Proxy_Status() != proxy) Set_Firefox_Proxy_Status(proxy);
+ if (opt_miranda && Get_Miranda_Proxy_Status() != proxy)
+ Set_Miranda_Proxy_Status(proxy);
+ if (opt_ie && Get_IE_Proxy_Status() != proxy)
+ Set_IE_Proxy_Status(proxy);
+ if (opt_firefox && Get_Firefox_Proxy_Status() != proxy)
+ Set_Firefox_Proxy_Status(proxy);
}
}
diff --git a/plugins/ProxySwitch/src/opt.cpp b/plugins/ProxySwitch/src/opt.cpp
index 44273f705e..51ce52f6be 100644
--- a/plugins/ProxySwitch/src/opt.cpp
+++ b/plugins/ProxySwitch/src/opt.cpp
@@ -9,183 +9,199 @@ the proxy settings of Miranda and Internet Explorer accordingly.
int help_shown;
-void ShowHelp( HWND hdlg, int showhide_help ) {
- int showhide_others = showhide_help == SW_SHOW ? SW_HIDE : SW_SHOW;
- help_shown = showhide_help;
-
- ShowWindow(GetDlgItem(hdlg, IDC_HELP_1), showhide_help);
- ShowWindow(GetDlgItem(hdlg, IDC_HELP_2), showhide_help);
- ShowWindow(GetDlgItem(hdlg, IDC_HELP_3), showhide_help);
-
- ShowWindow(GetDlgItem(hdlg, IDC_CHECK_MIRANDA), showhide_others);
- ShowWindow(GetDlgItem(hdlg, IDC_CHECK_IE), showhide_others);
- ShowWindow(GetDlgItem(hdlg, IDC_CHECK_FIREFOX), showhide_others);
- ShowWindow(GetDlgItem(hdlg, IDC_CHECK_PROXYIPMENU), showhide_others);
- ShowWindow(GetDlgItem(hdlg, IDC_CHECK_SHOWMYIPMENU), showhide_others);
- ShowWindow(GetDlgItem(hdlg, IDC_CHECK_DEFAULTCOLORS), showhide_others);
- ShowWindow(GetDlgItem(hdlg, IDC_CHECK_SHOWPROXYSTATUS), showhide_others);
- ShowWindow(GetDlgItem(hdlg, IDC_CHECK_ALWAY_RECONNECT), showhide_others);
- ShowWindow(GetDlgItem(hdlg, IDC_CHECK_POPUPS), showhide_others);
- ShowWindow(GetDlgItem(hdlg, IDC_BGCOLOR), showhide_others);
- ShowWindow(GetDlgItem(hdlg, IDC_TEXTCOLOR), showhide_others);
- ShowWindow(GetDlgItem(hdlg, IDC_EDIT_HIDEINTF), showhide_others);
+void ShowHelp(HWND hdlg, int showhide_help)
+{
+ int showhide_others = showhide_help == SW_SHOW ? SW_HIDE : SW_SHOW;
+ help_shown = showhide_help;
+
+ ShowWindow(GetDlgItem(hdlg, IDC_HELP_1), showhide_help);
+ ShowWindow(GetDlgItem(hdlg, IDC_HELP_2), showhide_help);
+ ShowWindow(GetDlgItem(hdlg, IDC_HELP_3), showhide_help);
+
+ ShowWindow(GetDlgItem(hdlg, IDC_CHECK_MIRANDA), showhide_others);
+ ShowWindow(GetDlgItem(hdlg, IDC_CHECK_IE), showhide_others);
+ ShowWindow(GetDlgItem(hdlg, IDC_CHECK_FIREFOX), showhide_others);
+ ShowWindow(GetDlgItem(hdlg, IDC_CHECK_PROXYIPMENU), showhide_others);
+ ShowWindow(GetDlgItem(hdlg, IDC_CHECK_SHOWMYIPMENU), showhide_others);
+ ShowWindow(GetDlgItem(hdlg, IDC_CHECK_DEFAULTCOLORS), showhide_others);
+ ShowWindow(GetDlgItem(hdlg, IDC_CHECK_SHOWPROXYSTATUS), showhide_others);
+ ShowWindow(GetDlgItem(hdlg, IDC_CHECK_ALWAY_RECONNECT), showhide_others);
+ ShowWindow(GetDlgItem(hdlg, IDC_CHECK_POPUPS), showhide_others);
+ ShowWindow(GetDlgItem(hdlg, IDC_BGCOLOR), showhide_others);
+ ShowWindow(GetDlgItem(hdlg, IDC_TEXTCOLOR), showhide_others);
+ ShowWindow(GetDlgItem(hdlg, IDC_EDIT_HIDEINTF), showhide_others);
}
-
-BOOL CALLBACK OptionsProc(HWND hdlg,UINT msg,WPARAM wparam,LPARAM lparam) {
-
- switch(msg) {
-
- case WM_INITDIALOG:
- opt_startup = TRUE;
- LoadSettings();
- ShowHelp( hdlg, SW_HIDE );
- SetDlgItemText(hdlg, IDC_EDIT_USEPROXY, opt_useProxy);
- SetDlgItemText(hdlg, IDC_EDIT_NOPROXY, opt_noProxy);
- CheckDlgButton(hdlg, IDC_CHECK_MIRANDA, opt_miranda ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_CHECK_IE, opt_ie ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_CHECK_FIREFOX, opt_firefox ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_CHECK_SHOWMYIPMENU, opt_showMyIP ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_CHECK_PROXYIPMENU, opt_showProxyIP ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_CHECK_ALWAY_RECONNECT, opt_alwayReconnect ? BST_CHECKED : BST_UNCHECKED);
- SetDlgItemText(hdlg, IDC_EDIT_HIDEINTF, opt_hideIntf);
- SendDlgItemMessage(hdlg,IDC_BGCOLOR,CPM_SETCOLOUR,0,opt_bgColor);
- SendDlgItemMessage(hdlg,IDC_TEXTCOLOR,CPM_SETCOLOUR,0,opt_txtColor);
- CheckDlgButton(hdlg, IDC_CHECK_POPUPS, opt_popups ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_CHECK_DEFAULTCOLORS, opt_defaultColors ? BST_CHECKED : BST_UNCHECKED);
- CheckDlgButton(hdlg, IDC_CHECK_SHOWPROXYSTATUS, opt_showProxyState ? BST_CHECKED : BST_UNCHECKED);
- EnableWindow(GetDlgItem(hdlg, IDC_CHECK_FIREFOX), Firefox_Installed());
- EnableWindow(GetDlgItem(hdlg, IDC_CHECK_POPUPS), opt_popupPluginInstalled);
- EnableWindow(GetDlgItem(hdlg, IDC_BGCOLOR), opt_popupPluginInstalled && opt_popups && !opt_defaultColors);
- EnableWindow(GetDlgItem(hdlg, IDC_TEXTCOLOR), opt_popupPluginInstalled && opt_popups && !opt_defaultColors);
- EnableWindow(GetDlgItem(hdlg, IDC_CHECK_DEFAULTCOLORS), opt_popupPluginInstalled && opt_popups);
- EnableWindow(GetDlgItem(hdlg, IDC_CHECK_SHOWPROXYSTATUS), opt_popupPluginInstalled && opt_popups);
- ShowWindow(GetDlgItem(hdlg, IDC_RESTARTREQUIRED), opt_not_restarted ? SW_SHOW : SW_HIDE);
- TranslateDialogDefault(hdlg);
- opt_startup = FALSE;
- return 1;
-
- case WM_NOTIFY:
- switch (((LPNMHDR)lparam)->code) {
- case PSN_APPLY:
- opt_not_restarted = opt_not_restarted || IsDlgButtonChecked(hdlg,IDC_CHECK_PROXYIPMENU) != opt_showProxyIP || IsDlgButtonChecked(hdlg,IDC_CHECK_SHOWMYIPMENU) != opt_showMyIP;
- ShowWindow(GetDlgItem(hdlg, IDC_RESTARTREQUIRED), opt_not_restarted ? SW_SHOW : SW_HIDE);
- GetDlgItemText(hdlg,IDC_EDIT_NOPROXY,opt_noProxy,MAX_IPLIST_LENGTH);
- GetDlgItemText(hdlg,IDC_EDIT_USEPROXY,opt_useProxy,MAX_IPLIST_LENGTH);
- GetDlgItemText(hdlg,IDC_EDIT_HIDEINTF,opt_hideIntf,MAX_IPLIST_LENGTH);
- opt_miranda = IsDlgButtonChecked(hdlg,IDC_CHECK_MIRANDA);
- opt_ie = IsDlgButtonChecked(hdlg,IDC_CHECK_IE);
- opt_firefox = IsDlgButtonChecked(hdlg,IDC_CHECK_FIREFOX);
- opt_showMyIP = IsDlgButtonChecked(hdlg,IDC_CHECK_SHOWMYIPMENU);
- opt_showProxyIP = IsDlgButtonChecked(hdlg,IDC_CHECK_PROXYIPMENU);
- opt_alwayReconnect = IsDlgButtonChecked(hdlg,IDC_CHECK_ALWAY_RECONNECT);
- opt_popups = IsDlgButtonChecked(hdlg,IDC_CHECK_POPUPS);
- opt_defaultColors = IsDlgButtonChecked(hdlg,IDC_CHECK_DEFAULTCOLORS);
- opt_showProxyState = IsDlgButtonChecked(hdlg,IDC_CHECK_SHOWPROXYSTATUS);
- opt_bgColor = SendDlgItemMessage(hdlg,IDC_BGCOLOR,CPM_GETCOLOUR,0,0);
- opt_txtColor = SendDlgItemMessage(hdlg,IDC_TEXTCOLOR,CPM_GETCOLOUR,0,0);
- SaveSettings();
- UpdatePopupMenu(opt_popups);
- return 1;
- }
- break;
-
- case WM_COMMAND:
- if (opt_startup) return 0;
- if (HIWORD(wparam)==BN_CLICKED && GetFocus()==(HWND)lparam && LOWORD(wparam)!=IDC_BTN_HELP) SendMessage(GetParent(hdlg),PSM_CHANGED,0,0);
- switch(LOWORD(wparam)) {
-
- case IDC_BTN_HELP:
- ShowHelp( hdlg, help_shown == SW_SHOW ? SW_HIDE : SW_SHOW );
- break;
-
- case IDC_EDIT_USEPROXY:
- case IDC_EDIT_NOPROXY:
- case IDC_EDIT_HIDEINTF:
- if (HIWORD(wparam) == EN_CHANGE && (HWND)lparam == GetFocus()) SendMessage(GetParent(hdlg),PSM_CHANGED,0,0);
- break;
-
- case IDC_BGCOLOR:
- case IDC_TEXTCOLOR:
- if (HIWORD(wparam) == CPN_COLOURCHANGED) SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- break;
-
- case IDC_CHECK_PROXYIPMENU:
- case IDC_CHECK_SHOWMYIPMENU:
- ShowWindow(GetDlgItem(hdlg, IDC_RESTARTREQUIRED), opt_not_restarted || (IsDlgButtonChecked(hdlg,IDC_CHECK_PROXYIPMENU) != opt_showProxyIP || IsDlgButtonChecked(hdlg,IDC_CHECK_SHOWMYIPMENU) != opt_showMyIP) ? SW_SHOW : SW_HIDE );
- break;
-
- case IDC_CHECK_DEFAULTCOLORS:
- case IDC_CHECK_POPUPS:
- if ( ! opt_popupPluginInstalled ) break;
- EnableWindow(GetDlgItem(hdlg, IDC_BGCOLOR), IsDlgButtonChecked(hdlg,IDC_CHECK_POPUPS) && !IsDlgButtonChecked(hdlg,IDC_CHECK_DEFAULTCOLORS));
- EnableWindow(GetDlgItem(hdlg, IDC_TEXTCOLOR), IsDlgButtonChecked(hdlg,IDC_CHECK_POPUPS) && !IsDlgButtonChecked(hdlg,IDC_CHECK_DEFAULTCOLORS));
- EnableWindow(GetDlgItem(hdlg, IDC_CHECK_DEFAULTCOLORS), IsDlgButtonChecked(hdlg,IDC_CHECK_POPUPS));
- EnableWindow(GetDlgItem(hdlg, IDC_CHECK_SHOWPROXYSTATUS), IsDlgButtonChecked(hdlg,IDC_CHECK_POPUPS));
- SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
- break;
- }
- break;
-
- case WM_CLOSE:
- EndDialog(hdlg,0);
- break;
- }
- return 0;
+BOOL CALLBACK OptionsProc(HWND hdlg, UINT msg, WPARAM wparam, LPARAM lparam)
+{
+ switch (msg) {
+
+ case WM_INITDIALOG:
+ opt_startup = TRUE;
+ LoadSettings();
+ ShowHelp(hdlg, SW_HIDE);
+ SetDlgItemText(hdlg, IDC_EDIT_USEPROXY, opt_useProxy);
+ SetDlgItemText(hdlg, IDC_EDIT_NOPROXY, opt_noProxy);
+ CheckDlgButton(hdlg, IDC_CHECK_MIRANDA, opt_miranda ? BST_CHECKED : BST_UNCHECKED);
+ CheckDlgButton(hdlg, IDC_CHECK_IE, opt_ie ? BST_CHECKED : BST_UNCHECKED);
+ CheckDlgButton(hdlg, IDC_CHECK_FIREFOX, opt_firefox ? BST_CHECKED : BST_UNCHECKED);
+ CheckDlgButton(hdlg, IDC_CHECK_SHOWMYIPMENU, opt_showMyIP ? BST_CHECKED : BST_UNCHECKED);
+ CheckDlgButton(hdlg, IDC_CHECK_PROXYIPMENU, opt_showProxyIP ? BST_CHECKED : BST_UNCHECKED);
+ CheckDlgButton(hdlg, IDC_CHECK_ALWAY_RECONNECT, opt_alwayReconnect ? BST_CHECKED : BST_UNCHECKED);
+ SetDlgItemText(hdlg, IDC_EDIT_HIDEINTF, opt_hideIntf);
+ SendDlgItemMessage(hdlg, IDC_BGCOLOR, CPM_SETCOLOUR, 0, opt_bgColor);
+ SendDlgItemMessage(hdlg, IDC_TEXTCOLOR, CPM_SETCOLOUR, 0, opt_txtColor);
+ CheckDlgButton(hdlg, IDC_CHECK_POPUPS, opt_popups ? BST_CHECKED : BST_UNCHECKED);
+ CheckDlgButton(hdlg, IDC_CHECK_DEFAULTCOLORS, opt_defaultColors ? BST_CHECKED : BST_UNCHECKED);
+ CheckDlgButton(hdlg, IDC_CHECK_SHOWPROXYSTATUS, opt_showProxyState ? BST_CHECKED : BST_UNCHECKED);
+ EnableWindow(GetDlgItem(hdlg, IDC_CHECK_FIREFOX), Firefox_Installed());
+ EnableWindow(GetDlgItem(hdlg, IDC_CHECK_POPUPS), opt_popupPluginInstalled);
+ EnableWindow(GetDlgItem(hdlg, IDC_BGCOLOR), opt_popupPluginInstalled && opt_popups && !opt_defaultColors);
+ EnableWindow(GetDlgItem(hdlg, IDC_TEXTCOLOR), opt_popupPluginInstalled && opt_popups && !opt_defaultColors);
+ EnableWindow(GetDlgItem(hdlg, IDC_CHECK_DEFAULTCOLORS), opt_popupPluginInstalled && opt_popups);
+ EnableWindow(GetDlgItem(hdlg, IDC_CHECK_SHOWPROXYSTATUS), opt_popupPluginInstalled && opt_popups);
+ ShowWindow(GetDlgItem(hdlg, IDC_RESTARTREQUIRED), opt_not_restarted ? SW_SHOW : SW_HIDE);
+ TranslateDialogDefault(hdlg);
+ opt_startup = FALSE;
+ return 1;
+
+ case WM_NOTIFY:
+ switch (((LPNMHDR)lparam)->code) {
+ case PSN_APPLY:
+ opt_not_restarted = opt_not_restarted || IsDlgButtonChecked(hdlg, IDC_CHECK_PROXYIPMENU) != opt_showProxyIP || IsDlgButtonChecked(hdlg, IDC_CHECK_SHOWMYIPMENU) != opt_showMyIP;
+ ShowWindow(GetDlgItem(hdlg, IDC_RESTARTREQUIRED), opt_not_restarted ? SW_SHOW : SW_HIDE);
+ GetDlgItemText(hdlg, IDC_EDIT_NOPROXY, opt_noProxy, MAX_IPLIST_LENGTH);
+ GetDlgItemText(hdlg, IDC_EDIT_USEPROXY, opt_useProxy, MAX_IPLIST_LENGTH);
+ GetDlgItemText(hdlg, IDC_EDIT_HIDEINTF, opt_hideIntf, MAX_IPLIST_LENGTH);
+ opt_miranda = IsDlgButtonChecked(hdlg, IDC_CHECK_MIRANDA);
+ opt_ie = IsDlgButtonChecked(hdlg, IDC_CHECK_IE);
+ opt_firefox = IsDlgButtonChecked(hdlg, IDC_CHECK_FIREFOX);
+ opt_showMyIP = IsDlgButtonChecked(hdlg, IDC_CHECK_SHOWMYIPMENU);
+ opt_showProxyIP = IsDlgButtonChecked(hdlg, IDC_CHECK_PROXYIPMENU);
+ opt_alwayReconnect = IsDlgButtonChecked(hdlg, IDC_CHECK_ALWAY_RECONNECT);
+ opt_popups = IsDlgButtonChecked(hdlg, IDC_CHECK_POPUPS);
+ opt_defaultColors = IsDlgButtonChecked(hdlg, IDC_CHECK_DEFAULTCOLORS);
+ opt_showProxyState = IsDlgButtonChecked(hdlg, IDC_CHECK_SHOWPROXYSTATUS);
+ opt_bgColor = SendDlgItemMessage(hdlg, IDC_BGCOLOR, CPM_GETCOLOUR, 0, 0);
+ opt_txtColor = SendDlgItemMessage(hdlg, IDC_TEXTCOLOR, CPM_GETCOLOUR, 0, 0);
+ SaveSettings();
+ UpdatePopupMenu(opt_popups);
+ return 1;
+ }
+ break;
+
+ case WM_COMMAND:
+ if (opt_startup)
+ return 0;
+ if (HIWORD(wparam) == BN_CLICKED && GetFocus() == (HWND)lparam && LOWORD(wparam) != IDC_BTN_HELP)
+ SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
+ switch (LOWORD(wparam)) {
+
+ case IDC_BTN_HELP:
+ ShowHelp(hdlg, help_shown == SW_SHOW ? SW_HIDE : SW_SHOW);
+ break;
+
+ case IDC_EDIT_USEPROXY:
+ case IDC_EDIT_NOPROXY:
+ case IDC_EDIT_HIDEINTF:
+ if (HIWORD(wparam) == EN_CHANGE && (HWND)lparam == GetFocus())
+ SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
+ break;
+
+ case IDC_BGCOLOR:
+ case IDC_TEXTCOLOR:
+ if (HIWORD(wparam) == CPN_COLOURCHANGED)
+ SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
+ break;
+
+ case IDC_CHECK_PROXYIPMENU:
+ case IDC_CHECK_SHOWMYIPMENU:
+ ShowWindow(GetDlgItem(hdlg, IDC_RESTARTREQUIRED), opt_not_restarted || (IsDlgButtonChecked(hdlg, IDC_CHECK_PROXYIPMENU) != opt_showProxyIP || IsDlgButtonChecked(hdlg, IDC_CHECK_SHOWMYIPMENU) != opt_showMyIP) ? SW_SHOW : SW_HIDE);
+ break;
+
+ case IDC_CHECK_DEFAULTCOLORS:
+ case IDC_CHECK_POPUPS:
+ if (!opt_popupPluginInstalled)
+ break;
+ EnableWindow(GetDlgItem(hdlg, IDC_BGCOLOR), IsDlgButtonChecked(hdlg, IDC_CHECK_POPUPS) && !IsDlgButtonChecked(hdlg, IDC_CHECK_DEFAULTCOLORS));
+ EnableWindow(GetDlgItem(hdlg, IDC_TEXTCOLOR), IsDlgButtonChecked(hdlg, IDC_CHECK_POPUPS) && !IsDlgButtonChecked(hdlg, IDC_CHECK_DEFAULTCOLORS));
+ EnableWindow(GetDlgItem(hdlg, IDC_CHECK_DEFAULTCOLORS), IsDlgButtonChecked(hdlg, IDC_CHECK_POPUPS));
+ EnableWindow(GetDlgItem(hdlg, IDC_CHECK_SHOWPROXYSTATUS), IsDlgButtonChecked(hdlg, IDC_CHECK_POPUPS));
+ SendMessage(GetParent(hdlg), PSM_CHANGED, 0, 0);
+ break;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog(hdlg, 0);
+ break;
+ }
+ return 0;
}
-
-int OptInit(WPARAM wParam,LPARAM lParam) {
- OPTIONSDIALOGPAGE odp = { 0 };
-
- //ZeroMemory(&odp,sizeof(odp));
- //odp.cbSize=sizeof(odp);
- odp.position=95600;
- odp.hInstance= g_plugin.getInst();
- odp.pszTemplate=MAKEINTRESOURCEA(IDD_OPTIONS);
- odp.pfnDlgProc=OptionsProc;
- odp.szGroup.w=LPGENW("Network");
- odp.szTitle.w= LPGENW("proxySwitch");
- odp.flags=ODPF_BOLDGROUPS | ODPF_UNICODE;
- g_plugin.addOptions(wParam, &odp);
-
- return 0;
+int OptInit(WPARAM wParam, LPARAM lParam)
+{
+ OPTIONSDIALOGPAGE odp = { 0 };
+
+ //ZeroMemory(&odp,sizeof(odp));
+ //odp.cbSize=sizeof(odp);
+ odp.position = 95600;
+ odp.hInstance = g_plugin.getInst();
+ odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS);
+ odp.pfnDlgProc = OptionsProc;
+ odp.szGroup.w = LPGENW("Network");
+ odp.szTitle.w = LPGENW("proxySwitch");
+ odp.flags = ODPF_BOLDGROUPS | ODPF_UNICODE;
+ g_plugin.addOptions(wParam, &odp);
+
+ return 0;
}
-void LoadSettings(void) {
- DBVARIANT dbv;
- if (db_get(NULL, MODULENAME,"UseProxyIPNets",&dbv)) lstrcpy(opt_useProxy, L""); else lstrcpy(opt_useProxy, dbv.pwszVal);
- db_free(&dbv);
- if (db_get(NULL, MODULENAME,"NoProxyIPNets",&dbv)) lstrcpy(opt_noProxy, L""); else lstrcpy(opt_noProxy, dbv.pwszVal);
- db_free(&dbv);
- if (db_get(NULL, MODULENAME,"HideInterfaces",&dbv)) lstrcpy(opt_hideIntf, L""); else lstrcpy(opt_hideIntf, dbv.pwszVal);
- db_free(&dbv);
- opt_miranda = db_get_b(NULL, MODULENAME,"ManageMirandaProxy",TRUE);
- opt_ie = db_get_b(NULL,MODULENAME,"ManageIEProxy",FALSE);
- opt_firefox = db_get_b(NULL,MODULENAME,"ManageFirefoxProxy",FALSE) && Firefox_Installed();
- opt_alwayReconnect = db_get_b(NULL,MODULENAME,"AlwaysReconnect",FALSE);
- opt_showMyIP = db_get_b(NULL,MODULENAME,"ShowMyIP",TRUE);
- opt_showProxyIP = db_get_b(NULL,MODULENAME,"ShowProxyIP",TRUE);
- opt_popups = db_get_b(NULL,MODULENAME,"PopupEnabled",TRUE);
- opt_defaultColors = db_get_b(NULL,MODULENAME,"PopupDefaultColors",TRUE);
- opt_showProxyState = db_get_b(NULL,MODULENAME,"ShowProxyStatus",TRUE);
- opt_bgColor = db_get_dw(NULL,MODULENAME,"PopupBgColor",GetSysColor(COLOR_BTNFACE));
- opt_txtColor = db_get_dw(NULL,MODULENAME,"PopupTxtColor",GetSysColor(COLOR_WINDOWTEXT));
+void LoadSettings(void)
+{
+ DBVARIANT dbv;
+ if (db_get(NULL, MODULENAME, "UseProxyIPNets", &dbv))
+ lstrcpy(opt_useProxy, L"");
+ else
+ lstrcpy(opt_useProxy, dbv.pwszVal);
+ db_free(&dbv);
+ if (db_get(NULL, MODULENAME, "NoProxyIPNets", &dbv))
+ lstrcpy(opt_noProxy, L"");
+ else
+ lstrcpy(opt_noProxy, dbv.pwszVal);
+ db_free(&dbv);
+ if (db_get(NULL, MODULENAME, "HideInterfaces", &dbv))
+ lstrcpy(opt_hideIntf, L"");
+ else
+ lstrcpy(opt_hideIntf, dbv.pwszVal);
+ db_free(&dbv);
+ opt_miranda = db_get_b(NULL, MODULENAME, "ManageMirandaProxy", TRUE);
+ opt_ie = db_get_b(NULL, MODULENAME, "ManageIEProxy", FALSE);
+ opt_firefox = db_get_b(NULL, MODULENAME, "ManageFirefoxProxy", FALSE) && Firefox_Installed();
+ opt_alwayReconnect = db_get_b(NULL, MODULENAME, "AlwaysReconnect", FALSE);
+ opt_showMyIP = db_get_b(NULL, MODULENAME, "ShowMyIP", TRUE);
+ opt_showProxyIP = db_get_b(NULL, MODULENAME, "ShowProxyIP", TRUE);
+ opt_popups = db_get_b(NULL, MODULENAME, "PopupEnabled", TRUE);
+ opt_defaultColors = db_get_b(NULL, MODULENAME, "PopupDefaultColors", TRUE);
+ opt_showProxyState = db_get_b(NULL, MODULENAME, "ShowProxyStatus", TRUE);
+ opt_bgColor = db_get_dw(NULL, MODULENAME, "PopupBgColor", GetSysColor(COLOR_BTNFACE));
+ opt_txtColor = db_get_dw(NULL, MODULENAME, "PopupTxtColor", GetSysColor(COLOR_WINDOWTEXT));
}
-void SaveSettings(void) {
- db_set_ws(NULL, MODULENAME, "UseProxyIPNets", opt_useProxy);
- db_set_ws(NULL, MODULENAME, "NoProxyIPNets", opt_noProxy);
- db_set_ws(NULL, MODULENAME, "HideInterfaces", opt_hideIntf);
- db_set_b(NULL, MODULENAME, "ManageMirandaProxy", (BYTE)opt_miranda );
- db_set_b(NULL, MODULENAME, "ManageIEProxy", (BYTE)opt_ie );
- db_set_b(NULL, MODULENAME, "ManageFirefoxProxy", (BYTE)opt_firefox );
- db_set_b(NULL, MODULENAME, "AlwaysReconnect", (BYTE)opt_alwayReconnect);
- db_set_b(NULL, MODULENAME, "ShowMyIP", (BYTE)opt_showMyIP );
- db_set_b(NULL, MODULENAME, "ShowProxyIP", (BYTE)opt_showProxyIP );
- db_set_b(NULL, MODULENAME, "PopupEnabled", (BYTE)opt_popups );
- db_set_b(NULL, MODULENAME, "PopupDefaultColors", (BYTE)opt_defaultColors );
- db_set_b(NULL, MODULENAME, "ShowProxyStatus", (BYTE)opt_showProxyState);
- db_set_dw(NULL, MODULENAME, "PopupBgColor", (DWORD)opt_bgColor );
- db_set_dw(NULL, MODULENAME, "PopupTxtColor", (DWORD)opt_txtColor );
+void SaveSettings(void)
+{
+ db_set_ws(NULL, MODULENAME, "UseProxyIPNets", opt_useProxy);
+ db_set_ws(NULL, MODULENAME, "NoProxyIPNets", opt_noProxy);
+ db_set_ws(NULL, MODULENAME, "HideInterfaces", opt_hideIntf);
+ db_set_b(NULL, MODULENAME, "ManageMirandaProxy", (BYTE)opt_miranda);
+ db_set_b(NULL, MODULENAME, "ManageIEProxy", (BYTE)opt_ie);
+ db_set_b(NULL, MODULENAME, "ManageFirefoxProxy", (BYTE)opt_firefox);
+ db_set_b(NULL, MODULENAME, "AlwaysReconnect", (BYTE)opt_alwayReconnect);
+ db_set_b(NULL, MODULENAME, "ShowMyIP", (BYTE)opt_showMyIP);
+ db_set_b(NULL, MODULENAME, "ShowProxyIP", (BYTE)opt_showProxyIP);
+ db_set_b(NULL, MODULENAME, "PopupEnabled", (BYTE)opt_popups);
+ db_set_b(NULL, MODULENAME, "PopupDefaultColors", (BYTE)opt_defaultColors);
+ db_set_b(NULL, MODULENAME, "ShowProxyStatus", (BYTE)opt_showProxyState);
+ db_set_dw(NULL, MODULENAME, "PopupBgColor", (DWORD)opt_bgColor);
+ db_set_dw(NULL, MODULENAME, "PopupTxtColor", (DWORD)opt_txtColor);
}
diff --git a/plugins/ProxySwitch/src/proxy.cpp b/plugins/ProxySwitch/src/proxy.cpp
index 5e5ad46e65..72fb7bc4ba 100644
--- a/plugins/ProxySwitch/src/proxy.cpp
+++ b/plugins/ProxySwitch/src/proxy.cpp
@@ -9,296 +9,331 @@ the proxy settings of Miranda and Internet Explorer accordingly.
/* ################################################################################ */
-int Enum_Settings(const char *szSetting,LPARAM lParam) {
- PPROXY_SETTINGS ps = (PPROXY_SETTINGS)lParam;
-
- if ( strcmp(szSetting, "NLUseProxy") != 0 && stricmp(szSetting, "useproxy") != 0 ) return 0;
-
- if ( ps->count >= ps->_alloc ) {
- ps->_alloc += 10;
- ps->item = (PPROXY_SETTING)mir_realloc( ps->item, ps->_alloc * sizeof(PROXY_SETTING) );
- ZeroMemory( &(ps->item[ps->count]), 10 * sizeof(PROXY_SETTING) );
- }
- strncpy( ps->item[ps->count].ModuleName, ps->_current_module, MAXLABELLENGTH-1 );
- strncpy( ps->item[ps->count].SettingName, szSetting, MAXLABELLENGTH-1 );
- ps->count++;
-
- return 0;
+int Enum_Settings(const char *szSetting, LPARAM lParam)
+{
+ PPROXY_SETTINGS ps = (PPROXY_SETTINGS)lParam;
+
+ if (strcmp(szSetting, "NLUseProxy") != 0 && stricmp(szSetting, "useproxy") != 0)
+ return 0;
+
+ if (ps->count >= ps->_alloc) {
+ ps->_alloc += 10;
+ ps->item = (PPROXY_SETTING)mir_realloc(ps->item, ps->_alloc * sizeof(PROXY_SETTING));
+ ZeroMemory(&(ps->item[ps->count]), 10 * sizeof(PROXY_SETTING));
+ }
+ strncpy(ps->item[ps->count].ModuleName, ps->_current_module, MAXLABELLENGTH - 1);
+ strncpy(ps->item[ps->count].SettingName, szSetting, MAXLABELLENGTH - 1);
+ ps->count++;
+
+ return 0;
}
-int Enum_Modules(const char *szModuleName,DWORD ofsModuleName,LPARAM lParam) {
- //DBCONTACTENUMSETTINGS e;
- MCONTACT hContact = NULL;
+int Enum_Modules(const char *szModuleName, DWORD ofsModuleName, LPARAM lParam)
+{
+ //DBCONTACTENUMSETTINGS e;
+ MCONTACT hContact = NULL;
- ((PPROXY_SETTINGS)lParam)->_current_module = szModuleName;
+ ((PPROXY_SETTINGS)lParam)->_current_module = szModuleName;
- //e.pfnEnumProc = Enum_Settings;
- //e.lParam = lParam;
- //e.szModule = szModuleName;
- db_enum_settings(hContact, (DBSETTINGENUMPROC)Enum_Settings, szModuleName, (void*)lParam);
- //CallService(MS_DB_CONTACT_ENUMSETTINGS, (WPARAM)hContact,(LPARAM)&e);
+ //e.pfnEnumProc = Enum_Settings;
+ //e.lParam = lParam;
+ //e.szModule = szModuleName;
+ db_enum_settings(hContact, (DBSETTINGENUMPROC)Enum_Settings, szModuleName, (void*)lParam);
+ //CallService(MS_DB_CONTACT_ENUMSETTINGS, (WPARAM)hContact,(LPARAM)&e);
- return 0;
+ return 0;
}
/* ################################################################################ */
-void Create_Proxy_Settings_List ( PPROXY_SETTINGS ps ) {
-
- ZeroMemory( ps, sizeof(PROXY_SETTINGS) );
- ps->_alloc = 10;
- ps->item = (PPROXY_SETTING)mir_alloc( ps->_alloc * sizeof(PROXY_SETTING) );
- ZeroMemory( ps->item, ps->_alloc * sizeof(PROXY_SETTING) );
+void Create_Proxy_Settings_List(PPROXY_SETTINGS ps)
+{
+ ZeroMemory(ps, sizeof(PROXY_SETTINGS));
+ ps->_alloc = 10;
+ ps->item = (PPROXY_SETTING)mir_alloc(ps->_alloc * sizeof(PROXY_SETTING));
+ ZeroMemory(ps->item, ps->_alloc * sizeof(PROXY_SETTING));
- db_enum_modules((DBMODULEENUMPROC)Enum_Modules);
- //CallService(MS_DB_MODULES_ENUM, (WPARAM)ps, (LPARAM)Enum_Modules );
+ db_enum_modules((DBMODULEENUMPROC)Enum_Modules);
+ //CallService(MS_DB_MODULES_ENUM, (WPARAM)ps, (LPARAM)Enum_Modules );
- ps->_alloc = ps->count+1;
- ps->item = (PPROXY_SETTING)mir_realloc( ps->item, ps->_alloc * sizeof(PROXY_SETTING) );
- ZeroMemory( &(ps->item[ps->count]), sizeof(PROXY_SETTING));
- ps->_current_module = NULL;
+ ps->_alloc = ps->count + 1;
+ ps->item = (PPROXY_SETTING)mir_realloc(ps->item, ps->_alloc * sizeof(PROXY_SETTING));
+ ZeroMemory(&(ps->item[ps->count]), sizeof(PROXY_SETTING));
+ ps->_current_module = NULL;
}
/* ################################################################################ */
-void Free_Proxy_Settings_List( PPROXY_SETTINGS ps ) {
- if ( ps->item ) free( ps->item );
- ZeroMemory( ps, sizeof(PROXY_SETTINGS) );
+void Free_Proxy_Settings_List(PPROXY_SETTINGS ps)
+{
+ if (ps->item)
+ free(ps->item);
+ ZeroMemory(ps, sizeof(PROXY_SETTINGS));
}
/* ################################################################################ */
-char Get_Miranda_Proxy_Status (void) {
- PROXY_SETTINGS ps;
- int i, p;
- char proxy;
- proxy = PROXY_NO_CONFIG;
-
- Create_Proxy_Settings_List( &ps );
- for ( i = 0 ; i < ps.count ; i++ ) {
- p = db_get_b(NULL,ps.item[i].ModuleName,ps.item[i].SettingName,FALSE);
- if (proxy == PROXY_NO_CONFIG) { proxy = p; continue; }
- if (proxy != p) { proxy = PROXY_MIXED; break; }
- }
- Free_Proxy_Settings_List( &ps );
- return proxy;
+char Get_Miranda_Proxy_Status(void)
+{
+ PROXY_SETTINGS ps;
+ int i, p;
+ char proxy;
+ proxy = PROXY_NO_CONFIG;
+
+ Create_Proxy_Settings_List(&ps);
+ for (i = 0; i < ps.count; i++) {
+ p = db_get_b(NULL, ps.item[i].ModuleName, ps.item[i].SettingName, FALSE);
+ if (proxy == PROXY_NO_CONFIG) {
+ proxy = p;
+ continue;
+ }
+ if (proxy != p) {
+ proxy = PROXY_MIXED;
+ break;
+ }
+ }
+ Free_Proxy_Settings_List(&ps);
+ return proxy;
}
/* ################################################################################ */
-void Set_Miranda_Proxy_Status (char proxy) {
- PROXY_SETTINGS ps;
- NETLIBUSERSETTINGS nlus;
- int i;
-
- if ( proxy < 0 ) return;
- Create_Proxy_Settings_List( &ps );
- for ( i = 0 ; i < ps.count ; i++ ) {
- if ( ps.item[i].SettingName[0] != 0 ) db_set_b(NULL,ps.item[i].ModuleName,ps.item[i].SettingName,proxy);
- ZeroMemory( &nlus, sizeof(nlus) );
- nlus.cbSize = sizeof(nlus);
- if (Netlib_GetUserSettingsByName(ps.item[i].ModuleName, &nlus) ) {
- nlus.useProxy = proxy;
- nlus.szProxyAuthPassword = NEWSTR_ALLOCA(nlus.szProxyAuthPassword);
- nlus.szProxyAuthUser = NEWSTR_ALLOCA(nlus.szProxyAuthUser);
- nlus.szProxyServer = NEWSTR_ALLOCA(nlus.szProxyServer);
- nlus.szIncomingPorts = NEWSTR_ALLOCA(nlus.szIncomingPorts);
- nlus.szOutgoingPorts = NEWSTR_ALLOCA(nlus.szOutgoingPorts);
- Netlib_SetUserSettingsByName(ps.item[i].ModuleName, &nlus);
- }
- }
- Free_Proxy_Settings_List( &ps );
+void Set_Miranda_Proxy_Status(char proxy)
+{
+ PROXY_SETTINGS ps;
+ NETLIBUSERSETTINGS nlus;
+ int i;
+
+ if (proxy < 0)
+ return;
+ Create_Proxy_Settings_List(&ps);
+ for (i = 0; i < ps.count; i++) {
+ if (ps.item[i].SettingName[0] != 0)
+ db_set_b(NULL, ps.item[i].ModuleName, ps.item[i].SettingName, proxy);
+ ZeroMemory(&nlus, sizeof(nlus));
+ nlus.cbSize = sizeof(nlus);
+ if (Netlib_GetUserSettingsByName(ps.item[i].ModuleName, &nlus)) {
+ nlus.useProxy = proxy;
+ nlus.szProxyAuthPassword = NEWSTR_ALLOCA(nlus.szProxyAuthPassword);
+ nlus.szProxyAuthUser = NEWSTR_ALLOCA(nlus.szProxyAuthUser);
+ nlus.szProxyServer = NEWSTR_ALLOCA(nlus.szProxyServer);
+ nlus.szIncomingPorts = NEWSTR_ALLOCA(nlus.szIncomingPorts);
+ nlus.szOutgoingPorts = NEWSTR_ALLOCA(nlus.szOutgoingPorts);
+ Netlib_SetUserSettingsByName(ps.item[i].ModuleName, &nlus);
+ }
+ }
+ Free_Proxy_Settings_List(&ps);
}
/* ################################################################################ */
-char Get_IE_Proxy_Status (void) {
- INTERNET_PER_CONN_OPTION_LIST list;
- INTERNET_PER_CONN_OPTION option[1];
- unsigned long nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
+char Get_IE_Proxy_Status(void)
+{
+ INTERNET_PER_CONN_OPTION_LIST list;
+ INTERNET_PER_CONN_OPTION option[1];
+ unsigned long nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
- option[0].dwOption = INTERNET_PER_CONN_FLAGS;
+ option[0].dwOption = INTERNET_PER_CONN_FLAGS;
- list.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
- list.pszConnection = NULL;
- list.dwOptionCount = 1;
- list.dwOptionError = 0;
- list.pOptions = option;
+ list.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
+ list.pszConnection = NULL;
+ list.dwOptionCount = 1;
+ list.dwOptionError = 0;
+ list.pOptions = option;
- if(!InternetQueryOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &list, &nSize)) return -1;
+ if (!InternetQueryOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &list, &nSize))
+ return -1;
- return
- option[0].Value.dwValue & PROXY_TYPE_PROXY ? 1 : 0;
+ return option[0].Value.dwValue & PROXY_TYPE_PROXY ? 1 : 0;
}
/* ################################################################################ */
-void Set_IE_Proxy_Status (char proxy) {
- INTERNET_PER_CONN_OPTION_LIST list;
- INTERNET_PER_CONN_OPTION option[1];
- unsigned long nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
+void Set_IE_Proxy_Status(char proxy)
+{
+ INTERNET_PER_CONN_OPTION_LIST list;
+ INTERNET_PER_CONN_OPTION option[1];
+ unsigned long nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
- if ( proxy < 0 ) return;
- option[0].dwOption = INTERNET_PER_CONN_FLAGS;
- option[0].Value.dwValue = proxy ? PROXY_TYPE_PROXY | PROXY_TYPE_DIRECT : PROXY_TYPE_DIRECT;
+ if (proxy < 0)
+ return;
+ option[0].dwOption = INTERNET_PER_CONN_FLAGS;
+ option[0].Value.dwValue = proxy ? PROXY_TYPE_PROXY | PROXY_TYPE_DIRECT : PROXY_TYPE_DIRECT;
- list.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
- list.pszConnection = NULL;
- list.dwOptionCount = 1;
- list.dwOptionError = 0;
- list.pOptions = option;
+ list.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
+ list.pszConnection = NULL;
+ list.dwOptionCount = 1;
+ list.dwOptionError = 0;
+ list.pOptions = option;
- if(!InternetSetOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &list, nSize)) return;
+ if (!InternetSetOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &list, nSize))
+ return;
- InternetQueryOption( NULL, INTERNET_OPTION_SETTINGS_CHANGED , NULL, 0 );
- InternetQueryOption( NULL, INTERNET_OPTION_REFRESH , NULL, 0 );
+ InternetQueryOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
+ InternetQueryOption(NULL, INTERNET_OPTION_REFRESH, NULL, 0);
}
/* ################################################################################ */
-char Get_Firefox_Proxy_Status (void) {
- wchar_t path[MAX_PATH];
- wchar_t prefs[MAX_PATH];
- char line[500];
- FILE *fP;
- struct _stat info;
- struct _wfinddata_t dir;
- long hFile;
- char *setting;
- int p, proxy;
-
- ZeroMemory(&info, sizeof(info));
- proxy = PROXY_NO_CONFIG;
- if ( ! SHGetSpecialFolderPath(NULL, path, CSIDL_APPDATA, 0) ) return proxy;
- mir_wstrcat(path, L"\\Mozilla\\Firefox\\Profiles\\*");
- if( (hFile = _wfindfirst( path, &dir )) != -1L ) {
- do {
- if (! (dir.attrib & _A_SUBDIR) || dir.name[0] == '.') continue;
- mir_wstrcpy(prefs, path); prefs[mir_wstrlen(prefs)-1] = 0;
- mir_wstrcat(prefs, dir.name);
- mir_wstrcat(prefs, L"\\prefs.js");
- if ( (fP = _wfopen(prefs, L"r")) != NULL ) {
- p = 0;
- while ( fgets(line, 500, fP) ) {
- if ( (setting = strstr( line, "user_pref(\"network.proxy.type\",")) != NULL ) {
- setting += 31;
- p = atoi(setting);
- p = p == 3 ? 0 : p > 0;
- break;
- }
- }
- fclose(fP);
- proxy = proxy == -2 ? p : (proxy == p ? p : -1);
- }
- } while (_wfindnext( hFile, &dir ) == 0);
- _findclose( hFile );
- }
- return proxy;
+char Get_Firefox_Proxy_Status(void)
+{
+ wchar_t path[MAX_PATH];
+ wchar_t prefs[MAX_PATH];
+ char line[500];
+ FILE *fP;
+ struct _stat info;
+ struct _wfinddata_t dir;
+ long hFile;
+ char *setting;
+ int p, proxy;
+
+ ZeroMemory(&info, sizeof(info));
+ proxy = PROXY_NO_CONFIG;
+ if (!SHGetSpecialFolderPath(NULL, path, CSIDL_APPDATA, 0))
+ return proxy;
+ mir_wstrcat(path, L"\\Mozilla\\Firefox\\Profiles\\*");
+ if ((hFile = _wfindfirst(path, &dir)) != -1L) {
+ do {
+ if (!(dir.attrib & _A_SUBDIR) || dir.name[0] == '.')
+ continue;
+ mir_wstrcpy(prefs, path);
+ prefs[mir_wstrlen(prefs) - 1] = 0;
+ mir_wstrcat(prefs, dir.name);
+ mir_wstrcat(prefs, L"\\prefs.js");
+ if ((fP = _wfopen(prefs, L"r")) != NULL) {
+ p = 0;
+ while (fgets(line, 500, fP)) {
+ if ((setting = strstr(line, "user_pref(\"network.proxy.type\",")) != NULL) {
+ setting += 31;
+ p = atoi(setting);
+ p = p == 3 ? 0 : p > 0;
+ break;
+ }
+ }
+ fclose(fP);
+ proxy = proxy == -2 ? p : (proxy == p ? p : -1);
+ }
+ } while (_wfindnext(hFile, &dir) == 0);
+ _findclose(hFile);
+ }
+ return proxy;
}
/* ################################################################################ */
-void Set_Firefox_Proxy_Status (char proxy) {
- wchar_t path[MAX_PATH];
- wchar_t prefsR[MAX_PATH];
- wchar_t prefsW[MAX_PATH];
- char line[500];
- FILE *fR, *fW;
- struct _stat info;
- struct _wfinddata_t dir;
- long hFile;
- char done;
-
- ZeroMemory(&info, sizeof(info));
- if ( ! SHGetSpecialFolderPath(NULL, path, CSIDL_APPDATA, 0) ) return;
- mir_wstrcat(path, L"\\Mozilla\\Firefox\\Profiles\\*");
- if( (hFile = _wfindfirst( path, &dir )) != -1L ) {
- do {
- if (! (dir.attrib & _A_SUBDIR) || dir.name[0] == '.') continue;
- mir_wstrcpy(prefsR, path); prefsR[mir_wstrlen(prefsR)-1] = 0;
- mir_wstrcat(prefsR, dir.name);
- mir_wstrcat(prefsR, L"\\prefs.js");
- done = 0;
- if ((fR = _wfopen(prefsR, L"r")) != NULL) {
- mir_wstrcpy(prefsW, prefsR);
- mir_wstrcat(prefsW, L"~");
- if ((fW = _wfopen(prefsW, L"w")) != NULL) {
- while ( fgets(line, 500, fR) ) {
- if ( strstr( line, "\"network.proxy.type\"")) continue;
- if ( strstr( line, "\"network.proxy") && ! done) {
- fprintf(fW, "user_pref(\"network.proxy.type\", %d);\n", proxy);
- done = 1;
- }
- fprintf(fW, "%s", line);
- }
- if (! done) {
- fprintf(fW, "user_pref(\"network.proxy.type\", %d);\n", proxy);
- done = 1;
- }
- fclose(fW);
- }
- fclose(fR);
- }
- if ( done ) {
- _wremove(prefsR);
- _wrename(prefsW, prefsR);
- }
- } while (_wfindnext( hFile, &dir ) == 0);
- _findclose( hFile );
- }
+void Set_Firefox_Proxy_Status(char proxy)
+{
+ wchar_t path[MAX_PATH];
+ wchar_t prefsR[MAX_PATH];
+ wchar_t prefsW[MAX_PATH];
+ char line[500];
+ FILE *fR, *fW;
+ struct _stat info;
+ struct _wfinddata_t dir;
+ long hFile;
+ char done;
+
+ ZeroMemory(&info, sizeof(info));
+ if (!SHGetSpecialFolderPath(NULL, path, CSIDL_APPDATA, 0))
+ return;
+ mir_wstrcat(path, L"\\Mozilla\\Firefox\\Profiles\\*");
+ if ((hFile = _wfindfirst(path, &dir)) != -1L) {
+ do {
+ if (!(dir.attrib & _A_SUBDIR) || dir.name[0] == '.')
+ continue;
+ mir_wstrcpy(prefsR, path);
+ prefsR[mir_wstrlen(prefsR) - 1] = 0;
+ mir_wstrcat(prefsR, dir.name);
+ mir_wstrcat(prefsR, L"\\prefs.js");
+ done = 0;
+ if ((fR = _wfopen(prefsR, L"r")) != NULL) {
+ mir_wstrcpy(prefsW, prefsR);
+ mir_wstrcat(prefsW, L"~");
+ if ((fW = _wfopen(prefsW, L"w")) != NULL) {
+ while (fgets(line, 500, fR)) {
+ if (strstr(line, "\"network.proxy.type\""))
+ continue;
+ if (strstr(line, "\"network.proxy") && !done) {
+ fprintf(fW, "user_pref(\"network.proxy.type\", %d);\n", proxy);
+ done = 1;
+ }
+ fprintf(fW, "%s", line);
+ }
+ if (!done) {
+ fprintf(fW, "user_pref(\"network.proxy.type\", %d);\n", proxy);
+ done = 1;
+ }
+ fclose(fW);
+ }
+ fclose(fR);
+ }
+ if (done) {
+ _wremove(prefsR);
+ _wrename(prefsW, prefsR);
+ }
+ } while (_wfindnext(hFile, &dir) == 0);
+ _findclose(hFile);
+ }
}
/* ################################################################################ */
-char Firefox_Installed(void) {
- wchar_t path[MAX_PATH];
- struct _stat info;
- ZeroMemory(&info, sizeof(info));
-
- if ( SHGetSpecialFolderPath(NULL, path, CSIDL_APPDATA, 0) ) {
- mir_wstrcat(path, L"\\Mozilla\\Firefox\\Profiles");
- if ( _wstat(path, &info) == 0 && info.st_mode & _S_IFDIR == _S_IFDIR) {
- return 1;
- }
- }
- return 0;
+char Firefox_Installed(void)
+{
+ wchar_t path[MAX_PATH];
+ struct _stat info;
+ ZeroMemory(&info, sizeof(info));
+
+ if (SHGetSpecialFolderPath(NULL, path, CSIDL_APPDATA, 0)) {
+ mir_wstrcat(path, L"\\Mozilla\\Firefox\\Profiles");
+ if (_wstat(path, &info) == 0 && info.st_mode & _S_IFDIR == _S_IFDIR) {
+ return 1;
+ }
+ }
+ return 0;
}
/* ################################################################################ */
-void Disconnect_All_Protocols (PPROTO_SETTINGS settings, int disconnect) {
- int count, c, i, status;
- PROTOCOLDESCRIPTOR **plist;
-
- Proto_EnumProtocols(&c, &plist);
-
- ZeroMemory( settings, sizeof (PROTO_SETTINGS) );
- settings->item = (PPROTO_SETTING)mir_alloc( c * sizeof(PROTO_SETTING) );
- ZeroMemory( settings->item, c * sizeof(PROTO_SETTING) );
-
- for( i=0 ; i<c ; i++ ) {
- if ( plist[i]->type != PROTOTYPE_PROTOCOL ) continue;
- if ( CallProtoService( plist[i]->szName, PS_GETCAPS, PFLAGNUM_2, 0 ) == 0 ) continue;
- status = CallProtoService( plist[i]->szName, PS_GETSTATUS, 0, 0 );
- mir_strncpy( settings->item[count].ProtoName, plist[i]->szName, MAXLABELLENGTH-1 );
- if ( status != ID_STATUS_OFFLINE && disconnect ) {
- CallProtoService( plist[i]->szName, PS_SETSTATUS, ID_STATUS_OFFLINE, 0 );
- }
- if ( status < MAX_CONNECT_RETRIES ) status = ID_STATUS_ONLINE;
- if ( status == ID_STATUS_OFFLINE ) status = ID_STATUS_ONLINE;
- settings->item[count].Status = status;
- count++;
- }
- settings->count = count;
+void Disconnect_All_Protocols(PPROTO_SETTINGS settings, int disconnect)
+{
+ int count, c, i, status;
+ PROTOCOLDESCRIPTOR **plist;
+
+ Proto_EnumProtocols(&c, &plist);
+
+ ZeroMemory(settings, sizeof(PROTO_SETTINGS));
+ settings->item = (PPROTO_SETTING)mir_alloc(c * sizeof(PROTO_SETTING));
+ ZeroMemory(settings->item, c * sizeof(PROTO_SETTING));
+
+ for (i = 0; i < c; i++) {
+ if (plist[i]->type != PROTOTYPE_PROTOCOL)
+ continue;
+ if (CallProtoService(plist[i]->szName, PS_GETCAPS, PFLAGNUM_2, 0) == 0)
+ continue;
+ status = CallProtoService(plist[i]->szName, PS_GETSTATUS, 0, 0);
+ mir_strncpy(settings->item[count].ProtoName, plist[i]->szName, MAXLABELLENGTH - 1);
+ if (status != ID_STATUS_OFFLINE && disconnect) {
+ CallProtoService(plist[i]->szName, PS_SETSTATUS, ID_STATUS_OFFLINE, 0);
+ }
+ if (status < MAX_CONNECT_RETRIES)
+ status = ID_STATUS_ONLINE;
+ if (status == ID_STATUS_OFFLINE)
+ status = ID_STATUS_ONLINE;
+ settings->item[count].Status = status;
+ count++;
+ }
+ settings->count = count;
}
/* ################################################################################ */
-void Connect_All_Protocols (PPROTO_SETTINGS settings) {
- int i;
- for( i=0 ; i<settings->count ; i++ ) {
- CallProtoService( settings->item[i].ProtoName, PS_SETSTATUS, settings->item[i].Status, 0 );
- }
- free( settings->item );
- ZeroMemory( settings, sizeof (PROTO_SETTINGS) );
+void Connect_All_Protocols(PPROTO_SETTINGS settings)
+{
+ int i;
+ for (i = 0; i < settings->count; i++) {
+ CallProtoService(settings->item[i].ProtoName, PS_SETSTATUS, settings->item[i].Status, 0);
+ }
+ free(settings->item);
+ ZeroMemory(settings, sizeof(PROTO_SETTINGS));
}
diff --git a/plugins/ProxySwitch/src/stdafx.h b/plugins/ProxySwitch/src/stdafx.h
index b29a511db7..b274d40620 100644
--- a/plugins/ProxySwitch/src/stdafx.h
+++ b/plugins/ProxySwitch/src/stdafx.h
@@ -51,33 +51,33 @@ struct CMPlugin : public PLUGIN<CMPlugin>
// structure holding network interface description and information
typedef struct {
- char *AdapterName;
- wchar_t *FriendlyName;
- char *IPstr;
- LONG *IP;
- UCHAR IPcount;
- HGENMENU MenuItem;
- BOOL Bound;
- BOOL Disabled;
+ char *AdapterName;
+ wchar_t *FriendlyName;
+ char *IPstr;
+ LONG *IP;
+ UCHAR IPcount;
+ HGENMENU MenuItem;
+ BOOL Bound;
+ BOOL Disabled;
} NETWORK_INTERFACE, *PNETWORK_INTERFACE;
// list of structures holding network interfaces description and information
typedef struct {
- PNETWORK_INTERFACE item;
- UCHAR count;
+ PNETWORK_INTERFACE item;
+ UCHAR count;
} NETWORK_INTERFACE_LIST;
// structure holding an information about local end of an active connections
typedef struct {
- ULONG IP;
- unsigned short Port;
+ ULONG IP;
+ unsigned short Port;
} ACTIVE_CONNECTION, *PACTIVE_CONNECTION;
// list of structures holding local end of active connections
typedef struct {
- PACTIVE_CONNECTION item;
- UCHAR count;
- UCHAR _alloc;
+ PACTIVE_CONNECTION item;
+ UCHAR count;
+ UCHAR _alloc;
} ACTIVE_CONNECTION_LIST;
@@ -117,8 +117,8 @@ void SaveSettings(void);
void PopupMyIPAddrs(wchar_t *msg);
-int OptInit(WPARAM wParam,LPARAM lParam);
-int Init (WPARAM wParam,LPARAM lParam);
+int OptInit(WPARAM wParam, LPARAM lParam);
+int Init(WPARAM wParam, LPARAM lParam);
void UpdateInterfacesMenu(void);
void UpdatePopupMenu(BOOL State);
@@ -139,33 +139,33 @@ void UpdatePopupMenu(BOOL State);
#define CMP_END 3
typedef struct {
- unsigned char cmpType;
- union { ULONG loIP; ULONG net; };
- union { ULONG hiIP; ULONG mask; };
+ unsigned char cmpType;
+ union { ULONG loIP; ULONG net; };
+ union { ULONG hiIP; ULONG mask; };
} IP_RANGE, *PIP_RANGE;
typedef struct {
- PIP_RANGE item;
- UCHAR count;
+ PIP_RANGE item;
+ UCHAR count;
} IP_RANGE_LIST;
-void IP_WatchDog (void *arg);
+void IP_WatchDog(void *arg);
-int Create_NIF_List (NETWORK_INTERFACE_LIST *list);
-int Create_NIF_List_Ex (NETWORK_INTERFACE_LIST *list);
-BOOL Compare_NIF_Lists (NETWORK_INTERFACE_LIST list1, NETWORK_INTERFACE_LIST list2);
-int IncUpdate_NIF_List (NETWORK_INTERFACE_LIST *trg, NETWORK_INTERFACE_LIST src);
-wchar_t *Print_NIF_List (NETWORK_INTERFACE_LIST list, wchar_t *msg);
-wchar_t *Print_NIF (PNETWORK_INTERFACE nif);
-void Free_NIF (PNETWORK_INTERFACE nif);
-void Free_NIF_List (NETWORK_INTERFACE_LIST *list);
+int Create_NIF_List(NETWORK_INTERFACE_LIST *list);
+int Create_NIF_List_Ex(NETWORK_INTERFACE_LIST *list);
+BOOL Compare_NIF_Lists(NETWORK_INTERFACE_LIST list1, NETWORK_INTERFACE_LIST list2);
+int IncUpdate_NIF_List(NETWORK_INTERFACE_LIST *trg, NETWORK_INTERFACE_LIST src);
+wchar_t *Print_NIF_List(NETWORK_INTERFACE_LIST list, wchar_t *msg);
+wchar_t *Print_NIF(PNETWORK_INTERFACE nif);
+void Free_NIF(PNETWORK_INTERFACE nif);
+void Free_NIF_List(NETWORK_INTERFACE_LIST *list);
-int Create_Range_List (IP_RANGE_LIST *list, wchar_t *str, BOOL prioritized );
-int Match_Range_List (IP_RANGE_LIST range, NETWORK_INTERFACE_LIST ip);
-void Free_Range_List (IP_RANGE_LIST *list);
+int Create_Range_List(IP_RANGE_LIST *list, wchar_t *str, BOOL prioritized);
+int Match_Range_List(IP_RANGE_LIST range, NETWORK_INTERFACE_LIST ip);
+void Free_Range_List(IP_RANGE_LIST *list);
-int ManageConnections (WPARAM wParam,LPARAM lParam);
-void UnboundConnections (LONG *OldIP, LONG *NewIP);
+int ManageConnections(WPARAM wParam, LPARAM lParam);
+void UnboundConnections(LONG *OldIP, LONG *NewIP);
/**** Proxy/Connection Modification and Query routines *************************************/
@@ -177,36 +177,36 @@ void UnboundConnections (LONG *OldIP, LONG *NewIP);
#define PROXY_ENABLED 1
typedef struct {
- char ModuleName[MAXLABELLENGTH];
- char SettingName[MAXLABELLENGTH];
+ char ModuleName[MAXLABELLENGTH];
+ char SettingName[MAXLABELLENGTH];
} PROXY_SETTING, *PPROXY_SETTING;
typedef struct {
- PPROXY_SETTING item;
- UCHAR count;
- const char *_current_module;
- UCHAR _alloc;
+ PPROXY_SETTING item;
+ UCHAR count;
+ const char *_current_module;
+ UCHAR _alloc;
} PROXY_SETTINGS, *PPROXY_SETTINGS;
typedef struct {
- char ProtoName[MAXLABELLENGTH];
- DWORD Status;
+ char ProtoName[MAXLABELLENGTH];
+ DWORD Status;
} PROTO_SETTING, *PPROTO_SETTING;
typedef struct {
- PPROTO_SETTING item;
- UCHAR count;
+ PPROTO_SETTING item;
+ UCHAR count;
} PROTO_SETTINGS, *PPROTO_SETTINGS;
-void Create_Proxy_Settings_List ( PPROXY_SETTINGS ps );
-void Free_Proxy_Settings_List( PPROXY_SETTINGS ps );
-char Get_Miranda_Proxy_Status (void);
-void Set_Miranda_Proxy_Status (char proxy);
-char Get_IE_Proxy_Status (void);
-void Set_IE_Proxy_Status (char proxy);
-char Get_Firefox_Proxy_Status (void);
-void Set_Firefox_Proxy_Status (char proxy);
+void Create_Proxy_Settings_List(PPROXY_SETTINGS ps);
+void Free_Proxy_Settings_List(PPROXY_SETTINGS ps);
+char Get_Miranda_Proxy_Status(void);
+void Set_Miranda_Proxy_Status(char proxy);
+char Get_IE_Proxy_Status(void);
+void Set_IE_Proxy_Status(char proxy);
+char Get_Firefox_Proxy_Status(void);
+void Set_Firefox_Proxy_Status(char proxy);
char Firefox_Installed(void);
-void Disconnect_All_Protocols (PPROTO_SETTINGS settings, int disconnect);
-void Connect_All_Protocols (PPROTO_SETTINGS settings);
+void Disconnect_All_Protocols(PPROTO_SETTINGS settings, int disconnect);
+void Connect_All_Protocols(PPROTO_SETTINGS settings);
#endif