/*! * \brief Finds a bridge, filling the response with an error, if appropriate. * * \param[out] response Response to fill with an error if control is not found. * \param bridge_id ID of the bridge to lookup. * * \return Bridget. * \return \c NULL if bridge does not exist. */ static struct ast_bridge *find_bridge( struct ast_ari_response *response, const char *bridge_id) { RAII_VAR(struct ast_bridge *, bridge, NULL, ao2_cleanup); ast_assert(response != NULL); bridge = stasis_app_bridge_find_by_id(bridge_id); if (bridge == NULL) { RAII_VAR(struct ast_bridge_snapshot *, snapshot, ast_bridge_snapshot_get_latest(bridge_id), ao2_cleanup); if (!snapshot) { ast_ari_response_error(response, 404, "Not found", "Bridge not found"); return NULL; } ast_ari_response_error(response, 409, "Conflict", "Bridge not in Stasis application"); return NULL; } ao2_ref(bridge, +1); return bridge; }
static void *bridge_find(const struct stasis_app *app, const char *id) { return stasis_app_bridge_find_by_id(id); }