@@ -472,22 +472,30 @@ def rpc_services( xopts)
472472 ret [ :services ] = [ ]
473473
474474 wspace . services . includes ( :host ) . where ( conditions ) . offset ( offset ) . limit ( limit ) . each do |s |
475- service = { }
476- host = s . host
477- service [ :host ] = host . address || "unknown"
478- service [ :created_at ] = s [ :created_at ] . to_i
479- service [ :updated_at ] = s [ :updated_at ] . to_i
480- service [ :port ] = s [ :port ]
481- service [ :proto ] = s [ :proto ] . to_s
482- service [ :state ] = s [ :state ] . to_s
483- service [ :name ] = s [ :name ] . to_s
484- service [ :info ] = s [ :info ] . to_s
485- ret [ :services ] << service
475+ ret [ :services ] << process_service ( s )
486476 end
487477 ret
488478 }
489479 end
490480
481+ def process_service ( mdm_service )
482+ service = { }
483+ host = mdm_service . host
484+
485+ service [ :host ] = host . address || "unknown"
486+ service [ :created_at ] = mdm_service [ :created_at ] . to_i
487+ service [ :updated_at ] = mdm_service [ :updated_at ] . to_i
488+ service [ :port ] = mdm_service [ :port ]
489+ service [ :proto ] = mdm_service [ :proto ] . to_s
490+ service [ :state ] = mdm_service [ :state ] . to_s
491+ service [ :name ] = mdm_service [ :name ] . to_s
492+ service [ :info ] = mdm_service [ :info ] . to_s
493+ service [ :resource ] = mdm_service [ :resource ]
494+ service [ :parents ] = mdm_service . parents . map { |parent | process_service ( parent ) }
495+
496+ service
497+ end
498+
491499
492500 # Returns information about reported vulnerabilities.
493501 #
@@ -541,6 +549,7 @@ def rpc_vulns(xopts)
541549 vuln [ :host ] = v . host . address || nil
542550 vuln [ :name ] = v . name
543551 vuln [ :refs ] = reflist . join ( ',' )
552+ vuln [ :resource ] = v . resource
544553 ret [ :vulns ] << vuln
545554 end
546555 ret
0 commit comments