@@ -319,18 +319,20 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
319319 return err
320320 }
321321
322- alertDestinationsCount := uint8 (0 )
323- if err := c .GetLanConfigParamFor (ctx , channelNumber , lanConfigParams .AlertDestinationsCount ); err != nil {
324- if canIgnore (err ) != nil {
325- return err
326- }
327- } else {
328- if lanConfigParams .AlertDestinationsCount != nil {
329- alertDestinationsCount = lanConfigParams .AlertDestinationsCount .Count
330- }
322+ if err := c .GetLanConfigParamFor (ctx , channelNumber , lanConfigParams .AlertDestinationsCount ); canIgnore (err ) != nil {
323+ return err
331324 }
332325
333326 if lanConfigParams .AlertDestinationTypes != nil {
327+ param := lanConfigParams .AlertDestinationsCount
328+ if param == nil {
329+ param = & LanConfigParam_AlertDestinationsCount {}
330+ if err := c .GetLanConfigParamFor (ctx , channelNumber , param ); canIgnore (err ) != nil {
331+ return err
332+ }
333+ }
334+ alertDestinationsCount := param .Count
335+
334336 if len (lanConfigParams .AlertDestinationTypes ) == 0 && alertDestinationsCount > 0 {
335337 count := alertDestinationsCount + 1
336338 lanConfigParams .AlertDestinationTypes = make ([]* LanConfigParam_AlertDestinationType , count )
@@ -342,13 +344,22 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
342344 }
343345
344346 for _ , alertDestinationType := range lanConfigParams .AlertDestinationTypes {
345- if err := c .GetLanConfigParamFor (ctx , channelNumber , alertDestinationType ); err != nil {
347+ if err := c .GetLanConfigParamFor (ctx , channelNumber , alertDestinationType ); canIgnore ( err ) != nil {
346348 return err
347349 }
348350 }
349351 }
350352
351353 if lanConfigParams .AlertDestinationAddresses != nil {
354+ param := lanConfigParams .AlertDestinationsCount
355+ if param == nil {
356+ param = & LanConfigParam_AlertDestinationsCount {}
357+ if err := c .GetLanConfigParamFor (ctx , channelNumber , param ); canIgnore (err ) != nil {
358+ return err
359+ }
360+ }
361+ alertDestinationsCount := param .Count
362+
352363 if len (lanConfigParams .AlertDestinationAddresses ) == 0 && alertDestinationsCount > 0 {
353364 count := alertDestinationsCount + 1
354365 lanConfigParams .AlertDestinationAddresses = make ([]* LanConfigParam_AlertDestinationAddress , count )
@@ -360,7 +371,7 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
360371 }
361372
362373 for _ , alertDestinationAddress := range lanConfigParams .AlertDestinationAddresses {
363- if err := c .GetLanConfigParamFor (ctx , channelNumber , alertDestinationAddress ); err != nil {
374+ if err := c .GetLanConfigParamFor (ctx , channelNumber , alertDestinationAddress ); canIgnore ( err ) != nil {
364375 return err
365376 }
366377 }
@@ -387,6 +398,15 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
387398 }
388399
389400 if lanConfigParams .AlertDestinationVLANs != nil {
401+ param := lanConfigParams .AlertDestinationsCount
402+ if param == nil {
403+ param = & LanConfigParam_AlertDestinationsCount {}
404+ if err := c .GetLanConfigParamFor (ctx , channelNumber , param ); canIgnore (err ) != nil {
405+ return err
406+ }
407+ }
408+ alertDestinationsCount := param .Count
409+
390410 if len (lanConfigParams .AlertDestinationVLANs ) == 0 && alertDestinationsCount > 0 {
391411 count := alertDestinationsCount + 1
392412
@@ -399,7 +419,7 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
399419 }
400420
401421 for _ , alertDestinationVLAN := range lanConfigParams .AlertDestinationVLANs {
402- if err := c .GetLanConfigParamFor (ctx , channelNumber , alertDestinationVLAN ); err != nil {
422+ if err := c .GetLanConfigParamFor (ctx , channelNumber , alertDestinationVLAN ); canIgnore ( err ) != nil {
403423 return err
404424 }
405425 }
@@ -429,20 +449,20 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
429449 return err
430450 }
431451
432- var ipv6StaticAddressMax uint8
433- var ipv6DynamicAddressMax uint8
434- if err := c .GetLanConfigParamFor (ctx , channelNumber , lanConfigParams .IPv6Status ); err != nil {
435- if canIgnore (err ) != nil {
436- return err
437- }
438- } else {
439- if lanConfigParams .IPv6Status != nil {
440- ipv6StaticAddressMax = lanConfigParams .IPv6Status .StaticAddressMax
441- ipv6DynamicAddressMax = lanConfigParams .IPv6Status .DynamicAddressMax
442- }
452+ if err := c .GetLanConfigParamFor (ctx , channelNumber , lanConfigParams .IPv6Status ); canIgnore (err ) != nil {
453+ return err
443454 }
444455
445456 if lanConfigParams .IPv6StaticAddresses != nil {
457+ param := lanConfigParams .IPv6Status
458+ if param == nil {
459+ param = & LanConfigParam_IPv6Status {}
460+ if err := c .GetLanConfigParamFor (ctx , channelNumber , param ); canIgnore (err ) != nil {
461+ return err
462+ }
463+ }
464+ ipv6StaticAddressMax := param .StaticAddressMax
465+
446466 if len (lanConfigParams .IPv6StaticAddresses ) == 0 && ipv6StaticAddressMax > 0 {
447467 count := ipv6StaticAddressMax
448468 lanConfigParams .IPv6StaticAddresses = make ([]* LanConfigParam_IPv6StaticAddress , count )
@@ -454,24 +474,26 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
454474 }
455475
456476 for _ , ipv6StaticAddress := range lanConfigParams .IPv6StaticAddresses {
457- if err := c .GetLanConfigParamFor (ctx , channelNumber , ipv6StaticAddress ); err != nil {
477+ if err := c .GetLanConfigParamFor (ctx , channelNumber , ipv6StaticAddress ); canIgnore ( err ) != nil {
458478 return err
459479 }
460480 }
461481 }
462482
463- var ipv6DHCPv6StaticDUIDCount uint8
464- if lanConfigParams .IPv6DHCPv6StaticDUIDCount != nil {
465- if err := c .GetLanConfigParamFor (ctx , channelNumber , lanConfigParams .IPv6DHCPv6StaticDUIDCount ); err != nil {
466- if canIgnore (err ) != nil {
483+ if err := c .GetLanConfigParamFor (ctx , channelNumber , lanConfigParams .IPv6DHCPv6StaticDUIDCount ); canIgnore (err ) != nil {
484+ return err
485+ }
486+
487+ if lanConfigParams .IPv6DHCPv6StaticDUIDs != nil {
488+ ipv6Status := lanConfigParams .IPv6DHCPv6StaticDUIDCount
489+ if ipv6Status == nil {
490+ ipv6Status = & LanConfigParam_IPv6DHCPv6StaticDUIDCount {}
491+ if err := c .GetLanConfigParamFor (ctx , channelNumber , ipv6Status ); canIgnore (err ) != nil {
467492 return err
468493 }
469- } else {
470- ipv6DHCPv6StaticDUIDCount = lanConfigParams .IPv6DHCPv6StaticDUIDCount .Max
471494 }
472- }
495+ ipv6DHCPv6StaticDUIDCount := ipv6Status . Max
473496
474- if lanConfigParams .IPv6DHCPv6StaticDUIDs != nil {
475497 if len (lanConfigParams .IPv6DHCPv6StaticDUIDs ) == 0 && ipv6DHCPv6StaticDUIDCount > 0 {
476498 count := ipv6DHCPv6StaticDUIDCount
477499 lanConfigParams .IPv6DHCPv6StaticDUIDs = make ([]* LanConfigParam_IPv6DHCPv6StaticDUID , count )
@@ -483,13 +505,22 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
483505 }
484506
485507 for _ , ipv6DHCPv6StaticDUID := range lanConfigParams .IPv6DHCPv6StaticDUIDs {
486- if err := c .GetLanConfigParamFor (ctx , channelNumber , ipv6DHCPv6StaticDUID ); err != nil {
508+ if err := c .GetLanConfigParamFor (ctx , channelNumber , ipv6DHCPv6StaticDUID ); canIgnore ( err ) != nil {
487509 return err
488510 }
489511 }
490512 }
491513
492514 if lanConfigParams .IPv6DynamicAddresses != nil {
515+ ipv6Status := lanConfigParams .IPv6Status
516+ if ipv6Status == nil {
517+ ipv6Status = & LanConfigParam_IPv6Status {}
518+ if err := c .GetLanConfigParamFor (ctx , channelNumber , ipv6Status ); canIgnore (err ) != nil {
519+ return err
520+ }
521+ }
522+ ipv6DynamicAddressMax := ipv6Status .DynamicAddressMax
523+
493524 if len (lanConfigParams .IPv6DynamicAddresses ) == 0 && ipv6DynamicAddressMax > 0 {
494525 count := ipv6DynamicAddressMax
495526 lanConfigParams .IPv6DynamicAddresses = make ([]* LanConfigParam_IPv6DynamicAddress , count )
@@ -501,26 +532,26 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
501532 }
502533
503534 for _ , ipv6DynamicAddress := range lanConfigParams .IPv6DynamicAddresses {
504- if err := c .GetLanConfigParamFor (ctx , channelNumber , ipv6DynamicAddress ); err != nil {
535+ if err := c .GetLanConfigParamFor (ctx , channelNumber , ipv6DynamicAddress ); canIgnore ( err ) != nil {
505536 return err
506537 }
507538 }
508539 }
509540
510- var ipv6DHCPv6DynamicDUIDCount uint8
511- if lanConfigParams .IPv6DHCPv6DynamicDUIDCount != nil {
512- if err := c .GetLanConfigParamFor (ctx , channelNumber , lanConfigParams .IPv6DHCPv6DynamicDUIDCount ); err != nil {
513- if canIgnore (err ) != nil {
541+ if err := c .GetLanConfigParamFor (ctx , channelNumber , lanConfigParams .IPv6DHCPv6DynamicDUIDCount ); canIgnore (err ) != nil {
542+ return err
543+ }
544+
545+ if lanConfigParams .IPv6DHCPv6DynamicDUIDs != nil {
546+ param := lanConfigParams .IPv6DHCPv6DynamicDUIDCount
547+ if param == nil {
548+ param = & LanConfigParam_IPv6DHCPv6DynamicDUIDCount {}
549+ if err := c .GetLanConfigParamFor (ctx , channelNumber , param ); canIgnore (err ) != nil {
514550 return err
515551 }
516- } else {
517- if lanConfigParams .IPv6DHCPv6DynamicDUIDCount != nil {
518- ipv6DHCPv6DynamicDUIDCount = lanConfigParams .IPv6DHCPv6DynamicDUIDCount .Max
519- }
520552 }
521- }
553+ ipv6DHCPv6DynamicDUIDCount := param . Max
522554
523- if lanConfigParams .IPv6DHCPv6DynamicDUIDs != nil {
524555 if len (lanConfigParams .IPv6DHCPv6DynamicDUIDs ) == 0 && ipv6DHCPv6DynamicDUIDCount > 0 {
525556 // Todo
526557
@@ -602,20 +633,20 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
602633 return err
603634 }
604635
605- var ipv6DynamicRouterInfoCount uint8
606- if lanConfigParams .IPv6DynamicRouterInfoSets != nil {
607- if err := c .GetLanConfigParamFor (ctx , channelNumber , lanConfigParams .IPv6DynamicRouterInfoSets ); err != nil {
608- if canIgnore (err ) != nil {
636+ if err := c .GetLanConfigParamFor (ctx , channelNumber , lanConfigParams .IPv6DynamicRouterInfoSets ); canIgnore (err ) != nil {
637+ return err
638+ }
639+
640+ if lanConfigParams .IPv6DynamicRouterInfoIP != nil {
641+ param := lanConfigParams .IPv6DynamicRouterInfoSets
642+ if param == nil {
643+ param = & LanConfigParam_IPv6DynamicRouterInfoSets {}
644+ if err := c .GetLanConfigParamFor (ctx , channelNumber , param ); canIgnore (err ) != nil {
609645 return err
610646 }
611- } else {
612- if lanConfigParams .IPv6DynamicRouterInfoSets != nil {
613- ipv6DynamicRouterInfoCount = lanConfigParams .IPv6DynamicRouterInfoSets .Count
614- }
615647 }
616- }
648+ ipv6DynamicRouterInfoCount := param . Count
617649
618- if lanConfigParams .IPv6DynamicRouterInfoIP != nil {
619650 if len (lanConfigParams .IPv6DynamicRouterInfoIP ) == 0 && ipv6DynamicRouterInfoCount > 0 {
620651 count := ipv6DynamicRouterInfoCount
621652 lanConfigParams .IPv6DynamicRouterInfoIP = make ([]* LanConfigParam_IPv6DynamicRouterInfoIP , count )
@@ -634,6 +665,15 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
634665 }
635666
636667 if lanConfigParams .IPv6DynamicRouterInfoMAC != nil {
668+ param := lanConfigParams .IPv6DynamicRouterInfoSets
669+ if param == nil {
670+ param = & LanConfigParam_IPv6DynamicRouterInfoSets {}
671+ if err := c .GetLanConfigParamFor (ctx , channelNumber , param ); canIgnore (err ) != nil {
672+ return err
673+ }
674+ }
675+ ipv6DynamicRouterInfoCount := param .Count
676+
637677 if len (lanConfigParams .IPv6DynamicRouterInfoMAC ) == 0 && ipv6DynamicRouterInfoCount > 0 {
638678 count := ipv6DynamicRouterInfoCount
639679 lanConfigParams .IPv6DynamicRouterInfoMAC = make ([]* LanConfigParam_IPv6DynamicRouterInfoMAC , count )
@@ -652,6 +692,15 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
652692 }
653693
654694 if lanConfigParams .IPv6DynamicRouterInfoPrefixLength != nil {
695+ param := lanConfigParams .IPv6DynamicRouterInfoSets
696+ if param == nil {
697+ param = & LanConfigParam_IPv6DynamicRouterInfoSets {}
698+ if err := c .GetLanConfigParamFor (ctx , channelNumber , param ); canIgnore (err ) != nil {
699+ return err
700+ }
701+ }
702+ ipv6DynamicRouterInfoCount := param .Count
703+
655704 if len (lanConfigParams .IPv6DynamicRouterInfoPrefixLength ) == 0 && ipv6DynamicRouterInfoCount > 0 {
656705 count := ipv6DynamicRouterInfoCount
657706 lanConfigParams .IPv6DynamicRouterInfoPrefixLength = make ([]* LanConfigParam_IPv6DynamicRouterInfoPrefixLength , count )
@@ -670,6 +719,15 @@ func (c *Client) GetLanConfigParamsFor(ctx context.Context, channelNumber uint8,
670719 }
671720
672721 if lanConfigParams .IPv6DynamicRouterInfoPrefixValue != nil {
722+ param := lanConfigParams .IPv6DynamicRouterInfoSets
723+ if param == nil {
724+ param = & LanConfigParam_IPv6DynamicRouterInfoSets {}
725+ if err := c .GetLanConfigParamFor (ctx , channelNumber , param ); canIgnore (err ) != nil {
726+ return err
727+ }
728+ }
729+ ipv6DynamicRouterInfoCount := param .Count
730+
673731 if len (lanConfigParams .IPv6DynamicRouterInfoPrefixValue ) == 0 && ipv6DynamicRouterInfoCount > 0 {
674732 count := ipv6DynamicRouterInfoCount
675733 lanConfigParams .IPv6DynamicRouterInfoPrefixValue = make ([]* LanConfigParam_IPv6DynamicRouterInfoPrefixValue , count )
0 commit comments