X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-ws.c;h=c25c3f108a173f62edf79222c6099057e1625978;hb=e22f8536c5f8833828a6d5cb8f5a77a8c0712e08;hp=53fb60ae4c4ab30c42228e65af3a2de2736a3c5f;hpb=1ea6bd0f466a10d29f12801aa35fb6d2b30443a1;p=src%2Fapp-framework-binder.git diff --git a/src/afb-ws.c b/src/afb-ws.c index 53fb60ae..c25c3f10 100644 --- a/src/afb-ws.c +++ b/src/afb-ws.c @@ -200,6 +200,14 @@ void afb_ws_hangup(struct afb_ws *ws) aws_disconnect(ws, 1); } +/* + * Is the websocket 'ws' still connected ? + */ +int afb_ws_is_connected(struct afb_ws *ws) +{ + return ws->ws != NULL; +} + /* * Sends a 'close' command to the endpoint of 'ws' with the 'code' and the * 'reason' (that can be NULL and that else should not be greater than 123 @@ -281,6 +289,20 @@ int afb_ws_texts(struct afb_ws *ws, ...) return websock_text_v(ws->ws, 1, ios, count); } +/* + * Sends a text data described in the 'count' 'iovec' to the endpoint of 'ws'. + * Returns 0 on success or -1 in case of error. + */ +int afb_ws_text_v(struct afb_ws *ws, const struct iovec *iovec, int count) +{ + if (ws->ws == NULL) { + /* disconnected */ + errno = EPIPE; + return -1; + } + return websock_text_v(ws->ws, 1, iovec, count); +} + /* * Sends a binary 'data' of 'length' to the endpoint of 'ws'. * Returns 0 on success or -1 in case of error. @@ -295,6 +317,20 @@ int afb_ws_binary(struct afb_ws *ws, const void *data, size_t length) return websock_binary(ws->ws, 1, data, length); } +/* + * Sends a binary data described in the 'count' 'iovec' to the endpoint of 'ws'. + * Returns 0 on success or -1 in case of error. + */ +int afb_ws_binary_v(struct afb_ws *ws, const struct iovec *iovec, int count) +{ + if (ws->ws == NULL) { + /* disconnected */ + errno = EPIPE; + return -1; + } + return websock_binary_v(ws->ws, 1, iovec, count); +} + /* * callback for writing data */