emit messages to stderr when write fails
authorMark Atwood <mark@fallenpegasus.com>
Sat, 22 Sep 2007 22:46:56 +0000 (15:46 -0700)
committerMark Atwood <mark@fallenpegasus.com>
Sat, 22 Sep 2007 22:46:56 +0000 (15:46 -0700)
lib/memcached_auto.c
lib/memcached_delete.c
lib/memcached_flush.c
lib/memcached_get.c
lib/memcached_stats.c
lib/memcached_verbosity.c
src/memflush.c

index 86ee7669fbd1062fe1f84d037b96644988cc0cc4..70c72999ae55fda79c48a7fbb65992d780a8e62a 100644 (file)
@@ -24,10 +24,18 @@ static memcached_return memcached_auto(memcached_st *ptr,
                         offset);
   if (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
     return MEMCACHED_WRITE_FAILURE;
-  if ((sent_length= write(ptr->hosts[server_key].fd, buffer, send_length) == -1))
+  sent_length= write(ptr->hosts[server_key].fd, buffer, send_length);
+  if (sent_length == -1)
+  {
+    fprintf(stderr, "error %s: write: %m\n", __FUNCTION__);
     return MEMCACHED_WRITE_FAILURE;
+  }
   if (sent_length != send_length)
+  {
+    fprintf(stderr, "error %s: short write %d %d: %m\n",
+           __FUNCTION__, sent_length, send_length);
     return MEMCACHED_WRITE_FAILURE;
+  }
 
   memset(buffer, 0, MEMCACHED_DEFAULT_COMMAND_SIZE);
   send_length= read(ptr->hosts[server_key].fd, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE);
index 11b22ece6bbbd7957447f9c9fb3343742bd3e89f..75087bd491b3c65a397ed798427fc920ae5c052b 100644 (file)
@@ -26,10 +26,20 @@ memcached_return memcached_delete(memcached_st *ptr, char *key, size_t key_lengt
   if (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
     return MEMCACHED_WRITE_FAILURE;
 
-  if ((sent_length = write(ptr->hosts[server_key].fd, buffer, send_length) == -1))
+  sent_length= write(ptr->hosts[server_key].fd, buffer, send_length);
+
+  if (sent_length == -1)
+  {
+    fprintf(stderr, "error %s: write: %m\n", __FUNCTION__);
     return MEMCACHED_WRITE_FAILURE;
+  }
+
   if (sent_length != send_length)
+  {
+    fprintf(stderr, "error %s: short write %d %d: %m\n",
+           __FUNCTION__, sent_length, send_length);
     return MEMCACHED_WRITE_FAILURE;
+  }
 
   return memcached_response(ptr, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, server_key);
 }
index 4ca73e30ab977126b283e2f91b5d2312126872c0..07fc3ac0b63ce712e740ace8ffc819e887431e26 100644 (file)
@@ -24,10 +24,20 @@ memcached_return memcached_flush(memcached_st *ptr, time_t expiration)
     if (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
       return MEMCACHED_WRITE_FAILURE;
 
-    if ((sent_length= write(ptr->hosts[x].fd, buffer, send_length) == -1))
+    sent_length= write(ptr->hosts[x].fd, buffer, send_length);
+
+    if (sent_length == -1)
+    {
+      fprintf(stderr, "error %s: write: %m\n", __FUNCTION__);
       return MEMCACHED_WRITE_FAILURE;
+    }
+
     if (sent_length != send_length)
+    {
+      fprintf(stderr, "error %s: short write %d %d: %m\n",
+             __FUNCTION__, sent_length, send_length);
       return MEMCACHED_WRITE_FAILURE;
+    }
 
     rc= memcached_response(ptr, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, x);
 
index 9eb60e2668afafecc589ef800955540220c93238..560a50de07dffb36274fcaff566ecc350a6dac48 100644 (file)
@@ -22,14 +22,24 @@ char *memcached_get(memcached_st *ptr, char *key, size_t key_length,
                         (int)key_length, key);
 
   if (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
-    return MEMCACHED_WRITE_FAILURE;
+  {
+    *error= MEMCACHED_WRITE_FAILURE;
+    return NULL;
+  }
 
-  if ((sent_length = write(ptr->hosts[server_key].fd, buffer, send_length) == -1))
+  sent_length= write(ptr->hosts[server_key].fd, buffer, send_length);
+
+  if (sent_length == -1)
   {
+    fprintf(stderr, "error %s: write: %m\n", __FUNCTION__);
     *error= MEMCACHED_WRITE_FAILURE;
     return NULL;
   }
-  if (sent_length != send_length) {
+
+  if (sent_length != send_length)
+  {
+    fprintf(stderr, "error %s: short write %d %d: %m\n",
+           __FUNCTION__, sent_length, send_length);
     *error= MEMCACHED_WRITE_FAILURE;
     return NULL;
   }
index 8a05dfd93a30d12c0d8d409906ac2b08c904b73e..867147591c195116773d2a62ce752232846d0919 100644 (file)
@@ -139,15 +139,20 @@ static memcached_return memcached_stats_fetch(memcached_st *ptr,
   if (send_length >= MEMCACHED_DEFAULT_COMMAND_SIZE)
     return MEMCACHED_WRITE_FAILURE;
 
-  if ((sent_length= write(ptr->hosts[server_key].fd, buffer, send_length) == -1))
-  {
-    fprintf(stderr, "failed on stats\n");
+  sent_length= write(ptr->hosts[server_key].fd, buffer, send_length);
 
+  if (sent_length == -1)
+  {
+    fprintf(stderr, "error %s: write: %m\n", __FUNCTION__);
     return MEMCACHED_WRITE_FAILURE;
   }
+
   if (sent_length != send_length)
+  {
+    fprintf(stderr, "error %s: short write %d %d: %m\n",
+           __FUNCTION__, sent_length, send_length);
     return MEMCACHED_WRITE_FAILURE;
-
+  }
 
   rc= memcached_response(ptr, buffer, HUGE_STRING_LEN, 0);
 
index ecea6f225c16d6c88f228c4172d819efcbf4bd19..55a51842a8211a12449a3c5132a1ad345642b49f 100644 (file)
@@ -21,10 +21,20 @@ memcached_return memcached_verbosity(memcached_st *ptr, unsigned int verbosity)
   {
     memcached_return rc;
 
-    if ((sent_length= write(ptr->hosts[x].fd, buffer, send_length) == -1))
+    sent_length= write(ptr->hosts[x].fd, buffer, send_length);
+
+    if (sent_length == -1)
+    {
+      fprintf(stderr, "error %s: write: %m\n", __FUNCTION__);
       return MEMCACHED_WRITE_FAILURE;
+    }
+
     if (sent_length != send_length)
+    {
+      fprintf(stderr, "error %s: short write %d %d: %m\n",
+             __FUNCTION__, sent_length, send_length);
       return MEMCACHED_WRITE_FAILURE;
+    }
 
     rc= memcached_response(ptr, buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, x);
 
index 474fb47e00707f2a83c3a25743f0dbc0f28598a3..95e3e98612cd6e4ec0c8c5a4a2e69d9ec934f19b 100644 (file)
@@ -27,8 +27,8 @@ int main(int argc, char *argv[])
   rc = memcached_flush(memc, opt_expire);\r
   if (rc != MEMCACHED_SUCCESS) \r
   {\r
-    fprintf(stderr, "memflush: %s: memcache error %s\n", \r
-           argv[optind], memcached_strerror(memc, rc));\r
+    fprintf(stderr, "memflush: memcache error %s\n", \r
+           memcached_strerror(memc, rc));\r
   }\r
 \r
   memcached_deinit(memc);\r