version 1.147, 2017/10/12 11:32:27 |
version 1.148, 2017/11/02 18:27:35 |
|
|
evbuffer_add(buffer, ",", 1); |
evbuffer_add(buffer, ",", 1); |
evbuffer_add_printf(buffer, "%u", i); |
evbuffer_add_printf(buffer, "%u", i); |
} |
} |
size = EVBUFFER_LENGTH(buffer); |
if ((size = EVBUFFER_LENGTH(buffer)) != 0) |
xasprintf(&fe->value, "%.*s", size, EVBUFFER_DATA(buffer)); |
xasprintf(&fe->value, "%.*s", size, EVBUFFER_DATA(buffer)); |
evbuffer_free(buffer); |
evbuffer_free(buffer); |
} |
} |
|
|
|
/* Callback for session_group_others. */ |
|
static void |
|
format_cb_session_group_others(struct format_tree *ft, struct format_entry *fe) |
|
{ |
|
struct session *s = ft->s; |
|
struct session_group *sg; |
|
struct session *loop; |
|
struct evbuffer *buffer; |
|
int size; |
|
|
|
if (s == NULL) |
|
return; |
|
sg = session_group_contains(s); |
|
if (sg == NULL) |
|
return; |
|
|
|
buffer = evbuffer_new(); |
|
TAILQ_FOREACH(loop, &sg->sessions, gentry) { |
|
if (loop == s) |
|
continue; |
|
|
|
if (EVBUFFER_LENGTH(buffer) > 0) |
|
evbuffer_add(buffer, ",", 1); |
|
evbuffer_add_printf(buffer, "%s", loop->name); |
|
} |
|
if ((size = EVBUFFER_LENGTH(buffer)) != 0) |
|
xasprintf(&fe->value, "%.*s", size, EVBUFFER_DATA(buffer)); |
|
evbuffer_free(buffer); |
|
} |
|
|
/* Merge a format tree. */ |
/* Merge a format tree. */ |
static void |
static void |
format_merge(struct format_tree *ft, struct format_tree *from) |
format_merge(struct format_tree *ft, struct format_tree *from) |
|
|
|
|
sg = session_group_contains(s); |
sg = session_group_contains(s); |
format_add(ft, "session_grouped", "%d", sg != NULL); |
format_add(ft, "session_grouped", "%d", sg != NULL); |
if (sg != NULL) |
if (sg != NULL) { |
format_add(ft, "session_group", "%s", sg->name); |
format_add(ft, "session_group", "%s", sg->name); |
|
format_add(ft, "session_group_size", "%u", |
|
session_group_count (sg)); |
|
format_add_cb(ft, "session_group_others", |
|
format_cb_session_group_others); |
|
} |
|
|
format_add_tv(ft, "session_created", &s->creation_time); |
format_add_tv(ft, "session_created", &s->creation_time); |
format_add_tv(ft, "session_last_attached", &s->last_attached_time); |
format_add_tv(ft, "session_last_attached", &s->last_attached_time); |