X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fmemcached.cc;h=2bcf6fa894afb72cce638da244c5984fba636739;hb=26f4a2a69a448fbda346b7bec93b6bd1d825e12b;hp=2eb91281e42176f3e72e096f3021df1f938a03e5;hpb=09b4ff9a9b7c62b4511ab10c9305eba757fea34b;p=m6w6%2Flibmemcached diff --git a/libmemcached/memcached.cc b/libmemcached/memcached.cc index 2eb91281..2bcf6fa8 100644 --- a/libmemcached/memcached.cc +++ b/libmemcached/memcached.cc @@ -208,30 +208,49 @@ memcached_st *memcached_create(memcached_st *ptr) memcached_st *memcached(const char *string, size_t length) { - memcached_st *self= memcached_create(NULL); - if (self == NULL) + if (length == 0 and string) + { + return NULL; + } + + if (length and string == NULL) { return NULL; } if (length == 0) { - return self; + if (bool(getenv("LIBMEMCACHED"))) + { + string= getenv("LIBMEMCACHED"); + length= string ? strlen(string) : 0; + } + } + + memcached_st *memc= memcached_create(NULL); + if (memc == NULL) + { + return NULL; + } + + if (length == 0 or string == NULL) + { + return memc; } - memcached_return_t rc= memcached_parse_configuration(self, string, length); - if (memcached_success(rc) and memcached_parse_filename(self)) + memcached_return_t rc= memcached_parse_configuration(memc, string, length); + if (memcached_success(rc) and memcached_parse_filename(memc)) { - rc= memcached_parse_configure_file(*self, memcached_parse_filename(self), memcached_parse_filename_length(self)); + rc= memcached_parse_configure_file(*memc, memcached_parse_filename(memc), memcached_parse_filename_length(memc)); } if (memcached_failed(rc)) { - memcached_free(self); + memcached_free(memc); return NULL; } - return self; + return memc; } memcached_return_t memcached_reset(memcached_st *ptr)