Search code examples
mosquitto

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?


Solution

  • 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.