I had some non RemObject clients on a RemObjects server (version 8.x). Today, I updated that server to 9.3.105.1351 and those clients could not get any expected response.
It took me some while to find out that the following lines in uROHTTPBaseServer were changed in the 9.x series. And I just wonder why?
procedure TROBaseHTTPServer.ProcessRequest(const aTransport: IROHTTPTransportEx;
const aRequestStream: TStream; out aResponseStream: TROBinaryMemoryStream;
const aResponse: IROHTTPResponse);
(many unchanged lines of code)
try
ok := false;
ParsePathInfo(aTransport.PathInfo, lroot,lSubPath);
//THIS CODE IS ADDED
if lSubPath = '' then
lpath2 := lroot
else
lpath2 := lroot+'/'+lSubPath;
//INSTEAD of the lpath2 parameter below, in 8.x this was lroot
ldisp := TROHTTPMessageDispatchers(Dispatchers).GetDispatcherByPath(lpath2) as TROHTTPDispatcher;
(some more unchanged code)
My question is, for what purpose is this part of the code changed? Did it solve other situations?
Since I have many external parties accessing my ‘old’ RemObjects servers I patched this part to work like the 8.x versions. But probably this patch is not a good idea. But I don’t know, since there might be some good reasons for altering this part of the code? I’m just very curious…