Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37403505
en ru br
ALT Linux repos
S:2.6-alt3

Group :: Other
RPM: fusioninventory-agent

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: fusioninventory-agent-track-usb-printers.patch
Download


diff --git a/lib/FusionInventory/Agent/Task/Inventory/Generic/Printers.pm b/lib/FusionInventory/Agent/Task/Inventory/Generic/Printers.pm
index fae279f..1522e40 100644
--- a/lib/FusionInventory/Agent/Task/Inventory/Generic/Printers.pm
+++ b/lib/FusionInventory/Agent/Task/Inventory/Generic/Printers.pm
@@ -50,21 +50,32 @@ sub doInventory {
     my @printers = $cups->getDestinations();
 
     foreach my $printer (@printers) {
-        my $uri = $printer->getUri();
-        my $name = $uri;
-        $name =~ s/^.*\/\/([^\.]*).*$/$1/eg ;
-        $name =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
-        $inventory->addEntry(
-            section => 'PRINTERS',
-            entry   => {
-                NAME        => $name,
-                PORT        => $uri,
-                DESCRIPTION => $printer->getDescription(),
-                DRIVER      => $printer->getOptionValue(
-                                   "printer-make-and-model"
-                               ),
-            }
-        );
+        my $uri = $printer->getOptionValue("device-uri");
+        $uri =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
+        my ($serial,$network,$shared,$port)='';
+        if ($uri =~ /usb/){
+            $serial = $uri;
+            $network=0;
+            $shared=0;
+            $port='USB';
+            $serial =~ s/^.*\?serial\=//g;
+            $serial =~ s/\&.*//g; 
+            my $name = $printer->getUri();
+            $name =~ s/^.*\/\/([^\.]*).*$/$1/eg ;
+            $name =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
+            $inventory->addEntry(
+                section => 'PRINTERS',
+                entry   => {
+                    NAME        => $name,
+                    PORT        => $port,
+                    DESCRIPTION => $printer->getDescription(),
+                    DRIVER      => $printer->getOptionValue(
+                        "printer-make-and-model"
+                    ),
+                    SERIAL     => $serial,
+                }
+            );
+        }
     }
 
 }
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin