projects
/
awesomized
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Merge tree from intel box.
[awesomized/libmemcached]
/
libtest
/
has.cc
diff --git
a/libtest/has.cc
b/libtest/has.cc
index a7a09cb4da909cb10e3f4eb80eb18a5ecbec4c82..b957bc6a49a23ce26e1c46f116985241084101d2 100644
(file)
--- a/
libtest/has.cc
+++ b/
libtest/has.cc
@@
-43,6
+43,18
@@
namespace libtest {
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_libmemcached(void)
{
#if defined(HAVE_LIBMEMCACHED) && HAVE_LIBMEMCACHED
@@
-85,7
+97,7
@@
bool has_postgres_support(void)
bool has_gearmand()
{
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;
if (HAVE_GEARMAND_BINARY)
{
std::stringstream arg_buffer;
@@
-111,7
+123,7
@@
bool has_gearmand()
bool has_drizzled()
{
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)
if (HAVE_DRIZZLED_BINARY)
{
if (access(DRIZZLED_BINARY, X_OK) == 0)
@@
-126,7
+138,7
@@
bool has_drizzled()
bool has_mysqld()
{
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)
if (HAVE_MYSQLD_BUILD)
{
if (access(MYSQLD_BINARY, X_OK) == 0)
@@
-141,11
+153,11
@@
bool has_mysqld()
static char memcached_binary_path[FILENAME_MAX];
static char memcached_binary_path[FILENAME_MAX];
-static void initialize_
curl_startup
()
+static void initialize_
memcached_binary_path
()
{
{
- memcached_binary_path[0]=
NULL
;
+ 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;
if (HAVE_MEMCACHED_BINARY)
{
std::stringstream arg_buffer;
@@
-170,7
+182,7
@@
static pthread_once_t memcached_binary_once= PTHREAD_ONCE_INIT;
static void initialize_memcached_binary(void)
{
int ret;
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));
}
{
FATAL(strerror(ret));
}
@@
-181,6
+193,7
@@
bool has_memcached()
initialize_memcached_binary();
if (memcached_binary_path[0])
initialize_memcached_binary();
if (memcached_binary_path[0])
+ if (memcached_binary_path[0] and (strlen(memcached_binary_path) > 0))
{
return true;
}
{
return true;
}
@@
-200,29
+213,61
@@
const char* memcached_binary()
return NULL;
}
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
}
}
#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()
{
return false;
}
const char *gearmand_binary()
{
+#if defined(GEARMAND_BINARY)
return GEARMAND_BINARY;
return GEARMAND_BINARY;
+#else
+ return NULL;
+#endif
}
const char *drizzled_binary()
{
}
const char *drizzled_binary()
{
+#if defined(DRIZZLED_BINARY)
return DRIZZLED_BINARY;
return DRIZZLED_BINARY;
+#else
+ return NULL;
+#endif
}
} // namespace libtest
}
} // namespace libtest