libcli/smb: add smb1cli_conn_req_possible()
authorStefan Metzmacher <metze@samba.org>
Tue, 13 Aug 2013 12:05:05 +0000 (14:05 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 15 Aug 2013 07:07:06 +0000 (09:07 +0200)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
libcli/smb/smbXcli_base.c
libcli/smb/smbXcli_base.h

index 2562442f2842bddf56a52a808b438c4d02e75fbb..9e8725c43a02ae70a225acbc30a48223c3643df5 100644 (file)
@@ -595,6 +595,23 @@ uint32_t smb1cli_conn_max_xmit(struct smbXcli_conn *conn)
        return conn->smb1.max_xmit;
 }
 
+bool smb1cli_conn_req_possible(struct smbXcli_conn *conn)
+{
+       size_t pending;
+       uint16_t possible = conn->smb1.server.max_mux;
+
+       pending = tevent_queue_length(conn->outgoing);
+       if (pending >= possible) {
+               return false;
+       }
+       pending += talloc_array_length(conn->pending);
+       if (pending >= possible) {
+               return false;
+       }
+
+       return true;
+}
+
 uint32_t smb1cli_conn_server_session_key(struct smbXcli_conn *conn)
 {
        return conn->smb1.server.session_key;
index 4ce39c0db14bf6bd7fb40548e48ae0c1a5c0c647..6b3156f42a0b387891576eb7065623419e25c0ee 100644 (file)
@@ -69,6 +69,7 @@ bool smbXcli_req_set_pending(struct tevent_req *req);
 
 uint32_t smb1cli_conn_capabilities(struct smbXcli_conn *conn);
 uint32_t smb1cli_conn_max_xmit(struct smbXcli_conn *conn);
+bool smb1cli_conn_req_possible(struct smbXcli_conn *conn);
 uint32_t smb1cli_conn_server_session_key(struct smbXcli_conn *conn);
 const uint8_t *smb1cli_conn_server_challenge(struct smbXcli_conn *conn);
 uint16_t smb1cli_conn_server_security_mode(struct smbXcli_conn *conn);