add error reporting to tools, and link memcached_strerror into library
[awesomized/libmemcached] / src / memcp.c
index 6ae8e3b4905154b3de3115e23408a44e442c064a..fc396ff1b09c4b4163bc3040802ccd8d42b8f5bb 100644 (file)
@@ -6,6 +6,7 @@
 #include <sys/types.h>\r
 #include <sys/mman.h>\r
 #include <fcntl.h>\r
+#include <errno.h>\r
 \r
 #include <memcached.h>\r
 #include "client_options.h"\r
@@ -39,15 +40,20 @@ int main(int argc, char *argv[])
     char *ptr;\r
 \r
     fd= open(argv[optind], O_RDONLY);\r
-\r
-    if (fd == -1)\r
-    {\r
-      fprintf(stderr, "Failed opening %s\n", argv[optind]);\r
+    if (fd < 0) {\r
+      fprintf(stderr, "memcp: %s: %s\n", argv[optind], strerror(errno));\r
+      optind++;\r
       continue;\r
     }\r
 \r
     (void)fstat(fd, &sbuf);\r
     mptr= mmap(NULL, sbuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0);\r
+    if (mptr == MAP_FAILED) {\r
+      fprintf(stderr, "memcp: %s: %s\n", argv[optind], strerror(errno));\r
+      close(fd);\r
+      optind++;\r
+      continue;\r
+    }\r
 \r
     ptr= rindex(argv[optind], '/');\r
     if (ptr)\r
@@ -78,6 +84,11 @@ int main(int argc, char *argv[])
     else\r
       abort();\r
 \r
+    if (rc != MEMCACHED_SUCCESS) {\r
+      fprintf(stderr, "memcp: %s: memcache error %s\n", \r
+             ptr, memcached_strerror(memc, rc));\r
+    }\r
+\r
     munmap(mptr, sbuf.st_size);\r
     close(fd);\r
     optind++;\r