andrew-bibb / cmst

QT GUI for Connman
174 stars 37 forks source link

fix connmand version detection #218

Closed gch1p closed 3 years ago

gch1p commented 3 years ago

I'm running connmand 1.38 on Void Linux and I noticed that cmst doesn't have wireguard VPN edit options. Looking at the code I found out that wireguard options are only visible when f_connmanversion is higher that 1.37. So I added some printfs to the code, rebuilt the program and it turned out that f_connmanversion is -1.

This seems incorrect and results in f_connmanversion = -1.0:

qps.start("connmand -v", QStringList());

This works:

qps.start("connmand", {"-v"});
andrew-bibb commented 3 years ago

Thank you for the PR. I want to look at this a bit further before I pull it. One thing I see right off the bat is that calling QProcess.start() without a QStringList argument is supposed to be depreciated. It still works (as far as I know) but won't forever. I am also pretty sure I was getting the connman version returned correctly when I added that section of code. I also want to make sure I indeed was am not misremembering that. All that being said this whole section is kind of a hack because ConnMan doesn't seem to have a dbus call to return a version number, so I had to use the QProcess to grab the version number.
. Never mind, I see your code does have the argument as a stringlist. Probably why it works - duhh!

andrew-bibb commented 3 years ago

Thanks again. Really need to not answer issues and PR's immediately after a full day of work. Thinking a little first works so much better, or at least shifting gears out of work mode.

A-

gch1p commented 3 years ago

Thank you :)