From e5915b34243741fffc0a0852d020bdf62e659c44 Mon Sep 17 00:00:00 2001 From: Vivek Patel Date: Tue, 23 Aug 2022 13:00:24 +0530 Subject: [PATCH] Fix nil pointer while replacing dal connection --- system/service/dal_connection.go | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/system/service/dal_connection.go b/system/service/dal_connection.go index 47bc7f235..68998f4d9 100644 --- a/system/service/dal_connection.go +++ b/system/service/dal_connection.go @@ -363,16 +363,27 @@ func MakeDalConnection(c *types.DalConnection, existing dal.Connection) (cw *dal var ( connConfig = dal.ConnectionConfig{ SensitivityLevelID: c.Config.Privacy.SensitivityLevelID, - ModelIdent: c.Config.DAL.ModelIdent, Label: c.Handle, } + connParams dal.ConnectionParams + connOperations dal.OperationSet ) - if checks := len(c.Config.DAL.ModelIdentCheck); checks > 0 { - connConfig.ModelIdentCheck = make([]*regexp.Regexp, checks) - for i, m := range c.Config.DAL.ModelIdentCheck { - if connConfig.ModelIdentCheck[i], err = regexp.Compile(m); err != nil { - return nil, fmt.Errorf("could not prepare connection model ident check for %q: %w", c.Handle, err) + if c.Config.DAL != nil { + connConfig.ModelIdent = c.Config.DAL.ModelIdent + + connOperations = c.Config.DAL.Operations + connParams = dal.ConnectionParams{ + Type: c.Config.DAL.Type, + Params: c.Config.DAL.Params, + } + + if checks := len(c.Config.DAL.ModelIdentCheck); checks > 0 { + connConfig.ModelIdentCheck = make([]*regexp.Regexp, checks) + for i, m := range c.Config.DAL.ModelIdentCheck { + if connConfig.ModelIdentCheck[i], err = regexp.Compile(m); err != nil { + return nil, fmt.Errorf("could not prepare connection model ident check for %q: %w", c.Handle, err) + } } } } @@ -380,12 +391,9 @@ func MakeDalConnection(c *types.DalConnection, existing dal.Connection) (cw *dal cw = dal.MakeConnection( c.ID, existing, - dal.ConnectionParams{ - Type: c.Config.DAL.Type, - Params: c.Config.DAL.Params, - }, + connParams, connConfig, - c.Config.DAL.Operations..., + connOperations..., ) return