summaryrefslogtreecommitdiff
path: root/ws.go (follow)
Commit message (Expand)AuthorAgeFilesLines
* ws.go: Fix logic error when reaffirming a course choiceRunxi Yu5 days1-2/+2
* ws.go: protocolError instead of R on unexpected database errorsRunxi Yu5 days1-23/+7
* index.go, ws.go: Fix race condition surrounding coursesRunxi Yu6 days1-1/+5
* ws.go: Decrement course.Selected counter on commit failuresRunxi Yu6 days1-0/+6
* ws.go: Reaffirm course choice when duplicate is requestedRunxi Yu6 days1-5/+13
* ws.go: propagateCouldFail -> propagateIgnoreFailuresRunxi Yu6 days1-2/+2
* ws.go, schema.sql: Enforce uniqueness of course choicesRunxi Yu6 days1-42/+64
* ws.go, *.sql: Add course choices to the databaseRunxi Yu6 days1-1/+33
* ws.go: propagate -> propagateCouldFailRunxi Yu6 days1-3/+8
* ws.go: propagate course number updates in another goroutineRunxi Yu6 days1-1/+1
* ws.go: Separate c.Write calls into writeText()Runxi Yu7 days1-25/+17
* ws.go, utils.go: Document some synchronization design choicesRunxi Yu7 days1-1/+18
* *: Change license to AGPL-3.0-or-laterRunxi Yu7 days1-21/+11
* {auth,index,ws}.go, schema.sql: Move session cookie into the user tableRunxi Yu7 days1-8/+8
* index.html, main.js, ws.go: Enhance course selection rejection messageRunxi Yu7 days1-1/+1
* ws.go, config.go, config.scfg.example: Attempt to fix deadlockRunxi Yu7 days1-4/+7
* ws.go: Attempt to propagate messagesRunxi Yu7 days1-1/+11
* ws.go: Implement course choice limitsRunxi Yu7 days1-0/+31
* ws.go: protocolError is now its own functionRunxi Yu7 days1-28/+15
* .ws.go: Close websocket on protocol errorsRunxi Yu7 days1-0/+12
* ws.go: Stub for commands "Y" and "N", currently only counting argumentsRunxi Yu7 days1-0/+14
* ws.go: chanPoolLock should be locked during setupChanPoolRunxi Yu10 days1-0/+2
* ws.go: chanPool should be a map tooRunxi Yu10 days1-19/+8
* *.go, cca.scfg.example: Expose performance optionsRunxi Yu11 days1-3/+3
* *.go: Wrap errorsRunxi Yu11 days1-3/+4
* {auth,index,ws}.go: Add contexts for database callsRunxi Yu11 days1-1/+1
* ws.go: ReformatRunxi Yu11 days1-1/+1
* ws.go: Document chanPoolLock's purposeRunxi Yu12 days1-0/+9
* *.go: LintingRunxi Yu13 days1-14/+20
* {index,utils,ws}.go: Handle write errorsRunxi Yu13 days1-8/+28
* {utils,auth,index,ws}.go: Handle errors in random number generationRunxi Yu13 days1-1/+1
* ws.go: Log userid and sessionid with channel pointerRunxi Yu13 days1-3/+4
* ws.go: chanPoolLock should be a RWMutex rather than a pointer to oneRunxi Yu14 days1-1/+1
* ws.go: Add missing returns after authentication failureRunxi Yu14 days1-0/+2
* ws.go: Initial attempt to manage chanPoolRunxi Yu14 days1-13/+22
* auth.go, ws.go: Update commentsRunxi Yu14 days1-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
* ws.go: Very basic channelsRunxi Yu2024-09-131-5/+17
* ws.go: Clarrify handleWs's purposeRunxi Yu2024-09-121-1/+2
* ws.go: Move the login logic to handleWs from handleConnRunxi Yu2024-09-121-19/+38
* ws.go: gofmtRunxi Yu2024-09-121-3/+2
* ws.go: Use channels to handle incoming messagesRunxi Yu2024-09-121-11/+30
* ws.go: Document the message formatRunxi Yu2024-09-121-0/+25
* ws.go: TODO: Select c.Read and a broadcast channelRunxi Yu2024-09-111-0/+1
* *.go: Shorter line lengthsRunxi Yu2024-09-091-3/+15
* *.go: Add commentsRunxi Yu2024-09-091-1/+44
* ws.go: splitMsg should return strings instead of bytesRunxi Yu2024-09-091-7/+9
* ws.go: Split IRC-style messagesRunxi Yu2024-09-091-3/+27
* ws.go: gofmtRunxi Yu2024-09-091-1/+1