From eed45bdb0e2c1c7a9abf0135374dcd1cfbb53017 Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Tue, 31 Jul 2012 14:51:59 +0300 Subject: [PATCH] return o zero call costs --- cmd/stress/cgr-raterstress/cgr-raterstress.go | 1 + sessionmanager/fssessionmanager.go | 2 +- sessionmanager/postgreslogger.go | 4 ++++ sessionmanager/sessiondelegate.go | 3 +++ 4 files changed, 9 insertions(+), 1 deletion(-) 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()