* Implement timeout as a float value vs int
* remove unnecessary second multiplier
* whoops, missed one
* Switch type to time.Duration
* Fixup integration tests, change default and description
* Whoops, bad merge
* fix build
* Refactors sending IPP request and handling errors thereof into sendIPPRequest()
* Adds dependency of IPP zgrab2 schema on HTTP zgrab2 schema.
* Refactors out trying to grab with multiple versions into re-usable function.
* Determines whether to output nil result in a concise and accurate manner.
* Refactors reading attributes present in IPP response to its own function. Calls that in Grab and augmentWithCUPSData. Formats code using Go fmt.
* Rejects successful non-IPP responses with protocol error. Reports HTTP errors.
* Removes circular dependency upon http zgrab2 schema.
* Changes name of objects to make IPP schema actually work.
* Changes grab to return *ScanResults. Implements ippInContentType correctly.
* Slots in an operational re-working of several HTTP module functions, and adds dependency on zgrab's http module. Includes some laregly copy-pasted sections worthy of scrutiny.
* Adds support to retry failed HTTP over HTTPS. Removes vestigial functions.
* Implements sending CUPS-get-printers request if CUPS is detected, yielding more detailed & accurate version information. Also handles URI's more correctly.
* Creates separate container to run IPP over TLS on CUPS. Runs basic tests against both containers.
* Creates virtual printer on each container to test for augmenting data with CUPS-get-printers request (which only works when printers exist).
* Augments version information with CUPS-get-printers response if possible.
* Allows specifying IPP version in constructed requests. Checks for version-not-supported server error.
* Allows resending IPP requests with different versions if we hit a version-not-supported error.
* Updates IPP zgrab2 schema to include fields added in modules/ipp/scanner.go
* Removes unnecessary TODO's
* Updates testable example for new definition of AttributeByteString
* Removes versionNotSupported's dependency on bufferFromBody. Checks bounds on generated requests' fields correctly.
* Updates zgrab2 IPP schema to match ScanResults object in modules/ipp/scanner.go
* Corrects IPP tests, bounds checking, zgrab schema formatting.
* Logs errors for unexpected behavior in buffer io operations. Updates schema to include standalone fields for attributes described in CUPS-get-printers response.
* Logs at debug level only when verbose flag is set. Prints accurate error message when CUPSVersion test fails.
* Handles HTTP request errors before checking for nil response/body. Fixes and tests convertURIToIPP.
This gets lifted out of the subrecord in other schemas, which makes it
optional in them. This is the easiest way to fix that, although it is
indicative or an underlying problem.