close.c 472 B

123456789101112131415161718192021222324
  1. // (C) 2013 Cybozu.
  2. #include "yrmcds.h"
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. yrmcds_error yrmcds_close(yrmcds* c) {
  6. if( c == NULL )
  7. return YRMCDS_BAD_ARGUMENT;
  8. if( c->sock == -1 )
  9. return YRMCDS_OK;
  10. close(c->sock);
  11. c->sock = -1;
  12. #ifndef LIBYRMCDS_NO_INTERNAL_LOCK
  13. pthread_mutex_destroy(&(c->lock));
  14. #endif
  15. free(c->recvbuf);
  16. c->recvbuf = NULL;
  17. free(c->decompressed);
  18. c->decompressed = NULL;
  19. return YRMCDS_OK;
  20. }