- memset(&handle->shadow_chan->backend.config.cb, 0,
- sizeof(handle->shadow_chan->backend.config.cb));
+ config = &handle->shadow_chan->backend.config;
+ switch (config->client_type) {
+ case LTTNG_CLIENT_METADATA:
+ memcpy(&config->cb, lttng_client_callbacks_metadata,
+ sizeof(config->cb));
+ break;
+ case LTTNG_CLIENT_DISCARD:
+ memcpy(&config->cb, lttng_client_callbacks_discard,
+ sizeof(config->cb));
+ break;
+ case LTTNG_CLIENT_OVERWRITE:
+ memcpy(&config->cb, lttng_client_callbacks_overwrite,
+ sizeof(config->cb));
+ break;
+ default:
+ ERR("Unknown client type %d", config->client_type);
+ channel_destroy(chan, handle, 1);
+ return NULL;
+ }