namespace libtest {
+bool has_libmemcached_sasl(void)
+{
+#if defined(LIBMEMCACHED_WITH_SASL_SUPPORT) && LIBMEMCACHED_WITH_SASL_SUPPORT
+ if (LIBMEMCACHED_WITH_SASL_SUPPORT)
+ {
+ return true;
+ }
+#endif
+
+ return false;
+}
+
bool has_libmemcached(void)
{
#if defined(HAVE_LIBMEMCACHED) && HAVE_LIBMEMCACHED
bool has_gearmand()
{
-#if defined(HAVE_GEARMAND_BINARY) && HAVE_GEARMAND_BINARY
+#if defined(GEARMAND_BINARY) && defined(HAVE_GEARMAND_BINARY) && HAVE_GEARMAND_BINARY
if (HAVE_GEARMAND_BINARY)
{
std::stringstream arg_buffer;
bool has_drizzled()
{
-#if defined(HAVE_DRIZZLED_BINARY) && HAVE_DRIZZLED_BINARY
+#if defined(DRIZZLED_BINARY) && defined(HAVE_DRIZZLED_BINARY) && HAVE_DRIZZLED_BINARY
if (HAVE_DRIZZLED_BINARY)
{
if (access(DRIZZLED_BINARY, X_OK) == 0)
bool has_mysqld()
{
-#if defined(HAVE_MYSQLD_BUILD) && HAVE_MYSQLD_BUILD
+#if defined(MYSQLD_BINARY) && defined(HAVE_MYSQLD_BUILD) && HAVE_MYSQLD_BUILD
if (HAVE_MYSQLD_BUILD)
{
if (access(MYSQLD_BINARY, X_OK) == 0)
static char memcached_binary_path[FILENAME_MAX];
-static void initialize_curl_startup()
+static void initialize_memcached_binary_path()
{
memcached_binary_path[0]= 0;
-#if defined(HAVE_MEMCACHED_BINARY) && HAVE_MEMCACHED_BINARY
+#if defined(MEMCACHED_BINARY) && defined(HAVE_MEMCACHED_BINARY) && HAVE_MEMCACHED_BINARY
if (HAVE_MEMCACHED_BINARY)
{
std::stringstream arg_buffer;
static void initialize_memcached_binary(void)
{
int ret;
- if ((ret= pthread_once(&memcached_binary_once, initialize_curl_startup)) != 0)
+ if ((ret= pthread_once(&memcached_binary_once, initialize_memcached_binary_path)) != 0)
{
FATAL(strerror(ret));
}
initialize_memcached_binary();
if (memcached_binary_path[0])
+ if (memcached_binary_path[0] and (strlen(memcached_binary_path) > 0))
{
return true;
}
return NULL;
}
-bool has_memcached_sasl()
+static char memcached_sasl_binary_path[FILENAME_MAX];
+
+static void initialize_has_memcached_sasl()
{
-#if defined(HAVE_MEMCACHED_SASL_BINARY) && HAVE_MEMCACHED_SASL_BINARY
- if (HAVE_MEMCACHED_SASL_BINARY)
+ memcached_sasl_binary_path[0]= 0;
+
+#if defined(MEMCACHED_BINARY) && defined(HAVE_MEMCACHED_BINARY) && HAVE_MEMCACHED_BINARY
+ if (HAVE_MEMCACHED_BINARY)
{
- if (access(MEMCACHED_SASL_BINARY, X_OK) == 0)
+ std::stringstream arg_buffer;
+
+ char *getenv_ptr;
+ if (bool((getenv_ptr= getenv("PWD"))) and strcmp(MEMCACHED_BINARY, "memcached/memcached") == 0)
{
- return true;
+ arg_buffer << getenv_ptr;
+ arg_buffer << "/";
+ }
+ arg_buffer << MEMCACHED_BINARY;
+
+ if (access(arg_buffer.str().c_str(), X_OK) == 0)
+ {
+ strncpy(memcached_sasl_binary_path, arg_buffer.str().c_str(), FILENAME_MAX);
}
}
#endif
+}
+
+bool has_memcached_sasl()
+{
+ initialize_has_memcached_sasl();
+
+ if (memcached_sasl_binary_path[0] and (strlen(memcached_sasl_binary_path) > 0))
+ {
+ return true;
+ }
return false;
}
const char *gearmand_binary()
{
+#if defined(GEARMAND_BINARY)
return GEARMAND_BINARY;
+#else
+ return NULL;
+#endif
}
const char *drizzled_binary()
{
+#if defined(DRIZZLED_BINARY)
return DRIZZLED_BINARY;
+#else
+ return NULL;
+#endif
}
} // namespace libtest