From: adrian wilkins <deepthin...@hotmail.co.uk> Sent: 21 December 2018 13:13 To: linux-msdos@vger.kernel.org Subject: DOSEMU Hello from Bristol UK. I am an experienced developer and write in many languages. My speciality is commercial EPOS and stock control systems, multi-user. Many of my applications run fine under ALL versions of Windows (but not on 64-bit) and also under Novell and Linux.
When data files need to be shared there are two ways of doing this: File locking (either locked for READ or locked for WRITE) or record locking where a single record of the file may be locked (again either READ or WRITE locked). The following multi-user environments are in use: Multiple application windows on a single Windows system. All the above locking systems work OK. Multiple Windows-based terminals local area networked into a Windows file server. All the above locking systems work OK. Multiple Windows-based terminals local area networked into a Linux file server running Samba. All the above locking systems work OK. Multiple Windows-based terminals running PUTTY into multiple copies of DOSEMU on a Linux server. All the above locking systems work OK. A mixture of Windows-based terminals running PUTTY into DOSEMU on a Linux server AND Windows-based terminals accessing Samba directly. Locking fails. My tests reveal that it is DOSEMU that is maintaining lock tables rather than passing these through to the Operating System (whichever that is). Can you please confirm this? This would explain why a file record locked through DOSEMU can be breached by a Windows terminal accessing the server (of any flavour) directly. I can also reveal that if a file is opened with a write lock then any record locks are ignored completely. The internet is awash with people complaining about these aspects. I would like to contribute to the development of DOSEMU-2 by having these defects corrected. The obvious way is to allow the server O/S to handle record and file locking, in which case all DOSEMU-2 has to do is to pass these through to the O/S rather than handle them itself. Could someone in charge please advise me how to go about this: which sources contain the locking code; how to build a test DOSEMU-2 for my own use; and where to go for help ? Many thanks Adrian