nwqueue: implement change queue job entry
All checks were successful
Source release / source-package (push) Successful in 47s

Implement the Queue Change Job Entry endpoint for both the old NCP 17/6d
and newer NCP 17/7b variants.

Parse the queue job structure, look up the selected job by its job number,
and update the mutable job metadata fields while preserving server-managed
state such as client identity, entry time, job number, queue position, file
name/handle and servicing information.

Allow the job creator to update the standard user-changeable fields and allow
SUPERVISOR or Q_OPERATORS members to update the operator hold flag as well.
Return the documented queue/job/right/servicing completion codes for missing
queues, missing jobs, insufficient rights and jobs already being serviced.

This only updates NetWare queue metadata. It does not change the existing
Q_UNIX_PRINT/lp backend behavior and adds no CUPS dependency.
This commit is contained in:
Mario Fetka
2026-05-29 17:13:47 +02:00
parent 9f4f8fcbfe
commit 55be945c02
3 changed files with 99 additions and 6 deletions

View File

@@ -22,7 +22,8 @@ extern int nw_get_q_job_entry(uint32 q_id, int job_id, uint32 fhandle,
extern int nw_get_queue_job_list_old(uint32 q_id, uint8 *responsedata);
extern int nw_get_queue_job_list(uint32 q_id, uint32 offset, uint8 *responsedata);
extern int nw_get_queue_job_file_size(uint32 q_id, int job_id);
extern int nw_change_queue_job_entry(uint32 q_id, uint8 *qjstruct);
extern int nw_change_queue_job_entry(uint32 user_id, uint32 q_id,
uint8 *qjstruct, int old_call);
extern int nw_remove_job_from_queue(uint32 user_id, uint32 q_id, int job_id);