PMVNC - VNC Server for OS/2 & eCS Presentation Manager

Index

Getting Started - Installing and Running
Installation
Using PMVNC
Command-line options
System Tray Support
VNCPASS utility
PMVNC Properties
Hidden settings
Limitations/Known problems

Getting Started - Installing and Running

PMVNC is a VNC server that will allow you to view your OS/2 (or eCS) desktop from any VNC viewer. Because standard versions of OS/2 only support a single graphical user being logged in at any one time, PMVNC makes the existing desktop of the PC available remotely, rather than creating a separate desktop as happens with the Unix server. VNC does not make a OS/2 machine into a multi-user server in the same way that Citrix-based software or Windows Terminal Server, for example, does. A single OS/2 machine can therefore be accessed by multiple users, but if they all connect at the same time they will all see the same desktop! 

PMVNC known to work on OS/2 Warp 3/4, Warp Server for e-Business, MCP/ACP and eComStation.
Note: PMVNC requires at least Warp 3 with FixPak 32, or Warp 4 with FixPak 5 installed.

Installation

Unpack zip into a directory of your choice, and run install.cmd - folder with name "PM VNC Server" will be created on your desktop. No reboot required.

Using PMVNC

Just run pmvnc.exe or click on "PM VNC Server" object. On first run it will show properties dialog, where you must specify password. Use objects in desktop folder for terminating PMVNC or calling properties dialog. You can connect to the server from another machine using a VNC viewer.

Also, you can use command-line options:

Command-line options


-help
Shows message about cmdline options.
-settings
Tells a running copy of PMVNC to show the Properties box.
-connect [host]
Tells a running copy of PMVNC to initiate an outgoing connection to a listening viewer running on the specified machine. This is the equivalent of the 'Add New Client' menu option. You can put multiple -connect options on one command line to connect to multiple viewers at once. If no host name is specified then the Add New Client dialog will be displayed.
-kill    
Kills a running copy of PMVNC.
-about   
Tells a running copy of PMVNC to show its About box.

If no options are given then PMVNC runs normally.



System Tray Support

If you have SysTray/WPS or XCenter/eCenter with SysTray widget installed, you can control PMVNC through tray icon. On starting, PMVNC will add a VNC icon into the system tray area. 
PMVNC in tray
Clicking on this icon with the right mouse button will cause a menu to be displayed.

  • Properties - This will cause the Properties dialog to be displayed, allowing the user to change various PMVNC parameters. 
  • Add New Client - This allows outgoing connections to be made from the server to any "listening" viewer. The name or IP address of the target viewer machine can be entered in the dialog. The server will connect to the default listening viewer port, 5500. A different port number can be specified by adding :portnumber after the name or IP address. Connections created this way are treated as shared. See also the -connect option. 
  • Disconnect All Clients - This will disconnect all currently connected clients from the server. 
  • About PMVNC - This should be obvious! 
  • Close VNC - Shutdown the server. 
Moving the mouse over the icon should cause the IP address of the local machine to be displayed, if it can be discovered at that time. Tray icon becomes gray when client(s) is connected.

 

VNCPASS utility

Using vncpass.exe you can set password for PMVNC from command line. It may be useful when you manage remote PC using telnet/ssh and want run PMVNC. Usage: vncpass <password>

PMVNC Properties

The following options are available from the Properties dialog, shown here with the default installation settings.
PMVNC Properties, "General" page

Incoming Connections

     
  • Accept Socket Connections - (default) The server normally accepts direct, socket-based connections from the vncviewer program. Clearing this will disable any incoming connections.
  • Display Number - This allows the user to specify the display number which the server will use.  There is normally no need to change this from the default of zero.
  • Password - Incoming connections must be authenticated to verify that the person connecting is allowed to connect to this machine. This text box allows your password to be specified for authentication.
  • Auto - This tick box indicates to PMVNC whether it should use the display number specified in the Display Number box, or whether it should use the first display number not already in use on the server machine.
  • Enable built-in HTTP daemon - PMVNC can optionally run a simple web server on port 5800+display number, which will serve a web page allowing the machine to be accessed from any Java-enabled browser. If this box is not ticked then the machine will not be accessible via the standard web interface.
  • When Last Client Disconnects - This catchily-named option determines the VNC server's behaviour when the last client connection to it is closed. The available settings are:
    • Do Nothing (default).
    • Lock Workstation - The desktop will be automatically locked on disconnect.
    • Logoff Workstation - (not supported).

Connection Settings

  • Disable Remote Keyboard & Pointer -  Any new incoming connections will be able to view the screen but not send any input.
PMVNC Properties "Update handling" page

Update Handling

Note that clicking in a window will generally cause it to be updated, so if you have certain applications which don't update very well, try this! The default update handling settings should be the right ones for most people, and in general you will slow things down by changing them, so don't do this unless you have applications which cause problems.

     
  • Poll Full Screen- Some applications are incompatible with the methods currently used in PMVNC to trap screen updates. For this reason, it is sometimes useful to be able to poll the entire screen in order to check for changes, sacrificing performance for accuracy. 
  • Poll Foreground Window - (default) Polling only the currently selected window for changes is less CPU intensive than full-screen polling and often gives similar results, for example when using the VIO windows, which is not normally compatible with PMVNC. 
  • Poll Window Under Cursor- A variation on Poll Foreground Window, this option causes the window under the mouse cursor to be polled for changes. Both options may be enabled simultaneously if required. 
  • Poll Console Windows Only- (default) When this option is set, the only windows which will be ever be polled are VIO windows. This works well in conjunction with Poll Window Under Cursor, to use polling only when the cursor is over a console window. 
  • Poll On Event Received Only- When this option is set, the screen will only be polled for updates when a mouse or keyboard event is received from the remote client. This is provided for low bandwidth networks, where it may be useful to control how often the screen is polled and changes sent.  
  • Handle timer messages- A number of PM applications, most notably the Clock-like programs, use WM_TIMER events to trigger updates to their displays, rather than WM_PAINT messages. When this option is set, WM_TIMER messages will trigger PMVNC updates. However, many programs use timer events for purposes other than updating the screen, so using this option may cause higher CPU load.
  • Deferred updates- This option comes from a Windows version of the VNC server, and looks like it not have sense for Presentation Manager which use single queue for all messages, so posted messages will deferred anyway. Enabling this option will set additional deferring for updates, which a). not needed, and b). interfere with Odin-bases applications (them load CPU). Original description from WinVNC documentation: "The VNCHooks library catches messages sent to windows before they are dealt with by the window. As a result, sending an update message to WinVNC to indicate the potential change can result in WinVNC sending the updated area to the client before it has actually been redrawn by the application! This is a common problem, especially on multiprocessor versions of NT/2000/XP, so deferred updates are used by default. Deferred updates are handled by posting a custom message back into the window's own message queue rather than posting to WinVNC directly. By the time this custom message is seen again by the VNCHooks library, the message that caused it will have been handled and the update can then be forwarded to WinVNC without danger of being handled prematurely. A few programs don't handle these extra messages in their queue very well, so this optimisation is optional."
PMVNC Properties "Advanced" page

Advanced

  • Password required -  By default, all PMVNC servers will not accept incoming connections unless the server has had its password field set to a non-null value.  This restriction was placed to ensure that misconfigured servers would not open security loopholes without the user realising.  If a server is only to be used on a secure LAN, however, it may be desirable to forego such checking and allow machines to have a null password.  Uncheck this option to disable null-password checking by PMVNC.
  • AuthHosts - The AuthHosts setting used to specify a set of IP address templates which incoming connections must match in order to be accepted. By default, the template is empty and connections from all hosts are accepted. The template is of the form: 
    +[ip-address-template]
    ?[ip-address-template]
    -[ip-address-template]
    In the above, [ip-address-template] represents the leftmost bytes of the desired stringified IP-address. For example, +158.97 would match both 158.97.12.10 and 158.97.14.2. Multiple match terms may be specified, delimited by the ":" character. Terms appearing later in the template take precedence over earlier ones. e.g. -:+158.97: would filter out all incoming connections except those beginning with 158.97. Terms beginning with the "?" character are treated by default as indicating hosts from whom connections must be accepted at the server side via a dialog box. The QuerySetting option determines the precise behaviour of the three AuthHosts options.
  • Logging, LogLevel, Log filname, Append - LogLevel indicates how much debug information to present in log file. Use values from zero (minimum) to 10 (full debugging output). Append indicates that information will be appended to log file, otherwise log file will be truncated on every PMVNC start.

Misc

  • Connection idle timeout- This setting tells PMVNC how many seconds a connected VNC client may remain idle for (no input events or update requests) before being disconnected. Default is 60 minutes. Note: timeout works correctly only with TCP/IP version 4.1 or higher. With TCP/IP version 4 or lower idle timeout disabled.
  • 15bit color depth- Try this option if you get incorrect colors in viewer.

 

PMVNC - Hidden Settings

Some advanced options not present in properties dialog, but may be changed by editing profile. PMVNC store settings in User profile file under the ER_PMVNCD key. Use INI-editor or regedit2 to alter these options. All options are string type, even if represents numeric values.

AllowLoopback
By default, PMVNC servers disallow any vncviewer connections from the same machine. Sometimes, this behaviour is undesirable.  Setting this registry entry to 1 will cause local-loopback connections to be allowed.  Setting it to zero will filter out such connections.

ConnectPriority
By default, all PMVNC servers will disconnect any existing connections when an incoming, non-shared connection is authenticated.  This behaviour is undesirable when the server machine is being used as a shared workstation by several users or when remoting a single display to multiple clients for vewing, as in a classroom situation.

ConnectPriority indicates what PMVNC should do when a non-shared connection is received:
0 = Disconnect all existing connections.
1 = Don't disconnect any existing connections.
2 = Refuse the new connection.

LoopbackOnly
By default, PMVNC servers accept incoming connections on any network adapter address, since this is the easiest way of coping with multihomed machines. In some cases, it is preferable to listen only for connections originating from the local machine and aimed at the "localhost" adapter - a particular example is the use of VNC over SSH to provide secure VNC.  Setting this registry entry to 1 will cause PMVNC to only accept local connections - this overrides the AllowLoopback and AuthHosts settings.  Setting this entry to zero causes PMVNC to accept connections on any adapter and is the default setting.

QuerySetting
The QuerySetting allows individual users to tailor the degree of paranoia expressed by the per-machine AuthHosts setting. This value may be in range from zero (maximum availability) to four (maximum security). The following table indicates how the value affects the AuthHosts behaviour:
0 - +:Accept, ?:Accept, -:Query
1 - +:Accept, ?:Accept, -:Reject
2 - +:Accept, ?:Query, -:Reject [Default]
3 - +:Query, ?:Query, -:Reject
4 - +:Query, ?:Reject, -:Reject
By default, value 2 (Obey AuthHosts) will be assumed.

QueryTimeout
The QueryTimeout setting indicates the number of seconds for which the Accept Connection dialog (see AuthHosts and QuerySetting options) will be displayed before rejecting the incoming connection automatically.



Limitations/Known problems

  • PMVNC doesn't work with native Matrox display driver. Use SDD/SNAP.
  • Shift + <Function keys/Cursor keys> not work in OS/2 VIO.
  • Ctrl + <char> may send <char> to PM programs.
  • Some messageboxes may leave garbage on desktop.