Open iblowmymind opened 2 years ago
Also, I can't seem to get access to the file drawer in a networked Star OS 5.2 system. I can see and connect to other devices on the network, including Time and Authentication, but attempting to access a file drawer gives "serviceUnavailable". (Service down)
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0007# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 10 version 4
COURIER CrProgram[ 10 , 4 ].dispatch() -- invoking proc Logon[ #0 ]
#proc Logon[ #0 ]# call
#proc Logon[ #0 ]# encodeAbort
#proc Logon[ #0 ]# abortData: RECORD [
problem: serviceUnavailable
]
COURIER CrProgram[ 10 , 4 ].dispatch() -- finished proc Logon[ #0 ]
#CR0007# CourierConnection - done call with transaction 0
Creating a new volume from scratch did not help, so I'm assuming there's an issue with the unstable re-construction of Filing4.cr. However, according to your tests it did work before. Did the GVWIN mailing update somehow break it? Testing now.
Hello,
well... blanks are unsupported in the filename of chs object names: works as implemented :-)
When building the name of an object from the filename in the chs database directory, all blanks are removed and the "domain:organization" part is added to form the full qualified name of the object (resp. the first alias for an user, as the full username parts are given properties inside the file itself). The dodo clearinghouse configuration files documentation says that the name part of the filename "should be a single word" without telling the consequences of embedding blanks in the name... it would have better be spelled must . ok, my fault.
So as the resulting object name is without blanks, all references to the name with the blanks will be invalid, as this name does effectively not exist.
The following additions worked for my own setup for using them with StarOS 5.0 and the current Dodo version (including logoff with desktop to fileservice, login again with retrieving the desktop, copying a document to the file service and back):
File: u~blw.properties
:
# name components
lastname = mind
firstname = i blow my
# (plain!) password
password = secret
# file service for the desktop
fileservice = user-data
# mailbox service for this user
mailservice = postman
# additional aliases
aliases = iblowmymind
File: f~user-data.properties
# description of the service
description = User Data storage
# network address of the service
machineId = dodo-central
# authentication level, one of:
# none => credentials will be ignored (resp. credentials not used in the protocol)
# simple => simple credentials accepted only (default)
# strong => strong credentials accepted only
# both => simple and strong credentials supported
authLevel = both
Addition to dodo.properties
:
fileService.4.name = user-data:dev:hawala
fileService.4.volumePath = ./vol-user-data
Hope that helps, greetings Hans
Oh, I probably missed that! The interesting thing is, though, is that I remember seeing blanks in file volume names in real scenarios, so I assumed it would probably work here as well.
However, the second comment I made in this post is not related to that, as I believe that that is an actual bug, not just me misunderstanding how clearinghouse services work :-) As I've tried with the default scenario given in dist.zip and I still could not access the filing volume from Star OS, as well as the fact that the "serviceUnavailable" bug occured even when there were no spaces in the clearinghouse filenames.
Hello, i don't think it is a StarOS specific problem, as there is only one internal implementation of logon for all filing versions. So please try the same login scenario with a VP 2.0 Draco machine. My setup works with both client machines (StarOS/Darkstar and VP2.0/Draco), even allowing to use the same desktop stored on the new file service "user-data:dev:hawala" (retested a few minutes ago).
Having done a quick source code check, getting an "serviceUnavailable" at file service logon means what it tells: the file service to be logged on is either not opened or already closed (which can currently not happen). So it seems that StarOS tries to open a file service listed in the clearinghouse but not registered with the file services runtime.
Could you please start Dodo with the -dumpchs
command line option and post the console log up to the point where "serviceUnavailable" error appears?
And yes: blanks are allowed in object names with real Xerox Network Servers/Services, but Dodo does currently not...
Greetings, Hans
Here you go, as requested..
==
== machine-id pre-definitions:
==
Machines:
-- name: 'primary server' -> 0x1000BB101101
-- name: 'odyssey1' -> 0x0000AA012345
- 'spp.resendDelay' => 75
- 'authSkipTimestampChecks' => 1
- 'spp.sendingTimeGap' => 75
Defaults:
- 'bootService.sppDataSendInterval' => 20
- 'spp.resendDelay' => 20
- 'authSkipTimestampChecks' => 1
- 'bootService.simpleDataSendInterval' => 40
- 'spp.resendPacketCount' => 2
- 'spp.handshakeResendCountdown' => 50
- 'spp.sendingTimeGap' => 5
- 'spp.handshakeMaxResends' => 5
- 'spp.handshakeSendackCountdown' => 4
==
== clearinghouse database dump:
==
## fqn -> entry map:
Postman:Athena North:Chaos => ChsMailSvc[ pn='Postman' , description='Mail service' ]
Neptune:Athena North:Chaos => ChsPrintSvc[ pn='Neptune' , description='Neptune printer' ]
NetFile:Athena North:Chaos => ChsFileSvc[ pn='NetFile' , description='Network file system' ]
Guest:Athena North:Chaos => ChsUser[ pn='Guest' , description='Guest' ]
fs1:Athena North:Chaos => ChsFileSvc[ pn='fs1' , description='fs1' ]
Odyssey1:Athena North:Chaos => ChsWorkstation[ pn='Odyssey1' , description='Darkstar Star OS 5.2' ]
Clearinghouse:Athena North:Chaos => ChsClearinghouseSvc[ pn='Clearinghouse' , description='Clearinghouse' ]
staff:Athena North:Chaos => ChsUserGroup[ pn='staff' , description='Staff users' ]
blw:Athena North:Chaos => ChsUser[ pn='blw' , description='blw' ]
## any -> fqn map
guest:athena north:chaos => Guest:Athena North:Chaos
blw:athena north:chaos => blw:Athena North:Chaos
staff:athena north:chaos => staff:Athena North:Chaos
netfile:athena north:chaos => NetFile:Athena North:Chaos
postman:athena north:chaos => Postman:Athena North:Chaos
odyssey1:athena north:chaos => Odyssey1:Athena North:Chaos
neptune:athena north:chaos => Neptune:Athena North:Chaos
fs1:athena north:chaos => fs1:Athena North:Chaos
blw:athena north:chaos => blw:Athena North:Chaos
clearinghouse:athena north:chaos => Clearinghouse:Athena North:Chaos
## entries:
ChsMailSvc
name : Postman:Athena North:Chaos
cfgFilename : m~Postman.properties
objNameCfg : Postman
entryType : 10004
simplePwHash : 36746
strongPwHash : 0x 57 BA 83 01 FE 61 EC 68
description : Mail service
authLvlSimple: true
authLvlStrong: true
machineId : 1000BB101101
item properties:
10004 : 0x 000C 4D61 696C 2073 6572 7669 6365
4 : 0x 0001 0000 041A 1000 BB10 1101 0000
8 : 0x 0001 0001
ChsPrintSvc
name : Neptune:Athena North:Chaos
cfgFilename : p~Neptune.properties
objNameCfg : Neptune
entryType : 10001
simplePwHash : 61322
strongPwHash : 0x 76 C2 5D C2 BC DA C4 6E
description : Neptune printer
authLvlSimple: false
authLvlStrong: false
machineId : 1000BB101101
item properties:
10001 : 0x 000F 4E65 7074 756E 6520 7072 696E 7465 7200
4 : 0x 0001 0000 041A 1000 BB10 1101 0000
8 : 0x 0000 0000
ChsFileSvc
name : NetFile:Athena North:Chaos
cfgFilename : f~NetFile.properties
objNameCfg : NetFile
entryType : 10000
simplePwHash : 51384
strongPwHash : 0x 91 4C AE 38 2C 73 7C 3B
description : Network file system
authLvlSimple: true
authLvlStrong: true
machineId : 1000BB101101
item properties:
10000 : 0x 0013 4E65 7477 6F72 6B20 6669 6C65 2073 7973 7465 6D00
4 : 0x 0001 0000 041A 1000 BB10 1101 0000
8 : 0x 0001 0001
ChsUser
name : Guest:Athena North:Chaos
cfgFilename : u~Guest.properties
objNameCfg : Guest
entryType : 10003
simplePwHash : 51039
strongPwHash : 0x BA 29 C7 AE D9 62 FB 38
username : Guest
lastnameIndex: 0
mailservice : Postman:Athena North:Chaos
fileservice : netfile:athena north:chaos
item properties:
20000 : 0x 0000 0005 4368 616F 7300 000C 4174 6865 6E61 204E 6F72 7468 0007 4E65 7446 696C 6500
10003 : 0x 0005 4775 6573 7400
31 : 0x E43F C652 0001 0005 4368 616F 7300 000C 4174 6865 6E61 204E 6F72 7468 0007 506F 7374 6D61 6E00
ChsFileSvc
name : fs1:Athena North:Chaos
cfgFilename : f~fs1.properties
objNameCfg : fs1
entryType : 10000
simplePwHash : 26892
strongPwHash : 0x 7C C2 BF 6E 15 16 64 1F
description : fs1
authLvlSimple: true
authLvlStrong: true
machineId : 1000BB101101
item properties:
10000 : 0x 0003 6673 3100
4 : 0x 0001 0000 041A 1000 BB10 1101 0000
8 : 0x 0001 0001
ChsWorkstation
name : Odyssey1:Athena North:Chaos
cfgFilename : ws~Odyssey1.properties
objNameCfg : Odyssey1
entryType : 10005
description : Darkstar Star OS 5.2
machineId : 0000AA012345
item properties:
4 : 0x 0001 0000 041A 0000 AA01 2345 0000
10005 : 0x 0014 4461 726B 7374 6172 2053 7461 7220 4F53 2035 2E32
ChsClearinghouseSvc
name : Clearinghouse:Athena North:Chaos
cfgFilename : c~Clearinghouse.properties
objNameCfg : Clearinghouse
entryType : 10021
simplePwHash : 45171
strongPwHash : 0x F7 83 80 DC 02 2A F2 20
description : Clearinghouse
authLvlSimple: true
authLvlStrong: true
machineId : 1000BB101101
mailservice : postman:athena north:chaos
item properties:
4 : 0x 0001 0000 041A 1000 BB10 1101 0000
10021 : 0x 000D 436C 6561 7269 6E67 686F 7573 6500
8 : 0x 0001 0001
31 : 0x E43F A9F5 0001 0005 4368 616F 7300 000C 4174 6865 6E61 204E 6F72 7468 0007 506F 7374 6D61 6E00
ChsUserGroup
name : staff:Athena North:Chaos
cfgFilename : ug~staff.properties
objNameCfg : staff
entryType : 10022
description : Staff users
members :
blw:Athena North:Chaos
---------------------------------- end members
item properties:
10022 : 0x 000B 5374 6166 6620 7573 6572 7300
group properties:
3 : blw:Athena North:Chaos
ChsUser
name : blw:Athena North:Chaos
cfgFilename : u~blw.properties
objNameCfg : blw
entryType : 10003
simplePwHash : 20435
strongPwHash : 0x C8 F4 01 76 19 10 C8 67
username : blw
lastnameIndex: 7
mailservice : Postman:Athena North:Chaos
fileservice : netfile:athena north:chaos
aliases :
blw:athena north:chaos
---------------------------------- end aliases
item properties:
20000 : 0x 0007 0005 4368 616F 7300 000C 4174 6865 6E61 204E 6F72 7468 0007 4E65 7446 696C 6500
10003 : 0x 0010 4461 6768 616E 2054 696E 617A 7465 7065
31 : 0x E43F C64E 0001 0005 4368 616F 7300 000C 4174 6865 6E61 204E 6F72 7468 0007 506F 7374 6D61 6E00
##########
==
== end of machine-id and clearinghouse database dumps
==
#----# clientBindToSocket( sockNo = 16383, listener = dev.hawala.xns.network.NetMachine$PexRequestHandler@2b80d80f ): socket bound
#----# clientBindToSocket( sockNo = 16383, listener = dev.hawala.xns.network.NetMachine$PexRequestHandler@2b80d80f ): listener started
#----# opening connection to hub
#----# clientBindToSocket( sockNo = 2, listener = dev.hawala.xns.level4.echo.EchoResponder@35851384 ): socket bound
#----# clientBindToSocket( sockNo = 2, listener = dev.hawala.xns.level4.echo.EchoResponder@35851384 ): listener started
#----# clientBindToSocket( sockNo = 8, listener = dev.hawala.xns.network.NetMachine$PexServer@16c0663d ): socket bound
#----# PexServer.start( localEndpoint = [1050-10.00.BB.10.11.01:8] , sender = ... )
#----# clientBindToSocket( sockNo = 8, listener = dev.hawala.xns.network.NetMachine$PexServer@16c0663d ): listener started
#----# clientBindToSocket( sockNo = 1, listener = dev.hawala.xns.level4.rip.RipResponder@66d33a ): socket bound
#----# clientBindToSocket( sockNo = 1, listener = dev.hawala.xns.level4.rip.RipResponder@66d33a ): listener started
#----# clientBindToSocket( sockNo = 20, listener = dev.hawala.xns.network.NetMachine$PexServer@51efea79 ): socket bound
#----# PexServer.start( localEndpoint = [1050-10.00.BB.10.11.01:20] , sender = ... )
#----# clientBindToSocket( sockNo = 20, listener = dev.hawala.xns.network.NetMachine$PexServer@51efea79 ): listener started
#----# clientBindToSocket( sockNo = 21, listener = dev.hawala.xns.network.NetMachine$PexServer@4667ae56 ): socket bound
#----# PexServer.start( localEndpoint = [1050-10.00.BB.10.11.01:21] , sender = ... )
#----# clientBindToSocket( sockNo = 21, listener = dev.hawala.xns.network.NetMachine$PexServer@4667ae56 ): listener started
Starting mail service 'Postman:Athena North:Chaos' (mailboxes volume directory: ./vol-mailservice)
Opening volume 'vol-mailservice' from directory: D:\Emulators\Mesa\dodo-8010-star52\.\vol-mailservice
loading metadata from: 000001809F069272.full-meta
Volume 'vol-mailservice' opened
+++ ChsDatabase.findObjectNames( pattern = '.*' , reqProperty = 10003 )
+++ ChsDatabase.findObjectNames() -> found 'Guest'
+++ ChsDatabase.findObjectNames() -> found 'blw'
Mail: user 'blw:Athena North:Chaos' : currently 0 mail(s) in mailbox
Mail: user 'Guest:Athena North:Chaos' : currently 0 mail(s) in mailbox
Mail service 'Postman:Athena North:Chaos' started
#----# clientBindToSocket( sockNo = 26, listener = dev.hawala.xns.network.NetMachine$PexServer@11758f2a ): socket bound
#----# PexServer.start( localEndpoint = [1050-10.00.BB.10.11.01:26] , sender = ... )
#----# clientBindToSocket( sockNo = 26, listener = dev.hawala.xns.network.NetMachine$PexServer@11758f2a ): listener started
####### Printing3, supported paperSizes: a4, usLetter
####### Printing3, using ip-to-ps proc: ./prt-neptune/res/IPPROC.PS
####### Printing3, patched ip-to-ps proc for Xerox PS font usage
####### Printing3, using ps post-processor: ./prt-neptune/res/postprocess-ps.cmd
Starting file service 'netfile:athena north:chaos' (volume directory: ./vol-netfile)
Opening volume 'vol-netfile' from directory: D:\Emulators\Mesa\dodo-8010-star52\.\vol-netfile
loading metadata from: 000001809F0692FD.full-meta
Volume 'vol-netfile' opened
File service 'netfile:athena north:chaos' started
Starting file service 'fs1:athena north:chaos' (volume directory: ./vol-fs1)
Opening volume 'vol-fs1' from directory: D:\Emulators\Mesa\dodo-8010-star52\.\vol-fs1
loading metadata from: 000001809F06931C.full-meta
Volume 'vol-fs1' opened
File service 'fs1:athena north:chaos' started
#----# clientBindToSocket( sockNo = 5, listener = dev.hawala.xns.network.SppServerListener@1ddf84b8 ): socket bound
#----# clientBindToSocket( sockNo = 5, listener = dev.hawala.xns.network.SppServerListener@1ddf84b8 ): listener started
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=0
#proc #0# call
#proc #0# encodeReturn
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=0
#proc #0# call
#proc #0# encodeReturn
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=0
COURIER CourierServer - new connection opened, starting new CourierServerConnection
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
#CR0000# CourierConnection - needVersions: low = 2 , high = 3
#CR0000# CourierConnection - sendVersions: low = high = 3
COURIER CourierConnection.processSingleCall() - begin
#CR0000# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #1
#proc #1# call
#CHS3# Clearinghouse3.listDomainServed() :: start
#CHS3# Clearinghouse3.listDomainsServed() :: sending data via bulk data transfer
#CHS3# Clearinghouse3.listDomainServed() :: end
#proc #1# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #1
#CR0000# CourierConnection - done call with transaction 0
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
#CR0000# CourierServerConnection: processSingleCall() failed, closing CourierConnection (null)
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=4
#BfsChs# processRequest() -> rejecting with CallError[useCourier]
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=4
COURIER CourierServer - new connection opened, starting new CourierServerConnection
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
#CR0001# CourierConnection - needVersions: low = 2 , high = 3
#CR0001# CourierConnection - sendVersions: low = high = 3
COURIER CourierConnection.processSingleCall() - begin
#CR0001# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #4
#proc #4# call
#CHS3# Clearinghouse3Impl.LookupObject() for name: blw:Athena North:Chaos
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
#CHS3# Clearinghouse3Impl.LookupObject(), results.distinguishedObject: blw:Athena North:Chaos
#proc #4# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #4
#CR0001# CourierConnection - done call with transaction 0
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0001# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 14 version 2
COURIER CrProgram[ 14 , 2 ].dispatch() -- invoking proc #2
#proc #2# call
#Auth2# Authentication2Impl.checkSimpleCredentials() -- invoking AuthChsCommon.simpleCheckPasswordForSimpleCredentials()
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
#Auth2# Authentication2Impl.checkSimpleCredentials() -- result.ok = true
#proc #2# encodeReturn
COURIER CrProgram[ 14 , 2 ].dispatch() -- finished proc #2
#CR0001# CourierConnection - done call with transaction 0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=4
#BfsChs# processRequest() -> rejecting with CallError[useCourier]
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=4
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0001# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #4
#proc #4# call
#CHS3# Clearinghouse3Impl.LookupObject() for name: blw:Athena North:Chaos
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
#CHS3# Clearinghouse3Impl.LookupObject(), results.distinguishedObject: blw:Athena North:Chaos
#proc #4# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #4
#CR0001# CourierConnection - done call with transaction 0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=16
#BfsChs# processRequest() -> rejecting with CallError[useCourier]
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=16
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0001# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #16
#proc #16# call
#CHS3# Clearinghouse3Impl.retrieveItem( pattern = 'blw:Athena North:Chaos' , property = 20000 )
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
#CHS3# Clearinghouse3Impl.retrieveItem(): entry and property found
#proc #16# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #16
#CR0001# CourierConnection - done call with transaction 0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=16
#BfsChs# processRequest() -> rejecting with CallError[useCourier]
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=16
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0001# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #16
#proc #16# call
#CHS3# Clearinghouse3Impl.retrieveItem( pattern = 'blw:Athena North:Chaos' , property = 10003 )
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
#CHS3# Clearinghouse3Impl.retrieveItem(): entry and property found
#proc #16# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #16
#CR0001# CourierConnection - done call with transaction 0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=14 , version=2 , procedure=0
#BfsAth# BfsAuthenticationResponder.processRequest() - begin
#proc #0# call
#proc #0# encodeReturn
#BfsAth# BfsAuthenticationResponder.processRequest() - done
#BfsX# Bfs call done for transaction=0 , program=14 , version=2 , procedure=0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=14 , version=2 , procedure=0
#BfsAth# BfsAuthenticationResponder.processRequest() - begin
#proc #0# call
#proc #0# encodeReturn
#BfsAth# BfsAuthenticationResponder.processRequest() - done
#BfsX# Bfs call done for transaction=0 , program=14 , version=2 , procedure=0
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
#CR0001# CourierServerConnection: processSingleCall() failed, closing CourierConnection (null)
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=16
#BfsChs# processRequest() -> rejecting with CallError[useCourier]
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=16
COURIER CourierServer - new connection opened, starting new CourierServerConnection
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
#CR0002# CourierConnection - needVersions: low = 2 , high = 3
#CR0002# CourierConnection - sendVersions: low = high = 3
COURIER CourierConnection.processSingleCall() - begin
#CR0002# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #16
#proc #16# call
#CHS3# Clearinghouse3Impl.retrieveItem( pattern = 'blw:Athena North:Chaos' , property = 31 )
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
#CHS3# Clearinghouse3Impl.retrieveItem(): entry and property found
#proc #16# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #16
#CR0002# CourierConnection - done call with transaction 0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=16
#BfsChs# processRequest() -> rejecting with CallError[useCourier]
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=16
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0002# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #16
#proc #16# call
#CHS3# Clearinghouse3Impl.retrieveItem( pattern = 'Postman:Athena North:Chaos' , property = 4 )
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
#CHS3# Clearinghouse3Impl.retrieveItem(): entry and property found
#proc #16# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #16
#CR0002# CourierConnection - done call with transaction 0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=18 , version=1 , procedure=7
#BfsX# Bfs call done for transaction=0 , program=18 , version=1 , procedure=7
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0002# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 18 version 1
COURIER CrProgram[ 18 , 1 ].dispatch() -- invoking proc InbasketPoll[ #7 ]
#proc InbasketPoll[ #7 ]# call
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
## Inbasket.poll for mailbox: blw:Athena North:Chaos
#proc InbasketPoll[ #7 ]# encodeReturn
COURIER CrProgram[ 18 , 1 ].dispatch() -- finished proc InbasketPoll[ #7 ]
#CR0002# CourierConnection - done call with transaction 0
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0002# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #7
#proc #7# call
#CHS3# Clearinghouse3.listObjects( pattern = '*:Athena North:Chaos' , property = 10000)
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
+++ ChsDatabase.findObjectNames( pattern = '.*' , reqProperty = 10000 )
+++ ChsDatabase.findObjectNames() -> found 'NetFile'
+++ ChsDatabase.findObjectNames() -> found 'fs1'
#CHS3# Clearinghouse3.listObjects() :: sending data via bulk data transfer
#CHS3# Clearinghouse3.listObjects() :: end
#proc #7# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #7
#CR0002# CourierConnection - done call with transaction 0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=16
#BfsChs# processRequest() -> rejecting with CallError[useCourier]
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=16
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0002# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #16
#proc #16# call
#CHS3# Clearinghouse3Impl.retrieveItem( pattern = 'NetFile:Athena North:Chaos' , property = 4 )
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
#CHS3# Clearinghouse3Impl.retrieveItem(): entry and property found
#proc #16# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #16
#CR0002# CourierConnection - done call with transaction 0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=16
#BfsChs# processRequest() -> rejecting with CallError[useCourier]
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=16
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0002# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #16
#proc #16# call
#CHS3# Clearinghouse3Impl.retrieveItem( pattern = 'NetFile:Athena North:Chaos' , property = 10000 )
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
#CHS3# Clearinghouse3Impl.retrieveItem(): entry and property found
#proc #16# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #16
#CR0002# CourierConnection - done call with transaction 0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=16
#BfsChs# processRequest() -> rejecting with CallError[useCourier]
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=16
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0002# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #16
#proc #16# call
#CHS3# Clearinghouse3Impl.retrieveItem( pattern = 'fs1:Athena North:Chaos' , property = 4 )
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
#CHS3# Clearinghouse3Impl.retrieveItem(): entry and property found
#proc #16# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #16
#CR0002# CourierConnection - done call with transaction 0
#BfsX# Bfs with courier protocol-version[3,3] , transaction=0 , program=2 , version=3 , procedure=16
#BfsChs# processRequest() -> rejecting with CallError[useCourier]
#BfsX# Bfs call done for transaction=0 , program=2 , version=3 , procedure=16
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0002# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 2 version 3
COURIER CrProgram[ 2 , 3 ].dispatch() -- invoking proc #16
#proc #16# call
#CHS3# Clearinghouse3Impl.retrieveItem( pattern = 'fs1:Athena North:Chaos' , property = 10000 )
#AuthChs# AuthChsCommon.simpleCheckPasswordForSimpleCredentials(), credentials.value: RECORD [
organization: "Chaos"
domain: "Athena North"
object: "blw"
]
*** simpleCheckPasswordForSimpleCredentials() for 'blw:Athena North:Chaos' :: verifierHash = 20435 , userHash = 20435
#CHS3# Clearinghouse3Impl.retrieveItem(): entry and property found
#proc #16# encodeReturn
COURIER CrProgram[ 2 , 3 ].dispatch() -- finished proc #16
#CR0002# CourierConnection - done call with transaction 0
COURIER CourierConnection.processSingleCall() - waiting for ingoing call
COURIER CourierConnection.processSingleCall() - begin
#CR0002# CourierConnection - dispatching call with transaction 0
COURIER CourierRegistry: dispatching to program 10 version 4
COURIER CrProgram[ 10 , 4 ].dispatch() -- invoking proc Logon[ #0 ]
#proc Logon[ #0 ]# call
#proc Logon[ #0 ]# encodeAbort
#proc Logon[ #0 ]# abortData: RECORD [
problem: serviceUnavailable
]
COURIER CrProgram[ 10 , 4 ].dispatch() -- finished proc Logon[ #0 ]
#CR0002# CourierConnection - done call with transaction 0
If it matters at all, I used the 0-74 & ba found in XCU disk headers for factoring.
The idea of using files in a filesystem to store clearinghouse data seems counter-intuitive to me, wouldn't it be easier to use a local database file (like SQLite3) and include a GUI+CLI tool for editing CHS entries? (Dodo would not start in the absence of the database file and print an error message instructing how to make one, etc) This way, we could even implement stuff like changing parameters on-the-fly, which would even allow us to make Remote System Administration Services (with a same or similar command-line syntax) inside Star/VP/GV work.
I've tested VP 2.0.5 in Draco and filing does not work there either, same error.
ok, i think i found the bug: the file service lookup is made with a casesensitive match against the file services registered with lowercased names, so the upper case letters in the full qualified name (fs1:Athena North:Chaos) prevent the correct lookup of the file service at logon.
Congratulations, you seem to be the first to use mixed-case in the Domain/Organization names, maybe the first at all to have modified the dev:hawala defaults).
I am preparing a new version of Dodo having some minor additions beyond the fix to the bug you found (minor bugfix to the new mail service, pre-configured boot service allowing to start an installation from floppy), i must still document all that and retest before uploading it to github.
In the meantime, you should be able to use your setup by using the lower-case domain/organization name variants (athena north:chaos). Not sure however if the network-related desktop items will still work after switching back to mixed case names when using the bugfixed version...
Greetings, Hans
Hello, thanks for the bugfix! I just wanted to have a more real-like XNS experience I suppose, as Xerox internally used names like "OSBU North" and "NetKSPA" for their domains, and I wanted to conform with that standard. (It's a bit like using camelCase, really!)
Did XNS support 16-bit (XCCS) characters? In the Medley Interlisp project, there was some effort to develop more complete XCCS <==> Unicode. Would that be helpful?
i'm not sure is 16-bit characters were supported everywhere: the courier protocols filing, printing and mailing surely do, i suppose the clearinghouse did it also for object names like service names and domain / organization names (less sure).
Dodo has a symmetric mapping from Xerox to "escaped" unicode texts (escaping anything not ascii if i remember well my own implementation), allowing to send back to clients e.g. japanese filenames for files stored on a fileserver.
Seeing that Medley/Maiko has a directory with mapping files for almost all Xerox characters to unicode, i am thinking about switching my implementation in Dodo to a complete symmetric mapping through (generated) 16x16-bit tables, allowing to store arbitrary (e.g.) filenames on the Dodo server side. This would however be rather useless, as these texts are seldom seen outside the server, so it's not sure if it's worth the effort...
Greetings, Hans
Hello, I’m assuming that although supported and used in filenames etc., these were probably seldom used (or not used at all) in CHS objects, as the keyboard for Logon will be automatically set to ASCII in StarOS/VP/GV, even if the workstation is a JStar or a Fuji Xerox version of GVWin (FXIS GVWin 2.3 even has this behaviour, although the UI is in Japanese, usernames, passwords, domain names etc. are in ASCII and the Logon keyboard is auto-set to English on a Japanese keyboard.
Hi,
the new version is uploaded, allowing to use mixed-case object, domain and organization names, as well as optionally blanks in object names created from the clearinghouse r/o database files.
There is also a sample boot service configuration allowing to net-boot a Draco machine and then install from floppy.
Greetings, Hans
Thank you! Have you checked the comments under the issue i created on https://github.com/devhawala/dwarf?
Filing works!
Hello, I've attempted to create a network with Dodo and I've noticed a peculiar bug where a file service defined in a user in clearinghouse with spaces in its name will not be able to be found.
The entry in my u~blw.properties is:
fileservice = User Volume:Athena North:Chaos
and I have set up my filing volume name in all the configuration files on this way, however Dodo will refuse to launch with:Renaming "User Volume" to "UserVolume" will fix the issue, so there isn't a problem with resolving domain/organisation entries with spaces in its filename.
Thanks!