openwisp-radius icon indicating copy to clipboard operation
openwisp-radius copied to clipboard

[models] Sanitize MAC addresses in called_station_id field

Open Eeshu-Yadav opened this issue 4 months ago • 0 comments

Checklist

  • [x] I have read the OpenWISP Contributing Guidelines.
  • [x] I have manually tested the changes proposed in this pull request.
  • [x] I have written new test cases for new code and/or updated existing tests for changes to existing code.
  • [ ] I have updated the documentation.

Reference to Existing Issue

Closes #624

Description of Changes

This change implements MAC address sanitization in the called_station_id field of RadiusAccounting to ensure consistent formatting across different input formats. MAC addresses are now automatically converted to lowercase colon-separated format (aa:bb:cc:dd:ee:ff) while preserving non-MAC values unchanged for RFC compliance.

  • Added sanitize_mac_address function in base/models.py using netaddr.EUI
  • Integrated automatic MAC sanitization in AbstractRadiusAccounting.save()
  • Updated test imports to use sanitize_mac_address from base.models
  • Supports multiple MAC formats: colon, dash, dot, and no separators

Eeshu-Yadav avatar Aug 24 '25 07:08 Eeshu-Yadav