old_contents: #!/usr/bin/env python
  
  # Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved.
  # Use of this source code is governed by a BSD-style license that can be
  # found in the LICENSE file.
  
  """
  A clone of 'netstat'.
  """
  
  import socket
  from socket import AF_INET, SOCK_STREAM, SOCK_DGRAM
  
  import psutil
  from psutil._compat import print_
  
  
  AD = "-"
  AF_INET6 = getattr(socket, 'AF_INET6', object())
  proto_map = {(AF_INET, SOCK_STREAM)  : 'tcp',
               (AF_INET6, SOCK_STREAM) : 'tcp6',
               (AF_INET, SOCK_DGRAM)   : 'udp',
               (AF_INET6, SOCK_DGRAM)  : 'udp6'}
  
  def main():
      templ = "%-5s %-22s %-22s %-13s %-6s %s"
      print_(templ % ("Proto", "Local addr", "Remote addr", "Status", "PID",
                      "Program name"))
      for p in psutil.process_iter():
          name = '?'
          try:
              name = p.name
              cons = p.get_connections(kind='inet')
          except psutil.AccessDenied:
              print_(templ % (AD, AD, AD, AD, p.pid, name))
          else:
              for c in cons:
                  raddr = ""
                  laddr = "%s:%s" % (c.local_address)
                  if c.remote_address:
                      raddr = "%s:%s" % (c.remote_address)
                  print_(templ % (proto_map[(c.family, c.type)],
                                  laddr,
                                  raddr,
                                  str(c.status),
                                  p.pid,
                                  name[:15]))
  
  if __name__ == '__main__':
      main()
  
new_contents: #!/usr/bin/env python
  
  # Copyright (c) 2009, Jay Loden, Giampaolo Rodola'. All rights reserved.
  # Use of this source code is governed by a BSD-style license that can be
  # found in the LICENSE file.
  
  """
  A clone of 'netstat'.
  """
  
  import socket
  from socket import AF_INET, SOCK_STREAM, SOCK_DGRAM
  
  import psutil
  from psutil._compat import print_
  
  
  AD = "-"
  AF_INET6 = getattr(socket, 'AF_INET6', object())
  proto_map = {(AF_INET, SOCK_STREAM)  : 'tcp',
               (AF_INET6, SOCK_STREAM) : 'tcp6',
               (AF_INET, SOCK_DGRAM)   : 'udp',
               (AF_INET6, SOCK_DGRAM)  : 'udp6'}
  
  def main():
      templ = "%-5s %-22s %-22s %-13s %-6s %s"
      print_(templ % ("Proto", "Local addr", "Remote addr", "Status", "PID",
                      "Program name"))
      for p in psutil.process_iter():
          name = '?'
          try:
              name = p.name
              cons = p.get_connections(kind='inet')
          except psutil.AccessDenied:
              print_(templ % (AD, AD, AD, AD, p.pid, name))
          except psutil.NoSuchProcess:
              continue
          else:
              for c in cons:
                  raddr = ""
                  laddr = "%s:%s" % (c.local_address)
                  if c.remote_address:
                      raddr = "%s:%s" % (c.remote_address)
                  print_(templ % (proto_map[(c.family, c.type)],
                                  laddr,
                                  raddr,
                                  str(c.status),
                                  p.pid,
                                  name[:15]))
  
  if __name__ == '__main__':
      main()
  
subject: Fix race condition in examples/netstat.py which does not take NSP into account