static gboolean _configure_with_arguments(struct sqlx_service_s *ss, int argc, char **argv) { // Sanity checks if (ss->sync_mode_solo > SQLX_SYNC_FULL) { GRID_WARN("Invalid SYNC mode for not-replicated bases"); return FALSE; } if (ss->sync_mode_repli > SQLX_SYNC_FULL) { GRID_WARN("Invalid SYNC mode for replicated bases"); return FALSE; } if (!ss->url) { GRID_WARN("No URL!"); return FALSE; } if (!ss->announce) { ss->announce = g_string_new(ss->url->str); GRID_DEBUG("No announce set, using endpoint [%s]", ss->announce->str); } if (!metautils_url_valid_for_bind(ss->url->str)) { GRID_ERROR("Invalid URL as a endpoint [%s]", ss->url->str); return FALSE; } if (!metautils_url_valid_for_connect(ss->announce->str)) { GRID_ERROR("Invalid URL to be announced [%s]", ss->announce->str); return FALSE; } if (argc < 2) { GRID_ERROR("Not enough options, see usage."); return FALSE; } // Positional arguments gsize s = g_strlcpy(ss->ns_name, argv[0], sizeof(ss->ns_name)); if (s >= sizeof(ss->ns_name)) { GRID_WARN("Namespace name too long (given=%"G_GSIZE_FORMAT" max=%u)", s, (unsigned int)sizeof(ss->ns_name)); return FALSE; } GRID_DEBUG("NS configured to [%s]", ss->ns_name); ss->lb_world = oio_lb_local__create_world(); ss->lb = oio_lb__create(); s = g_strlcpy(ss->volume, argv[1], sizeof(ss->volume)); if (s >= sizeof(ss->volume)) { GRID_WARN("Volume name too long (given=%"G_GSIZE_FORMAT" max=%u)", s, (unsigned int) sizeof(ss->volume)); return FALSE; } GRID_DEBUG("Volume configured to [%s]", ss->volume); ss->zk_url = gridcluster_get_zookeeper(ss->ns_name); return TRUE; }
GError * oio_events_queue_factory__create_beanstalkd (const char *endpoint, struct oio_events_queue_s **out) { EXTRA_ASSERT(endpoint != NULL); EXTRA_ASSERT(out != NULL); *out = NULL; if (!metautils_url_valid_for_connect (endpoint)) return BADREQ("Invalid beanstalkd endpoint [%s]", endpoint); struct _queue_BEANSTALKD_s *self = g_malloc0 (sizeof(*self)); self->vtable = &vtable_BEANSTALKD; self->queue = g_async_queue_new (); self->tube = g_strdup(OIO_EVT_BEANSTALKD_DEFAULT_TUBE); self->max_events_in_queue = OIO_EVTQ_MAXPENDING; self->endpoint = g_strdup (endpoint); oio_events_queue_buffer_init(&(self->buffer), 1 * G_TIME_SPAN_SECOND); *out = (struct oio_events_queue_s*) self; return NULL; }
static GError* _client_connect_url(struct gridd_client_s *client, const gchar *url) { EXTRA_ASSERT(client != NULL); EXTRA_ASSERT(client->abstract.vtable == &VTABLE_CLIENT); if (NULL == url || !url[0]) return NEWERROR(CODE_INTERNAL_ERROR, "Bad address"); if (!metautils_url_valid_for_connect(url)) return NEWERROR(400, "Bad address [%s]", url); g_assert(client != NULL); _client_reset_cnx(client); _client_reset_target(client); _client_reset_reply(client); g_strlcpy(client->orig_url, url, URL_MAXLEN); memcpy(client->url, client->orig_url, URL_MAXLEN); client->step = NONE; return NULL; }