Revision 981732fb

b/lib/daemon.py
143 143
        # is passed in from accept anyway
144 144
        client_address = netutils.GetSocketCredentials(connected_socket)
145 145
      logging.info("Accepted connection from %s",
146
                   netutils.FormatAddress(self.family, client_address))
146
                   netutils.FormatAddress(client_address, family=self.family))
147 147
      self.handle_connection(connected_socket, client_address)
148 148

  
149 149
  def handle_connection(self, connected_socket, client_address):
......
274 274

  
275 275
  def close_log(self):
276 276
    logging.info("Closing connection from %s",
277
                 netutils.FormatAddress(self.family, self.peer_address))
277
                 netutils.FormatAddress(self.peer_address, family=self.family))
278 278
    self.close()
279 279

  
280 280
  # this method is overriding an asyncore.dispatcher method
b/lib/http/client.py
106 106

  
107 107
    """
108 108
    if netutils.IPAddress.IsValid(self.host):
109
      family = netutils.IPAddress.GetAddressFamily(self.host)
110
      address = netutils.FormatAddress(family, (self.host, self.port))
109
      address = netutils.FormatAddress((self.host, self.port))
111 110
    else:
112 111
      address = "%s:%s" % (self.host, self.port)
113 112
    # TODO: Support for non-SSL requests
b/lib/netutils.py
490 490
    return address_int
491 491

  
492 492

  
493
def FormatAddress(family, address):
493
def FormatAddress(address, family=None):
494 494
  """Format a socket address
495 495

  
496
  @type family: integer
497
  @param family: socket family (one of socket.AF_*)
498 496
  @type address: family specific (usually tuple)
499 497
  @param address: address, as reported by this class
498
  @type family: integer
499
  @param family: socket family (one of socket.AF_*) or None
500 500

  
501 501
  """
502
  if family is None:
503
    try:
504
      family = IPAddress.GetAddressFamily(address[0])
505
    except errors.IPAddressError:
506
      raise errors.ParameterError(address)
507

  
502 508
  if family == socket.AF_UNIX and len(address) == 3:
503 509
    return "pid=%s, uid=%s, gid=%s" % address
504 510

  
b/test/ganeti.netutils_unittest.py
388 388
  """Testcase for FormatAddress"""
389 389

  
390 390
  def testFormatAddressUnixSocket(self):
391
    res1 = netutils.FormatAddress(socket.AF_UNIX, ("12352", 0, 0))
391
    res1 = netutils.FormatAddress(("12352", 0, 0), family=socket.AF_UNIX)
392 392
    self.assertEqual(res1, "pid=12352, uid=0, gid=0")
393 393

  
394 394
  def testFormatAddressIP4(self):
395
    res1 = netutils.FormatAddress(socket.AF_INET, ("127.0.0.1", 1234))
395
    res1 = netutils.FormatAddress(("127.0.0.1", 1234), family=socket.AF_INET)
396 396
    self.assertEqual(res1, "127.0.0.1:1234")
397
    res2 = netutils.FormatAddress(socket.AF_INET, ("192.0.2.32", None))
397
    res2 = netutils.FormatAddress(("192.0.2.32", None), family=socket.AF_INET)
398 398
    self.assertEqual(res2, "192.0.2.32")
399 399

  
400 400
  def testFormatAddressIP6(self):
401
    res1 = netutils.FormatAddress(socket.AF_INET6, ("::1", 1234))
401
    res1 = netutils.FormatAddress(("::1", 1234), family=socket.AF_INET6)
402 402
    self.assertEqual(res1, "[::1]:1234")
403
    res2 = netutils.FormatAddress(socket.AF_INET6, ("::1", None))
403
    res2 = netutils.FormatAddress(("::1", None), family=socket.AF_INET6)
404 404
    self.assertEqual(res2, "[::1]")
405
    res2 = netutils.FormatAddress(socket.AF_INET6, ("2001:db8::beef", "80"))
405
    res2 = netutils.FormatAddress(("2001:db8::beef", "80"),
406
                                  family=socket.AF_INET6)
406 407
    self.assertEqual(res2, "[2001:db8::beef]:80")
407 408

  
409
  def testFormatAddressWithoutFamily(self):
410
    res1 = netutils.FormatAddress(("127.0.0.1", 1234))
411
    self.assertEqual(res1, "127.0.0.1:1234")
412
    res2 = netutils.FormatAddress(("::1", 1234))
413
    self.assertEqual(res2, "[::1]:1234")
414

  
415

  
408 416
  def testInvalidFormatAddress(self):
409
    self.assertRaises(errors.ParameterError,
410
                      netutils.FormatAddress, None, ("::1", None))
411
    self.assertRaises(errors.ParameterError,
412
                      netutils.FormatAddress, socket.AF_INET, "127.0.0.1")
413
    self.assertRaises(errors.ParameterError,
414
                      netutils.FormatAddress, socket.AF_INET, ("::1"))
417
    self.assertRaises(errors.ParameterError, netutils.FormatAddress,
418
                      "127.0.0.1")
419
    self.assertRaises(errors.ParameterError, netutils.FormatAddress,
420
                      "127.0.0.1", family=socket.AF_INET)
421
    self.assertRaises(errors.ParameterError, netutils.FormatAddress,
422
                      ("::1"), family=socket.AF_INET )
415 423

  
416 424

  
417 425
if __name__ == "__main__":

Also available in: Unified diff