53 SubProtocolFactorySelector::SubProtocolFactory* SubProtocolFactorySelector::load(
const std::string& subProtocolName) {
54 const std::string websocketSubprotocolLibraryFile =
"libsnodec-websocket-" + subProtocolName +
"-server.so." SOVERSION;
55 const std::string websocketSubprotocolFunctionName = subProtocolName +
"ServerSubProtocolFactory";
57 std::string websocketSubprotocolInstallLibdir = WEBSOCKET_SUBPROTOCO_INSTALL_LIBDIR;
60 if (
const char* websocketSubprotocolInstallLibdirEnv = std::getenv(
"WEBSOCKET_SUBPROTOCOL_INSTALL_LIBDIR")) {
61 LOG(WARNING) <<
"WebSocket: Overriding websocket subprotocol library dir";
62 websocketSubprotocolInstallLibdir = std::string(websocketSubprotocolInstallLibdirEnv);
66 SubProtocolFactorySelector::SubProtocolFactory* subProtocolFactory =
nullptr;
68 if (std::filesystem::is_directory(websocketSubprotocolInstallLibdir +
"/" + utils::Config::getApplicationName())) {
69 subProtocolFactory = Super::load(subProtocolName,
70 websocketSubprotocolInstallLibdir +
"/" + utils::Config::getApplicationName() +
"/" +
71 websocketSubprotocolLibraryFile,
72 websocketSubprotocolFunctionName);
74 subProtocolFactory = Super::load(subProtocolName,
75 websocketSubprotocolInstallLibdir +
"/" + websocketSubprotocolLibraryFile,
76 websocketSubprotocolFunctionName);
79 return subProtocolFactory;