static gint do_queryv(struct meta1_service_url_s *surl) { gint rc; gchar **pq; struct gridd_client_s *client; GRID_DEBUG("Contacting SHARD[%"G_GINT64_FORMAT"] at [%s][%s]", surl->seq, surl->host, surl->args); client = gridd_client_create_idle(surl->host); gridd_client_set_keepalive(client, TRUE); gridd_client_start(client); rc = 1; for (pq=query; *pq ;pq++) { if (!do_query(client, surl, *pq)) { rc = 0; break; } } gridd_client_free(client); return rc; }
struct gridd_client_s * gridd_client_create(const gchar *target, GByteArray *req, gpointer ctx, client_on_reply cb) { EXTRA_ASSERT(req != NULL); struct gridd_client_s *client = gridd_client_create_idle(target); if (!client) return NULL; GError *err = gridd_client_request(client, req, ctx, cb); if (NULL == err) return client; GRID_WARN("gridd client creation error : (%d) %s", err->code, err->message); g_clear_error(&err); gridd_client_free(client); return NULL; }
} return TRUE; } else { GRID_DEBUG("Callback error : %s", e->message); err = e; return FALSE; } } EXTRA_ASSERT(url != NULL); EXTRA_ASSERT(req != NULL); gscstat_tags_start(GSCSTAT_SERVICE_META2, GSCSTAT_TAGS_REQPROCTIME); client = gridd_client_create_idle(url); if (!client) err = NEWERROR(2, "errno=%d %s", errno, strerror(errno)); else { if ((timeout_to_step >= 0)&&(timeout_to_overall>=0)) gridd_client_set_timeout(client, timeout_to_step, timeout_to_overall); if (!gridd_client_start(client)) err = gridd_client_error(client); if (!err) err = gridd_client_request(client, req, out, out ? _cb : NULL); if (!err) { if (!(err = gridd_client_loop(client))) { err = gridd_client_error(client); } }
for (gchar **n=names ; n && *n ;++n) { if (!g_str_has_prefix (*n, NAME_MSGKEY_PREFIX_PROPERTY)) continue; g_tree_replace (props, g_strdup((*n) + sizeof(NAME_MSGKEY_PREFIX_PROPERTY) - 1), metautils_message_extract_string_copy(reply, *n)); } if (names) g_strfreev (names); } return TRUE; } EXTRA_ASSERT(target != NULL); struct gridd_client_s *client = gridd_client_create_idle(target); if (!client) err = NEWERROR(2, "errno=%d %s", errno, strerror(errno)); if (!err) err = gridd_client_request(client, request, props, out ? _cb : NULL); if (!err) { if (out_properties) props = g_tree_new_full (metautils_strcmp3, NULL, g_free, g_free); err = gridd_client_run (client); } if (!err && out_properties && props) { gboolean _run (gchar *k, gchar *v, GPtrArray *tmp) { g_ptr_array_add (tmp, g_strdup(k)); g_ptr_array_add (tmp, g_strdup(v)); return FALSE; }