 5978a0b8f5
			
		
	
	5978a0b8f5
	
	
	
		
			
			- Agent roles and coordination features - Chat API integration testing - New configuration and workspace management 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			61 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package yamux
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"net"
 | |
| )
 | |
| 
 | |
| // hasAddr is used to get the address from the underlying connection
 | |
| type hasAddr interface {
 | |
| 	LocalAddr() net.Addr
 | |
| 	RemoteAddr() net.Addr
 | |
| }
 | |
| 
 | |
| // yamuxAddr is used when we cannot get the underlying address
 | |
| type yamuxAddr struct {
 | |
| 	Addr string
 | |
| }
 | |
| 
 | |
| func (*yamuxAddr) Network() string {
 | |
| 	return "yamux"
 | |
| }
 | |
| 
 | |
| func (y *yamuxAddr) String() string {
 | |
| 	return fmt.Sprintf("yamux:%s", y.Addr)
 | |
| }
 | |
| 
 | |
| // Addr is used to get the address of the listener.
 | |
| func (s *Session) Addr() net.Addr {
 | |
| 	return s.LocalAddr()
 | |
| }
 | |
| 
 | |
| // LocalAddr is used to get the local address of the
 | |
| // underlying connection.
 | |
| func (s *Session) LocalAddr() net.Addr {
 | |
| 	addr, ok := s.conn.(hasAddr)
 | |
| 	if !ok {
 | |
| 		return &yamuxAddr{"local"}
 | |
| 	}
 | |
| 	return addr.LocalAddr()
 | |
| }
 | |
| 
 | |
| // RemoteAddr is used to get the address of remote end
 | |
| // of the underlying connection
 | |
| func (s *Session) RemoteAddr() net.Addr {
 | |
| 	addr, ok := s.conn.(hasAddr)
 | |
| 	if !ok {
 | |
| 		return &yamuxAddr{"remote"}
 | |
| 	}
 | |
| 	return addr.RemoteAddr()
 | |
| }
 | |
| 
 | |
| // LocalAddr returns the local address
 | |
| func (s *Stream) LocalAddr() net.Addr {
 | |
| 	return s.session.LocalAddr()
 | |
| }
 | |
| 
 | |
| // RemoteAddr returns the remote address
 | |
| func (s *Stream) RemoteAddr() net.Addr {
 | |
| 	return s.session.RemoteAddr()
 | |
| }
 |