]> git.puffer.fish Git - matthieu/frr.git/commitdiff
2003-06-07 Paul Jakma <paul@dishone.st>
authorpaul <paul>
Sat, 7 Jun 2003 02:03:11 +0000 (02:03 +0000)
committerpaul <paul>
Sat, 7 Jun 2003 02:03:11 +0000 (02:03 +0000)
* (bgp_clist.c): Run it through indent -nut (all indentation to
   be spaced, get rid of mix of tabs and spaces)

bgpd/bgp_clist.c

index 0b6a2e8cce81c4227ea00df3898973d3abacd05c..3cf1d2ea8b325d0a58d3dae06f9f5215958626c7 100644 (file)
@@ -42,12 +42,12 @@ community_list_master_lookup (struct community_list_handler *ch, int style)
       case COMMUNITY_LIST_STANDARD:
       case COMMUNITY_LIST_EXPANDED:
       case COMMUNITY_LIST_AUTO:
-       return &ch->community_list;
-       break;
+        return &ch->community_list;
+        break;
       case EXTCOMMUNITY_LIST_STANDARD:
       case EXTCOMMUNITY_LIST_EXPANDED:
       case EXTCOMMUNITY_LIST_AUTO:
-       return &ch->extcommunity_list;
+        return &ch->extcommunity_list;
       }
   return NULL;
 }
@@ -71,22 +71,22 @@ community_entry_free (struct community_entry *entry)
     {
     case COMMUNITY_LIST_STANDARD:
       if (entry->u.com)
-       community_free (entry->u.com);
+        community_free (entry->u.com);
       break;
     case EXTCOMMUNITY_LIST_STANDARD:
       /* In case of standard extcommunity-list, configuration string
-        is made by ecommunity_ecom2str().  */
+         is made by ecommunity_ecom2str().  */
       if (entry->config)
-       XFREE (MTYPE_ECOMMUNITY_STR, entry->config);
+        XFREE (MTYPE_ECOMMUNITY_STR, entry->config);
       if (entry->u.ecom)
-       ecommunity_free (entry->u.ecom);
+        ecommunity_free (entry->u.ecom);
       break;
     case COMMUNITY_LIST_EXPANDED:
     case EXTCOMMUNITY_LIST_EXPANDED:
       if (entry->config)
-       XFREE (MTYPE_COMMUNITY_LIST_CONFIG, entry->config);
+        XFREE (MTYPE_COMMUNITY_LIST_CONFIG, entry->config);
       if (entry->reg)
-       bgp_regex_free (entry->reg);
+        bgp_regex_free (entry->reg);
     default:
       break;
     }
@@ -115,7 +115,7 @@ community_list_free (struct community_list *list)
 
 struct community_list *
 community_list_insert (struct community_list_handler *ch,
-                      char *name, int style)
+                       char *name, int style)
 {
   int i;
   long number;
@@ -126,7 +126,7 @@ community_list_insert (struct community_list_handler *ch,
 
   /* Lookup community-list master.  */
   cm = community_list_master_lookup (ch, style);
-  if (! cm)
+  if (!cm)
     return NULL;
 
   /* Allocate new community_list and copy given name. */
@@ -138,9 +138,9 @@ community_list_insert (struct community_list_handler *ch,
   for (number = 0, i = 0; i < strlen (name); i++)
     {
       if (isdigit ((int) name[i]))
-       number = (number * 10) + (name[i] - '0');
+        number = (number * 10) + (name[i] - '0');
       else
-       break;
+        break;
     }
 
   /* In case of name is all digit character */
@@ -152,8 +152,8 @@ community_list_insert (struct community_list_handler *ch,
       list = &cm->num;
 
       for (point = list->head; point; point = point->next)
-       if (atol (point->name) >= number)
-         break;
+        if (atol (point->name) >= number)
+          break;
     }
   else
     {
@@ -161,11 +161,11 @@ community_list_insert (struct community_list_handler *ch,
 
       /* Set access_list to string list. */
       list = &cm->str;
-  
+
       /* Set point to insertion point. */
       for (point = list->head; point; point = point->next)
-       if (strcmp (point->name, name) >= 0)
-         break;
+        if (strcmp (point->name, name) >= 0)
+          break;
     }
 
   /* Link to upper list.  */
@@ -209,16 +209,16 @@ community_list_insert (struct community_list_handler *ch,
 
 struct community_list *
 community_list_lookup (struct community_list_handler *ch,
-                      char *name, int style)
+                       char *name, int style)
 {
   struct community_list *list;
   struct community_list_master *cm;
 
-  if (! name)
+  if (!name)
     return NULL;
 
   cm = community_list_master_lookup (ch, style);
-  if (! cm)
+  if (!cm)
     return NULL;
 
   for (list = cm->num.head; list; list = list->next)
@@ -237,7 +237,7 @@ community_list_get (struct community_list_handler *ch, char *name, int style)
   struct community_list *list;
 
   list = community_list_lookup (ch, name, style);
-  if (! list)
+  if (!list)
     list = community_list_insert (ch, name, style);
   return list;
 }
@@ -269,7 +269,7 @@ community_list_delete (struct community_list *list)
   community_list_free (list);
 }
 
-int 
+int
 community_list_empty_p (struct community_list *list)
 {
   return (list->head == NULL && list->tail == NULL) ? 1 : 0;
@@ -277,8 +277,8 @@ community_list_empty_p (struct community_list *list)
 \f
 /* Add community-list entry to the list.  */
 static void
-community_list_entry_add (struct community_list *list, 
-                         struct community_entry *entry)
+community_list_entry_add (struct community_list *list,
+                          struct community_entry *entry)
 {
   entry->next = NULL;
   entry->prev = list->tail;
@@ -293,7 +293,7 @@ community_list_entry_add (struct community_list *list,
 /* Delete community-list entry from the list.  */
 static void
 community_list_entry_delete (struct community_list *list,
-                            struct community_entry *entry, int style)
+                             struct community_entry *entry, int style)
 {
   if (entry->next)
     entry->next->prev = entry->prev;
@@ -314,30 +314,30 @@ community_list_entry_delete (struct community_list *list,
 /* Lookup community-list entry from the list.  */
 static struct community_entry *
 community_list_entry_lookup (struct community_list *list, void *arg,
-                            int direct)
+                             int direct)
 {
   struct community_entry *entry;
 
   for (entry = list->head; entry; entry = entry->next)
     {
       switch (entry->style)
-       {
-       case COMMUNITY_LIST_STANDARD:
-         if (community_cmp (entry->u.com, arg))
-           return entry;
-         break;
-       case EXTCOMMUNITY_LIST_STANDARD:
-         if (ecommunity_cmp (entry->u.ecom, arg))
-           return entry;
-         break;
-       case COMMUNITY_LIST_EXPANDED:
-       case EXTCOMMUNITY_LIST_EXPANDED:
-         if (strcmp (entry->config, arg) == 0)
-           return entry;
-         break;
-       default:
-         break;
-       }
+        {
+        case COMMUNITY_LIST_STANDARD:
+          if (community_cmp (entry->u.com, arg))
+            return entry;
+          break;
+        case EXTCOMMUNITY_LIST_STANDARD:
+          if (ecommunity_cmp (entry->u.ecom, arg))
+            return entry;
+          break;
+        case COMMUNITY_LIST_EXPANDED:
+        case EXTCOMMUNITY_LIST_EXPANDED:
+          if (strcmp (entry->config, arg) == 0)
+            return entry;
+          break;
+        default:
+          break;
+        }
     }
   return NULL;
 }
@@ -345,7 +345,7 @@ community_list_entry_lookup (struct community_list *list, void *arg,
 /* Internal function to perform regular expression match for community
    attribute.  */
 static int
-community_regexp_match (struct community *com, regex_t *reg)
+community_regexp_match (struct community *com, regex_t * reg)
 {
   char *str;
 
@@ -364,10 +364,30 @@ community_regexp_match (struct community *com, regex_t *reg)
   return 0;
 }
 
+static int
+ecommunity_regexp_match (struct ecommunity *ecom, regex_t * reg)
+{
+  char *str;
+
+  /* When there is no communities attribute it is treated as empty
+     string.  */
+  if (ecom == NULL || ecom->size == 0)
+    str = "";
+  else
+    str = ecommunity_str (ecom);
+
+  /* Regular expression match.  */
+  if (regexec (reg, str, 0, NULL, 0) == 0)
+    return 1;
+
+  /* No match.  */
+  return 0;
+}
+
 /* Delete community attribute using regular expression match.  Return
    modified communites attribute.  */
 static struct community *
-community_regexp_delete (struct community *com, regex_t *reg)
+community_regexp_delete (struct community *com, regex_t * reg)
 {
   int i;
   u_int32_t comval;
@@ -375,7 +395,7 @@ community_regexp_delete (struct community *com, regex_t *reg)
   char c[12];
   char *str;
 
-  if (! com)
+  if (!com)
     return NULL;
 
   i = 0;
@@ -385,29 +405,29 @@ community_regexp_delete (struct community *com, regex_t *reg)
       comval = ntohl (comval);
 
       switch (comval)
-       {
-       case COMMUNITY_INTERNET:
-         str = "internet";
-         break;
-       case COMMUNITY_NO_EXPORT:
-         str = "no-export";
-         break;
-       case COMMUNITY_NO_ADVERTISE:
-         str = "no-advertise";
-         break;
-       case COMMUNITY_LOCAL_AS:
-         str = "local-AS";
-         break;
-       default:
-         sprintf (c, "%d:%d", (comval >> 16) & 0xFFFF, comval & 0xFFFF);
-         str = c;
-         break;
-       }
+        {
+        case COMMUNITY_INTERNET:
+          str = "internet";
+          break;
+        case COMMUNITY_NO_EXPORT:
+          str = "no-export";
+          break;
+        case COMMUNITY_NO_ADVERTISE:
+          str = "no-advertise";
+          break;
+        case COMMUNITY_LOCAL_AS:
+          str = "local-AS";
+          break;
+        default:
+          sprintf (c, "%d:%d", (comval >> 16) & 0xFFFF, comval & 0xFFFF);
+          str = c;
+          break;
+        }
 
       if (regexec (reg, str, 0, NULL, 0) == 0)
-       community_del_val (com, com_nthval (com, i));
+        community_del_val (com, com_nthval (com, i));
       else
-       i++;
+        i++;
     }
   return com;
 }
@@ -422,21 +442,45 @@ community_list_match (struct community *com, struct community_list *list)
   for (entry = list->head; entry; entry = entry->next)
     {
       if (entry->any)
-       return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
+        return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
 
       if (entry->style == COMMUNITY_LIST_STANDARD)
-       {
-         if (community_include (entry->u.com, COMMUNITY_INTERNET))
-           return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
+        {
+          if (community_include (entry->u.com, COMMUNITY_INTERNET))
+            return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
 
-         if (community_match (com, entry->u.com))
-           return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
-       }
+          if (community_match (com, entry->u.com))
+            return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
+        }
       else if (entry->style == COMMUNITY_LIST_EXPANDED)
-       {
-         if (community_regexp_match (com, entry->reg))
-           return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
-       }
+        {
+          if (community_regexp_match (com, entry->reg))
+            return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
+        }
+    }
+  return 0;
+}
+
+int
+ecommunity_list_match (struct ecommunity *ecom, struct community_list *list)
+{
+  struct community_entry *entry;
+
+  for (entry = list->head; entry; entry = entry->next)
+    {
+      if (entry->any)
+        return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
+
+      if (entry->style == EXTCOMMUNITY_LIST_STANDARD)
+        {
+          if (ecommunity_match (ecom, entry->u.ecom))
+            return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
+        }
+      else if (entry->style == EXTCOMMUNITY_LIST_EXPANDED)
+        {
+          if (ecommunity_regexp_match (ecom, entry->reg))
+            return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
+        }
     }
   return 0;
 }
@@ -444,61 +488,62 @@ community_list_match (struct community *com, struct community_list *list)
 /* Perform exact matching.  In case of expanded community-list, do
    same thing as community_list_match().  */
 int
-community_list_exact_match (struct community *com, struct community_list *list)
+community_list_exact_match (struct community *com,
+                            struct community_list *list)
 {
   struct community_entry *entry;
 
   for (entry = list->head; entry; entry = entry->next)
     {
       if (entry->any)
-       return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
+        return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
 
       if (entry->style == COMMUNITY_LIST_STANDARD)
-       {
-         if (community_include (entry->u.com, COMMUNITY_INTERNET))
-           return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
+        {
+          if (community_include (entry->u.com, COMMUNITY_INTERNET))
+            return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
 
-         if (community_cmp (com, entry->u.com))
-           return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
-       }
+          if (community_cmp (com, entry->u.com))
+            return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
+        }
       else if (entry->style == COMMUNITY_LIST_EXPANDED)
-       {
-         if (community_regexp_match (com, entry->reg))
-           return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
-       }
+        {
+          if (community_regexp_match (com, entry->reg))
+            return entry->direct == COMMUNITY_PERMIT ? 1 : 0;
+        }
     }
   return 0;
 }
 
-/* Delete all permitted communities in the list from com1 */
+/* Delete all permitted communities in the list from com */
 struct community *
 community_list_match_delete (struct community *com,
-                            struct community_list *list)
+                             struct community_list *list)
 {
   struct community_entry *entry;
 
   for (entry = list->head; entry; entry = entry->next)
     {
       if (entry->any && entry->direct == COMMUNITY_PERMIT)
-       {
-         /* This is a tricky part.  Currently only
-            route_set_community_delete() uses this function.  In the
-            function com->size is zero, it free the community
-            structure.  */
-         com->size = 0;
-         return com;
-       }
+        {
+          /* This is a tricky part.  Currently only
+             route_set_community_delete() uses this function.  In the
+             function com->size is zero, it free the community
+             structure.  */
+          com->size = 0;
+          return com;
+        }
 
       if (entry->style == COMMUNITY_LIST_STANDARD)
-       {
-         if (entry->direct == COMMUNITY_PERMIT)
-           community_delete (com, entry->u.com);
-       }
+        {
+          if (entry->direct == COMMUNITY_PERMIT)
+            community_delete (com, entry->u.com);
+        }
       else if (entry->style == COMMUNITY_LIST_EXPANDED)
-       {
-         if (entry->direct == COMMUNITY_PERMIT)
-           community_regexp_delete (com, entry->reg);
-       }
+        {
+          if (entry->direct == COMMUNITY_PERMIT)
+            community_regexp_delete (com, entry->reg);
+        }
     }
   return com;
 }
@@ -506,43 +551,43 @@ community_list_match_delete (struct community *com,
 /* To avoid duplicated entry in the community-list, this function
    compares specified entry to existing entry.  */
 int
-community_list_dup_check (struct community_list *list, 
-                         struct community_entry *new)
+community_list_dup_check (struct community_list *list,
+                          struct community_entry *new)
 {
   struct community_entry *entry;
-  
+
   for (entry = list->head; entry; entry = entry->next)
     {
       if (entry->style != new->style)
-       continue;
+        continue;
 
       if (entry->direct != new->direct)
-       continue;
+        continue;
 
       if (entry->any != new->any)
-       continue;
+        continue;
 
       if (entry->any)
-       return 1;
+        return 1;
 
       switch (entry->style)
-       {
-       case COMMUNITY_LIST_STANDARD:
-         if (community_cmp (entry->u.com, new->u.com))
-           return 1;
-         break;
-       case EXTCOMMUNITY_LIST_STANDARD:
-         if (ecommunity_cmp (entry->u.ecom, new->u.ecom))
-           return 1;
-         break;
-       case COMMUNITY_LIST_EXPANDED:
-       case EXTCOMMUNITY_LIST_EXPANDED:
-         if (strcmp (entry->config, new->config) == 0)
-           return 1;
-         break;
-       default:
-         break;
-       }
+        {
+        case COMMUNITY_LIST_STANDARD:
+          if (community_cmp (entry->u.com, new->u.com))
+            return 1;
+          break;
+        case EXTCOMMUNITY_LIST_STANDARD:
+          if (ecommunity_cmp (entry->u.ecom, new->u.ecom))
+            return 1;
+          break;
+        case COMMUNITY_LIST_EXPANDED:
+        case EXTCOMMUNITY_LIST_EXPANDED:
+          if (strcmp (entry->config, new->config) == 0)
+            return 1;
+          break;
+        default:
+          break;
+        }
     }
   return 0;
 }
@@ -550,7 +595,7 @@ community_list_dup_check (struct community_list *list,
 /* Set community-list.  */
 int
 community_list_set (struct community_list_handler *ch,
-                   char *name, char *str, int direct, int style)
+                    char *name, char *str, int direct, int style)
 {
   struct community_entry *entry;
   struct community_list *list;
@@ -565,72 +610,72 @@ community_list_set (struct community_list_handler *ch,
   /* When community-list already has entry, new entry should have same
      style.  If you want to have mixed style community-list, you can
      comment out this check.  */
-  if (! community_list_empty_p (list))
+  if (!community_list_empty_p (list))
     {
       struct community_entry *first;
 
       first = list->head;
 
       if (style == COMMUNITY_LIST_AUTO)
-       style = first->style;
+        style = first->style;
       else if (style != first->style)
-       {
-         return (first->style == COMMUNITY_LIST_STANDARD
-                 ? COMMUNITY_LIST_ERR_STANDARD_CONFLICT
-                 : COMMUNITY_LIST_ERR_EXPANDED_CONFLICT);
-       }
+        {
+          return (first->style == COMMUNITY_LIST_STANDARD
+                  ? COMMUNITY_LIST_ERR_STANDARD_CONFLICT
+                  : COMMUNITY_LIST_ERR_EXPANDED_CONFLICT);
+        }
     }
 
   /* When str is NULL, it is matches any.  */
-  if (! str)
+  if (!str)
     {
       entry = community_entry_new ();
       entry->direct = direct;
       entry->any = 1;
       if (style == COMMUNITY_LIST_AUTO)
-       entry->style = COMMUNITY_LIST_STANDARD;
+        entry->style = COMMUNITY_LIST_STANDARD;
       else
-       entry->style = style;
+        entry->style = style;
     }
   else
     {
       /* Standard community-list parse.  String must be converted into
-        community structure without problem.  */
+         community structure without problem.  */
       if (style == COMMUNITY_LIST_STANDARD || style == COMMUNITY_LIST_AUTO)
-       {
-         com = community_str2com (str);
-         if (com)
-           {
-             entry = community_entry_new ();
-             entry->u.com = com;
-             entry->direct = direct;
-             entry->style = COMMUNITY_LIST_STANDARD;
-           }
-         else if (style == COMMUNITY_LIST_STANDARD)
-           return COMMUNITY_LIST_ERR_MALFORMED_VAL;
-         
-         /* We can't convert string into communities value.  When
-            community-list type is auto, fall dawn to regular expression
-            match.  */
-       }
+        {
+          com = community_str2com (str);
+          if (com)
+            {
+              entry = community_entry_new ();
+              entry->u.com = com;
+              entry->direct = direct;
+              entry->style = COMMUNITY_LIST_STANDARD;
+            }
+          else if (style == COMMUNITY_LIST_STANDARD)
+            return COMMUNITY_LIST_ERR_MALFORMED_VAL;
+
+          /* We can't convert string into communities value.  When
+             community-list type is auto, fall dawn to regular expression
+             match.  */
+        }
 
       /* Expanded community-list parse.  String may include regular
-        expression.  */
-      if (! entry && (style == COMMUNITY_LIST_EXPANDED
-                     || style == COMMUNITY_LIST_AUTO))
-       {
-         regex = bgp_regcomp (str);
-         if (regex)
-           {
-             entry = community_entry_new ();
-             entry->reg = regex;
-             entry->config = XSTRDUP (MTYPE_COMMUNITY_LIST_CONFIG, str);
-             entry->direct = direct;
-             entry->style = COMMUNITY_LIST_EXPANDED;
-           }
-         else
-           return COMMUNITY_LIST_ERR_MALFORMED_VAL;
-       }
+         expression.  */
+      if (!entry && (style == COMMUNITY_LIST_EXPANDED
+                     || style == COMMUNITY_LIST_AUTO))
+        {
+          regex = bgp_regcomp (str);
+          if (regex)
+            {
+              entry = community_entry_new ();
+              entry->reg = regex;
+              entry->config = XSTRDUP (MTYPE_COMMUNITY_LIST_CONFIG, str);
+              entry->direct = direct;
+              entry->style = COMMUNITY_LIST_EXPANDED;
+            }
+          else
+            return COMMUNITY_LIST_ERR_MALFORMED_VAL;
+        }
     }
 
   /* Do not put duplicated community entry.  */
@@ -646,7 +691,7 @@ community_list_set (struct community_list_handler *ch,
    community-list entry belongs to the specified name.  */
 int
 community_list_unset (struct community_list_handler *ch,
-                     char *name, char *str, int direct, int style)
+                      char *name, char *str, int direct, int style)
 {
   struct community_entry *entry;
   struct community_list *list;
@@ -661,7 +706,7 @@ community_list_unset (struct community_list_handler *ch,
     return COMMUNITY_LIST_ERR_CANT_FIND_LIST;
 
   /* Delete all of entry belongs to this community-list.  */
-  if (! str)
+  if (!str)
     {
       community_list_delete (list);
       return 0;
@@ -673,33 +718,33 @@ community_list_unset (struct community_list_handler *ch,
     {
       com = community_str2com (str);
       if (com)
-       {
-         entry = community_list_entry_lookup (list, com, direct);
-         community_free (com);
-       }
+        {
+          entry = community_list_entry_lookup (list, com, direct);
+          community_free (com);
+        }
       else if (style == COMMUNITY_LIST_STANDARD)
-       return COMMUNITY_LIST_ERR_MALFORMED_VAL;
+        return COMMUNITY_LIST_ERR_MALFORMED_VAL;
 
       /* If we can't convert string into community and community-list
-        type is auto, fall dawn to expanded community-list.  */
+         type is auto, fall dawn to expanded community-list.  */
     }
 
   /* Expanded community-list parse.  String may include regular
      expression.  */
-  if (! entry 
+  if (!entry
       && (style == COMMUNITY_LIST_EXPANDED || style == COMMUNITY_LIST_AUTO))
     {
       regex = bgp_regcomp (str);
       if (regex)
-       {
-         entry = community_list_entry_lookup (list, str, direct);
-         bgp_regex_free (regex);
-       }
+        {
+          entry = community_list_entry_lookup (list, str, direct);
+          bgp_regex_free (regex);
+        }
       else
-       return COMMUNITY_LIST_ERR_MALFORMED_VAL;
+        return COMMUNITY_LIST_ERR_MALFORMED_VAL;
     }
 
-  if (! entry)
+  if (!entry)
     return COMMUNITY_LIST_ERR_CANT_FIND_LIST;
 
   community_list_entry_delete (list, entry, style);
@@ -710,7 +755,7 @@ community_list_unset (struct community_list_handler *ch,
 /* Set extcommunity-list.  */
 int
 extcommunity_list_set (struct community_list_handler *ch,
-                      char *name, char *str, int direct, int style)
+                       char *name, char *str, int direct, int style)
 {
   struct community_entry *entry;
   struct community_list *list;
@@ -725,77 +770,79 @@ extcommunity_list_set (struct community_list_handler *ch,
   /* When community-list already has entry, new entry should have same
      style.  If you want to have mixed style community-list, you can
      comment out this check.  */
-  if (! community_list_empty_p (list))
+  if (!community_list_empty_p (list))
     {
       struct community_entry *first;
 
       first = list->head;
 
       if (style == EXTCOMMUNITY_LIST_AUTO)
-       style = first->style;
+        style = first->style;
       else if (style != first->style)
-       {
-         return (first->style == EXTCOMMUNITY_LIST_STANDARD
-                 ? COMMUNITY_LIST_ERR_STANDARD_CONFLICT
-                 : COMMUNITY_LIST_ERR_EXPANDED_CONFLICT);
-       }
+        {
+          return (first->style == EXTCOMMUNITY_LIST_STANDARD
+                  ? COMMUNITY_LIST_ERR_STANDARD_CONFLICT
+                  : COMMUNITY_LIST_ERR_EXPANDED_CONFLICT);
+        }
     }
 
   /* When str is NULL, it is matches any.  */
-  if (! str)
+  if (!str)
     {
       entry = community_entry_new ();
       entry->direct = direct;
       entry->any = 1;
       if (style == EXTCOMMUNITY_LIST_AUTO)
-       entry->style = EXTCOMMUNITY_LIST_STANDARD;
+        entry->style = EXTCOMMUNITY_LIST_STANDARD;
       else
-       entry->style = style;
+        entry->style = style;
     }
   else
     {
       /* Standard extcommunity-list parse.  String is converted into
-        ecommunity structure.  */
+         ecommunity structure.  */
       if (style == EXTCOMMUNITY_LIST_STANDARD
-         || style == EXTCOMMUNITY_LIST_AUTO)
-       {
-         /* Type is unknown.  String includes keyword.  */
-         ecom = ecommunity_str2com (str, 0, 1);
-         if (ecom)
-           {
-             entry = community_entry_new ();
-             entry->config 
-               = ecommunity_ecom2str (ecom, ECOMMUNITY_FORMAT_COMMUNITY_LIST);
-             ecom->str = ecommunity_ecom2str (ecom, ECOMMUNITY_FORMAT_DISPLAY);
-             entry->u.ecom = ecom;
-             entry->direct = direct;
-             entry->style = EXTCOMMUNITY_LIST_STANDARD;
-           }
-         else if (style == EXTCOMMUNITY_LIST_STANDARD)
-           return COMMUNITY_LIST_ERR_MALFORMED_VAL;
-
-         /* We can't convert string into communities value.  When
-            community-list type is auto, fall dawn to regular expression
-            match.  */
-       }
+          || style == EXTCOMMUNITY_LIST_AUTO)
+        {
+          /* Type is unknown.  String includes keyword.  */
+          ecom = ecommunity_str2com (str, 0, 1);
+          if (ecom)
+            {
+              entry = community_entry_new ();
+              entry->config
+                =
+                ecommunity_ecom2str (ecom, ECOMMUNITY_FORMAT_COMMUNITY_LIST);
+              ecom->str =
+                ecommunity_ecom2str (ecom, ECOMMUNITY_FORMAT_DISPLAY);
+              entry->u.ecom = ecom;
+              entry->direct = direct;
+              entry->style = EXTCOMMUNITY_LIST_STANDARD;
+            }
+          else if (style == EXTCOMMUNITY_LIST_STANDARD)
+            return COMMUNITY_LIST_ERR_MALFORMED_VAL;
+
+          /* We can't convert string into communities value.  When
+             community-list type is auto, fall dawn to regular expression
+             match.  */
+        }
 
       /* Expanded extcommunity-list parse.  String may include regular
-        expression.  */
-      if (! entry && (style == EXTCOMMUNITY_LIST_EXPANDED
-                     || style == EXTCOMMUNITY_LIST_AUTO))
-       {
-         regex = bgp_regcomp (str);
-         if (regex)
-           {
-             entry = community_entry_new ();
-             entry->reg = regex;
-             entry->config = XSTRDUP (MTYPE_COMMUNITY_LIST_CONFIG, str);
-             entry->direct = direct;
-             entry->style = EXTCOMMUNITY_LIST_EXPANDED;
-           }
-         else
-           return COMMUNITY_LIST_ERR_MALFORMED_VAL;
-       }
+         expression.  */
+      if (!entry && (style == EXTCOMMUNITY_LIST_EXPANDED
+                     || style == EXTCOMMUNITY_LIST_AUTO))
+        {
+          regex = bgp_regcomp (str);
+          if (regex)
+            {
+              entry = community_entry_new ();
+              entry->reg = regex;
+              entry->config = XSTRDUP (MTYPE_COMMUNITY_LIST_CONFIG, str);
+              entry->direct = direct;
+              entry->style = EXTCOMMUNITY_LIST_EXPANDED;
+            }
+          else
+            return COMMUNITY_LIST_ERR_MALFORMED_VAL;
+        }
     }
 
   /* Do not put duplicated community entry.  */
@@ -811,7 +858,7 @@ extcommunity_list_set (struct community_list_handler *ch,
    extcommunity-list entry belongs to the specified name.  */
 int
 extcommunity_list_unset (struct community_list_handler *ch,
-                        char *name, char *str, int direct, int style)
+                         char *name, char *str, int direct, int style)
 {
   struct community_entry *entry;
   struct community_list *list;
@@ -826,7 +873,7 @@ extcommunity_list_unset (struct community_list_handler *ch,
     return COMMUNITY_LIST_ERR_CANT_FIND_LIST;
 
   /* Delete all of entry belongs to this extcommunity-list.  */
-  if (! str)
+  if (!str)
     {
       community_list_delete (list);
       return 0;
@@ -838,33 +885,33 @@ extcommunity_list_unset (struct community_list_handler *ch,
     {
       ecom = ecommunity_str2com (str, 0, 1);
       if (ecom)
-       {
-         entry = community_list_entry_lookup (list, ecom, direct);
-         ecommunity_free (ecom);
-       }
+        {
+          entry = community_list_entry_lookup (list, ecom, direct);
+          ecommunity_free (ecom);
+        }
       else if (style == COMMUNITY_LIST_STANDARD)
-       return COMMUNITY_LIST_ERR_MALFORMED_VAL;
+        return COMMUNITY_LIST_ERR_MALFORMED_VAL;
 
       /* If we can't convert string into community and community-list
-        type is auto, fall dawn to expanded community-list.  */
+         type is auto, fall dawn to expanded community-list.  */
     }
 
   /* Expanded community-list parse.  String may include regular
      expression.  */
-  if (! entry 
+  if (!entry
       && (style == COMMUNITY_LIST_EXPANDED || style == COMMUNITY_LIST_AUTO))
     {
       regex = bgp_regcomp (str);
       if (regex)
-       {
-         entry = community_list_entry_lookup (list, str, direct);
-         bgp_regex_free (regex);
-       }
+        {
+          entry = community_list_entry_lookup (list, str, direct);
+          bgp_regex_free (regex);
+        }
       else
-       return COMMUNITY_LIST_ERR_MALFORMED_VAL;
+        return COMMUNITY_LIST_ERR_MALFORMED_VAL;
     }
 
-  if (! entry)
+  if (!entry)
     return COMMUNITY_LIST_ERR_CANT_FIND_LIST;
 
   community_list_entry_delete (list, entry, style);
@@ -878,7 +925,7 @@ community_list_init ()
 {
   struct community_list_handler *ch;
   ch = XCALLOC (MTYPE_COMMUNITY_LIST_HANDLER,
-               sizeof (struct community_list_handler));
+                sizeof (struct community_list_handler));
   return ch;
 }