server: properly handle invalid policy config

Signed-off-by: ISHIDA Wataru <[email protected]>
This commit is contained in:
ISHIDA Wataru
2015-10-20 16:05:41 +09:00
parent 5af15b1d9c
commit e0a0fd792d
2 changed files with 12 additions and 4 deletions
+3 -1
View File
@@ -184,7 +184,9 @@ func main() {
if policyConfig == nil {
policyConfig = &newConfig.Policy
bgpServer.SetPolicy(newConfig.Policy)
if err := bgpServer.SetPolicy(newConfig.Policy); err != nil {
log.Fatal(err)
}
} else {
if config.CheckPolicyDifference(policyConfig, &newConfig.Policy) {
log.Info("Policy config is updated")
+9 -3
View File
@@ -884,7 +884,7 @@ func (server *BgpServer) SetPolicy(pl config.RoutingPolicy) error {
if err != nil {
log.WithFields(log.Fields{
"Topic": "Policy",
}).Debugf("failed to create routing policy: %s", err)
}).Errorf("failed to create routing policy: %s", err)
return err
}
server.policy = p
@@ -894,8 +894,13 @@ func (server *BgpServer) SetPolicy(pl config.RoutingPolicy) error {
return nil
}
func (server *BgpServer) handlePolicy(pl config.RoutingPolicy) {
server.SetPolicy(pl)
func (server *BgpServer) handlePolicy(pl config.RoutingPolicy) error {
if err := server.SetPolicy(pl); err != nil {
log.WithFields(log.Fields{
"Topic": "Policy",
}).Errorf("failed to set new policy: %s", err)
return err
}
for _, peer := range server.neighborMap {
log.WithFields(log.Fields{
"Topic": "Peer",
@@ -903,6 +908,7 @@ func (server *BgpServer) handlePolicy(pl config.RoutingPolicy) {
}).Info("call set policy")
server.setPolicyByConfig(peer, peer.conf.ApplyPolicy)
}
return nil
}
func (server *BgpServer) checkNeighborRequest(grpcReq *GrpcRequest) (*Peer, error) {