+ # required CRM fields for worker
+ my $ip = $user->{IP_UREDAJA} || next;
+ my $port = $user->{SHELF_SLOT_PORT} || next;
+ my $username = $user->{USERNAME} || next;
+
+ if ( $ip !~ /$RE{net}{IPv4}/ ) {
+ $redis->sadd("$variant.invalid.IP_UREDAJA" => $ip);
+ next;
+ } elsif ( $port !~ m{\d+(/\d+)+} ) {
+ $redis->sadd("$variant.$ip.invalid.SHELF_SLOT_PORT" => $port);
+ next;
+ } elsif ( ! $username ) {
+ $redis->sadd("$variant.$ip.invalid.USERNAME" => $port);
+ next;
+ } elsif ( $seen->{ $ip }->{ $port }++ ) {
+ $redis->sadd("$variant.$ip.invalid.duplicate" => $port);
+ next;
+ }
+
+ $redis->incr("$variant.poll.queued");
+ $redis->sadd("$variant.$ip.queued" => $port);
+
+ my $name = $variant . '_' . $ip;