]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Merge branch 'int-new' into bash-completion
authorJan Maria Matejka <mq@ucw.cz>
Wed, 13 Dec 2017 15:46:58 +0000 (16:46 +0100)
committerJan Maria Matejka <mq@ucw.cz>
Wed, 13 Dec 2017 15:46:58 +0000 (16:46 +0100)
1  2 
client/client.c
conf/conf.c
conf/conf.h
nest/cmds.c
nest/config.Y
nest/iface.c
proto/ospf/config.Y
sysdep/unix/main.c

diff --cc client/client.c
Simple merge
diff --cc conf/conf.c
index 885c68f29bce3b6f982f926c48725263c4097a12,885e2e7e0ebf2b17ed85494d76239875cd729c0c..1bc73f9263faca8b1442d5514e006d0a6cafe143
@@@ -450,10 -445,9 +445,10 @@@ config_undo(void
  }
  
  extern void cmd_reconfig_undo_notify(void);
 +extern void cmd_reconfig_msg(int r);
  
  static void
- config_timeout(struct timer *t UNUSED)
+ config_timeout(timer *t UNUSED)
  {
    log(L_INFO "Config timeout expired, starting undo");
    cmd_reconfig_undo_notify();
diff --cc conf/conf.h
Simple merge
diff --cc nest/cmds.c
Simple merge
diff --cc nest/config.Y
index 92a00207b2d0ba6e36b2f36ee7d188500b6bf60f,5c4f239384af3f9b3cf984f3816b27a0b9cf9842..2b07e99cc2ff0b450239e2d1a41d6c46a474f5c7
@@@ -71,10 -71,10 +71,11 @@@ CF_KEYWORDS(RECEIVE, LIMIT, ACTION, WAR
  CF_KEYWORDS(PASSWORD, FROM, PASSIVE, TO, ID, EVENTS, PACKETS, PROTOCOLS, INTERFACES)
  CF_KEYWORDS(ALGORITHM, KEYED, HMAC, MD5, SHA1, SHA256, SHA384, SHA512)
  CF_KEYWORDS(PRIMARY, STATS, COUNT, BY, FOR, COMMANDS, PREEXPORT, NOEXPORT, GENERATE)
- CF_KEYWORDS(LISTEN, BGP, V6ONLY, DUAL, ADDRESS, PORT, PASSWORDS, DESCRIPTION, SORTED)
+ CF_KEYWORDS(BGP, PASSWORDS, DESCRIPTION, SORTED)
  CF_KEYWORDS(RELOAD, IN, OUT, MRTDUMP, MESSAGES, RESTRICT, MEMORY, IGP_METRIC, CLASS, DSCP)
+ CF_KEYWORDS(TIMEFORMAT, ISO, SHORT, LONG, ROUTE, PROTOCOL, BASE, LOG, S, MS, US)
  CF_KEYWORDS(GRACEFUL, RESTART, WAIT, MAX, FLUSH, AS)
 +CF_KEYWORDS(REFRESH)
  
  /* For r_args_channel */
  CF_KEYWORDS(IPV4, IPV4_MC, IPV4_MPLS, IPV6, IPV6_MC, IPV6_MPLS, VPN4, VPN4_MC, VPN4_MPLS, VPN6, VPN6_MC, VPN6_MPLS, ROA4, ROA6, FLOW4, FLOW6, MPLS, PRI, SEC)
@@@ -747,17 -739,17 +758,17 @@@ echo_size
     }
   ;
  
- CF_CLI(DISABLE, proto_patt, <protocol> | \"<pattern>\" | all, [[Disable protocol]], CLI_SF_PROTOCOL | CLI_SF_KW_ALL)
- { proto_apply_cmd($2, proto_cmd_disable, 1, 0); } ;
- CF_CLI(ENABLE, proto_patt, <protocol> | \"<pattern>\" | all, [[Enable protocol]], CLI_SF_PROTOCOL | CLI_SF_KW_ALL)
- { proto_apply_cmd($2, proto_cmd_enable, 1, 0); } ;
- CF_CLI(RESTART, proto_patt, <protocol> | \"<pattern>\" | all, [[Restart protocol]], CLI_SF_PROTOCOL | CLI_SF_KW_ALL)
- { proto_apply_cmd($2, proto_cmd_restart, 1, 0); } ;
 -CF_CLI(DISABLE, proto_patt opttext, (<protocol> | \"<pattern>\" | all) [message], [[Disable protocol]])
++CF_CLI(DISABLE, proto_patt opttext, (<protocol> | \"<pattern>\" | all) [message], [[Disable protocol]], CLI_SF_PROTOCOL | CLI_SF_KW_ALL)
+ { proto_apply_cmd($2, proto_cmd_disable, 1, (uintptr_t) $3); } ;
 -CF_CLI(ENABLE, proto_patt opttext, (<protocol> | \"<pattern>\" | all) [message], [[Enable protocol]])
++CF_CLI(ENABLE, proto_patt opttext, (<protocol> | \"<pattern>\" | all) [message], [[Enable protocol]], CLI_SF_PROTOCOL | CLI_SF_KW_ALL)
+ { proto_apply_cmd($2, proto_cmd_enable, 1, (uintptr_t) $3); } ;
 -CF_CLI(RESTART, proto_patt opttext, (<protocol> | \"<pattern>\" | all) [message], [[Restart protocol]])
++CF_CLI(RESTART, proto_patt opttext, (<protocol> | \"<pattern>\" | all) [message], [[Restart protocol]], CLI_SF_PROTOCOL | CLI_SF_KW_ALL)
+ { proto_apply_cmd($2, proto_cmd_restart, 1, (uintptr_t) $3); } ;
 -CF_CLI(RELOAD, proto_patt, <protocol> | \"<pattern>\" | all, [[Reload protocol]])
 +CF_CLI(RELOAD, proto_patt, <protocol> | \"<pattern>\" | all, [[Reload protocol]], CLI_SF_PROTOCOL | CLI_SF_KW_ALL)
  { proto_apply_cmd($2, proto_cmd_reload, 1, CMD_RELOAD); } ;
 -CF_CLI(RELOAD IN, proto_patt, <protocol> | \"<pattern>\" | all, [[Reload protocol (just imported routes)]])
 +CF_CLI(RELOAD IN, proto_patt, <protocol> | \"<pattern>\" | all, [[Reload protocol (just imported routes)]], CLI_SF_PROTOCOL | CLI_SF_KW_ALL)
  { proto_apply_cmd($3, proto_cmd_reload, 1, CMD_RELOAD_IN); } ;
 -CF_CLI(RELOAD OUT, proto_patt, <protocol> | \"<pattern>\" | all, [[Reload protocol (just exported routes)]])
 +CF_CLI(RELOAD OUT, proto_patt, <protocol> | \"<pattern>\" | all, [[Reload protocol (just exported routes)]], CLI_SF_PROTOCOL | CLI_SF_KW_ALL)
  { proto_apply_cmd($3, proto_cmd_reload, 1, CMD_RELOAD_OUT); } ;
  
  CF_CLI_HELP(DEBUG, ..., [[Control protocol debugging via BIRD logs]])
diff --cc nest/iface.c
index 2c89e31ee06961e2da0f5be50a05a26b116d3a72,303a52b2f08b43ccb987003c261c7c87b2c3a5b9..bd9281690e7052233d721be5cfb1e0ea25253dc2
@@@ -206,32 -217,21 +217,26 @@@ if_notify_change(unsigned c, struct ifa
  #endif
  
    if (c & IF_CHANGE_DOWN)
 +  {
      neigh_if_down(i);
  
 -  if (c & IF_CHANGE_DOWN)
      WALK_LIST(a, i->addrs)
-       {
-       a->flags = (i->flags & ~IA_FLAGS) | (a->flags & IA_FLAGS);
-       ifa_notify_change_(IF_CHANGE_DOWN, a);
-       }
+       ifa_notify_change_(IF_CHANGE_DOWN, a);
  
 +    cli_notify_all_clients();
 +  }
 +
    WALK_LIST(p, proto_list)
      if_send_notify(p, c, i);
  
    if (c & IF_CHANGE_UP)
 +  {
      WALK_LIST(a, i->addrs)
-       {
-       a->flags = (i->flags & ~IA_FLAGS) | (a->flags & IA_FLAGS);
-       ifa_notify_change_(IF_CHANGE_UP, a);
-       }
+       ifa_notify_change_(IF_CHANGE_UP, a);
  
 -  if (c & IF_CHANGE_UP)
      neigh_if_up(i);
 +    cli_notify_all_clients();
 +  }
  
    if ((c & (IF_CHANGE_UP | IF_CHANGE_DOWN | IF_CHANGE_LINK)) == IF_CHANGE_LINK)
      neigh_if_link(i);
index 2aa52d2eba5821be173ae6fecb5e7fba97bb218b,ce409a3a4b43b57b0ed148a92892389c27dde345..65f3606950f06cba2e7f49fa3bc2623adb2f3d87
@@@ -431,13 -499,13 +499,13 @@@ CF_ADDTO(dynamic_attr, OSPF_TAG { $$ = 
  CF_ADDTO(dynamic_attr, OSPF_ROUTER_ID { $$ = f_new_dynamic_attr(EAF_TYPE_ROUTER_ID | EAF_TEMP, T_QUAD, EA_OSPF_ROUTER_ID); })
  
  CF_CLI_HELP(SHOW OSPF, ..., [[Show information about OSPF protocol]]);
- CF_CLI(SHOW OSPF, optsym, [<name>], [[Show information about OSPF protocol XXX]], CLI_SF_PROTOCOL)
 -CF_CLI(SHOW OSPF, optsym, [<name>], [[Show information about OSPF protocol]])
++CF_CLI(SHOW OSPF, optsym, [<name>], [[Show information about OSPF protocol]], CLI_SF_PROTOCOL)
  { ospf_sh(proto_get_named($3, &proto_ospf)); };
  
 -CF_CLI(SHOW OSPF NEIGHBORS, optsym opttext, [<name>] [\"<interface>\"], [[Show information about OSPF neighbors]])
 +CF_CLI(SHOW OSPF NEIGHBORS, optsym opttext, [<name>] [\"<interface>\"], [[Show information about OSPF neighbors]], CLI_SF_PROTOCOL | CLI_SF_INTERFACE | CLI_SF_PARAMETER)
  { ospf_sh_neigh(proto_get_named($4, &proto_ospf), $5); };
  
 -CF_CLI(SHOW OSPF INTERFACE, optsym opttext, [<name>] [\"<interface>\"], [[Show information about interface]])
 +CF_CLI(SHOW OSPF INTERFACE, optsym opttext, [<name>] [\"<interface>\"], [[Show information about interface]], CLI_SF_PROTOCOL | CLI_SF_INTERFACE | CLI_SF_PARAMETER)
  { ospf_sh_iface(proto_get_named($4, &proto_ospf), $5); };
  
  CF_CLI_HELP(SHOW OSPF TOPOLOGY, [all] [<name>], [[Show information about OSPF network topology]])
Simple merge