diff --git a/cmd/stress/cgr-raterstress/cgr-raterstress.go b/cmd/stress/cgr-raterstress/cgr-raterstress.go index 340475790..5fdf7aae9 100644 --- a/cmd/stress/cgr-raterstress/cgr-raterstress.go +++ b/cmd/stress/cgr-raterstress/cgr-raterstress.go @@ -24,6 +24,7 @@ import ( "log" "net/rpc" //"net/rpc/jsonrpc" + "net/rpc/jsonrpc" "time" ) diff --git a/sessionmanager/fssessionmanager.go b/sessionmanager/fssessionmanager.go index 4c01af504..5e944af2d 100644 --- a/sessionmanager/fssessionmanager.go +++ b/sessionmanager/fssessionmanager.go @@ -34,7 +34,7 @@ type FSSessionManager struct { buf *bufio.Reader sessions []*Session sessionDelegate *SessionDelegate - postgresLogger *PostgresLogger //NewPostgresLogger("gosqltest", "rif", "testus") + postgresLogger *PostgresLogger } func NewFSSessionManager(db *sql.DB) *FSSessionManager { diff --git a/sessionmanager/postgreslogger.go b/sessionmanager/postgreslogger.go index a577e8b3a..93243493d 100644 --- a/sessionmanager/postgreslogger.go +++ b/sessionmanager/postgreslogger.go @@ -36,6 +36,10 @@ func (psl *PostgresLogger) Close() { } func (psl *PostgresLogger) Log(uuid string, cc *timespans.CallCost) { + if psl.db == nil { + timespans.Logger.Warning("Cannot write log to database.") + return + } tss, err := json.Marshal(cc.Timespans) if err != nil { log.Printf("Error marshalling timespans to json: %v", err) diff --git a/sessionmanager/sessiondelegate.go b/sessionmanager/sessiondelegate.go index cec163877..a8ddc641b 100644 --- a/sessionmanager/sessiondelegate.go +++ b/sessionmanager/sessiondelegate.go @@ -72,6 +72,9 @@ func (rsd *SessionDelegate) OnChannelAnswer(ev Event, s *Session) { } func (rsd *SessionDelegate) OnChannelHangupComplete(ev Event, s *Session) { + if len(s.CallCosts) == 0 { + return // why would we have 0 callcosts + } lastCC := s.CallCosts[len(s.CallCosts)-1] // put credit back start := time.Now()