diff --git a/src/client/sock.c b/src/client/sock.c
index fd18a1efc689c331df0740feab0f1d4e2a9d3e86..b60bad45e2cf97d47d2c101513c030f4a27fff5e 100644 (file)
--- a/src/client/sock.c
+++ b/src/client/sock.c
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
+#if HAVE_CONFIG_H
+# include "config.h"
+#endif /* HAVE_CONFIG_H */
+
#include "client/sock.h"
#include "utils/error.h"
#include "utils/strbuf.h"
buf = sdb_strbuf_create(64);
rstatus = 0;
status = sdb_client_recv(client, &rstatus, buf);
- if ((status > 0) && (rstatus == CONNECTION_OK))
+ if ((status > 0) && (rstatus == CONNECTION_OK)) {
+ sdb_strbuf_destroy(buf);
return 0;
+ }
if (status < 0) {
char errbuf[1024];
return client->fd;
} /* sdb_client_sockfd */
+int
+sdb_client_shutdown(sdb_client_t *client, int how)
+{
+ if (! client) {
+ errno = ENOTSOCK;
+ return -1;
+ }
+
+ if (client->fd < 0) {
+ errno = EBADF;
+ return -1;
+ }
+
+ return shutdown(client->fd, how);
+} /* sdb_client_shutdown */
+
void
sdb_client_close(sdb_client_t *client)
{