diff options
Diffstat (limited to 'debian/vendor-h2o/deps/libyrmcds/close.c')
-rw-r--r-- | debian/vendor-h2o/deps/libyrmcds/close.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/debian/vendor-h2o/deps/libyrmcds/close.c b/debian/vendor-h2o/deps/libyrmcds/close.c new file mode 100644 index 0000000..d19ae76 --- /dev/null +++ b/debian/vendor-h2o/deps/libyrmcds/close.c @@ -0,0 +1,24 @@ +// (C) 2013 Cybozu. + +#include "yrmcds.h" + +#include <stdlib.h> +#include <unistd.h> + +yrmcds_error yrmcds_close(yrmcds* c) { + if( c == NULL ) + return YRMCDS_BAD_ARGUMENT; + if( c->sock == -1 ) + return YRMCDS_OK; + + close(c->sock); + c->sock = -1; +#ifndef LIBYRMCDS_NO_INTERNAL_LOCK + pthread_mutex_destroy(&(c->lock)); +#endif + free(c->recvbuf); + c->recvbuf = NULL; + free(c->decompressed); + c->decompressed = NULL; + return YRMCDS_OK; +} |