Author: nnposter
Date: Thu Nov 27 19:48:38 2025
New Revision: 39304

Log:
Populate jobname and owner even without Apple-specific attributes

Modified:
   nmap/nselib/ipp.lua

Modified: nmap/nselib/ipp.lua
==============================================================================
--- nmap/nselib/ipp.lua (original)
+++ nmap/nselib/ipp.lua Thu Nov 27 19:48:38 2025
@@ -362,7 +362,7 @@
         { tag = IPP.Attribute.IPP_TAG_KEYWORD, val = "job-name" },
         { tag = IPP.Attribute.IPP_TAG_KEYWORD, val = "job-state" },
         { tag = IPP.Attribute.IPP_TAG_KEYWORD, val = "printer-uri" },
-        -- { tag = IPP.Attribute.IPP_TAG_KEYWORD, val = 
"job-originating-user-name" },
+        { tag = IPP.Attribute.IPP_TAG_KEYWORD, val = 
"job-originating-user-name" },
         -- { tag = IPP.Attribute.IPP_TAG_KEYWORD, val = 
"job-printer-state-message" },
         -- { tag = IPP.Attribute.IPP_TAG_KEYWORD, val = "job-printer-uri" },
         { tag = IPP.Attribute.IPP_TAG_KEYWORD, val = "time-at-creation" } } ),
@@ -380,16 +380,19 @@
 
     local results = {}
     for _, ag in 
ipairs(response:getAttributeGroups(IPP.Attribute.IPP_TAG_JOB)) do
-      local uri = ag:getAttributeValue("printer-uri")
-      local printer = uri:match(".*/(.*)$") or "Unknown"
+      local printer = ag:getAttributeValue("printer-uri"):match(".*/(.*)$") or 
"Unknown"
       -- some jobs have multiple state attributes, so far the ENUM ones have 
been correct
       local state = ag:getAttributeValue("job-state", 
IPP.Attribute.IPP_TAG_ENUM) or ag:getAttributeValue("job-state")
       -- some jobs have multiple id tag, so far the INTEGER type have shown 
the correct ID
       local id = ag:getAttributeValue("job-id", IPP.Attribute.IPP_TAG_INTEGER) 
or ag:getAttributeValue("job-id")
       local tm = ag:getAttributeValue("time-at-creation")
       local size = ag:getAttributeValue("job-k-octets") .. "k"
-      local jobname = 
ag:getAttributeValue("com.apple.print.JobInfo.PMJobName") or "Unknown"
-      local owner = ag:getAttributeValue("com.apple.print.JobInfo.PMJobOwner") 
or "Unknown"
+      local jobname = ag:getAttributeValue("com.apple.print.JobInfo.PMJobName")
+                      or ag:getAttributeValue("job-name")
+                      or "Unknown"
+      local owner = ag:getAttributeValue("com.apple.print.JobInfo.PMJobOwner")
+                    or ag:getAttributeValue("job-originating-user-name")
+                    or "Unknown"
 
       results[printer] = results[printer] or {}
       table.insert(results[printer], {

_______________________________________________
Sent through the svn mailing list
https://nmap.org/mailman/listinfo/svn

Reply via email to