return ret;
}
+int webrtc_data_channel_get_label(webrtc_data_channel_h channel, char **label)
+{
+ webrtc_data_channel_s *_channel = (webrtc_data_channel_s*)channel;
+ gchar *_label;
+
+ RET_VAL_IF(_channel == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "channel is NULL");
+ RET_VAL_IF(label == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "label is NULL");
+ RET_VAL_IF(_channel->channel == NULL, WEBRTC_ERROR_INVALID_OPERATION, "data_channel is NULL");
+
+ g_object_get(_channel->channel, "label", &_label, NULL);
+ RET_VAL_IF(_label == NULL, WEBRTC_ERROR_INVALID_OPERATION, "label is NULL");
+
+ *label = strdup(_label);
+
+ LOG_INFO("label[%s]", *label);
+
+ g_free(_label);
+
+ return WEBRTC_ERROR_NONE;
+}
+
int webrtc_get_data(webrtc_bytes_data_h bytes, const char **data, unsigned int *size)
{
webrtc_bytes_data_s *_bytes = (webrtc_bytes_data_s*)bytes;
}
}
+static char * __get_channel_label(webrtc_data_channel_h channel)
+{
+ int ret = WEBRTC_ERROR_NONE;
+ char *label = NULL;
+
+ if (!channel)
+ return NULL;
+
+ ret = webrtc_data_channel_get_label(channel, &label);
+ if (ret != WEBRTC_ERROR_NONE)
+ g_print("failed to webrtc_data_channel_get_label(), ret[0x%x]\n", ret);
+
+ return label;
+}
static void __data_channel_open_cb(webrtc_data_channel_h channel, void *user_data)
{
connection_s *conn = (connection_s*)user_data;
+ char *label = __get_channel_label(channel);
+
+ g_print("__data_channel_open_cb() is called, channel[%p], conn[%p] label[%s]\n", channel, conn, label);
- g_print("__data_channel_open_cb() is called, channel[%p], conn[%p]\n", channel, conn);
+ if (label)
+ free(label);
}
static void __file_dump(const gchar *file_name, void *src_buffer, int size)
static void __data_channel_message_cb(webrtc_data_channel_h channel, webrtc_data_channel_type_e type, void *message, void *user_data)
{
connection_s *conn = (connection_s*)user_data;
+ char *label = __get_channel_label(channel);
- g_print("__data_channel_message_cb() is called, channel[%p], type[%d], conn[%p]", channel, type, conn);
+ g_print("__data_channel_message_cb() is called, channel[%p], type[%d], conn[%p], label[%s] ", channel, type, conn, label);
+
+ if (label)
+ free(label);
if (conn == NULL) {
g_printerr("conn is NULL\n");
static void __data_channel_error_cb(webrtc_data_channel_h channel, webrtc_error_e error, void *user_data)
{
connection_s *conn = (connection_s*)user_data;
+ char *label = __get_channel_label(channel);
+
+ g_print("__data_channel_error_cb() is called, channel[%p], conn[%p] label[%s]\n", channel, conn, label);
- g_print("__data_channel_error_cb() is called, channel[%p], conn[%p]\n", channel, conn);
+ if (label)
+ free(label);
}
static void __data_channel_close_cb(webrtc_data_channel_h channel, void *user_data)
{
connection_s *conn = (connection_s*)user_data;
+ char *label = __get_channel_label(channel);
- g_print("__data_channel_close_cb() is called, channel[%p], conn[%p]\n", channel, conn);
+ g_print("__data_channel_close_cb() is called, channel[%p], conn[%p] label[%s]\n", channel, conn, label);
+
+ if (label)
+ free(label);
}
static void __data_channel_cb(webrtc_h webrtc, webrtc_data_channel_h channel, void *user_data)
{
int i;
connection_s *conn = (connection_s*)user_data;
+ char *label = NULL;
if (conn == NULL) {
g_printerr("conn is NULL\n");
for (i = 0; i < MAX_CHANNEL_LEN; i++) {
if (conn->recv_channels[i] == NULL) {
- g_print("__data_channel_cb() is called for conn[%p], append all the callbacks.\n", conn);
+ label = __get_channel_label(channel);
+ g_print("__data_channel_cb() is called for conn[%p], label[%s] append all the callbacks.\n", conn, label);
conn->recv_channels[i] = channel;
webrtc_data_channel_set_open_cb(channel, __data_channel_open_cb, (void *)conn);
webrtc_data_channel_set_message_cb(channel, __data_channel_message_cb, (void *)conn);
webrtc_data_channel_set_error_cb(channel, __data_channel_error_cb, (void *)conn);
webrtc_data_channel_set_close_cb(channel, __data_channel_close_cb, (void *)conn);
+
+ if (label)
+ free(label);
+
return;
}
}
g_print("webrtc_create_data_channel() success, channel[%p], index[%d]\n",
g_conns[index].channels[g_conns[index].channel_index], g_conns[index].channel_index);
webrtc_data_channel_set_open_cb(g_conns[index].channels[g_conns[index].channel_index], __data_channel_open_cb, &g_conns[index]);
+ webrtc_data_channel_set_message_cb(g_conns[index].channels[g_conns[index].channel_index], __data_channel_message_cb, &g_conns[index]);
webrtc_data_channel_set_error_cb(g_conns[index].channels[g_conns[index].channel_index], __data_channel_error_cb, &g_conns[index]);
webrtc_data_channel_set_close_cb(g_conns[index].channels[g_conns[index].channel_index], __data_channel_close_cb, &g_conns[index]);
g_conns[index].channel_index++;