@@ -776,10 +776,11 @@ func (cs *Server) createNVMeoFResources(
776776 }
777777
778778 // setup listeners (if provided, otherwise it will be set by gateway based on network mask)
779- err = setupDefaultListenersValues (params ["listeners" ], nvmeofData )
779+ listeners , err := parseListeners (params ["listeners" ])
780780 if err != nil {
781- return nil , err
781+ return nil , fmt . Errorf ( "failed to parse listeners: %w" , err )
782782 }
783+ nvmeofData .SetListenersWithDefaults (listeners )
783784
784785 // If dhchapMode was explicitly provided and is not "none", and authenticationKMSID is empty,
785786 // use a default KMS ID - RBD metadata KMS.
@@ -1321,29 +1322,3 @@ func connectGateway(ctx context.Context, config *nvmeof.GatewayConfig) (*nvmeof.
13211322
13221323 return gateway , nil
13231324}
1324-
1325- // setupDefaultListeners validates and sets up default values for NVMe-oF listeners.
1326- // if listeners are provided, it ensures they are fully populated with
1327- // default values if needed (port and address).
1328- func setupDefaultListenersValues (listenersJSON string , info * nvmeof.NVMeoFVolumeData ) error {
1329- // Parse listeners from JSON
1330- listeners , err := parseListeners (listenersJSON )
1331- if err != nil {
1332- return fmt .Errorf ("failed to parse listeners: %w" , err )
1333- }
1334-
1335- // ensure listeners are fully populated with default values if needed (port and address)
1336- // before storing in metadata and creating subsystem/listeners
1337- for i := range listeners {
1338- if listeners [i ].Port == 0 {
1339- listeners [i ].Port = 4420
1340- }
1341- // if address is empty, set it to default 0.0.0.0
1342- if listeners [i ].Address == "" {
1343- listeners [i ].Address = "0.0.0.0"
1344- }
1345- }
1346- info .ListenerInfo = listeners
1347-
1348- return nil
1349- }
0 commit comments