@@ -314,8 +314,10 @@ func Validate(y *limatype.LimaYAML, warn bool) error {
314314 if err := validatePort (fmt .Sprintf ("%s.guestPortRange[%d]" , field , j ), rule .GuestPortRange [j ]); err != nil {
315315 errs = errors .Join (errs , err )
316316 }
317- if err := validatePort (fmt .Sprintf ("%s.hostPortRange[%d]" , field , j ), rule .HostPortRange [j ]); err != nil {
318- errs = errors .Join (errs , err )
317+ if rule .HostSocket == "" {
318+ if err := validatePort (fmt .Sprintf ("%s.hostPortRange[%d]" , field , j ), rule .HostPortRange [j ]); err != nil {
319+ errs = errors .Join (errs , err )
320+ }
319321 }
320322 }
321323 if rule .GuestPortRange [0 ] > rule .GuestPortRange [1 ] {
@@ -324,9 +326,6 @@ func Validate(y *limatype.LimaYAML, warn bool) error {
324326 if rule .HostPortRange [0 ] > rule .HostPortRange [1 ] {
325327 errs = errors .Join (errs , fmt .Errorf ("field `%s.hostPortRange[1]` must be greater than or equal to field `%s.hostPortRange[0]`" , field , field ))
326328 }
327- if rule .GuestPortRange [1 ]- rule .GuestPortRange [0 ] != rule .HostPortRange [1 ]- rule .HostPortRange [0 ] {
328- errs = errors .Join (errs , fmt .Errorf ("field `%s.hostPortRange` must specify the same number of ports as field `%s.guestPortRange`" , field , field ))
329- }
330329 if rule .GuestSocket != "" {
331330 if ! path .IsAbs (rule .GuestSocket ) {
332331 errs = errors .Join (errs , fmt .Errorf ("field `%s.guestSocket` must be an absolute path, but is %q" , field , rule .GuestSocket ))
@@ -343,7 +342,10 @@ func Validate(y *limatype.LimaYAML, warn bool) error {
343342 if rule .GuestSocket == "" && rule .GuestPortRange [1 ]- rule .GuestPortRange [0 ] > 0 {
344343 errs = errors .Join (errs , fmt .Errorf ("field `%s.hostSocket` can only be mapped from a single port or socket. not a range" , field ))
345344 }
345+ } else if rule .GuestPortRange [1 ]- rule .GuestPortRange [0 ] != rule .HostPortRange [1 ]- rule .HostPortRange [0 ] {
346+ errs = errors .Join (errs , fmt .Errorf ("field `%s.hostPortRange` must specify the same number of ports as field `%s.guestPortRange`" , field , field ))
346347 }
348+
347349 if len (rule .HostSocket ) >= osutil .UnixPathMax {
348350 errs = errors .Join (errs , fmt .Errorf ("field `%s.hostSocket` must be less than UNIX_PATH_MAX=%d characters, but is %d" ,
349351 field , osutil .UnixPathMax , len (rule .HostSocket )))
0 commit comments