Code

plugin: Make sdb_plugin_info_t public.
[sysdb.git] / src / client / sock.c
index 6337ee6bf8cd8bf71611a42469b55527b7b84ff8..b60bad45e2cf97d47d2c101513c030f4a27fff5e 100644 (file)
@@ -179,8 +179,10 @@ sdb_client_connect(sdb_client_t *client, const char *username)
        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];
@@ -209,6 +211,22 @@ sdb_client_sockfd(sdb_client_t *client)
        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)
 {