[Debian-iot-maintainers] Bug#1028909: /usr/bin/ozwcp: localhost:8090 returns 200, File not found: cp.html

Witold Baryluk witold.baryluk at gmail.com
Sat Jan 14 19:11:33 GMT 2023


Package: openzwave-controlpanel
Version: 1.6~git20200306.4b8a39d-1
Severity: important
File: /usr/bin/ozwcp
X-Debbugs-Cc: witold.baryluk at gmail.com

Probably some system paths not set up correctly

user at debian:~$ ozwcp
2023-01-14 18:57:38.439 Error, Cannot find a path to the configuration files at ./config/, Using /etc/openzwave/ instead...
2023-01-14 18:57:38.439 Info, Reading /etc/openzwave/options.xml for Options
2023-01-14 18:57:38.439 Warning, Failed to Parse options.xml: Failed to open file
2023-01-14 18:57:38.439 Info, Options:
2023-01-14 18:57:38.439 Info, 	appendlogfile: false
2023-01-14 18:57:38.439 Info, 	associate: true
2023-01-14 18:57:38.439 Info, 	assumeawake: true
2023-01-14 18:57:38.439 Info, 	autoupdateconfigfile: true
2023-01-14 18:57:38.440 Info, 	configpath: /etc/openzwave/
2023-01-14 18:57:38.440 Info, 	consoleoutput: true
2023-01-14 18:57:38.440 Info, 	customsecuredcc: 0x62,0x4c,0x63
2023-01-14 18:57:38.440 Info, 	drivermaxattempts: 5
2023-01-14 18:57:38.440 Info, 	dumptriggerlevel: 1
2023-01-14 18:57:38.440 Info, 	enablesis: true
2023-01-14 18:57:38.440 Info, 	enforcesecurereception: true
2023-01-14 18:57:38.440 Info, 	exclude: 
2023-01-14 18:57:38.440 Info, 	include: 
2023-01-14 18:57:38.440 Info, 	includeinstancelabel: true
2023-01-14 18:57:38.440 Info, 	interface: 
2023-01-14 18:57:38.440 Info, 	intervalbetweenpolls: false
2023-01-14 18:57:38.440 Info, 	language: 
2023-01-14 18:57:38.440 Info, 	logfilename: OZW_Log.txt
2023-01-14 18:57:38.440 Info, 	logging: true
2023-01-14 18:57:38.440 Info, 	networkkey: 
2023-01-14 18:57:38.440 Info, 	notifyondriverunload: false
2023-01-14 18:57:38.440 Info, 	notifytransactions: false
2023-01-14 18:57:38.440 Info, 	performreturnroutes: false
2023-01-14 18:57:38.440 Info, 	pollinterval: 30000
2023-01-14 18:57:38.440 Info, 	queueloglevel: 9
2023-01-14 18:57:38.440 Info, 	refreshallusercodes: false
2023-01-14 18:57:38.440 Info, 	reloadafterupdate: AWAKE
2023-01-14 18:57:38.440 Info, 	retrytimeout: 10000
2023-01-14 18:57:38.440 Info, 	saveconfiguration: true
2023-01-14 18:57:38.440 Info, 	saveloglevel: 8
2023-01-14 18:57:38.440 Info, 	securitystrategy: SUPPORTED
2023-01-14 18:57:38.440 Info, 	suppressvaluerefresh: false
2023-01-14 18:57:38.440 Info, 	userpath: 
2023-01-14 18:57:38.440 Always, OpenZwave Version  Starting Up
2023-01-14 18:57:38.445 Info, Loading Localization File /etc/openzwave/Localization.xml
2023-01-14 18:57:38.446 Info, Loaded /etc/openzwave/Localization.xml With Revision 12
2023-01-14 18:57:38.446 Always, Using Language Localization 
2023-01-14 18:57:38.447 Info, Loading NotificationCCTypes File /etc/openzwave/NotificationCCTypes.xml
2023-01-14 18:57:38.447 Info, Loaded /etc/openzwave/NotificationCCTypes.xml With Revision 11
2023-01-14 18:57:38.448 Info, Loading SensorMultiLevelCCTypes File /etc/openzwave/SensorMultiLevelCCTypes.xml
2023-01-14 18:57:38.448 Info, Loaded /etc/openzwave/SensorMultiLevelCCTypes.xml With Revision 4
webserver starting port 8090
Warning: MHD_USE_THREAD_PER_CONNECTION must be used only with MHD_USE_INTERNAL_POLLING_THREAD. Flag MHD_USE_INTERNAL_POLLING_THREAD was added. Consider setting MHD_USE_INTERNAL_POLLING_THREAD explicitly.
^C




$ curl --output - -v http://localhost:8090/
*   Trying 127.0.0.1:8090...
* Connected to localhost (127.0.0.1) port 8090 (#0)
> GET / HTTP/1.1
> Host: localhost:8090
> User-Agent: curl/7.87.0
> Accept: */*
> 
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Sat, 14 Jan 2023 18:58:54 GMT
< Content-Length: 92
< 
* Connection #0 to host localhost left intact
<html><head><title>File not found</title></head><body>File not found: cp.html</body></html>


Additionally wrong HTTP status code is retured (should be 404), and wrong
Content-Type (missing, which makes it look like binary, but should be
text/html).


If I strace the ozwcp and do a HTTP request I got this:

[pid 3353605] pselect6(7, [6], [], [], NULL, NULL) = 1 (in [6])
[pid 3353605] recvfrom(6, "GET / HTTP/1.1\r\nHost: localhost:"..., 16384, 0, NULL, NULL) = 442
[pid 3353605] newfstatat(AT_FDCWD, "cp.html", 0x7fec321ab730, 0) = -1 ENOENT (No such file or directory)
[pid 3353605] sendmsg(6, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="HTTP/1.1 200 OK\r\nDate: Sat, 14 J"..., iov_len=76}, {iov_base="<html><head><title>File not foun"..., iov_len=92}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 168


Indicating to me it is looking at cp.html in the current working directory, which is wrong.



If I cd into /usr/share/openzwave-controlpanel, and then start ozwcp, it
does load the main page, but Firefox console shows that there is number
of missing components (404 errors):


GET http://localhost:8090/cp.js  404 Not Found
GET http://localhost:8090/javascript/bootstrap/css/bootstrap.min.css  404 Not Found
GET http://localhost:8090/javascript/jquery/jquery.min.js  404 Not Found
GET http://localhost:8090/javascript/bootstrap/js/bootstrap.min.js  404 Not Found
GET http://localhost:8090/javascript/bootstrap/js/bootstrap.min.js  404 Not Found  (yes, second time)
GET http://localhost:8090/favicon.png  404 Not Found

It does not even look for them on a disk

[pid 3365287] <... recvfrom resumed>"GET /javascript/bootstrap/js/boo"..., 16384, 0, NULL, NULL) = 444
[pid 3365287] sendmsg(6, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="HTTP/1.1 404 Not Found\r\nDate: Sa"..., iov_len=83}, {iov_base="<html><head><title>Nothingness</"..., iov_len=95}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL <unfinished ...>

Page is not usable.


user at debian:~$ dpkg -L openzwave-controlpanel
/.
/usr
/usr/bin
/usr/bin/ozwcp
/usr/share
/usr/share/doc
/usr/share/doc/openzwave-controlpanel
/usr/share/doc/openzwave-controlpanel/README
/usr/share/doc/openzwave-controlpanel/TODO.Debian
/usr/share/doc/openzwave-controlpanel/changelog.Debian.gz
/usr/share/doc/openzwave-controlpanel/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/openzwave-controlpanel
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/ozwcp.1.gz
/usr/share/openzwave-controlpanel
/usr/share/openzwave-controlpanel/cp.html
/usr/share/openzwave-controlpanel/cp.js
/usr/share/openzwave-controlpanel/openzwavetinyicon.png
/usr/share/openzwave-controlpanel/ozwcp.html



-- System Information:
Debian Release: bookworm/sid
  APT prefers testing-debug
  APT policy: (500, 'testing-debug'), (500, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.2.0-rc2 (SMP w/32 CPU threads; PREEMPT)
Kernel taint flags: TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages openzwave-controlpanel depends on:
ii  libc6            2.36-7
ii  libgcc-s1        12.2.0-13
ii  libjs-bootstrap  3.4.1+dfsg-3
ii  libjs-jquery     3.6.1+dfsg+~3.5.14-1
ii  libmicrohttpd12  0.9.75-4
ii  libopenzwave1.6  1.6.1914+ds-1+b1
ii  libstdc++6       12.2.0-13

openzwave-controlpanel recommends no packages.

openzwave-controlpanel suggests no packages.

-- no debconf information



More information about the Debian-iot-maintainers mailing list