File tree Expand file tree Collapse file tree 1 file changed +28
-1
lines changed
Expand file tree Collapse file tree 1 file changed +28
-1
lines changed Original file line number Diff line number Diff line change @@ -388,8 +388,35 @@ func (s *Server) handleAssociate(req *request) error {
388388 }
389389 continue
390390 }
391+ var targetIP net.IP
392+ if targetAddr .IP != nil {
393+ targetIP = targetAddr .IP
394+ } else if targetAddr .Name != "" {
395+ ips , err := net .LookupIP (targetAddr .Name )
396+ if err != nil {
397+ if s .Logger != nil {
398+ s .Logger .Println (fmt .Errorf ("failed to resolve %s: %w" , targetAddr .Name , err ))
399+ }
400+ continue
401+ }
402+ if len (ips ) == 0 {
403+ if s .Logger != nil {
404+ s .Logger .Println (fmt .Errorf ("no IP addresses found for %s" , targetAddr .Name ))
405+ }
406+ continue
407+ }
408+ targetIP = ips [0 ]
409+ if s .Logger != nil {
410+ s .Logger .Println (fmt .Sprintf ("Resolved %s to %v" , targetAddr .Name , targetIP ))
411+ }
412+ } else {
413+ if s .Logger != nil {
414+ s .Logger .Println (fmt .Errorf ("no valid address in UDP packet" ))
415+ }
416+ continue
417+ }
391418 target := & net.UDPAddr {
392- IP : targetAddr . IP ,
419+ IP : targetIP ,
393420 Port : targetAddr .Port ,
394421 }
395422 _ , err = udpConn .WriteTo (reader .Bytes (), target )
You can’t perform that action at this time.
0 commit comments