code: def ports_as_list(port_str):
      if not port_str:
          LOGGER.info("Invalid port value")
          return [None, None]
      if ports_str_check_failed(port_str):
          LOGGER.info("{0}: Port list malformed.")
          return [None, None]
      tcp_list = list()
      udp_list = list()
      ports = port_str.replace(' ', '')
      b_tcp = ports.find("T")
      b_udp = ports.find("U")
      if ports[b_tcp - 1] == ',':
          ports = ports[:b_tcp - 1] + ports[b_tcp:]
      if ports[b_udp - 1] == ',':
          ports = ports[:b_udp - 1] + ports[b_udp:]
      ports = port_str_arrange(ports)
      tports = ''
      uports = ''
      if b_udp != -1 and b_tcp != -1:
          tports = ports[ports.index('T:') + 2:ports.index('U:')]
          uports = ports[ports.index('U:') + 2:]
      elif b_tcp == -1 and b_udp != -1:
          uports = ports[ports.index('U:') + 2:]
      elif b_udp == -1 and b_tcp != -1:
          tports = ports[ports.index('T:') + 2:]
      else:
          tports = ports
      if tports:
          for port in tports.split(','):
              if '-' in port:
                  tcp_list.extend(port_range_expand(port))
              else:
                  tcp_list.append(int(port))
          tcp_list.sort()
      if uports:
          for port in uports.split(','):
              if '-' in port:
                  udp_list.extend(port_range_expand(port))
              else:
                  udp_list.append(int(port))
          udp_list.sort()
      return (tcp_list, udp_list)