Commit Graph

1179 Commits

Author SHA1 Message Date
Klaus Kämpf
ef99c7bf6b Multiple fixes for ModeSelect (#1405)
* Allow 'empty' ModeSelect6

tl;dr

Treat a computed length of 0 as `has_valid_page_code`.

Details:

The SRM console (aka 'BIOS') of DEC Alpha sends an empty
ModeSelect6 with the following data:
~~~
ModeSelect6, CDB $151000000c00
~~~

That makes 12 byte(s) as follows
~~~
  0  1  2  3   4   5  6  7   8   9 10 11
 00 00 00 08  00  00 00 00  00  00 02 00
~~~

decoding it (accoring to [1], Section 8.3.3, Table 94) gives us

Mode Data Length 0
Medium Type      0
Device-specific  0
Block desc len   8

Density Code     0
Number of blks   0
Reserved         0
Block length     512

`scsi_command_util::ModeSelect` computes
~~~
offset = 4 + buf[3];
~~~

giving 12 and

~~~
length -= offset;
~~~

giving 0.

Thus it never enters the `while` loop and `has_valid_page_code` stays
`false`, raising an error.

[1] [Small Computer System Interface - 2 rev 10L.pdf](https://dn790004.ca.archive.org/0/items/SCSISpecificationDocumentsSCSIDocuments/Small%20Computer%20System%20Interface%20-%202%20rev%2010L.pdf)

Signed-off-by: Klaus Kämpf <kkaempf@gmail.com>

* Allow ModeSelect with page code 1

OpenVMS Alpha (the operating system, not the SRM BIOS) uses
ModeSelect6 with a page code of 1.

The semantics are unknown, just accepting it works for me.

Signed-off-by: Klaus Kämpf <kkaempf@gmail.com>

* Fix page length computation in ModeSelect

tl;dr

The 'skip to next ModeSelect page' computation was off-by-one, either not
taking the page code itself into account or missing the fact that the
page length is given as `n - 1`.

Fix:

Add 1 to the computed length.

Details:

OpenVMS Alpha sends a ModeSelect6 as follows
~~~
command:

ModeSelect6, CDB $151000001900

payload:

 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
00 00 00 08 00 00 00 00 00 00 02 00 01 0a 24 00 00 00 00 00 00 00 00 00 00
~~~

This translates to (accoring to [1], Section 8.3.3)

~~~
Mode Data Length 0
Medium Type      0
Device-specific  0
Block desc len   8
~~~

with the following offset / length computation _before_ the `while` loop
~~~
offset = 12
length = 13
~~~

The first payload section is
~~~
 4  5  6  7  8  9 10 11
00 00 00 00 00 00 02 00
~~~

translating to

~~~
Density Code     0
Number of blks   0
Reserved         0
Block length   0x200 512
~~~

Then follows a pagecode 1 as
~~~
12 13 14 15 16 17 18 19 20 21 22 23 24
01 0a 24 00 00 00 00 00 00 00 00 00 00
~~~

translating to
~~~~
Page code        1
Page length -1  10
Mode parameters 24 00 00 00 00 00 00 00 00 00 00
~~~

computing (inside the `while` loop, as `// Advance to the next page`)

~~~
size =  10 + 2 = 12
~~~

followed by new `offset` and `length` values

~~~
offset = 25
length = 1
~~~

So it stays in the `while` loop (and has a larger-than-buffer `offset`
value)

Signed-off-by: Klaus Kämpf <kkaempf@gmail.com>
2024-05-01 16:15:43 +09:00
Daniel Markstedt
15eb80e938 Control Board: Use Pillow 10 API for getting text size 2024-05-01 16:15:43 +09:00
Daniel Markstedt
c7d34bbb99 Freeze Python requirements for the Control Board client 2024-05-01 16:15:43 +09:00
Daniel Markstedt
d9cb374bc0 Install and use the vsftpd webmin module 2024-05-01 16:15:43 +09:00
Daniel Markstedt
9812f283ba Web UI: Bump dropzone library to v6.0.0-beta2 2024-05-01 16:15:43 +09:00
Daniel Markstedt
b230071aa8 Control board client regression fixes (#1394)
* Control board client should use new FileCmds initiator

* Restore informative logging, but drop to debug level

* Use the correct object to call list_images()
2024-05-01 16:15:43 +09:00
Daniel Markstedt
0dbd3adc06 Web UI: Rework the Attach Device section to be universal (#1393)
* Correct German translation for Key

* Web UI: Rework the Attach Device section to be universal

* Web UI: Warn when working dirs are missing

* Refactor tests to use global endpoint constants

* Add fallback for unknown disk type devices

* Rearrange the index page sections

* Move Macproxy help text to admins page

* Remove image list exception for SCHD

* Show Settings button when auth is diabled

* Tweak CSS styles for both themes

* Move Eject action next to the file name, and improve UI labels
2024-05-01 16:15:43 +09:00
Daniel Markstedt
53e33388ec easyinstall.sh: fix typos in script syntax (#1391)
* easyinstall.sh: fix typo in sudoCache() function name

* Fix typo in apt-get command
2024-05-01 16:15:43 +09:00
Daniel Markstedt
5f0aea451e Revert "scsictl: Create files with binary/JSON or text format protobuf data (#1369)"
This reverts commit abc5c4b9ac.
2024-05-01 16:15:43 +09:00
Uwe Seimet
432a0fd491 Fix missing logging for a LUN when the LUN is explicitly specified (#1379)
* Fix missing logging for a LUN when the LUN is explicitly specified

* Do not suppress controller messages when LUN is specified

* Fix misleading logging for DaynaPort
2024-05-01 16:15:43 +09:00
Uwe Seimet
4e3df76fa8 scsictl: Create files with binary/JSON or text format protobuf data (#1369) 2024-05-01 16:15:43 +09:00
i-to-z
55c908f839 Added ability to set the TYPE/CREATOR resource fork attributes of file(s) inside newly-created cd-rom ISO images of type HFS (#1377)
* Added ability to set the TYPE/CREATOR resource fork attributes of file(s) inside newly-created cd-rom ISO images of type HFS

* Added file genisoimage_hfs_resource_fork_map.txt under python/web and modified web.py to find it at that location
2024-05-01 16:15:43 +09:00
PiSCSI User
105a729048 revert moving webmin to sub-path 2024-05-01 16:15:43 +09:00
Uwe Seimet
ddfd40d5c9 Fix typo (choice 0) in easyinstall.sh (#1372)
* Fix typo (choice 0) in easyinstall.sh

Co-authored-by: Frank Danapfel
2024-05-01 16:15:42 +09:00
PiSCSI User
507bfc19c1 Re-added Webmin links for AFP & SMB 2024-05-01 16:15:42 +09:00
PiSCSI User
d25b5f6c2a consolidate Webmin links 2024-05-01 16:15:42 +09:00
PiSCSI User
660cca12e2 work with sub-path changes in #1354 2024-05-01 16:15:42 +09:00
PiSCSI User
d6d03996cb tweak to Webmin links 2024-05-01 16:15:42 +09:00
Benjamin Krein
de9b65ac04 config webmin at /webmin path in nginx 2024-05-01 16:15:42 +09:00
Benjamin Krein
e4414640e1 automate interaction for webmin install 2024-05-01 16:15:42 +09:00
Benjamin Krein
521ffe92b7 reset Python venv if RESET_VENV is set 2024-05-01 16:15:42 +09:00
Uwe Seimet
67a3bf2227 Replace system timer by C++ standard time for timeout of 3 s (#1361) 2024-05-01 16:15:42 +09:00
Uwe Seimet
5f24e80a9c Improve BSD compile-time compatibility (#1342) 2024-05-01 16:15:42 +09:00
Uwe Seimet
7372996cf8 Use a standard timer for the DaynaPort delay work-around (#1357)
* Do not use the proprietary system timer for the DaynaPort delay work-around
2024-05-01 16:15:42 +09:00
Uwe Seimet
d1166ce13e Improve performance when reading sectors (#1344) 2024-05-01 16:15:42 +09:00
Uwe Seimet
208b459849 Temporary fix for compiler issue (#1359)
* Fix bookworm compiler issue

* fix to Docker for workaround

---------

Co-authored-by: Benjamin Krein <superbenk@gmail.com>
2024-05-01 16:15:42 +09:00
Uwe Seimet
d1936e9f53 NetBSD compatibility: Increase daynaport minimum packet size to 128 bytes (#1334) (#1335)
* NetBSD compatibility: Increase daynaport minimum packet size to 128 bytes
2024-05-01 16:15:42 +09:00
Uwe Seimet
31be1b3e8f Use standard C++ timer for long timeouts (#1327), remove unused code (#1328)
* Replace timer in WaitSignal()

' Remove unused code

* Remove unused file
2024-05-01 16:15:42 +09:00
Uwe Seimet
6a1e0f8669 Remove fullspec/standard sub-folder (#1324)
* Remove fullspec/standard sub-folder
2024-05-01 16:15:42 +09:00
Uwe Seimet
a516544d98 Move sector sizes lists from DeviceFactory to the respective devices (#1323) 2024-05-01 16:15:42 +09:00
Uwe Seimet
41fb8db6dd Fix error count calculation (#1356) 2024-05-01 16:15:42 +09:00
Uwe Seimet
89528b436c Add initial IDE setup (#1326) 2024-05-01 16:15:42 +09:00
Uwe Seimet
a7f062a0ad Fix BSY pin handling in initiator mode (#1312)
* In initiator mode configure BSY as an output pin when BSY is set
2024-05-01 16:15:42 +09:00
Daniel Markstedt
796869dde6 Merge tag 'v23.11.01'
PiSCSI version 23.11.01
2023-11-11 23:18:59 +09:00
Daniel Markstedt
cd4d630544 Update revision number for release 20231101 2023-11-11 23:14:39 +09:00
Daniel Markstedt
b5e40c7f9b
easyinstall: Add ca-certificates to list of packages to install with apt (#1341)
* Add ca-certificates to list of packages to install with apt

* Remove dhcpcd from packages to install
2023-11-11 06:10:37 -08:00
Daniel Markstedt
0e6c93b45d Refresh translations in preparation for Nov 2023 release 2023-11-11 21:04:20 +09:00
Daniel Markstedt
8d26807573
Correct upload dir path validation logic (#1338)
* Correct upload and download  dir path validation logic

* Improve file download labels

* Clean up tmp file before attempting to upload again
2023-11-11 03:46:31 -08:00
Uwe Seimet
bd30073cb0
Fix daynaport statistics read count calculation (#1336) 2023-11-11 09:56:52 +01:00
Uwe Seimet
a164340179
Reduce logging in controller (#1332) 2023-11-10 15:47:43 +01:00
Kamel Makhloufi
9ce1bce592 Updated french translation 2023-11-10 23:40:22 +09:00
Uwe Seimet
979d25ae76
Add missing time unit (#1329) 2023-11-10 11:45:40 +01:00
Daniel Markstedt
2e2df10531 Install the dhcpcd package with the common bundle 2023-11-10 19:33:09 +09:00
Daniel Markstedt
bd33f66694
Freeze Python dependencies with pip freeze -l (#1322)
* Freeze Python dependencies with 'pip freeze -l'

* Freeze common dependencies; add section to README
2023-11-09 02:44:32 -08:00
Daniel Markstedt
1585a2fb70 Notify when network bridge is missing, but allow attaching DP 2023-11-09 08:41:32 +09:00
Uwe Seimet
f90f8eaf4e
Fix daynaport emulation regression (#1306) (#1318) 2023-11-09 00:39:00 +01:00
Daniel Markstedt
76b0f43bc1
Web UI: Inject a Go Back link on all pages, except the index and upload page (#1302)
* Move the manual and go back elements into footer; log controls in log page

* Move inline css style to stylesheet

* Touch up page layout

* Use a Home icon for going to the index page

* Use one vertical table for device info
2023-11-08 14:52:49 -08:00
Uwe Seimet
5542fa9e7c
Re-add CONNECT_TYPE_CONNECT_TYPE_AIBOM and CONNECT_TYPE_GAMERNIUM (#1315) (#1317)
* Re-add CONNECT_TYPE_CONNECT_TYPE_AIBOM and CONNECT_TYPE_GAMERNIUM
2023-11-08 13:27:49 +01:00
Uwe Seimet
0ab2f20a00
Fix MESSAGE OUT handling for initiator mode (#1283) (#1284)
* Fix MESSAGE OUT handling

* Update logging

* Add assertion
2023-11-08 11:25:35 +01:00
Daniel Markstedt
a6136c7f4a Check for webmin module config before modifying 2023-11-08 18:17:14 +09:00