Skip to content
GitLab
    • Explore Projects Groups Snippets
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • Q quickfix
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 48
    • Issues 48
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 25
    • Merge requests 25
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • quickfixgo
  • quickfix
  • Merge requests
  • !220

fixes bug for 24 hour session

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Administrator requested to merge github/fork/cbusbey/24hour_session_time into master 8 years ago
  • Overview 1
  • Commits 1
  • Pipelines 0
  • Changes 3

Created by: cbusbey

fixes #218 (closed)

Compare
  • master (base)

and
  • latest version
    0a6d981f
    1 commit, 2 years ago

3 files
+ 53
- 4

    Preferences

    File browser
    Compare changes
inte‎rnal‎
time_r‎ange.go‎ +4 -3
time_rang‎e_test.go‎ +42 -0
session_‎state.go‎ +7 -1
internal/time_range.go
+ 4
- 3
  • View file @ 0a6d981f

  • Edit in single-file editor

  • Open in Web IDE


@@ -73,10 +73,11 @@ func (r *TimeRange) isInTimeRange(t time.Time) bool {
@@ -73,10 +73,11 @@ func (r *TimeRange) isInTimeRange(t time.Time) bool {
t = t.In(r.loc)
t = t.In(r.loc)
ts := NewTimeOfDay(t.Clock()).d
ts := NewTimeOfDay(t.Clock()).d
if r.startTime.d > r.endTime.d {
if r.startTime.d < r.endTime.d {
return !(r.endTime.d < ts && ts < r.startTime.d)
return r.startTime.d <= ts && ts <= r.endTime.d
}
}
return r.startTime.d <= ts && ts <= r.endTime.d
 
return !(r.endTime.d < ts && ts < r.startTime.d)
}
}
func (r *TimeRange) isInWeekRange(t time.Time) bool {
func (r *TimeRange) isInWeekRange(t time.Time) bool {
internal/time_range_test.go
+ 42
- 0
  • View file @ 0a6d981f

  • Edit in single-file editor

  • Open in Web IDE


@@ -126,6 +126,12 @@ func TestTimeRangeIsInRange(t *testing.T) {
@@ -126,6 +126,12 @@ func TestTimeRangeIsInRange(t *testing.T) {
now = time.Date(2016, time.August, 10, 3, 1, 0, 0, time.UTC)
now = time.Date(2016, time.August, 10, 3, 1, 0, 0, time.UTC)
assert.True(t, NewTimeRangeInLocation(start, end, loc).IsInRange(now))
assert.True(t, NewTimeRangeInLocation(start, end, loc).IsInRange(now))
 
 
start = NewTimeOfDay(0, 0, 0)
 
end = NewTimeOfDay(0, 0, 0)
 
now = time.Date(2016, time.August, 10, 18, 0, 0, 0, time.UTC)
 
assert.True(t, NewUTCTimeRange(start, end).IsInRange(now))
 
}
}
func TestTimeRangeIsInRangeWithDay(t *testing.T) {
func TestTimeRangeIsInRangeWithDay(t *testing.T) {
@@ -299,6 +305,42 @@ func TestTimeRangeIsInSameRange(t *testing.T) {
@@ -299,6 +305,42 @@ func TestTimeRangeIsInSameRange(t *testing.T) {
var tr *TimeRange
var tr *TimeRange
assert.True(t, tr.IsInSameRange(time1, time2), "always in same range if time range is nil")
assert.True(t, tr.IsInSameRange(time1, time2), "always in same range if time range is nil")
 
 
start = NewTimeOfDay(0, 0, 0)
 
end = NewTimeOfDay(0, 0, 0)
 
time1 = time.Date(2016, time.August, 10, 0, 0, 0, 0, time.UTC)
 
time2 = time.Date(2016, time.August, 11, 0, 0, 0, 0, time.UTC)
 
assert.False(t, NewTimeRangeInLocation(start, end, loc).IsInSameRange(time1, time2))
 
assert.False(t, NewTimeRangeInLocation(start, end, loc).IsInSameRange(time2, time1))
 
 
time1 = time.Date(2016, time.August, 10, 23, 59, 59, 0, time.UTC)
 
time2 = time.Date(2016, time.August, 11, 0, 0, 0, 0, time.UTC)
 
assert.False(t, NewUTCTimeRange(start, end).IsInSameRange(time1, time2))
 
assert.False(t, NewUTCTimeRange(start, end).IsInSameRange(time2, time1))
 
 
start = NewTimeOfDay(1, 49, 0)
 
end = NewTimeOfDay(1, 49, 0)
 
time1 = time.Date(2016, time.August, 16, 1, 48, 21, 0, time.UTC)
 
time2 = time.Date(2016, time.August, 16, 1, 49, 02, 0, time.UTC)
 
 
assert.False(t, NewUTCTimeRange(start, end).IsInSameRange(time1, time2))
 
assert.False(t, NewUTCTimeRange(start, end).IsInSameRange(time2, time1))
 
 
start = NewTimeOfDay(1, 49, 0)
 
end = NewTimeOfDay(1, 49, 0)
 
time1 = time.Date(2016, time.August, 16, 13, 48, 21, 0, time.UTC)
 
time2 = time.Date(2016, time.August, 16, 13, 49, 02, 0, time.UTC)
 
 
assert.True(t, NewUTCTimeRange(start, end).IsInSameRange(time1, time2))
 
assert.True(t, NewUTCTimeRange(start, end).IsInSameRange(time2, time1))
 
 
start = NewTimeOfDay(13, 49, 0)
 
end = NewTimeOfDay(13, 49, 0)
 
time1 = time.Date(2016, time.August, 16, 13, 48, 21, 0, time.UTC)
 
time2 = time.Date(2016, time.August, 16, 13, 49, 02, 0, time.UTC)
 
 
assert.False(t, NewUTCTimeRange(start, end).IsInSameRange(time1, time2))
 
assert.False(t, NewUTCTimeRange(start, end).IsInSameRange(time2, time1))
}
}
func TestTimeRangeIsInSameRangeWithDay(t *testing.T) {
func TestTimeRangeIsInSameRangeWithDay(t *testing.T) {
session_state.go
+ 7
- 1
  • View file @ 0a6d981f

  • Edit in single-file editor

  • Open in Web IDE


@@ -23,7 +23,7 @@ func (sm *stateMachine) Start(s *session) {
@@ -23,7 +23,7 @@ func (sm *stateMachine) Start(s *session) {
func (sm *stateMachine) Connect(session *session) {
func (sm *stateMachine) Connect(session *session) {
if !sm.IsSessionTime() {
if !sm.IsSessionTime() {
session.log.OnEvent("Not in session")
session.log.OnEvent("Connection outside of session time")
sm.handleDisconnectState(session)
sm.handleDisconnectState(session)
return
return
}
}
@@ -101,6 +101,10 @@ func (sm *stateMachine) Timeout(session *session, e internal.Event) {
@@ -101,6 +101,10 @@ func (sm *stateMachine) Timeout(session *session, e internal.Event) {
func (sm *stateMachine) CheckSessionTime(session *session, now time.Time) {
func (sm *stateMachine) CheckSessionTime(session *session, now time.Time) {
if !session.SessionTime.IsInRange(now) {
if !session.SessionTime.IsInRange(now) {
 
if sm.IsSessionTime() {
 
session.log.OnEvent("Not in session")
 
}
 
sm.State.ShutdownNow(session)
sm.State.ShutdownNow(session)
sm.setState(session, notSessionTime{})
sm.setState(session, notSessionTime{})
@@ -111,11 +115,13 @@ func (sm *stateMachine) CheckSessionTime(session *session, now time.Time) {
@@ -111,11 +115,13 @@ func (sm *stateMachine) CheckSessionTime(session *session, now time.Time) {
}
}
if !sm.IsSessionTime() {
if !sm.IsSessionTime() {
 
session.log.OnEvent("In session")
sm.notifyInSessionTime()
sm.notifyInSessionTime()
sm.setState(session, latentState{})
sm.setState(session, latentState{})
}
}
if !session.SessionTime.IsInSameRange(session.store.CreationTime(), now) {
if !session.SessionTime.IsInSameRange(session.store.CreationTime(), now) {
 
session.log.OnEvent("Session reset")
sm.State.ShutdownNow(session)
sm.State.ShutdownNow(session)
if err := session.dropAndReset(); err != nil {
if err := session.dropAndReset(); err != nil {
session.logError(err)
session.logError(err)
0 Assignees
None
Assign to
0 Reviewers
None
Request review from
Labels
1
Bug
1
Bug
    Assign labels
  • Manage project labels

Milestone
v0.5.0
v0.5.0
None
Time tracking
No estimate or time spent
Lock merge request
Unlocked
1
1 participant
Administrator
Reference: quickfixgo/quickfix!220
Source branch: github/fork/cbusbey/24hour_session_time

Menu

Explore Projects Groups Snippets