diff --git a/etc/apache2/coolwsd.conf b/etc/apache2/coolwsd.conf index 4796f5e5d5..f7ecb6f665 100644 --- a/etc/apache2/coolwsd.conf +++ b/etc/apache2/coolwsd.conf @@ -33,3 +33,6 @@ # Download as, Fullscreen presentation and Image upload operations ProxyPass /cool http://127.0.0.1:9980/cool ProxyPassReverse /cool http://127.0.0.1:9980/cool + # Compatibility with integrations that use the /lool/convert-to endpoint + ProxyPass /lool http://127.0.0.1:9980/cool + ProxyPassReverse /lool http://127.0.0.1:9980/cool diff --git a/etc/nginx/coolwsd.conf b/etc/nginx/coolwsd.conf index b0fb7105bd..6d0814ea51 100644 --- a/etc/nginx/coolwsd.conf +++ b/etc/nginx/coolwsd.conf @@ -26,7 +26,8 @@ } # download, presentation and image upload - location ~ ^/cool { + # we accept 'lool' to be backward compatible + location ~ ^/(c|l)ool { proxy_pass http://localhost:9980; proxy_set_header Host $http_host; } diff --git a/wsd/COOLWSD.cpp b/wsd/COOLWSD.cpp index 83938d0671..019e750272 100644 --- a/wsd/COOLWSD.cpp +++ b/wsd/COOLWSD.cpp @@ -2804,9 +2804,12 @@ private: requestDetails.equals(2, "ws") && requestDetails.isWebSocket()) handleClientWsUpgrade(request, requestDetails, disposition, socket); - else if (!requestDetails.isWebSocket() && requestDetails.equals(RequestDetails::Field::Type, "cool")) + else if (!requestDetails.isWebSocket() && + (requestDetails.equals(RequestDetails::Field::Type, "cool") || + requestDetails.equals(RequestDetails::Field::Type, "lool"))) { - // All post requests have url prefix 'cool'. + // All post requests have url prefix 'cool', except when the prefix + // is 'lool' e.g. when integrations use the old /lool/convert-to endpoint handlePostRequest(requestDetails, request, message, disposition, socket); } else @@ -3805,6 +3808,8 @@ private: Poco::JSON::Object::Ptr convert_to = new Poco::JSON::Object; Poco::Dynamic::Var available = allowConvertTo(socket->clientAddress(), request); convert_to->set("available", available); + if (available) + convert_to->set("endpoint", "/cool/convert-to"); Poco::JSON::Object::Ptr capabilities = new Poco::JSON::Object; capabilities->set("convert-to", convert_to);