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

(-)a/src/internet-stack/nsc-tcp-socket-impl.cc (+10 lines)
 Lines 66-71    Link Here 
66
  : m_endPoint (0),
66
  : m_endPoint (0),
67
    m_node (0),
67
    m_node (0),
68
    m_tcp (0),
68
    m_tcp (0),
69
    m_localAddress (Ipv4Address::GetZero ()),
70
    m_localPort (0),
69
    m_peerAddress ("0.0.0.0", 0),
71
    m_peerAddress ("0.0.0.0", 0),
70
    m_errno (ERROR_NOTERROR),
72
    m_errno (ERROR_NOTERROR),
71
    m_shutdownSend (false),
73
    m_shutdownSend (false),
 Lines 468-473    Link Here 
468
      fromAddress = tag.GetAddress ();
470
      fromAddress = tag.GetAddress ();
469
    }
471
    }
470
  return packet;
472
  return packet;
473
}
474
475
int
476
NscTcpSocketImpl::GetSockName (Address &address) const
477
{
478
  NS_LOG_FUNCTION_NOARGS ();
479
  address = InetSocketAddress(m_localAddress, m_localPort);
480
  return 0;
471
}
481
}
472
482
473
uint32_t
483
uint32_t
(-)a/src/internet-stack/nsc-tcp-socket-impl.h (+1 lines)
 Lines 71-76    Link Here 
71
  virtual Ptr<Packet> Recv (uint32_t maxSize, uint32_t flags);
71
  virtual Ptr<Packet> Recv (uint32_t maxSize, uint32_t flags);
72
  virtual Ptr<Packet> RecvFrom (uint32_t maxSize, uint32_t flags,
72
  virtual Ptr<Packet> RecvFrom (uint32_t maxSize, uint32_t flags,
73
    Address &fromAddress);
73
    Address &fromAddress);
74
  virtual int GetSockName (Address &address) const; 
74
75
75
private:
76
private:
76
  void NSCWakeup(void);
77
  void NSCWakeup(void);
(-)a/src/internet-stack/tcp-socket-impl.cc (+10 lines)
 Lines 62-67    Link Here 
62
    m_endPoint (0),
62
    m_endPoint (0),
63
    m_node (0),
63
    m_node (0),
64
    m_tcp (0),
64
    m_tcp (0),
65
    m_localAddress (Ipv4Address::GetZero ()),
66
    m_localPort (0),
65
    m_errno (ERROR_NOTERROR),
67
    m_errno (ERROR_NOTERROR),
66
    m_shutdownSend (false),
68
    m_shutdownSend (false),
67
    m_shutdownRecv (false),
69
    m_shutdownRecv (false),
 Lines 551-556    Link Here 
551
      fromAddress = tag.GetAddress ();
553
      fromAddress = tag.GetAddress ();
552
    }
554
    }
553
  return packet;
555
  return packet;
556
}
557
558
int
559
TcpSocketImpl::GetSockName (Address &address) const
560
{
561
  NS_LOG_FUNCTION_NOARGS ();
562
  address = InetSocketAddress(m_localAddress, m_localPort);
563
  return 0;
554
}
564
}
555
565
556
void
566
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 (+15 lines)
 Lines 434-439    Link Here 
434
  return packet;
434
  return packet;
435
}
435
}
436
436
437
int
438
UdpSocketImpl::GetSockName (Address &address) const
439
{
440
  NS_LOG_FUNCTION_NOARGS ();
441
  if (m_endPoint != 0)
442
    {
443
      address = InetSocketAddress (m_endPoint->GetLocalAddress (), m_endPoint->GetLocalPort());
444
    }
445
  else
446
    {
447
      address = InetSocketAddress(Ipv4Address::GetZero(), 0);
448
    }
449
  return 0;
450
}
451
437
void 
452
void 
438
UdpSocketImpl::ForwardUp (Ptr<Packet> packet, Ipv4Address ipv4, uint16_t port)
453
UdpSocketImpl::ForwardUp (Ptr<Packet> packet, Ipv4Address ipv4, uint16_t port)
439
{
454
{
(-)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 (+25 lines)
 Lines 57-62    Link Here 
57
  m_shutdownSend = false;
57
  m_shutdownSend = false;
58
  m_shutdownRecv = false;
58
  m_shutdownRecv = false;
59
  m_errno = ERROR_NOTERROR;
59
  m_errno = ERROR_NOTERROR;
60
  m_isSingleDevice = false;
61
  m_device = 0;
60
}
62
}
61
63
62
void 
64
void 
 Lines 428-431    Link Here 
428
  return packet;
430
  return packet;
429
}
431
}
430
432
433
int
434
PacketSocket::GetSockName (Address &address) const
435
{
436
  NS_LOG_FUNCTION_NOARGS ();
437
  PacketSocketAddress ad = PacketSocketAddress::ConvertFrom(address);
438
  
439
  ad.SetProtocol (m_protocol);
440
  if (m_isSingleDevice)
441
    {
442
      Ptr<NetDevice> device = m_node->GetDevice (ad.GetSingleDevice ());
443
      ad.SetPhysicalAddress(device->GetAddress());      
444
      ad.SetSingleDevice (m_device);
445
    }
446
  else
447
    {
448
      ad.SetPhysicalAddress(Address());   
449
      ad.SetAllDevices ();
450
    }  
451
  address = ad;
452
  
453
  return 0;
454
}
455
431
}//namespace ns3
456
}//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 (+4 lines)
 Lines 492-497    Link Here 
492
   */
492
   */
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
    /**
496
   * \returns the address name  this socket is associated with.
497
   */
498
  virtual int GetSockName (Address &address) const = 0; 
495
 
499
 
496
protected:
500
protected:
497
  void NotifyConnectionSucceeded (void);
501
  void NotifyConnectionSucceeded (void);

Return to bug 283