From: bossjisu Date: Wed, 31 May 2017 14:02:15 +0000 (-0700) Subject: netutils/websocket: organizing code X-Git-Tag: 1.1_Public_Release~457^2~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1dce57aa73c17784b95e05da3d37e3f5c0450bc2;p=rtos%2Ftinyara.git netutils/websocket: organizing code 1. internal function name is changed: websocket_server_start() -> websocket_server_authenticate() 2. websocket_socket_free() is moved to common function area. 3. added comment about the difference between websocket_server_open() and websocket_server_init() Change-Id: I5b4e3e445ea2bafcac920955396fd54e51f87a54 Signed-off-by: bossjisu --- diff --git a/apps/netutils/websocket/websocket.c b/apps/netutils/websocket/websocket.c index dc0db1e..e61e362 100644 --- a/apps/netutils/websocket/websocket.c +++ b/apps/netutils/websocket/websocket.c @@ -62,7 +62,7 @@ websocket_t ws_srv_table[WEBSOCKET_MAX_CLIENT]; * Private Functions ****************************************************************************/ -/* common functions */ +/****** websocket common functions *****/ int websocket_tls_handshake(websocket_t *data, char *hostname, int auth_mode) { @@ -132,6 +132,21 @@ websocket_return_t websocket_config_socket(int fd) return WEBSOCKET_SUCCESS; } +websocket_return_t websocket_socket_free(websocket_t *ctx) +{ + if (ctx == NULL) { + WEBSOCKET_DEBUG("NULL parameter\n"); + return WEBSOCKET_ALLOCATION_ERROR; + } + + if (ctx->fd >= 0) { + close(ctx->fd); + ctx->fd = -1; + } + + return WEBSOCKET_SUCCESS; +} + websocket_return_t websocket_wait_state(websocket_t *websocket, int state, int utime) { if (websocket == NULL) { @@ -236,7 +251,7 @@ int websocket_handler(websocket_t *websocket) return WEBSOCKET_SUCCESS; } -/* client oriented sources */ +/***** websocket client oriented sources *****/ int websocket_client_handshake(websocket_t *client, char *host, char *port, char *path) { @@ -336,21 +351,6 @@ EXIT_WEBSOCKET_HANDSHAKE_ERROR: return WEBSOCKET_HANDSHAKE_ERROR; } -websocket_return_t websocket_socket_free(websocket_t *ctx) -{ - if (ctx == NULL) { - WEBSOCKET_DEBUG("NULL parameter\n"); - return WEBSOCKET_ALLOCATION_ERROR; - } - - if (ctx->fd >= 0) { - close(ctx->fd); - ctx->fd = -1; - } - - return WEBSOCKET_SUCCESS; -} - int connect_socket(websocket_t *client, const char *host, const char *port) { int fd; @@ -431,7 +431,7 @@ TLS_HS_RETRY: return r; } -/* server oriented sources */ +/***** websocket server oriented sources *****/ int websocket_server_handshake(websocket_t *server) { @@ -519,7 +519,7 @@ EXIT_WEBSOCKET_HANDSHAKE_ERROR: return WEBSOCKET_HANDSHAKE_ERROR; } -int websocket_server_start(websocket_t *server) +int websocket_server_authenticate(websocket_t *server) { int r; @@ -554,7 +554,7 @@ EXIT_SERVER_START: return r; } -int websocket_accept_loop(websocket_t *init_server) +int websocket_accept_handler(websocket_t *init_server) { int i; int r = WEBSOCKET_SUCCESS; @@ -652,7 +652,7 @@ int websocket_accept_loop(websocket_t *init_server) ws_sparam.sched_priority = WEBSOCKET_PRI; pthread_attr_setschedparam(&server_handler->thread_attr, &ws_sparam); pthread_attr_setschedpolicy(&server_handler->thread_attr, WEBSOCKET_SCHED_POLICY); - if (pthread_create(&server_handler->thread_id, &server_handler->thread_attr, (pthread_startroutine_t) websocket_server_start, (pthread_addr_t) server_handler) != 0) { + if (pthread_create(&server_handler->thread_id, &server_handler->thread_attr, (pthread_startroutine_t) websocket_server_authenticate, (pthread_addr_t) server_handler) != 0) { WEBSOCKET_DEBUG("fail to create thread, fd == %d\n", accept_fd); close(accept_fd); if (server_handler->tls_ssl) { @@ -832,6 +832,13 @@ EXIT_CLIENT_OPEN: return r; } +/* + * websocket_server_open function includes: + * 1. allocating socket fd + * 2. accepting client + * 3. authenticating with client + * those 3 are not needed when websocket is initiated from http(s). + */ websocket_return_t websocket_server_open(websocket_t *init_server) { int port = 0; @@ -850,13 +857,18 @@ websocket_return_t websocket_server_open(websocket_t *init_server) WEBSOCKET_DEBUG("websocket listen on fd == %d, port == %d\n", init_server->fd, port); - if ((r = websocket_accept_loop(init_server)) != WEBSOCKET_SUCCESS) { + r = websocket_accept_handler(init_server); + if (r != WEBSOCKET_SUCCESS) { return r; } return WEBSOCKET_SUCCESS; } +/* + * if websocket server is initiated from http(s), you just can call this function. + * see the comment of websocket_server_open to know what is different. + */ websocket_return_t websocket_server_init(websocket_t *server) { int r = WEBSOCKET_SUCCESS;