Set CREATE_NO_WINDOW in tor_spawn_background.

This flag prevents the creation of a console window popup on Windows. We
need it for pluggable transport executables--otherwise you get blank
console windows when you launch the 3.x browser bundle with transports
enabled.

http://msdn.microsoft.com/en-us/library/ms684863.aspx#CREATE_NO_WINDOW

The browser bundles that used Vidalia used to set this flag when
launching tor itself; it was apparently inherited by the pluggable
transports launched by tor. In the 3.x bundles, tor is launched by some
JavaScript code, which doesn't have the ability to set CREATE_NO_WINDOW.
tor itself is now being compiled with the -mwindows option, so that it
is a GUI application, not a console application, and doesn't show a
console window in any case. This workaround doesn't work for pluggable
transports, because they need to be able to write control messages to
stdout.

https://trac.torproject.org/projects/tor/ticket/9444#comment:30
This commit is contained in:
David Fifield 2013-12-05 04:56:28 +00:00 committed by Nick Mathewson
parent c64d522740
commit b600495441
2 changed files with 5 additions and 1 deletions

4
changes/bug10297 Normal file
View file

@ -0,0 +1,4 @@
o Minor features:
- Spawn background processes using the CREATE_NO_WINDOW flag on
Windows, in order to prevent a console window from appearing.
Resolves ticket 10297.

View file

@ -3803,7 +3803,7 @@ tor_spawn_background(const char *const filename, const char **argv,
TRUE, // handles are inherited
/*(TODO: set CREATE_NEW CONSOLE/PROCESS_GROUP to make GetExitCodeProcess()
* work?) */
0, // creation flags
CREATE_NO_WINDOW, // creation flags
(env==NULL) ? NULL : env->windows_environment_block,
NULL, // use parent's current directory
&siStartInfo, // STARTUPINFO pointer