Commit ef30c50f authored by Andrei Mihu's avatar Andrei Mihu
Browse files

Errors from runtime before hooks no longer close the session.

parent 98cef2ce
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr

### Changed
- Update devconsole lodash (4.17.13) and lodash.template (4.5.0) dependencies.
- Errors from runtime before hooks no longer close the session.

### Fixed
- Handle updates during leaderboard schedule reset window.
+3 −2
Original line number Diff line number Diff line
@@ -126,13 +126,14 @@ func (p *Pipeline) ProcessRequest(logger *zap.Logger, session Session, envelope
			hookResult, hookErr := fn(session.Context(), logger, session.UserID().String(), session.Username(), session.Expiry(), session.ID().String(), session.ClientIP(), session.ClientPort(), envelope)

			if hookErr != nil {
				// Errors from before hooks do not close the session.
				session.Send(false, 0, &rtapi.Envelope{Cid: envelope.Cid, Message: &rtapi.Envelope_Error{Error: &rtapi.Error{
					Code:    int32(rtapi.Error_RUNTIME_FUNCTION_EXCEPTION),
					Message: hookErr.Error(),
				}}})
				return false
				return true
			} else if hookResult == nil {
				// if result is nil, requested resource is disabled.
				// if result is nil, requested resource is disabled. Sessions calling disabled resources will be close.
				logger.Warn("Intercepted a disabled resource.", zap.String("resource", messageName))
				session.Send(false, 0, &rtapi.Envelope{Cid: envelope.Cid, Message: &rtapi.Envelope_Error{Error: &rtapi.Error{
					Code:    int32(rtapi.Error_UNRECOGNIZED_PAYLOAD),