fixed a bug where client could not load tls-engine
when loading tls-engine from the client, if client_opts_set is called before client_connect, an error 'setting TLS engine' occurs. so i modified to call the net__init_tls function in the mosquitto_lib_init function.
Signed-off-by: Hyeongon Kim [email protected]
Thank you for contributing your time to the Mosquitto project!
Before you go any further, please note that we cannot accept contributions if you haven't signed the Eclipse Contributor Agreement. If you aren't able to do that, or just don't want to, please describe your bug fix/feature change in an issue. For simple bug fixes it is can be just as easy for us to be told about the problem and then go fix it directly.
Then please check the following list of things we ask for in your pull request:
- [x] Have you signed the Eclipse Contributor Agreement, using the same email address as you used in your commits?
- [x] Do each of your commits have a "Signed-off-by" line, with the correct email address? Use "git commit -s" to generate this line for you.
- [ ] If you are contributing a new feature, is your work based off the develop branch?
- [x] If you are contributing a bugfix, is your work based off the fixes branch?
- [x] Have you added an explanation of what your changes do and why you'd like us to include them?
- [x] Have you successfully run
make testwith your changes locally?
when loading tls-engine from the client, if client_opts_set is called before client_connect, an error 'setting TLS engine' occurs. so i modified to call the net__init_tls function in the mosquitto_lib_init function.
before :

after :

Thank you for looking at this, the TLS engine code isn't currently covered by tests and isn't something I've spent a huge amount of time on.
The reason that the TLS initialisation happens where it does is to avoid always that initialisation if TLS is not in use. I do not want to move net__init_tls() back to the general lib init function. Could we instead add a call to net__init_tls() in mosquitto_string_option() for the MOSQ_OPT_TLS_ENGINE? I think that should satisfy both of us.
Do you have any experience of how to port engine related code to openssl 3? I haven't spent any time looking into that side of things and would definitely appreciate some insight.