static int client_expect_reject(size_t paramlen) { uint32_t event; int ret; ret = client_connect(paramlen); if (ret) { FT_PRINTERR("fi_connect", ret); return ret; } ret = fi_eq_sread(eq, &event, entry, sizeof(*entry), -1, 0); if (ret != -FI_EAVAIL) { FT_PROCESS_EQ_ERR(ret, eq, "fi_eq_sread", "connect"); return ret; } ret = fi_eq_readerr(eq, &err_entry, 0); if (ret != sizeof(err_entry)) { FT_EQ_ERR(eq, err_entry, NULL, 0); return err_entry.err; } if (err_entry.err != FI_ECONNREFUSED) return err_entry.err; /* Check data on FI_ECONNREFUSED error event. */ return ft_check_buf(err_entry.err_data, err_entry.err_data_size); }
void eq_readerr(struct fid_eq *eq, const char *eq_str) { struct fi_eq_err_entry eq_err; int rd; rd = fi_eq_readerr(eq, &eq_err, 0); if (rd != sizeof(eq_err)) { FT_PRINTERR("fi_eq_readerr", rd); } else { FT_EQ_ERR(eq, eq_err, NULL, 0); } }