📄 history.txt
字号:
WinVNC Version History
Version 3.3.3 (VNC Version 3.3.3, revision 9)
Changes from Version 3.3.3 Revision 8:
Fixed handling of empty (match all) AuthHosts filters.
WinVNC.log will now be moved to WinVNC.log.bak when WinVNC runs.
Version 3.3.3 (VNC Version 3.3.3, revision 8)
Changes from Version 3.3.3 Revision 7:
-=- Bug Fixes to WinVNC:
Fixed clipboard handling.
Fixed AddClient semantics in vncServer to avoid a socket leak.
Fixed AuthHosts dialog display. Now flashes titlebar/tray button if not foreground window.
Fixed AuthHosts string parsing. Filters such as 10.0.0.1 no longer match 10.0.0.10.
QuerySetting didn't work correctly if the AuthHosts string was empty. Fixed.
Closing the screen-saver now works, so it's back in there.
Changed the shutdown-dialog behaviour. It now only operates in application mode.
-=- Bug Fixes to VNCHooks:
Added HooksType() function to VNChooks so that the library may be replaced with a reliable
hooking version easily.
VNCHooks DLL did not remove properties from windows correctly when
UnsetHooks() was called. Fixed.
-=- Minor Fixes
Implemented the wallpaper-culling feature during remote connections.
Added automatic culling of "idle" connections, if required, via the IdleTimeout setting.
An idle connection is one in which the client has sent no data for a fixed period,
whether the data be an update request, input events, or clipboard data.
Only incoming connections are now checked for validity. Outgoing (Add New Client)
or CORBA-initiated connections are not checked via AuthHosts.
Version 3.3.3 (VNC Version 3.3.3, revision 7)
Changes from Version 3.3.3 Revision 6:
WinVNC did not correctly handle Winsock1.1, causing all client connections to be
erroneously dropped by the anti-DoS code. Now fixed.
Version 3.3.3 (VNC Version 3.3.3, revision 6)
Changes from Version 3.3.3 Revision 4:
The anti denial-of-service blacklist code was very buggy. It's now fixed.
An serious potential deadlock condition in the negotiation phase of new
clients has been fixed. The problem was incredibly rare on uniprocessors
but much more noticable on multiprocessors, unsurprisingly.
Pointer is now rendered slightly better.
Version 3.3.3 (VNC Version 3.3.3, revision 4)
Changes from Version 3.3.3 Revision 3:
Implemented some simple Denial-of-Service protection. After five consecutive failed
connection attempts from a client, that client is "blacklisted" for ten seconds.
In addition, connections which hang before the authentication stage has completed are
timed out after thirty seconds, to prevent malicious users gradually eating up socket
resources.
Corrected a bug initialising the back-buffer.
Added hooking for dialog boxes, menus and scrollbars. Seems to fix some dialogs but not
many scrollbars or menus..
Improved the GetChangesRect code with some alignment patches suggested by Will Dean.
Fixed an *IDIOTIC* bug in the handling of user-specific settings. They were completely
broken before. Now they should work. I'm such an idiot. Idiot idiot idiot.
See MS Knowledge Base article Q168877 & Q199190.
The idiot bug-fix above broke roaming profiles on NT domains! That's now fixed, too.
Idiot idiot idiot.
Added a dialog to query whether to accept or reject incoming connections. The dialog is
currently controlled ONLY via the registry! The AuthHosts setting is now extended, while
some new user-specific settings are provided so that users can tailor the query feature.
Relevant keys are:
- QuerySetting (DWORD) (local&global user-specific)
[Least secure]
0 - Accept or Query. If AuthHosts says Reject then query, otherwise Accept.
1 - Accept or Reject. Reject if AuthHosts says so, otherwise Accept.
2 - Obey AuthHosts. Obey AuthHosts Accept, Query, Reject settings. [Default!]
3 - Query or Reject. If AuthHosts says Reject then Reject, otherwise Query.
4 - Ultimate Paranoia. If AuthHosts says Accept then Query, otherwise Reject!
[Most secure]
Summary: Actual Effect
Setting Accept Query Reject
0 a a q
1 a a r
2 a q r
3 q q r
4 q r r
- QueryTimeout (DWORD) (local&global user-specific)
Number of seconds before Accept/Reject dialog should timeout and reject.
- AuthHosts (SZ) (machine-local)
Match terms may now start with "-", "+" or "?". "?" indicates that the connection
attempt should be queried.
Version 3.3.3 (VNC Version 3.3.3, revision 3)
Changes from Version 3.3.3 Revision 2:
Implemented Will Dean's DIBsection patch to retrive screen data. This reduces
both the retrieval time & the memory usage of WinVNC but currently only works
for VNC-format-compatible 16 and 32 bit displays. If your display is incompatible
then WinVNC falls back to the old, slow, memory hungry mode.
Fixed a bug in VNCHooks which cause very large updates to be spuriously created on occasion.
vncKeymap now filters out the three Lock keys (CapsLock, NumLock, ScrollLock), so that
they can be safely used at the client side without generating random keystrokes on the
server.
Version 3.3.3 (VNC Version 3.3.3, revision 2)
Changes from Version 3.3.3 Revision 1:
Added the new "Disable Local Keyboard & Pointer" option to the Properties dialog.
This features currently allows the keyboard & pointer of the sever machine to be
disabled while a remote connection is in progress.
The feature only works under Windows NT at present.
NB:This is a BETA feature, with a known limitation - if the setting
is changed then all clients must disconnect and reconnect to achieve the desired
effect.
The -connect command-line option has been added, allowing new outgoing connections
to be made using a script or an icon.
The Add New Client and -connect options now make shared outgoing connections, since
this is usually preferable to unshared outgoing connections.
Improved the way preferences are loaded, reducing the number of times the client will
be disconnected when settings are loaded & saved.
Version 3.3.3 (VNC Version 3.3.3, revision 1)
Release version, patched for HTML bug below.
[The initial 3.3.3 release featured a bug in the rendering of HTML for the Java-based
viewer. 3.3.3 was quickly withdrawn and 3.3.3R1 is now the base Version 3.3.3 release.]
-=- NEW FEATURES:
REGISTRY SETTINGS ARE NOW LOADED CORRECTLY FROM THE CURRENT_USER REGISTRY HIVE!
When running as a service under Windows NT, WinVNC was unable to correctly load
settings stored in the current user's HKEY_CURRENT_USER hive. As a workaround
for this, a special helper-hook is installed when the service itself is
installed. The helper-hook runs when a user logs in and passes enough information
to the WinVNC service for it to locate their preferences correctly.
If the helper hook fails to install or isn't run for some reason, then WinVNC
will continue to operate based on ALL the WinVNC HKEY_LOCAL_MACHINE settings.
A new command-line option, -defaultsettings, has been added, which will cause the
running WinVNC server to show a Default Properties dialog, through which the default
local properties can be editted. (While the dialog is displayed, the properties used
will be the default ones. When it dissappears, WinVNC reverts to the user's settings.)
Nagle's algorithm is now disabled on all WinVNC connections, decreasing latency
considerably.
Timestamp information is now added in the debug log output.
Limited client IP-address based filtering of connections is now supported.
The new Machine-Local registry setting "AuthHosts" may be specified, and should
be of type "string".
Match terms look like:
+<ip-address-template>
-<ip-address-tamplate>
where ip-address-template is the leftmost bytes of the stringified IP-address,
e.g. 158.97 would match both 158.97.54.1 and 158.97.128.6, for example.
Multiple Match terms may be specified, delimited by the ':' character.
Match terms later in the list take precedence over earlier ones.
e.g. -:+158.97:
[This scheme does not currently filter by DNS name]
In addition to the above, incoming connections may be restricted on a server-wide
basis to being accepted only on the local-loopback interface. This is controlled
through the LoopbackOnly registry setting, which overrides the AllowLoopback and
AuthHosts settings when active.
The WinVNC priority is now increased while processing its message queue and put
back to normal while preparing updates for sending. This results in apparent
increase in performance, particularly when used in conjunction with some common
applications.
The machine's name is now included in the title of the web page used to access the
Java version of the VNC client.
-=- BUG FIXES:
- Major:
Under Windows NT, a handle was leaked whenever the SelectDesktop function was
called to move a thread into a different desktop. In practice, this meant a leak
everytime someone logged in, connected remotely, or used C-A-D to access security
features in NT. Not pretty.
Related to the above fix: When simulating Ctrl-Alt-Del, WinVNC would switch a
dedicated thread into the WinLogon desktop to achieve the desired effect. When
the thread quit, the handle to the WinLogon desktop was not properly freed by
WinNT. This is now worked around by WinVNC internally.
When killing the vncServer object, a race condition occurred because
WaitUntilAuthEmpty() was used to wait for ALL clients being removed - potentially,
there could have been active, unauthorised clients connected to the vncServer
object, which would crash if the server object was deleted before they had quit.
A new function, WaitUntilUnauthEmpty, is now used as well as WaitUntilAuthEmpty,
to remove this race condition.
- Minor:
The LockSetting option was not correctly loaded by the Properties class in some
common cases. This is now fixed.
WinVNC was using ExitWindows but specifying parameters according to the
specification of ExitWindowsEx. ExitWindowsEx is now used instead.
-=- OTHER MODIFICATIONS:
When starting up without a password set, WinVNC will first check whether the
Properties dialog has been disabled with AllowProperties=0 before attempting
to open it for the user to set one. Instead a dialog indicating the problem
will be displayed.
-=- NOTES:
BUGLET:PLANAR vs CHUNKY. It transpires that problems encountered with WinVNC and
16-colour Windows 95 displays are due to Win95 VGA drivers giving a "planar" view
of the world. Internally, Win95 is very bad at handling planar pixels and is
also very bad at making them chunky. WinNT does not have this problem. A new
error dialog has been added to warn about this problem on Win95.
Version 3.3.2 (VNC Version 3.3.2, revision 8)
Changes from revision 7:
Fix in VNCHooks.cpp (part of the WinVNC hooks library) to place
the hook handles in a shared segment of DLL memory, so that they are correctly
accessed by the hook code itself.
Fix in vncKeymap.cpp which should sort out the CapsLock on connect problem.
Added an Initiate Outgoing Connection (Add New Client) dialog. If a machine is
running a vncviewer with the -listen option then WinVNC can be made to export
the display it is managing to this listening viewer.
NOTE : Outgoing connections are treated as 'non-shared'.
NOTES ON BUILDING UNDER VC6:
For compatibility reasons, WinVNC will remain a VC5 distribution for the moment.
However, some problems arise when compiling WinVNC under VC6.
- vncControl.idl is not supplied in the distribution and is ONLY USED
INTERNALLY at the AT&T Labs Cambridge.
It is disabled in the VC5 version of the project but conversion to VC6 format
re-enables it.
Solution : remove vncControl.idl from the project once it is imported into
Visual C++ 6, before compilation.
Fixed minor bug in Log.cpp code relating to invalid handles being returned by file
open call
Version 3.3.2 (VNC Version 3.3.2, revision 7)
Changes from revision 6:
Fixed HANDLE to HINSTANCE casting problem in VNCHooks.cpp, which prevented WinVNC
from compiling under Microsoft Visual C++ 6.0
Tray icon is now refreshed every five seconds. This may help detect dynamically added
IP addresses correctly
Every five seconds, WinVNC will re-attempt to add the tray icon, even under Win95.
If Explorer crashes or Windows 95 is being run then this should ensure the icon appears.
Version 3.3.2 (VNC Version 3.3.2, revision 6)
Changes from revision 5:
Fixed minor protocol non-compliance bug with regard to clients which fail to send
SetPixelFormat messages.
Fixed DOS-prompt polling under Windows 95. DOS boxes are now polled correctly.
Version 3.3.2 (VNC Version 3.3.2, revision 5)
Changes from revision 4:
Prepared WinVNC for release.
Fixed AuthRequired race condition.
Fixed AutoPortSelect bug.
Version 3.3.2 (VNC Version 3.3.2, revision 4)
Changes from revision 3:
Fixed a tray icon bug, in which the tray icon was being produced before the menu
had been loaded.
Replaced the thread package with the latest version, which fixes a few resource leaks.
Mouse events are now produced to reflect those sent on the wire, regardless of whether
the mouse buttons would locally be swapped by the OS. This means that left- or right-
handedness is a client-side feature.
Version 3.3.2 (VNC Version 3.3.2, revision 3)
Changes from revision 2:
SETTINGS REORGANIZED!
The WinVNC registry settings have now been reorganized and improved to allow better
control over individual user's capabilities when running it, whether as an application
or as a service.
Local machine settings are stored under HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3
Local per user settings are stored under HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3/<username>
Local default user settings are stored under HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3/Default
Local no-user settings are stored under HKEY_LOCAL_MACHINE/Software/ORL/WinVNC3/SYSTEM
Global per user settings are stored under HKEY_CURRENT_USER/Software/ORL/WinVNC3
These groups of settings have the following priority:
1. Machine settings are always read, from the machine settings location. Not overridable.
2. Default user settings are read.
3. Local-machine, per-user settings are read for the current user, or for SYSTEM if
there is no current user. These override the Default settings.
4. If AllowProperties is not zero, the global per-user settings are read.
These override both the Default settings & the local-machine, per-user settings.
- Local Only, Machine Settings : DebugMode, DebugLevel, AllowLoopback,
AuthRequired, ConnectPriority.
- Local Only, Per User Settings : AllowShutdown, AllowProperties.
- Local/Global, Per User Settings : SocketConnect, AutoPortSelect, PortNumber, Password,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -