View | Details | Raw Unified | Return to bug 283
Collapse All | Expand All

(-)a/src/internet-stack/tcp-socket-impl.cc (+12 lines)
 Lines 544-549    Link Here 
544
      fromAddress = tag.GetAddress ();
544
      fromAddress = tag.GetAddress ();
545
    }
545
    }
546
  return packet;
546
  return packet;
547
}
548
549
int
550
TcpSocketImpl::GetSockName (Address &address) const
551
{
552
  NS_LOG_FUNCTION_NOARGS ();
553
554
  if (m_endPoint != 0)
555
    {
556
      address = InetSocketAddress(m_localAddress, m_localPort);
557
    }
558
  return 0;
547
}
559
}
548
560
549
void
561
void
(-)a/src/internet-stack/tcp-socket-impl.h (+1 lines)
 Lines 93-98    Link Here 
93
  virtual Ptr<Packet> Recv (uint32_t maxSize, uint32_t flags);
93
  virtual Ptr<Packet> Recv (uint32_t maxSize, uint32_t flags);
94
  virtual Ptr<Packet> RecvFrom (uint32_t maxSize, uint32_t flags,
94
  virtual Ptr<Packet> RecvFrom (uint32_t maxSize, uint32_t flags,
95
    Address &fromAddress);
95
    Address &fromAddress);
96
  virtual int GetSockName (Address &address) const; 
96
97
97
private:
98
private:
98
  friend class Tcp;
99
  friend class Tcp;
(-)a/src/internet-stack/udp-socket-impl.cc (+11 lines)
 Lines 435-440    Link Here 
435
  return packet;
435
  return packet;
436
}
436
}
437
437
438
int
439
UdpSocketImpl::GetSockName (Address &address) const
440
{
441
  NS_LOG_FUNCTION_NOARGS ();
442
  if (m_endPoint != 0)
443
    {
444
      address = InetSocketAddress (m_endPoint->GetLocalAddress (), m_endPoint->GetLocalPort());
445
    }
446
  return 0;
447
}
448
438
void 
449
void 
439
UdpSocketImpl::ForwardUp (Ptr<Packet> packet, Ipv4Address ipv4, uint16_t port)
450
UdpSocketImpl::ForwardUp (Ptr<Packet> packet, Ipv4Address ipv4, uint16_t port)
440
{
451
{
(-)a/src/internet-stack/udp-socket-impl.h (+1 lines)
 Lines 72-77    Link Here 
72
  virtual Ptr<Packet> Recv (uint32_t maxSize, uint32_t flags);
72
  virtual Ptr<Packet> Recv (uint32_t maxSize, uint32_t flags);
73
  virtual Ptr<Packet> RecvFrom (uint32_t maxSize, uint32_t flags,
73
  virtual Ptr<Packet> RecvFrom (uint32_t maxSize, uint32_t flags,
74
    Address &fromAddress);
74
    Address &fromAddress);
75
  virtual int GetSockName (Address &address) const; 
75
76
76
private:
77
private:
77
  // Attributes set through UdpSocket base class 
78
  // Attributes set through UdpSocket base class 
(-)a/src/node/packet-socket.cc (+22 lines)
 Lines 428-431    Link Here 
428
  return packet;
428
  return packet;
429
}
429
}
430
430
431
int
432
PacketSocket::GetSockName (Address &address) const
433
{
434
  NS_LOG_FUNCTION_NOARGS ();
435
  PacketSocketAddress ad = PacketSocketAddress::ConvertFrom(address);
436
  
437
  ad.SetProtocol (m_protocol);
438
  if (m_isSingleDevice)
439
    {
440
      Ptr<NetDevice> device = m_node->GetDevice (ad.GetSingleDevice ());
441
      ad.SetPhysicalAddress(device->GetAddress());      
442
      ad.SetSingleDevice (m_device);      
443
    }
444
  else
445
    {
446
      ad.SetAllDevices ();
447
    }
448
  
449
  address = ad;  
450
  return 0;
451
}
452
431
}//namespace ns3
453
}//namespace ns3
(-)a/src/node/packet-socket.h (+1 lines)
 Lines 101-106    Link Here 
101
  virtual Ptr<Packet> Recv (uint32_t maxSize, uint32_t flags);
101
  virtual Ptr<Packet> Recv (uint32_t maxSize, uint32_t flags);
102
  virtual Ptr<Packet> RecvFrom (uint32_t maxSize, uint32_t flags,
102
  virtual Ptr<Packet> RecvFrom (uint32_t maxSize, uint32_t flags,
103
    Address &fromAddress);
103
    Address &fromAddress);
104
  virtual int GetSockName (Address &address) const; 
104
105
105
private:
106
private:
106
  void ForwardUp (Ptr<NetDevice> device, Ptr<const Packet> packet, 
107
  void ForwardUp (Ptr<NetDevice> device, Ptr<const Packet> packet, 
(-)a/src/node/socket.h (+5 lines)
 Lines 493-498    Link Here 
493
  int RecvFrom (uint8_t* buf, uint32_t size, uint32_t flags,
493
  int RecvFrom (uint8_t* buf, uint32_t size, uint32_t flags,
494
                Address &fromAddress);
494
                Address &fromAddress);
495
 
495
 
496
  /**
497
   * \returns the address name this socket is associated with.
498
   */
499
  virtual int GetSockName (Address &address) const = 0; 
500
 
496
protected:
501
protected:
497
  void NotifyConnectionSucceeded (void);
502
  void NotifyConnectionSucceeded (void);
498
  void NotifyConnectionFailed (void);
503
  void NotifyConnectionFailed (void);

Return to bug 283