I had some non RemObject clients on a RemObjects server (version 8.x). Today, I updated that server to 184.108.40.2061 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…