First pass at adding in exception for servers which have gone away.
[m6w6/libmemcached] / libtest / fatal.cc
index 36683a48ed51d69810a55093fb4a4a385206e624..6c2dc12f9b170f866211d454770f4c76d771f0b3 100644 (file)
@@ -19,6 +19,7 @@
  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
+#include <config.h>
 #include <libtest/common.h>
 #include <cstdarg>
 
@@ -44,12 +45,12 @@ bool fatal::is_disabled()
   return _disabled;
 }
 
-bool fatal::disable()
+void fatal::disable()
 {
   _disabled= true;
 }
 
-bool fatal::enable()
+void fatal::enable()
 {
   _disabled= false;
 }
@@ -64,5 +65,19 @@ void fatal::increment_disabled_counter()
   _counter++;
 }
 
+disconnected::disconnected(const char *file, int line, const char *func, const char *instance, const in_port_t port, const char *format, ...) :
+  _port(port),
+  std::runtime_error(func)
+{
+  strncpy(_instance, instance, sizeof(_instance));
+  va_list args;
+  va_start(args, format);
+  char last_error[BUFSIZ];
+  (void)vsnprintf(last_error, sizeof(last_error), format, args);
+  va_end(args);
+
+  snprintf(_error_message, sizeof(_error_message), "%s:%d FATAL:%s (%s)", file, int(line), last_error, func);
+}
+
 } // namespace libtest