Commit 6cb00b82 authored by Stewart Brodie's avatar Stewart Brodie
Browse files

Check-in of all files comprising this development build of LanManFS

  Spaces in NetBIOS names are now allowed.
Detail:
  Now supports NetBIOS hostnames which contain spaces.  Use hardspaces
    in the Omni frontend or at the command-line (unless you can get
    away with a normal space without confusing the CLI parser)
Admin:
  Tested by attempting to connect to machines with spaces in their
    names.  Got the expected response from the target machine, so
    this aspect is working.
  It appears that several files did not get checked in due to datestamp
    problems when LanManFS's location in CVS was changed.  This is now
    fixed.

Version 1.87, 1.1.1.1.2.7. Tagged as 'LanManFS-1_87-1_1_1_1_2_7'
parent e332cf0f
......@@ -4,11 +4,11 @@
*
*/
#define Module_MajorVersion_CMHG 1.87
#define Module_MinorVersion_CMHG 1.1.1.1.2.6
#define Module_Date_CMHG 15 Jan 1999
#define Module_MinorVersion_CMHG 1.1.1.1.2.7
#define Module_Date_CMHG 19 Jan 1999
#define Module_MajorVersion "1.87"
#define Module_Version 187
#define Module_MinorVersion "1.1.1.1.2.6"
#define Module_Date "15 Jan 1999"
#define Module_MinorVersion "1.1.1.1.2.7"
#define Module_Date "19 Jan 1999"
......@@ -42,6 +42,8 @@
#include "logon.h"
#include "xlate.h"
#include "LanMan_MH.h"
/* ----------------------------------- */
static void SetPassword ( char * pwd )
......@@ -252,20 +254,14 @@ err_t Lgn_Logoff ( void )
void Lgn_Register(void)
{
_kernel_swi_regs R;
R.r[0] = SWI_LanMan_LogonOp; /* Client ID */
R.r[1] = RC_LOGON_TYPE | RC_NEEDS_AUTHSERV |
RC_NEEDS_USERID | RC_NEEDS_PASSWD ;
R.r[2] = (int) "lmlgni";
R.r[3] = (int) "LAN Manager"; /* Needs to be reasonably short. NAS */
R.r[4] = (int) "LanManFS Logon bit"; /* Info string - shouldn't appear*/
R.r[5] = 0; /* Site ID */
R.r[6] = (int) "LanMan+"; /* Needs to be unique from LanMan FS name. NAS */
_kernel_swi( SWI_Omni_RegisterClient, &R, &R );
(void) _swix( SWI_Omni_RegisterClient, _INR(0,6),
LanMan_LogonOp, /* Client ID */
RC_LOGON_TYPE | RC_NEEDS_AUTHSERV | RC_NEEDS_USERID | RC_NEEDS_PASSWD,
"lmlgni",
"LAN Manager", /* Needs to be reasonably short. NAS */
"LanManFS Logon bit", /* Info string - shouldn't appear*/
0, /* Site ID */
"LanMan+"); /* Needs to be unique from LanMan FS name. NAS */
}
/* ---------------------------------------- */
......
......@@ -230,8 +230,9 @@ EXPORT err_t _NB_FormatName ( nametype_t nt, char *name, NETNAME *res )
for ( i=0; i<15; i++)
{
if ( name[i] <= 0x20 ) break;
res->b[i] = toupper(name[i]);
if ( name[i] < 0x20 ) break;
if (name[i] == '\xA0') res->b[i] = ' ';
else res->b[i] = toupper(name[i]);
}
while (i<15)
......@@ -246,12 +247,17 @@ EXPORT err_t _NB_FormatName ( nametype_t nt, char *name, NETNAME *res )
EXPORT nametype_t _NB_DecodeName ( NETNAME *pnn, char *buf )
{
BYTE *p = pnn->b;
char *last_nonsp = buf;
while ( *p > 0x20 )
while ( *p >= 0x20 )
*buf++ = *p++;
*buf = 0;
while (--buf > last_nonsp) {
if (*buf == ' ') *buf = 0;
}
return (nametype_t) (pnn->b[15]);
}
......
......@@ -308,8 +308,9 @@ EXPORT err_t _NB_FormatName ( nametype_t nt, char *name, NETNAME *res )
for ( i=0; i<15; i++)
{
if ( name[i] <= 0x20 ) break;
res->b[i] = toupper(name[i]);
if ( name[i] < 0x20 ) break;
if (name[i] == '\xA0') res->b[i] = ' ';
else res->b[i] = toupper(name[i]);
}
while (i<15)
......@@ -324,12 +325,17 @@ EXPORT err_t _NB_FormatName ( nametype_t nt, char *name, NETNAME *res )
EXPORT nametype_t _NB_DecodeName ( NETNAME *pnn, char *buf )
{
BYTE *p = pnn->b;
char *last_nonsp = buf;
while ( *p > 0x20 )
while ( *p >= 0x20 )
*buf++ = *p++;
*buf = 0;
while (--buf > last_nonsp) {
if (*buf == ' ') *buf = 0;
}
return (nametype_t) (pnn->b[15]);
}
......
......@@ -58,7 +58,7 @@
#include "logon.h"
#include "omni.h"
#include "LanMan_MH.h"
#define INFO_STR_LEN 32
/* Length of info string kept about servers & mounts */
......@@ -1023,7 +1023,7 @@ err_t Omni_GetDefaultType ( char *name, int * pType_out )
if ( !Omni_Registered )
return ENOTPRESENT;
R.r[0] = SWI_LanMan_OmniOp; /* Client ID */
R.r[0] = LanMan_OmniOp; /* Client ID */
R.r[1] = (int) name;
R.r[2] = (int) tmpbuf; /* We ignore the name it returns! */
R.r[3] = (int) tmpbuf2; /* Flags string */
......@@ -1268,7 +1268,7 @@ void Omni_RecheckInfo( int flags )
if ( Omni_Registered )
{
R.r[0] = SWI_LanMan_OmniOp; /* Client ID */
R.r[0] = LanMan_OmniOp; /* Client ID */
R.r[1] = flags; /* Enumerate servers/mounts */;
_kernel_swi ( SWI_Omni_EnumerateMounts, &R, &R );
}
......@@ -1280,7 +1280,7 @@ static void Omni_Register(void)
{
_kernel_swi_regs R;
R.r[0] = SWI_LanMan_OmniOp; /* Client ID */
R.r[0] = LanMan_OmniOp; /* Client ID */
R.r[1] = RC_NEEDS_USERID | RC_NEEDS_PASSWD | RC_NEEDS_MOUNTPATH |
RC_DOES_FILES | RC_EXTN_CHAR('.') |
RC_DOES_PRINT | RC_NEEDS_PRINTPWD;
......@@ -1361,7 +1361,7 @@ void Omni_Shutdown ( void )
if ( Omni_Registered )
{
R.r[0] = SWI_LanMan_OmniOp;
R.r[0] = LanMan_OmniOp;
_kernel_swi ( SWI_Omni_DeregisterClient, &R, &R );
Omni_Registered = false;
}
......
......@@ -32,7 +32,8 @@ initialisation-code: LM_Initialise
finalisation-code: LM_Finalise
; Service calls: FSRedeclare; ResourceFSStarting; DCIDriverStatus; OmniAction
service-call-handler: LM_Service &40 &60 &9D &A0
; InternetStatus
service-call-handler: LM_Service &40 &60 &9D &A0 &B0
swi-handler-code: LM_Swi
......@@ -42,7 +43,9 @@ swi-decoding-table: LanMan,
OmniOp, FreeOp, NameOp, Transact, LogonOp
vector-handlers: ReceiveFn TickerFn LLC_CallbackFn NBIP_CallbackFn EventFn
vector-handlers: ReceiveFn TickerFn LLC_CallbackFn,
NBIP_CallbackFn/NBIP_CallbackFn_handler_ctrl,
EventFn
command-keyword-table: LM_Command
......
......@@ -26,12 +26,6 @@
#define FilingSystemName "LanMan"
#define Our_FS_Number 102
#define LanMan_SWI_base 0x49240
#define SWI_LanMan_OmniOp (LanMan_SWI_base + 0)
#define SWI_LanMan_FreeOp (LanMan_SWI_base + 1)
#define SWI_LanMan_NameOp (LanMan_SWI_base + 2)
#define SWI_LanMan_Transact (LanMan_SWI_base + 3)
#define SWI_LanMan_LogonOp (LanMan_SWI_base + 4)
#define FSControl_AddFilingSystem 12
......@@ -79,12 +73,6 @@ extern const int *Image_RO_Base;
These routines get used by the cmhg generated header.
*/
extern _kernel_oserror *LM_Command( char *, int, int, void * );
extern _kernel_oserror *LM_Swi( int, _kernel_swi_regs *, void * );
extern void LM_Service( int, _kernel_swi_regs *, void * );
extern _kernel_oserror *LM_Initialise( char *, int, void * );
extern _kernel_oserror *LM_Finalise( int fatal, int podule, void *pw );
extern int LM_pw;
extern void LM_Boot(void);
......
......@@ -131,6 +131,3 @@
#define NBIP_SESS_RETARGET 0x84
#define NBIP_SESS_KEEPALIVE 0x85
extern int EventFn_handler ( _kernel_swi_regs *R, int pw );
extern int CallbackFn_handler (void);
extern int NBIP_CallbackFn_handler(void);
......@@ -111,5 +111,5 @@
* 1.86 28-Jul-98 RCE Added support for NetBIOS Name Server IP address in CMOS
*/
#define VERSION_STRING "1.86 (28-Jul-98)"
#define VERSION_STRING Module_VersionString " (" Module_Date ")"
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment