Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[core] Fix warning and workaround ABI compatibility due to ENABLE_EXPERIMENTAL_BONDING #1794

Merged
merged 2 commits into from
Feb 8, 2021

Conversation

quink-black
Copy link
Contributor

The warning can be triggered when srt.h is included by other project.

The warning can be triggered when srt.h is included by other project.
@quink-black
Copy link
Contributor Author

By the way, the abi is broken due to ENABLE_EXPERIMENTAL_BONDING.

@quink-black quink-black changed the title [core] Fix warning of undefined ENABLE_EXPERIMENTAL_BONDING [core] Fix warning and and workaround ABI compatibility due to ENABLE_EXPERIMENTAL_BONDING Feb 7, 2021
@quink-black quink-black changed the title [core] Fix warning and and workaround ABI compatibility due to ENABLE_EXPERIMENTAL_BONDING [core] Fix warning and workaround ABI compatibility due to ENABLE_EXPERIMENTAL_BONDING Feb 7, 2021
@maxsharabayko
Copy link
Collaborator

By the way, the abi is broken due to ENABLE_EXPERIMENTAL_BONDING.

Right, unfortunately, we've missed that.
Experimental bonding is disabled by default, so we should stay compliant at least with the default API. Thus SRTO_BINDTODEVICE should go right after SRTO_PEERIDLETIMEO, and followed by bonding related options.

@maxsharabayko maxsharabayko added this to the v1.4.3 milestone Feb 8, 2021
@maxsharabayko maxsharabayko added [core] Area: Changes in SRT library core Type: Bug Indicates an unexpected problem or unintended behavior labels Feb 8, 2021
@ethouris
Copy link
Collaborator

ethouris commented Feb 8, 2021

Fortunately option values are not significant for data interchange, problems may occur only for shared library updates.

@quink-black
Copy link
Contributor Author

By the way, the abi is broken due to ENABLE_EXPERIMENTAL_BONDING.

Right, unfortunately, we've missed that.
Experimental bonding is disabled by default, so we should stay compliant at least with the default API. Thus SRTO_BINDTODEVICE should go right after SRTO_PEERIDLETIMEO, and followed by bonding related options.

The patch is trying to make SRTO_BINDTODEVICE compliant before ENABLE_EXPERIMENTAL_BONDING was added. Since almost half a year has passed, it make sense to not break the ABI again. So I can move SRTO_BINDTODEVICE before #if ENABLE_EXPERIMENTAL_BONDING.

@quink-black
Copy link
Contributor Author

Fortunately option values are not significant for data interchange, problems may occur only for shared library updates.

On the other hand, it's hard to detect and more dangerous.

@maxsharabayko
Copy link
Collaborator

Right, unfortunately, we've missed that.
Experimental bonding is disabled by default, so we should stay compliant at least with the default API. Thus SRTO_BINDTODEVICE should go right after SRTO_PEERIDLETIMEO, and followed by bonding related options.

The patch is trying to make SRTO_BINDTODEVICE compliant before ENABLE_EXPERIMENTAL_BONDING was added. Since almost half a year has passed, it make sense to not break the ABI again. So I can move SRTO_BINDTODEVICE before #if ENABLE_EXPERIMENTAL_BONDING.

SRTO_BINDTODEVICE was first introduced in v1.4.2 together with ENABLE_EXPERIMENTAL_BONDING.

ENABLE_EXPERIMENTAL_BONDING is an experimental API extension, disabled by default, therefore SRTO_BINDTODEVICE=56 is a better way out of this.

@quink-black
Copy link
Contributor Author

Right, unfortunately, we've missed that.
Experimental bonding is disabled by default, so we should stay compliant at least with the default API. Thus SRTO_BINDTODEVICE should go right after SRTO_PEERIDLETIMEO, and followed by bonding related options.

The patch is trying to make SRTO_BINDTODEVICE compliant before ENABLE_EXPERIMENTAL_BONDING was added. Since almost half a year has passed, it make sense to not break the ABI again. So I can move SRTO_BINDTODEVICE before #if ENABLE_EXPERIMENTAL_BONDING.

SRTO_BINDTODEVICE was first introduced in v1.4.2 together with ENABLE_EXPERIMENTAL_BONDING.

ENABLE_EXPERIMENTAL_BONDING is an experimental API extension, disabled by default, therefore SRTO_BINDTODEVICE=56 is a better way out of this.

Is the updated patch OK? Or you mean SRTO_BINDTODEVICE should be assigned a value explicitly?

Copy link
Collaborator

@maxsharabayko maxsharabayko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the updated patch OK?

Yes, all good. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[core] Area: Changes in SRT library core Type: Bug Indicates an unexpected problem or unintended behavior
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants