aboutsummaryrefslogtreecommitdiff
Commit message (Expand)AuthorAgeFilesLines
...
* {config,main}.go: Enhance configuration file processingRunxi Yu2024-10-052-8/+124
* bench.go: ReformatRunxi Yu2024-10-051-2/+2
* bench.go: Separate connection stage from selection stagev0.1.3Runxi Yu2024-10-051-2/+10
* bench.go: More realistic benchmark for one course onlyRunxi Yu2024-10-051-9/+18
* Makefile: BSD Make also supports wildcards in targetsRunxi Yu2024-10-051-1/+1
* Makefile: Add sem.go to source file listRunxi Yu2024-10-051-1/+1
* {config,ws}.go, cca.scfg.example: Add perf.course_update_intervalRunxi Yu2024-10-053-6/+14
* {courses,wsm}.go: Use in-memory structure to fetch cgroup, not SQLRunxi Yu2024-10-052-26/+18
* {config,ws}.go, cca.scfg.example: Remove chanPool/SendQRunxi Yu2024-10-053-59/+0
* ws.go: &usemT{} //exhaustruct:ignoreRunxi Yu2024-10-051-1/+1
* ws.go: Check error of populateUserCourseGroupsRunxi Yu2024-10-051-1/+4
* wsm.go: Omit comparison to bool constantRunxi Yu2024-10-051-1/+1
* wsm.go: Report error when course doesn't existRunxi Yu2024-10-051-0/+8
* {courses,sem,ws,wsm}.go: Second step towards an efficient state propagatorRunxi Yu2024-10-054-16/+24
* {courses,sem,ws}.go: First step towards an efficient state propagatorRunxi Yu2024-10-053-6/+110
* go.sum: go mod tidy (removing old checksums)Runxi Yu2024-10-051-6/+0
* ws.go: Index chanPool by userID, rather than session cookieRunxi Yu2024-10-051-5/+2
* {main,utils,ws}.go: Initialize cancelPool directly tooRunxi Yu2024-10-053-25/+1
* Bump dependenciesRunxi Yu2024-10-052-3/+9
* {main,ws}.go: Initialize chanPool directly instead of setupChanPool()Runxi Yu2024-10-052-22/+1
* courses.go: ReformatRunxi Yu2024-10-051-1/+1
* {courses,wsm}.go: Add getCourseByIDRunxi Yu2024-10-052-10/+8
* {courses,wsm}.go: Add (*courseT).decrementSelectedAndPropagateRunxi Yu2024-10-052-24/+15
* {courses,ws,wsm}.go: Update userCourseGroups during choose/unchooseRunxi Yu2024-10-053-12/+51
* config.go: Emit warning when fake auth is enabledRunxi Yu2024-10-051-0/+2
* bench.go: Don't close request bodyRunxi Yu2024-10-051-6/+0
* {courses,ws}.go: Populate userCourseGroups in a separate functionRunxi Yu2024-10-052-32/+35
* {courses,ws}.go: Populate userCourseGroups for each connectionRunxi Yu2024-10-042-5/+63
* courses.go, schema.sql: Validate course{Type,Group} in server, not SQLRunxi Yu2024-10-044-30/+45
* *.sql: New schema with ctypes and cgroupsRunxi Yu2024-10-043-18/+39
* drop.sql: New SQL script to drop all tablesRunxi Yu2024-10-041-0/+3
* auth.go: Improve display of OAuth 2.0 errorsRunxi Yu2024-10-041-4/+17
* config.go: Return errors instead of panicing on auth.fake issuesRunxi Yu2024-10-041-3/+11
* {config,main}.go, cca.scfg.example: Settable static pathRunxi Yu2024-10-043-13/+8
* staff.html: Initial staff pageRunxi Yu2024-10-041-0/+149
* student.html, *.js: {main->student}.jsRunxi Yu2024-10-042-1/+1
* student.html: {{ .user.Name }} instead of Home in titleRunxi Yu2024-10-041-1/+1
* bench.go, main.js: Use an HTTPS URLRunxi Yu2024-10-042-2/+2
* {config,main}.go, cca.scfg.example: Support TLSRunxi Yu2024-10-043-8/+65
* main.go, cca.scfg.example: Remove FastCGI supportRunxi Yu2024-10-042-9/+5
* bench.go: Use more realistic connection numbers for nowRunxi Yu2024-10-041-4/+4
* postgres_shell.sh: Delete as unnecessaryRunxi Yu2024-10-041-3/+0
* bench: Add a bit more stress (30000 connections, 30s wait)v0.1.2Runxi Yu2024-10-031-2/+2
* README.md, iadocs/{cover*, crita*}: Update documentationRunxi Yu2024-10-033-39/+67
* cca.scfg.example: Listen on 127.0.0.1:5555 only by defaultRunxi Yu2024-10-031-3/+3
* style.css: Update color schemeRunxi Yu2024-10-031-22/+20
* {config,ws}.go, cca.scfg.example: Allow same-user fake authRunxi Yu2024-10-033-15/+30
* ws.go: Don't log chanPool changesRunxi Yu2024-10-031-2/+0
* schema.sql: users.expr should be BIGINTRunxi Yu2024-10-031-1/+1
* {ws,wsm}.go: Handle context cancellationsRunxi Yu2024-10-032-5/+94