escapeshellcmd will change '?' to '\?' , and will cause 404 not found bug !
so I changed the code:
Line 1012
exec($this->curl_path." -k -D \"$headerfile\"".$cmdline_params." \"".escapeshellcmd($URI)."\"",$results,$return);
to
$safe_url = str_replace(array(' ', '"'), array('%20', '%22'), $URI);
exec($this->curl_path." -k -D \"$headerfile\"".$cmdline_params." \"".$safe_url."\"",$results,$return);
A safer solution would be to remove the quotes around the escapeshellcmd - I did this when hitting the bug in opendb
https://github.com/pellcorp/opendb/commit/05e37af6e94f6816a6efd19dc60fcb423f7265b7#lib/Snoopy.class.php
Thanks for the bug report. Snoopy 2.0.0 no longer uses curl an instead uses openssl so all curl issues are now resolved.
You can get the new version of Snoopy 2.0.0 here