projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Moved response code to use a switch/case (instead if giant if/else)
[m6w6/libmemcached]
/
libmemcached
/
memcached_io.c
diff --git
a/libmemcached/memcached_io.c
b/libmemcached/memcached_io.c
index ea8b25816d9d981fce5f4d40cc29f3cc0a84be2f..47486d3095b799872a6943004c23821af525c7b9 100644
(file)
--- a/
libmemcached/memcached_io.c
+++ b/
libmemcached/memcached_io.c
@@
-204,14
+204,23
@@
ssize_t memcached_io_write(memcached_server_st *ptr,
return original_length;
}
return original_length;
}
-memcached_return memcached_io_close(memcached_server_st *ptr
, uint8_t io_death
)
+memcached_return memcached_io_close(memcached_server_st *ptr)
{
{
+ int r;
/* in case of death shutdown to avoid blocking at close() */
/* in case of death shutdown to avoid blocking at close() */
- if (io_death)
- shutdown(ptr->fd, SHUT_RDWR);
- else
- close(ptr->fd);
+ r= shutdown(ptr->fd, SHUT_RDWR);
+
+#ifdef HAVE_DEBUG
+ if (r && errno != ENOTCONN)
+ {
+ WATCHPOINT_ERRNO(errno);
+ WATCHPOINT_ASSERT(errno);
+ }
+#endif
+
+ r= close(ptr->fd);
+ WATCHPOINT_ASSERT(r == 0);
return MEMCACHED_SUCCESS;
}
return MEMCACHED_SUCCESS;
}
@@
-219,7
+228,7
@@
memcached_return memcached_io_close(memcached_server_st *ptr, uint8_t io_death)
static ssize_t io_flush(memcached_server_st *ptr,
memcached_return *error)
{
static ssize_t io_flush(memcached_server_st *ptr,
memcached_return *error)
{
- size_t sent_length;
+ s
s
ize_t sent_length;
size_t return_length;
char *local_write_ptr= ptr->write_buffer;
size_t write_length= ptr->write_buffer_offset;
size_t return_length;
char *local_write_ptr= ptr->write_buffer;
size_t write_length= ptr->write_buffer_offset;
@@
-230,9
+239,11
@@
static ssize_t io_flush(memcached_server_st *ptr,
return 0;
/* Looking for memory overflows */
return 0;
/* Looking for memory overflows */
+#if defined(HAVE_DEBUG)
if (write_length == MEMCACHED_MAX_BUFFER)
WATCHPOINT_ASSERT(ptr->write_buffer == local_write_ptr);
WATCHPOINT_ASSERT((ptr->write_buffer + MEMCACHED_MAX_BUFFER) >= (local_write_ptr + write_length));
if (write_length == MEMCACHED_MAX_BUFFER)
WATCHPOINT_ASSERT(ptr->write_buffer == local_write_ptr);
WATCHPOINT_ASSERT((ptr->write_buffer + MEMCACHED_MAX_BUFFER) >= (local_write_ptr + write_length));
+#endif
return_length= 0;
while (write_length)
return_length= 0;
while (write_length)
@@
-269,7
+280,7
@@
static ssize_t io_flush(memcached_server_st *ptr,
}
else
{
}
else
{
- if ((s
size_t)(s
ent_length= write(ptr->fd, local_write_ptr,
+ if ((sent_length= write(ptr->fd, local_write_ptr,
write_length)) == -1)
{
switch (errno)
write_length)) == -1)
{
switch (errno)