diff --git a/plugin/npapi/plugin.cpp b/plugin/npapi/plugin.cpp index edcecfe..350096f 100644 --- a/plugin/npapi/plugin.cpp +++ b/plugin/npapi/plugin.cpp @@ -158,8 +158,17 @@ boost::iostreams::file_descriptor_sink getfdsink(char mksTemplate[]) { int suffix = std::string(mksTemplate).size() - std::string(mksTemplate).find("XXXXXX") - 6; +#if (__GLIBC__ >= 2 && __GLIBC_MINOR__ >= 11) int fd = mkstemps (mksTemplate, suffix); +#else + char *mksTNoSuff = const_cast(std::string(mksTemplate).substr(0, std::string(mksTemplate).size() - suffix - 1).c_str()); + int fd = mkstemp (mksTNoSuff); +#endif +#if BOOST_VERSION < 104400 + boost::iostreams::file_descriptor_sink fdsink(fd, 1); +#else boost::iostreams::file_descriptor_sink fdsink(fd, boost::iostreams::close_handle); +#endif return fdsink; } @@ -980,10 +989,12 @@ create_standalone_launcher(const std::string& page_url, const std::string& swf_u char debugname[] = "/tmp/gnash-debug-XXXXXX.sh"; boost::iostreams::file_descriptor_sink fdsink = getfdsink(debugname); +#if BOOST_VERSION >= 104400 if (fdsink.handle() == -1) { gnash::log_error("Failed to create sink: %s", debugname); return; } +#endif boost::iostreams::stream saLauncher (fdsink); @@ -1119,10 +1130,12 @@ nsPluginInstance::setupCookies(const std::string& pageurl) gnash::log_debug("The Cookie for %s is %s", url, ncookie); char cookiename[] = "/tmp/gnash-cookies.XXXXXX"; boost::iostreams::file_descriptor_sink fdsink = getfdsink(cookiename); +#if BOOST_VERSION >= 104400 if (fdsink.handle() == -1) { gnash::log_error("Failed to create sink: %s", cookiename); return; } +#endif boost::iostreams::stream cookiefile (fdsink);