コード例 #1
0
ファイル: mtrie_conf.c プロジェクト: grawity/ircd-hybrid-5
void add_mtrie_conf_entry(aConfItem *aconf,int flags)
{
  DOMAIN_LEVEL *cur_level;
  DOMAIN_PIECE *cur_piece;
  DOMAIN_PIECE *last_piece;
  char tokenized_host[HOSTLEN+1];
  char *cur_dns_piece;
  int index;

  stack_pointer = 0;

  /* check to see if its a kline on [email protected]/mask
   * or [email protected].* or [email protected]
   */

  if(host_is_legal_ip(aconf->host) && (aconf->status & CONF_KILL))
    {
      add_to_dline_hash(aconf);
      return;
    }

  switch(sortable(tokenized_host,aconf->host))
    {
    case 0:
    case 1:

      if(aconf->status & CONF_CLIENT)
	{
	  if(unsortable_list_ilines)
	    {
	      aconf->next = unsortable_list_ilines;
	      unsortable_list_ilines = aconf;
	    }
	  else
	    unsortable_list_ilines = aconf;
	}
      else
	{
	  if(unsortable_list_klines)
	    {
	      aconf->next = unsortable_list_klines;
	      unsortable_list_klines = aconf;
	    }
	  else
	    unsortable_list_klines = aconf;
	}
      return;
      break;

    case -2:
      if(aconf->status & CONF_CLIENT)
	{
	  if(wild_card_ilines)
	    {
	      aconf->next = wild_card_ilines;
	      wild_card_ilines = aconf;
	    }
	  else
	    wild_card_ilines = aconf;
	}
      else
	{
	  if(unsortable_list_klines)
	    {
	      aconf->next = unsortable_list_klines;
	      unsortable_list_klines = aconf;
	    }
	  else
	    unsortable_list_klines = aconf;
	}
      return;
      break;

    case -1:
      break;
    }

  if(trie_list == (DOMAIN_LEVEL *)NULL)
    {
      trie_list = (DOMAIN_LEVEL *)MyMalloc(sizeof(DOMAIN_LEVEL));
      memset((void *)trie_list,0,sizeof(DOMAIN_LEVEL));
    }

  /* now, start generating the sub mtrie tree */

  create_sub_mtrie(trie_list,aconf,flags,aconf->host);
}
コード例 #2
0
ファイル: BasicName.cpp プロジェクト: eirTony/BelaRust
bool BasicName::operator <  (const BasicName & other) const
{
    return sortable() <  other.sortable();
}