home bbs files messages ]

Just a sample of the Echomail archive

<< oldest | < older | list | newer > | newest >> ]

 Message 867 
 Robert Wolfe to All 
 [Developers] Wildcat! v8.0 Status Update 
 19 May 19 11:53:52 
 
TID: PX/Win v7.0 PX28-1176M
MSGID: 1:116/17 2E95F2B4
TZUTC: -0500
                     -------- Forwarded Message ---------
Original: DATE..... 14 May 2019,  05:42p
Original: FROM..... Developers@winserver.com
Original: TO....... ROBERT WOLFE
Original: SUBJECT.. [Developers] Wildcat! v8.0 Status Update  --
Door Developers
Original: FORUM.... Private Email

Wildcat! v8.0 is moving along and very soon we will be starting the
final phase for v8.0 32 bit Update.  The 64 bit version will come
right after that.   One snag I ran into in the past week was with
the 64 bit Wildcat! Server with  running WcDoor32-based doors, but
in the end,  WcCore.dll and WcDoor32.dll was updated to resolve a
complex RPC 32/64 but address/context-handle marshallling issue.

Lets talk about this, because this is for developers as well.    I
might have this documented somewhere, but this helps with review.
WcDoor32.DLL (formerly Door32.Dll) has the API functions to allow
door developers to communicate and interface  with the node and
logged in user session.  They are:

*DoorInitialize*
DoorCharReady
DoorEvent
DoorGetAvailableEventHandle
DoorGetOfflineEventHandle
DoorHangUp
DoorRead
DoorReadPeek
DoorShutdown
DoorWrite

I only highlighted DoorInitialize() because the 64 bit WcServer snag
was here.  DoorInitialize is the first thing a 3rd party door
developer calls to "Take Over" the current Wildcat! user session, so
the user can type, display stuff to him, etc.

DoorInitialize() does this by cloning the the user's session by
obtaining the user's Context Handle stored in Environment Table by
WCCORE.DLL when "Run a Door.Wcx" starts the door.  Its  really a
thing of beauty.

You prepare a wcDoor32 App in Wcconfig | Doors.  When a user
connects, a session context is created,  WCH.   If you wanted to see
this context handle address, use the API function
GetWildcatServerContextHandle() to display it.   Callling Run A
Door, via wccore.dll, this value is written to PreDoor.Bat:

    WriteToPreDoor("Set
WildcatServerContext="+GetWildcatServerContextHandle())

and then when the door exe starts, it calls DoorInitialize() which
reads the environment string "WildcatServerContext" to get the
context
handle "wch"

      DWORD wch =  StringToNumber ( GetEnv("WildcatServerContext") )

and passes that to the API function:

      WildcatServerCreateContextFromHandle(wch)  // CLONE the
session
BY NUMBER

to start the cloned session.

The Snag with the 64-bit server, is it doesn't like the NUMBER wch
passed it it.  It is fine in 32 bit, but there is something we need
to
look at more deeply because the last thing we want is to create
incompatibility.

Fortunately,  Wildcat! API is a powerful beast!!

Like Door32 which uses the Session's Context-Handle as a 32 bit
NUMBER,   we also have wcNavigator EXE apps that also needs to
"Clone"
a user session and this uses the User Session's unique challenge
String.  You can see the session string for a user session by
calling:

     Print "Session Challenge String: "+GetChallengeString()

Each Wildcat! session gets a new unique challenge string when the
API
WildcatServerCreateContext() function is called by all the hosting
servers.  The session challenge string is also used by POP3,  Radius
and a few other Wildcat! client apps.

So WcCore.DLL was updated to add the Challenge String to Predoor.Bat
file, and WcDoor32.Dll was updated to read the challenge string and
use the API:

      CString wch =  GetEnv("WildcatServerChallenge")
      WildcatServerCreateContextFromChallenge(wch)  // Clone session
by Challenge String

And it all works again using a 64 bit Wildcat! Server!!!    But of
couirse, we will try to see why using a 32 bit number with
WildcatServerCreateContextFromHandle() is an issue with the RPC
Client/Server Marshalling 32/64bit framework.

*In short, there was a problem CLONING by number but no problem
CLONING by string. *

This is a deeply advanced concept and it takes a die-hard to keep at
it.  Wildcat! is pretty advanced with RPC and for the past 23 years,
a
pretty solid INTER-PROCESS Communication framework, runs 24x7x360.
Inter means it doesn't have to be the same machines.  The server in
one, the clients in others.  That is why its called Remote Procedure
Call - RPC.

I've kept what is called the RPC WIRE the same between updates so
that
the API would be backward compatible or forward compatible. But the
64
bit version will demand more API functionality and compatibilities
and
I think that is what the "Snag" is all about. Microsoft talks about
all this here.   Its interesting reading, also inspiring!!

https://docs.microsoft.com/en-us/previous-versions/ms810720(v=msdn.1
0)#midl64b_i
ntro




--
Hector, Engineering & Technical Support
Santronics Software, Inc.
http://www.santronics.com (sales)
http://www.winserver.com (support)
http://www.winserver.com/AupInfo (Online AUP Help)
Office: 305-248-3204




-!------------------------------------------------------------------
-
To unsubscribe, send e-mail to wclistserve@winserver.com with
UNSUBSCRIBE Developers in the message body on a line by itself.
To contact the list admin, e-mail ListAdmin@winserver.com
-!------------------------------------------------------------------
-


begin:vcard
fn:Hector Santos
n:Santos;Hector
email;internet:winserver.support@winserver.com
tel;work:305-248-3204
version:2.1
end:vcard

                     ----- End of Forwarded Message -----

... Platinum Xpress & Wildcat!..... Nice!!!!
--- Platinum Xpress/Win/WINServer v7.0
 * Origin: Lean Angle BBS * Southaven MS * winserver.org (1:116/17)
SEEN-BY: 1/123 10/0 1 15/0 2 19/36 34/999 90/1 102/401 103/705 104/57
SEEN-BY: 106/201 116/17 18 120/331 123/140 153/7715 203/0 218/0 1
SEEN-BY: 218/50 109 210 215 401 520 601 640 700 720 802 221/0 222/2
SEEN-BY: 226/17 229/354 426 1014 230/150 152 240/5832 249/206 317
SEEN-BY: 250/1 261/20 38 100 266/512 267/155 275/100 280/464 282/1031
SEEN-BY: 282/1056 291/1 111 317/3 320/119 219 322/757 340/400 342/13
SEEN-BY: 342/200 393/68 396/45 633/280 712/848 801/161 189 3634/12
SEEN-BY: 5020/1042
PATH: 116/17 18 261/38 218/700 103/705 280/464 229/426


<< oldest | < older | list | newer > | newest >> ]

(c) 1994,  bbs@darkrealms.ca