summaryrefslogtreecommitdiff
path: root/ws.go (follow)
Commit message (Expand)AuthorAgeFilesLines
* {config,ws}.go, cca.scfg.example: Allow same-user fake authRunxi Yu13 days1-7/+15
* ws.go: Don't log chanPool changesRunxi Yu13 days1-2/+0
* {ws,wsm}.go: Handle context cancellationsRunxi Yu13 days1-5/+74
* ws.go: Fix memory leak introduced in last commitRunxi Yu13 days1-0/+7
* ws.go: Fix first race condition in cancelPool managementRunxi Yu13 days1-13/+2
* {main,ws,wsm}.go: Attempt to cancel old sessionsRunxi Yu14 days1-8/+66
* ws.go: Update comment on disallowed charactersRunxi Yu2024-10-021-5/+4
* {auth,utils,ws}.go: randomBytes -> randomStringRunxi Yu2024-10-021-1/+1
* {config,ws}.go, cca.scfg.example: Add fake auth supportRunxi Yu2024-10-021-16/+61
* {ws,wsm}.go: Split message handlers into their own functionsRunxi Yu2024-10-011-124/+5
* {auth,ws}.go: Remove unnecessary TODOsRunxi Yu2024-10-011-14/+2
* ws.go: Allow deselecting coursesRunxi Yu2024-10-011-0/+34
* ws.go: Fix logic error when reaffirming a course choiceRunxi Yu2024-10-011-2/+2
* ws.go: protocolError instead of R on unexpected database errorsRunxi Yu2024-10-011-23/+7
* index.go, ws.go: Fix race condition surrounding coursesRunxi Yu2024-10-011-1/+5
* ws.go: Decrement course.Selected counter on commit failuresRunxi Yu2024-10-011-0/+6
* ws.go: Reaffirm course choice when duplicate is requestedRunxi Yu2024-10-011-5/+13
* ws.go: propagateCouldFail -> propagateIgnoreFailuresRunxi Yu2024-10-011-2/+2
* ws.go, schema.sql: Enforce uniqueness of course choicesRunxi Yu2024-10-011-42/+64
* ws.go, *.sql: Add course choices to the databaseRunxi Yu2024-10-011-1/+33
* ws.go: propagate -> propagateCouldFailRunxi Yu2024-10-011-3/+8
* ws.go: propagate course number updates in another goroutineRunxi Yu2024-10-011-1/+1
* ws.go: Separate c.Write calls into writeText()Runxi Yu2024-09-301-25/+17
* ws.go, utils.go: Document some synchronization design choicesRunxi Yu2024-09-301-1/+18
* *: Change license to AGPL-3.0-or-laterRunxi Yu2024-09-301-21/+11
* {auth,index,ws}.go, schema.sql: Move session cookie into the user tableRunxi Yu2024-09-301-8/+8
* index.html, main.js, ws.go: Enhance course selection rejection messageRunxi Yu2024-09-301-1/+1
* ws.go, config.go, config.scfg.example: Attempt to fix deadlockRunxi Yu2024-09-291-4/+7
* ws.go: Attempt to propagate messagesRunxi Yu2024-09-291-1/+11
* ws.go: Implement course choice limitsRunxi Yu2024-09-291-0/+31
* ws.go: protocolError is now its own functionRunxi Yu2024-09-291-28/+15
* .ws.go: Close websocket on protocol errorsRunxi Yu2024-09-291-0/+12
* ws.go: Stub for commands "Y" and "N", currently only counting argumentsRunxi Yu2024-09-291-0/+14
* ws.go: chanPoolLock should be locked during setupChanPoolRunxi Yu2024-09-271-0/+2
* ws.go: chanPool should be a map tooRunxi Yu2024-09-271-19/+8
* *.go, cca.scfg.example: Expose performance optionsRunxi Yu2024-09-261-3/+3
* *.go: Wrap errorsRunxi Yu2024-09-261-3/+4
* {auth,index,ws}.go: Add contexts for database callsRunxi Yu2024-09-261-1/+1
* ws.go: ReformatRunxi Yu2024-09-261-1/+1
* ws.go: Document chanPoolLock's purposeRunxi Yu2024-09-241-0/+9
* *.go: LintingRunxi Yu2024-09-241-14/+20
* {index,utils,ws}.go: Handle write errorsRunxi Yu2024-09-241-8/+28
* {utils,auth,index,ws}.go: Handle errors in random number generationRunxi Yu2024-09-241-1/+1
* ws.go: Log userid and sessionid with channel pointerRunxi Yu2024-09-241-3/+4
* ws.go: chanPoolLock should be a RWMutex rather than a pointer to oneRunxi Yu2024-09-231-1/+1
* ws.go: Add missing returns after authentication failureRunxi Yu2024-09-231-0/+2
* ws.go: Initial attempt to manage chanPoolRunxi Yu2024-09-231-13/+22
* auth.go, ws.go: Update commentsRunxi Yu2024-09-231-5/+5
* ws.go, main.js, index.html: Better WS documentation and structureRunxi Yu2024-09-161-19/+55
* ws.go: Fix previous commit's type inconsistenciesRunxi Yu2024-09-131-4/+5