mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-03 09:01:54 -05:00
connection: improve version check
do the version check on the v2 update_types request or the v3 hello request.
This commit is contained in:
parent
d2e7f75071
commit
56c15ca9e8
1 changed files with 1 additions and 8 deletions
|
|
@ -57,9 +57,6 @@ struct buffer {
|
||||||
size_t offset;
|
size_t offset;
|
||||||
size_t fds_offset;
|
size_t fds_offset;
|
||||||
struct pw_protocol_native_message msg;
|
struct pw_protocol_native_message msg;
|
||||||
|
|
||||||
bool update;
|
|
||||||
bool first;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct impl {
|
struct impl {
|
||||||
|
|
@ -252,8 +249,6 @@ struct pw_protocol_native_connection *pw_protocol_native_connection_new(struct p
|
||||||
impl->out.buffer_maxsize = MAX_BUFFER_SIZE;
|
impl->out.buffer_maxsize = MAX_BUFFER_SIZE;
|
||||||
impl->in.buffer_data = calloc(1, MAX_BUFFER_SIZE);
|
impl->in.buffer_data = calloc(1, MAX_BUFFER_SIZE);
|
||||||
impl->in.buffer_maxsize = MAX_BUFFER_SIZE;
|
impl->in.buffer_maxsize = MAX_BUFFER_SIZE;
|
||||||
impl->in.update = true;
|
|
||||||
impl->in.first = true;
|
|
||||||
|
|
||||||
if (impl->out.buffer_data == NULL || impl->in.buffer_data == NULL)
|
if (impl->out.buffer_data == NULL || impl->in.buffer_data == NULL)
|
||||||
goto no_mem;
|
goto no_mem;
|
||||||
|
|
@ -311,8 +306,7 @@ static int prepare_packet(struct pw_protocol_native_connection *conn, struct buf
|
||||||
buf->msg.opcode = p[1] >> 24;
|
buf->msg.opcode = p[1] >> 24;
|
||||||
len = p[1] & 0xffffff;
|
len = p[1] & 0xffffff;
|
||||||
|
|
||||||
if (buf->first) {
|
if (buf->msg.id == 0 && buf->msg.opcode == 1) {
|
||||||
buf->first = false;
|
|
||||||
if (p[3] >= 4) {
|
if (p[3] >= 4) {
|
||||||
pw_log_warn("old version detected");
|
pw_log_warn("old version detected");
|
||||||
impl->version = 0;
|
impl->version = 0;
|
||||||
|
|
@ -593,7 +587,6 @@ int pw_protocol_native_connection_clear(struct pw_protocol_native_connection *co
|
||||||
|
|
||||||
clear_buffer(&impl->out);
|
clear_buffer(&impl->out);
|
||||||
clear_buffer(&impl->in);
|
clear_buffer(&impl->in);
|
||||||
impl->in.update = true;
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue