Commit Graph

84 Commits

Author SHA1 Message Date
ProtoTess a700ddcba6 chore: update golangci-lint action to skip cache 2025-12-01 01:00:41 +00:00
ProtoTess 21965a893f chore: update golangci-lint version to v2.0.0 in CI workflow 2025-12-01 00:58:43 +00:00
ProtoTess a4d20addfc chore: pin golangci-lint version to v1.64.8 in CI workflow 2025-12-01 00:57:06 +00:00
ProtoTess fbb18785da chore: update GitHub Actions to use latest versions of checkout, setup-go, cache, and download actions 2025-12-01 00:55:21 +00:00
ProtoTess 753ab5a6ae chore: downgrade actions/checkout to v4.1.7 in CI workflows 2025-12-01 00:52:46 +00:00
ProtoTess ec451017b5 chore: Update actions/cache to version 4.2.0 in CI workflows 2025-12-01 00:51:09 +00:00
ProtoTess b4e4982876 Refactor XML response handling in device extended and security tests
- Adjusted formatting in XML response strings for consistency in device_extended_test.go and device_security_test.go.
- Improved readability by aligning XML declaration and body content.
- Updated mock server responses to ensure proper handling of various ONVIF operations.

Enhance device security and storage handling

- Refactored struct field declarations in device_security.go and device_storage_test.go for improved clarity.
- Ensured consistent formatting across struct definitions and XML tags.

Standardize whitespace and formatting across multiple files

- Removed unnecessary blank lines and adjusted indentation in discovery, imaging, media, and PTZ server files.
- Improved overall code readability and maintainability by ensuring consistent formatting.

Update example applications for better readability

- Cleaned up whitespace in example applications to enhance code clarity.
- Ensured consistent formatting in main.go files across various examples.

Refactor server and SOAP handler code for consistency

- Standardized struct field declarations and XML tag formatting in server and SOAP handler files.
- Improved readability by aligning struct fields and ensuring consistent use of whitespace.

General code cleanup and formatting adjustments

- Applied consistent formatting across various files, including types.go and test files.
- Enhanced readability by aligning struct fields and removing unnecessary blank lines.
2025-12-01 00:49:36 +00:00
ProtoTess 856f49c82d feat: Add coverage reporting and analysis workflows, enhance CI with additional tests for older Go versions 2025-12-01 00:44:34 +00:00
ProtoTess 4f3e2a6df0 feat: Add device storage and WiFi management functionalities
- Implemented storage configuration management in device_storage.go:
  - GetStorageConfigurations
  - GetStorageConfiguration
  - CreateStorageConfiguration
  - SetStorageConfiguration
  - DeleteStorageConfiguration
  - SetHashingAlgorithm

- Added unit tests for storage configuration operations in device_storage_test.go.

- Implemented WiFi management functionalities in device_wifi.go:
  - GetDot11Capabilities
  - GetDot11Status
  - GetDot1XConfiguration
  - GetDot1XConfigurations
  - SetDot1XConfiguration
  - CreateDot1XConfiguration
  - DeleteDot1XConfiguration
  - ScanAvailableDot11Networks

- Added unit tests for WiFi management operations in device_wifi_test.go.

- Updated types.go to include new structures for geo location and access policy.
2025-12-01 00:05:35 +00:00
ProtoTess 3f343370ce Add device security tests and enhance device capabilities
- Introduced comprehensive tests for device security features including GetRemoteUser, SetRemoteUser, GetIPAddressFilter, SetIPAddressFilter, and more.
- Implemented mock server responses for various ONVIF device security SOAP actions.
- Added new types and constants for device services, capabilities, and network protocols in types.go.
- Enhanced existing tests for device services, discovery modes, and network configurations.
- Ensured proper handling of service capabilities and network protocols in the client.
2025-11-30 23:11:51 +00:00
ProtoTess 9d83a7c2da Merge pull request #35 from 0x524a/tls-verification
Tls verification
2025-11-18 14:27:37 -05:00
ProtoTess 50a545697a refactor: remove framerate estimation from RTSP stream inspection 2025-11-18 19:18:33 +00:00
ProtoTess ec63ece472 feat: add TLS verification option for HTTPS connections and improve user prompts 2025-11-18 19:09:36 +00:00
ProtoTess d990aee323 chore: prepare v1.1.3 release
- Draft release workflow fix
- RTSPeek library integration
- golangci-lint v2 migration
- All code quality improvements
v1.1.3
2025-11-18 18:43:00 +00:00
ProtoTess 74a3cb262f Merge pull request #34 from 0x524a/fix-draft-release
Fix draft release
2025-11-18 13:41:58 -05:00
ProtoTess 349fd20bc6 fix: create releases as draft to allow asset uploads
The release must be created as draft initially, otherwise it's
published immediately and becomes immutable before assets upload.

Users can manually publish after assets are uploaded, or we can
add a workflow_dispatch to publish programmatically.
2025-11-18 18:37:54 +00:00
ProtoTess 34eb35a3fd chore: prepare v1.1.2 release
- Release workflow fixes with action-gh-release@v2
- RTSPeek library integration
- golangci-lint v2 migration
- All linting errors fixed
v1.1.2
2025-11-18 18:34:36 +00:00
ProtoTess 572135d37c Merge pull request #32 from 0x524a/fix-release-workflow
Fix release workflow asset upload race condition
2025-11-18 13:28:15 -05:00
ProtoTess 0cb6fb8dd8 fix: upgrade to softprops/action-gh-release@v2
- Fixes asset upload race condition
- v2 handles concurrent uploads better
- Added fail_on_unmatched_files and make_latest flags
2025-11-18 18:25:19 +00:00
ProtoTess 6a61ec26cf Merge pull request #31 from 0x524a/release-v1.1.1
Release v1.1.1
2025-11-18 13:20:27 -05:00
ProtoTess 1feec67174 chore: prepare v1.1.1 release
- RTSPeek library integration for stream inspection
- golangci-lint v2 migration
- Fixed all linting errors (SA1006, errcheck, unused code)
- Enhanced CI/CD with proper directory exclusions
2025-11-18 18:17:53 +00:00
ProtoTess b9877ec175 Merge pull request #30 from 0x524a/fix-go-onvif-references
Fix go onvif references
v1.1.0
2025-11-18 13:12:43 -05:00
ProtoTess c54e0fa787 fix: Update golangci-lint args to include all relevant directories for linting 2025-11-18 18:07:07 +00:00
ProtoTess b5df457145 fix: Update golangci-lint configuration by removing deprecated issue rules 2025-11-18 18:02:18 +00:00
ProtoTess 021a926746 fix: Update golangci-lint action to version 2.2 for improved linting 2025-11-18 17:59:29 +00:00
ProtoTess 1cb86c4ab7 feat: Add linter configuration and improve error handling in download functions 2025-11-18 17:55:43 +00:00
ProtoTess b0dc7f6f60 fix: Improve error message formatting in download functions 2025-11-18 17:49:13 +00:00
ProtoTess e0b484436d refactor: Remove unused ASCII art generation function for snapshots 2025-11-18 17:45:46 +00:00
ProtoTess 8953ef6842 feat: Add RTSP stream inspection and connectivity check functionality 2025-11-18 04:59:52 +00:00
ProtoTess f0fe64a1a3 feat: Implement enhanced file download with Basic and Digest authentication support 2025-11-18 04:36:20 +00:00
ProtoTess 817f394c10 feat: Enhance DownloadFile error handling with detailed messages and hints 2025-11-18 04:26:04 +00:00
ProtoTess 3082840445 feat: Add file download functionality and ASCII art preview for camera snapshots
- Implemented DownloadFile method in client.go to download files with authentication.
- Added ascii.go for converting images to ASCII art with configurable parameters.
- Enhanced main.go to include a new option for capturing and displaying snapshots as ASCII art.
- Introduced non-interactive mode for onvif-cli, allowing command execution via command-line arguments.
- Updated documentation to include usage examples for non-interactive mode and scripting.
- Added error handling and improved user prompts for better user experience.
2025-11-18 04:13:44 +00:00
ProtoTess b62a4281b4 docs: add comprehensive CLI and network interface summary
Create complete project summary documenting:
- All deliverables (library, CLI, docs)
- 5 commits with all changes
- Implementation statistics
- Test results and coverage
- Usage examples for library and CLI tools
- Common use cases and workflows
- Benefits for users, developers, systems
- Verification checklist
- Future enhancement opportunities

This document serves as comprehensive reference for the network interface
discovery enhancement across the entire onvif-go project.
2025-11-17 17:42:59 +00:00
ProtoTess ead5558364 docs: add CLI tools and network interface selection to README
Add comprehensive section describing:
- Interactive onvif-cli tool with all features
- Quick demo onvif-quick tool
- Network interface selection for multi-interface systems
- Code examples for both CLI and API usage
- References to detailed documentation guides

Highlights new features:
- CLI tools now support explicit interface selection
- Both discovery modes covered (interactive and API)
- Cross-references to detailed guides
2025-11-17 17:42:10 +00:00
ProtoTess 46035f4873 feat: add network interface selection to CLI tools
onvif-cli improvements:
- Add menu option to list network interfaces
- Add interface selection during discovery
- Display detailed interface information (up/down, multicast, addresses)
- Allow discovery by interface name or IP address
- Maintain backward compatibility with default interface

onvif-quick improvements:
- Add menu option to list network interfaces
- Add interface selection during discovery
- Simplified interface list display
- Quick discovery on specific network

Documentation:
- Add comprehensive CLI_NETWORK_INTERFACE_USAGE.md guide
- Include usage scenarios and workflows
- Troubleshooting section
- Integration examples
- Command reference table

These enhancements allow users to easily specify which network interface
to use for camera discovery, solving issues with multi-interface systems.
2025-11-17 17:41:03 +00:00
ProtoTess dfa113ad6d docs: add network interface implementation summary
Add comprehensive implementation summary document including:
- Problem statement and solution overview
- Implementation details and file changes
- API reference and type definitions
- Usage examples and common scenarios
- Testing results and verification
- Benefits and future enhancements

This documents the complete network interface selection feature
implementation for WS-Discovery multicast discovery.
2025-11-17 17:35:19 +00:00
ProtoTess d6e5cbd55e docs: add network interface discovery section to QUICKSTART
Add examples showing how to:
- Discover on specific interface by name (eth0, wlan0)
- Discover using IP address (192.168.1.100)
- List available network interfaces

Reference new NETWORK_INTERFACE_GUIDE.md for detailed documentation.
2025-11-17 17:34:28 +00:00
ProtoTess c384dca68d feat: add network interface selection to WS-Discovery
- Add DiscoverOptions struct with NetworkInterface field
- Add DiscoverWithOptions() function for interface-specific discovery
- Add ListNetworkInterfaces() to enumerate available interfaces
- Add resolveNetworkInterface() helper supporting names and IPs
- Maintain full backward compatibility with existing Discover() function
- Support specifying interface by name (eth0, wlan0) or IP address
- Provide helpful error messages listing available interfaces
- Comprehensive test suite with 6 unit tests + 2 benchmarks
- Add NETWORK_INTERFACE_GUIDE.md with usage examples

This addresses issue where users with multiple active network interfaces
need to explicitly select which interface to use for WS-Discovery multicast,
as auto-detection may select the wrong one.
2025-11-17 17:28:05 +00:00
ProtoTess 81c9d768d7 docs: add Camera Testing Flow guide for contributing camera tests 2025-11-17 17:03:20 +00:00
ProtoTess 819b55a595 Merge pull request #29 from 0x524a/fix-go-onvif-references
fix: complete branding consistency - use onvif-go everywhere
2025-11-17 11:31:54 -05:00
ProtoTess 0aae85fc4c fix: update CHANGELOG.md to use onvif-go for complete consistency 2025-11-17 16:24:17 +00:00
ProtoTess 5a21df55f8 fix: update remaining go-onvif references to onvif-go for complete branding consistency
- server/types.go: Manufacturer identifier 'go-onvif' → 'onvif-go'
- cmd/onvif-server/main.go: Manufacturer flag default 'go-onvif' → 'onvif-go'
- server/README.md: Documentation updated
- examples/manual-soap-test/main.go: Code comments updated (2 instances)
- examples/complete-demo/main.go: Code comment updated

Now using 'onvif-go' consistently across all project files, including
device identifiers, code comments, and documentation.
2025-11-17 16:06:13 +00:00
ProtoTess eadd0d74f7 fix: update all documentation to use onvif-go for consistent branding
- CONTRIBUTING.md: Updated title and git clone URL
- .github/CONTRIBUTING.md: Updated title, paths, and references
- QUICKSTART.md: Updated intro
- BUILDING.md: Updated title
- docs/ARCHITECTURE.md: Updated title and descriptions
- docs/PROJECT_SUMMARY.md: Updated title, description, and structure
- docs/IMPLEMENTATION_SUMMARY.md: Updated docker example
- server/README.md: Updated cd command and link text
- cmd/onvif-diagnostics/README.md: Updated cd command

Note: Kept 'go-onvif' as manufacturer identifier in code (server/types.go, cmd/onvif-server/main.go)
and in code comments (examples/) for descriptive purposes.
2025-11-17 16:02:48 +00:00
ProtoTess 0d225be89d Merge pull request #28 from 0x524a/fix-go-onvif-references
fix: replace remaining go-onvif references with onvif-go
2025-11-17 10:53:56 -05:00
ProtoTess f63c77d858 fix: replace go-onvif with onvif-go in Makefile, workflows, and documentation
- Makefile: archive names now use onvif-go prefix
- Release workflow: installation examples updated
- README.md: badge URLs corrected
- RELEASE_NOTES: download examples fixed
- Consistent with repository name and module path
2025-11-17 15:50:21 +00:00
ProtoTess d1ef61f9c1 Merge pull request #27 from 0x524a/fix-release-artifact-naming
fix: correct release artifact naming from go-onvif to onvif-go
2025-11-17 10:46:30 -05:00
ProtoTess 239d68b410 fix: remove platform suffix from binaries inside release archives
- Binaries inside archives now have clean names (onvif-cli, onvif-server, etc.)
- Archive names still include platform info (onvif-go-v1.0.4-linux-amd64.tar.gz)
- Users can extract and use binaries without renaming
2025-11-17 15:44:19 +00:00
ProtoTess c6b21bdb18 fix: correct release artifact naming from go-onvif to onvif-go 2025-11-17 15:29:33 +00:00
ProtoTess 13b4b08413 Merge pull request #26 from 0x524a/fix-gitignore-cmd-directories
fix: update .gitignore to preserve cmd/ source directories
v1.0.2 v1.0.3
2025-11-16 22:36:06 -05:00
ProtoTess e4c5f0412c fix: remove unused includeRaw variable in onvif-diagnostics 2025-11-17 03:34:42 +00:00