int virtual_stream_connect(Channel * c, char * token, char * id) { int err = 0; if (find_client(id, c) == NULL) { VirtualStream * stream = virtual_stream_find(id); if (stream == NULL) err = errno; else create_client(stream, c); } return err == 0 ? 0 : -1; }
static void command_connect(char * token, Channel * c) { char id[256]; int err = 0; json_read_string(&c->inp, id, sizeof(id)); if (read_stream(&c->inp) != 0) exception(ERR_JSON_SYNTAX); if (read_stream(&c->inp) != MARKER_EOM) exception(ERR_JSON_SYNTAX); if (find_client(id, c) == NULL) { VirtualStream * stream = virtual_stream_find(id); if (stream == NULL) err = errno; else create_client(stream, c); } write_stringz(&c->out, "R"); write_stringz(&c->out, token); write_errno(&c->out, err); write_stream(&c->out, MARKER_EOM); }