diff --git a/src/tools/sysdb/main.c b/src/tools/sysdb/main.c
index 8455a6c7000e4856483b8650ce02a932c0fa98a2..05c5b9fb6d6ce6f6d57cb45f04666dff37e775a7 100644 (file)
--- a/src/tools/sysdb/main.c
+++ b/src/tools/sysdb/main.c
while (sdb_llist_iter_has_next(iter)) {
sdb_object_t *obj = sdb_llist_iter_get_next(iter);
- int err;
if (sdb_client_send(client, CONNECTION_QUERY,
(uint32_t)strlen(obj->name), obj->name) <= 0) {
status = 1;
break;
}
- err = sdb_command_print_reply(client);
- if (err) {
- if (err < 0)
+
+ /* Wait for server replies. We might get any number of log messages
+ * but eventually see the reply to the query, which is either OK or
+ * ERROR. */
+ while (42) {
+ status = sdb_command_print_reply(client);
+ if (status < 0) {
sdb_log(SDB_LOG_ERR, "Failed to read reply from server");
- status = 1;
- break;
+ break;
+ }
+
+ if ((status == CONNECTION_OK) || (status == CONNECTION_ERROR))
+ break;
}
+
+ if (status)
+ break;
}
sdb_llist_iter_destroy(iter);
}
sdb_log(SDB_LOG_INFO, "SysDB client "SDB_CLIENT_VERSION_STRING
- SDB_CLIENT_VERSION_EXTRA"\n");
+ SDB_CLIENT_VERSION_EXTRA" (libsysdbclient %s%s)\n",
+ sdb_client_version_string(), sdb_client_version_extra());
using_history();