docs: document ncp22 quota and trustee layouts

This commit is contained in:
Mario Fetka
2026-06-01 20:32:01 +00:00
parent 017ef23833
commit cb4d9c8a9e
3 changed files with 187 additions and 35 deletions

View File

@@ -756,10 +756,24 @@ static void handle_fxx(int gelen, int func)
} else if (0x16 == func) {
switch (ufunc) {
/* QUOTA support from: Matt Paley */
case 0x21 : /* Change volume restrictions */
case 0x22 : /* Remove volume restrictions */
case 0x29 : { /* Read volume restrictions */
/* Returns 3 integers, uid, gid, 0=OK/1=Permission denied */
case 0x21 : /* Add User Disk Space Restriction, 0x2222/22/33 */
case 0x22 : /* Remove User Disk Space Restrictions, 0x2222/22/34 */
case 0x29 : { /* Get Object Disk Usage And Restrictions, 0x2222/22/41 */
/*
* Forwarded from src/nwconn.c NCP 0x2222/22. The shared quota
* prehandler sees only the subfunction payload as rdata:
*
* rdata[0] VolumeNumber
* rdata[1..4] ObjectID (Hi-Lo)
* rdata[5..8] DiskSpaceLimit (Lo-Hi, only for 22/33)
*
* Parser comparison: ObjectID is read from the documented position
* for all three subfunctions. DiskSpaceLimit for 22/33 is not
* consumed by this prehandler; handle_after_bind() receives only the
* uid/gid/permission tuple produced below.
*
* Returns 3 integers, uid, gid, 0=OK/1=Permission denied.
*/
uint32 id = GET_BE32(rdata+1);
internal_act=1;
if (get_guid((int*) responsedata, (int*)(responsedata+sizeof(int)),