Recommand · October 22, 2021 0

Determine version of mosquitto

I’m looking for a way to determine mosquitto’s version BEFORE starting it.
Of course I could start it and subscribe to $SYS/broker/version.

For security reasons mosquitto needs an extended configuration file since version 2.0, which I have to generate depending on the found mosquitto version.

Since I’m starting a mosquitto process programmatically, I don’t want to start a process, get the version, quit the process, and restart it with a different config file.

Unfortunately, the mosquitto.exe doesn’t contain any version information, so GetFileVersionInfo does not work.

Is there any other reliable information to find out if it’s a version less oder greater than 2.0?

Thanks,
Sören

What’s wrong with mosquitto -h it outputs the version information in the first line and then exit on it’s own:

$ mosquitto -h
mosquitto version 2.0.12

mosquitto is an MQTT v5.0/v3.1.1/v3.1 broker.

Usage: mosquitto [-c config_file] [-d] [-h] [-p port]

 -c : specify the broker config file.
 -d : put the broker into the background after starting.
 -h : display this help.
 -p : start the broker listening on the specified port.
      Not recommended in conjunction with the -c option.
 -v : verbose mode - enable all logging types. This overrides
      any logging options given in the config file.

See https://mosquitto.org/ for more information.

Also you could just generate a valid 2.0 config file every time as this will still work with earlier versions of Mosquitto.