diff options
author | paulhsia <paulhsia@chromium.org> | 2019-09-09 23:30:41 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-09-18 18:13:33 +0000 |
commit | 578825a3b937ce37734f80c577a30511c5549011 (patch) | |
tree | b14b8801751ba776e03efa74644da6c08f4920a5 | |
parent | 9c2b8cdb555c2ef6d7c1937a7886e4c6e83f0e0e (diff) | |
download | adhd-578825a3b937ce37734f80c577a30511c5549011.tar.gz |
CRAS: rclient: Add rclient_validate_stream_connect_params
Merge
- rclient_validate_stream_connect_message and
- rclient_validate_stream_connect_fds
into rclient_validate_stream_connect_params.
BUG=chromium:937765
TEST=Build and unit tests
Change-Id: Ife4943bd7a8c7e5ef19abd2c35ccda256d943a94
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/adhd/+/1792423
Commit-Queue: Chih-Yang Hsia <paulhsia@chromium.org>
Tested-by: Chih-Yang Hsia <paulhsia@chromium.org>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
Reviewed-by: Yu-Hsuan Hsu <yuhsuan@chromium.org>
-rw-r--r-- | cras/src/server/cras_control_rclient.c | 8 | ||||
-rw-r--r-- | cras/src/server/cras_playback_rclient.c | 8 | ||||
-rw-r--r-- | cras/src/server/cras_rclient_util.c | 28 | ||||
-rw-r--r-- | cras/src/server/cras_rclient_util.h | 11 |
4 files changed, 33 insertions, 22 deletions
diff --git a/cras/src/server/cras_control_rclient.c b/cras/src/server/cras_control_rclient.c index f51bd65a..683538aa 100644 --- a/cras/src/server/cras_control_rclient.c +++ b/cras/src/server/cras_control_rclient.c @@ -40,17 +40,13 @@ static int handle_client_stream_connect(struct cras_rclient *client, int rc, header_fd, samples_fd; int stream_fds[2]; - rc = rclient_validate_stream_connect_message(client, msg); + rc = rclient_validate_stream_connect_params(client, msg, aud_fd, + client_shm_fd); if (rc) goto close_shm_fd; unpack_cras_audio_format(&remote_fmt, &msg->format); - rc = rclient_validate_stream_connect_fds(aud_fd, client_shm_fd, - msg->client_shm_size); - if (rc) - goto close_shm_fd; - /* When full, getting an error is preferable to blocking. */ cras_make_fd_nonblocking(aud_fd); diff --git a/cras/src/server/cras_playback_rclient.c b/cras/src/server/cras_playback_rclient.c index 248ebdab..a588dd5e 100644 --- a/cras/src/server/cras_playback_rclient.c +++ b/cras/src/server/cras_playback_rclient.c @@ -30,17 +30,13 @@ static int handle_client_stream_connect(struct cras_rclient *client, int rc, header_fd, samples_fd; int stream_fds[2]; - rc = rclient_validate_stream_connect_message(client, msg); + rc = rclient_validate_stream_connect_params(client, msg, aud_fd, + client_shm_fd); if (rc) goto reply_err; unpack_cras_audio_format(&remote_fmt, &msg->format); - rc = rclient_validate_stream_connect_fds(aud_fd, client_shm_fd, - msg->client_shm_size); - if (rc) - goto reply_err; - /* When full, getting an error is preferable to blocking. */ cras_make_fd_nonblocking(aud_fd); diff --git a/cras/src/server/cras_rclient_util.c b/cras/src/server/cras_rclient_util.c index 2f1d88f9..7dc64808 100644 --- a/cras/src/server/cras_rclient_util.c +++ b/cras/src/server/cras_rclient_util.c @@ -54,9 +54,9 @@ void rclient_fill_cras_rstream_config(struct cras_rclient *client, stream_config->client = client; } -int rclient_validate_stream_connect_message( - const struct cras_rclient *client, - const struct cras_connect_message *msg) +static int +rclient_validate_stream_connect_message(const struct cras_rclient *client, + const struct cras_connect_message *msg) { if (!cras_valid_stream_id(msg->stream_id, client->id)) { syslog(LOG_ERR, @@ -77,8 +77,8 @@ int rclient_validate_stream_connect_message( return 0; } -int rclient_validate_stream_connect_fds(int audio_fd, int client_shm_fd, - size_t client_shm_size) +static int rclient_validate_stream_connect_fds(int audio_fd, int client_shm_fd, + size_t client_shm_size) { /* check audio_fd is valid. */ if (audio_fd < 0) { @@ -98,3 +98,21 @@ int rclient_validate_stream_connect_fds(int audio_fd, int client_shm_fd, } return 0; } + +int rclient_validate_stream_connect_params( + const struct cras_rclient *client, + const struct cras_connect_message *msg, int audio_fd, int client_shm_fd) +{ + int rc; + + rc = rclient_validate_stream_connect_message(client, msg); + if (rc) + return rc; + + rc = rclient_validate_stream_connect_fds(audio_fd, client_shm_fd, + msg->client_shm_size); + if (rc) + return rc; + + return 0; +} diff --git a/cras/src/server/cras_rclient_util.h b/cras/src/server/cras_rclient_util.h index 8292a113..61298a0f 100644 --- a/cras/src/server/cras_rclient_util.h +++ b/cras/src/server/cras_rclient_util.h @@ -38,13 +38,17 @@ void rclient_fill_cras_rstream_config( * * Args: * client - The cras_rclient which gets the message. + * msg - cras_connect_message from client. + * audio_fd - Audio fd from client. + * client_shm_fd - client shared memory fd from client. It can be -1. * * Returns: * 0 on success, negative error on failure. */ -int rclient_validate_stream_connect_message( +int rclient_validate_stream_connect_params( const struct cras_rclient *client, - const struct cras_connect_message *msg); + const struct cras_connect_message *msg, int audio_fd, + int client_shm_fd); /* * Converts an old version of connect message to the correct @@ -72,7 +76,4 @@ convert_connect_message_old(const struct cras_server_message *msg, return 0; } -int rclient_validate_stream_connect_fds(int audio_fd, int client_shm_fd, - size_t client_shm_size); - #endif /* CRAS_RCLIENT_UTIL_H_ */ |