summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpaulhsia <paulhsia@chromium.org>2019-09-09 23:30:41 +0800
committerCommit Bot <commit-bot@chromium.org>2019-09-18 18:13:33 +0000
commit578825a3b937ce37734f80c577a30511c5549011 (patch)
treeb14b8801751ba776e03efa74644da6c08f4920a5
parent9c2b8cdb555c2ef6d7c1937a7886e4c6e83f0e0e (diff)
downloadadhd-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.c8
-rw-r--r--cras/src/server/cras_playback_rclient.c8
-rw-r--r--cras/src/server/cras_rclient_util.c28
-rw-r--r--cras/src/server/cras_rclient_util.h11
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_ */