Mercurial > pidgin
comparison src/win_gaim.c @ 11193:e865bdbbf91d
[gaim-migrate @ 13316]
Default Environmental proxy to the IE http proxy.
committer: Tailor Script <tailor@pidgin.im>
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Sat, 06 Aug 2005 04:05:09 +0000 |
parents | 52d6b10025ca |
children | 9f6df41df587 |
comparison
equal
deleted
inserted
replaced
11192:fd6232f9a418 | 11193:e865bdbbf91d |
---|---|
37 /** Currently missing from win32-api */ | 37 /** Currently missing from win32-api */ |
38 #ifndef ATTACH_PARENT_PROCESS | 38 #ifndef ATTACH_PARENT_PROCESS |
39 # define ATTACH_PARENT_PROCESS -1 | 39 # define ATTACH_PARENT_PROCESS -1 |
40 #endif | 40 #endif |
41 | 41 |
42 #define WIN32_PROXY_REGKEY "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings" | |
43 | |
42 typedef int (CALLBACK* LPFNGAIMMAIN)(HINSTANCE, int, char**); | 44 typedef int (CALLBACK* LPFNGAIMMAIN)(HINSTANCE, int, char**); |
43 typedef void (CALLBACK* LPFNSETDLLDIRECTORY)(LPCTSTR); | 45 typedef void (CALLBACK* LPFNSETDLLDIRECTORY)(LPCTSTR); |
44 typedef BOOL (CALLBACK* LPFNATTACHCONSOLE)(DWORD); | 46 typedef BOOL (CALLBACK* LPFNATTACHCONSOLE)(DWORD); |
45 | 47 |
46 /* | 48 /* |
71 ((key == HKEY_LOCAL_MACHINE) ? "HKLM" : | 73 ((key == HKEY_LOCAL_MACHINE) ? "HKLM" : |
72 (key == HKEY_CURRENT_USER) ? "HKCU" : | 74 (key == HKEY_CURRENT_USER) ? "HKCU" : |
73 "???"), | 75 "???"), |
74 sub_key, val_name, retv, szBuf); | 76 sub_key, val_name, retv, szBuf); |
75 } | 77 } |
76 RegCloseKey(key); | 78 RegCloseKey(hkey); |
77 } | 79 } |
78 else { | 80 else { |
79 TCHAR szBuf[80]; | 81 TCHAR szBuf[80]; |
80 | 82 |
81 FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, retv, 0, | 83 FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, retv, 0, |
281 } | 283 } |
282 } | 284 } |
283 return TRUE; | 285 return TRUE; |
284 } | 286 } |
285 | 287 |
288 static void wgaim_set_proxy() { | |
289 DWORD regval = 1; | |
290 DWORD reglen = sizeof(DWORD); | |
291 | |
292 /* If the proxy server environment variables are already set, | |
293 * we shouldn't override them */ | |
294 if (getenv("HTTP_PROXY") || getenv("http_proxy") || getenv("HTTPPROXY")) | |
295 return; | |
296 | |
297 if (read_reg_string(HKEY_CURRENT_USER, WIN32_PROXY_REGKEY, "ProxyEnable", | |
298 (LPBYTE) ®val, ®len) && (regval & 1)) { | |
299 char proxy_server[2048]; | |
300 char *c = NULL; | |
301 reglen = sizeof(proxy_server); | |
302 | |
303 if (!read_reg_string(HKEY_CURRENT_USER, WIN32_PROXY_REGKEY , "ProxyServer", | |
304 (LPBYTE) &proxy_server, ®len)) | |
305 return; | |
306 | |
307 if ((reglen > strlen("http=")) && (c = strstr(proxy_server, "http="))) { | |
308 char *d; | |
309 c += strlen("http="); | |
310 d = strchr(c, ';'); | |
311 if (d) { | |
312 *d = '\0'; | |
313 } | |
314 /* c now points the proxy server (and port) */ | |
315 } | |
316 | |
317 if (c) { | |
318 const char envstr_prefix[] = "HTTP_PROXY=http://"; | |
319 char envstr[sizeof(envstr_prefix) + strlen(c) + 1]; | |
320 snprintf(envstr, sizeof(envstr), "%s%s", envstr_prefix, c); | |
321 printf("Setting HTTP Proxy: %s\n", envstr); | |
322 putenv(envstr); | |
323 } | |
324 } | |
325 | |
326 } | |
327 | |
286 #ifdef __GNUC__ | 328 #ifdef __GNUC__ |
287 # ifndef _stdcall | 329 # ifndef _stdcall |
288 # define _stdcall __attribute__((stdcall)) | 330 # define _stdcall __attribute__((stdcall)) |
289 # endif | 331 # endif |
290 #endif | 332 #endif |
334 } | 376 } |
335 | 377 |
336 if(!getenv("GAIM_NO_DLL_CHECK")) | 378 if(!getenv("GAIM_NO_DLL_CHECK")) |
337 dll_prep(); | 379 dll_prep(); |
338 | 380 |
339 wgaim_set_locale(); | 381 wgaim_set_locale(); |
340 if(!getenv("GAIM_MULTI_INST") && !wgaim_set_running()) | 382 if(!getenv("GAIM_MULTI_INST") && !wgaim_set_running()) |
341 return 0; | 383 return 0; |
384 | |
385 wgaim_set_proxy(); | |
342 | 386 |
343 /* Now we are ready for Gaim .. */ | 387 /* Now we are ready for Gaim .. */ |
344 if((hmod=LoadLibrary("gaim.dll"))) { | 388 if((hmod=LoadLibrary("gaim.dll"))) { |
345 gaim_main = (LPFNGAIMMAIN)GetProcAddress(hmod, "gaim_main"); | 389 gaim_main = (LPFNGAIMMAIN)GetProcAddress(hmod, "gaim_main"); |
346 } | 390 } |