Commit Graph

1455 Commits

Author SHA1 Message Date
Houmgaor
89d97a15b6 ci: remove redundant go.yml workflow
go-improved.yml is a superset (tests + build). Also fix its path
trigger to reference itself and include main.go.
2026-02-17 00:32:11 +01:00
Houmgaor
7d54dd0ee6 ci: add Docker CD workflow to push images to GHCR
Multi-stage Dockerfile for smaller runtime image, CD workflow triggers
on main branch pushes and version tags, docker-compose defaults to the
prebuilt GHCR image.
2026-02-17 00:28:37 +01:00
Houmgaor
220de4cf3b doc: replace Codecov badge with Go version badge 2026-02-17 00:22:22 +01:00
Houmgaor
6eb9ed66cc doc: add Codecov coverage badge to README 2026-02-17 00:13:26 +01:00
Houmgaor
5724a605a2 doc: add CI, CodeQL, and release badges to README 2026-02-17 00:12:02 +01:00
Houmgaor
0bd724f74e test: backport remaining test files from v9.2.x-stable
Import 18 network packet test files and 5 server infrastructure test
files, adapted for main branch APIs: fix config import alias (_config),
remove non-existent DevMode field, use global handlerTable instead of
per-server handlers map, and correct validateToken mock expectations
to include both token and tokenID arguments.

Adds go-sqlmock dependency for database mocking in signserver tests.
2026-02-17 00:09:41 +01:00
Houmgaor
4c3810df7e fix: Docker DB init fails due to pg_restore error on existing database (#129)
pg_restore would fail because the dump contains CREATE DATABASE but
POSTGRES_DB already creates it. With set -e this aborted the script
before update/patch schemas could run.

- Allow pg_restore to continue past non-fatal errors
- Add --no-owner --no-acl to avoid permission mismatches
- Force LF line endings for .sh files via .gitattributes
- Quote file path variables in schema loops
2026-02-16 22:53:09 +01:00
Houmgaor
be4cd2001c test: import 38 channelserver test files from v9.2.x-stable
Port test files from v9.2.x-stable branch to increase channelserver
coverage from 13.8% to 25.6% (556 tests passing).

Adapted all files to main's struct definitions: config import alias,
Airou/CatDefinition rename, packet field mismatches, Raviente struct
differences, and maxPlayers defaults. Removed tests referencing
production code not yet on main (Player, FestivalColour, etc.).
Excluded handlers_register_test.go (Raviente completely redesigned).
2026-02-16 22:19:44 +01:00
Houmgaor
b1c8b2848f security: fix CodeQL warnings for integer overflow and workflow permissions
- handlers_tower.go: add bounds checks before int-to-int16 and int-to-uint16
  conversions to prevent overflow/wraparound (CodeQL #7, #8)
- go-improved.yml, go.yml: add top-level `permissions: contents: read` to
  restrict workflow token scope (CodeQL #15, #16, #17)
2026-02-16 19:14:14 +01:00
Houmgaor
5e0d578670 security: bump golang.org/x/crypto to v0.48.0
Fixes two moderate GitHub security alerts:
- CVE: ssh allows unbounded memory consumption via GSSAPI OIDs
- CVE: ssh/agent panic on malformed constraint (out of bounds read)

Also bumps transitive deps: x/net v0.49.0, x/sys v0.41.0, x/text v0.34.0.
2026-02-16 19:10:18 +01:00
Houmgaor
10e09630a6 fix: send failure ack for missing quest/scenario files instead of crashing client
When a quest or scenario file was missing, handleMsgSysGetFile sent nil
data via doAckBufSucceed, which crashed the game client. Now sends
doAckBufFail so the client can handle the missing file gracefully.

Closes #109
2026-02-16 18:35:44 +01:00
Houmgaor
a7b0deaa42 fix: resolve data race in token.RNG global
Wrap *rand.Rand in a mutex-protected SafeRand type to make the global
RNG safe for concurrent use across goroutines. The previous bare
*rand.Rand caused data races detected by go test -race.
2026-02-16 18:19:18 +01:00
Houmgaor
9b69564c49 fix: prevent server crash on unsupported Shift-JIS characters (#116)
UTF8ToSJIS panicked when encountering characters outside the Shift-JIS
range (emoji, Lenny faces, cuneiform, etc.), crashing the server when
such characters were sent via the Discord relay channel.

Replace the panic with graceful filtering that drops unmappable runes
and preserves valid content. Also fix ToNGWord index-out-of-range panic
on empty encoder output.

Closes #116
2026-02-16 18:16:42 +01:00
Houmgaor
7689bc2ee9 Merge remote-tracking branch 'upstream/main' 2026-02-16 12:31:57 +01:00
Houmgaor
4028de27ce Merge pull request #153 from Mezeporta/doc/update-readme
doc: rewrite README, add CONTRIBUTING.md and SECURITY.md
2026-02-16 12:27:19 +01:00
Houmgaor
33d42362c0 doc: rewrite README, add CONTRIBUTING.md and SECURITY.md
Rewrite README with comprehensive documentation covering architecture,
configuration, features, troubleshooting, and development. Update all
links to Mezeporta/Erupe. Add contributing guidelines and security
policy (supported: main, stable/v9.2.x).
2026-02-16 12:25:13 +01:00
Houmgaor
9c0a65069d doc: update README for upstream transition
Remove fork language and point all links to Mezeporta/Erupe.
Update stable branch reference to stable/v9.2.x.
2026-02-16 12:20:44 +01:00
Houmgaor
9761f84e05 chore: add logs, binaries, and env to .gitignore 2026-02-16 11:32:47 +01:00
Houmgaor
7dfc3e6049 Merge upstream/main into main
Resolve conflict in handlers_stage.go: keep lock-free packet
building pattern (copy session list, release lock, then build)
over upstream's in-lock QueueSendMHF approach.

Fix test compilation: remove objectIDs field references after
upstream removed it from Server struct.

Resync vendor directory with updated go.mod dependencies.
2026-02-16 11:31:42 +01:00
wish
e9bd0b2ddb Merge pull request #151 from Mezeporta/test/aobp v9.3.0-beta 2025-12-17 09:27:56 +11:00
Houmgaor
cb2eeb6ae4 Merge remote-tracking branch 'upstream/main'
# Conflicts:
#	docker/README.md
2025-11-09 18:11:18 +01:00
Houmgaor
2b94eb196d doc: completes history. 2025-11-09 17:02:18 +01:00
Houmgaor
e31a37e0f9 chore: upgrading minimal Go from 1.23 to 1.25. 2025-11-09 16:51:02 +01:00
Houmgaor
68b9cf48d1 doc: expamding documentation. 2025-11-09 16:47:18 +01:00
Houmgaor
42fa7a34b6 Major fixes: testing, db, warehouse, etc...
See the changelog for details.
2025-11-09 11:59:04 +01:00
Houmgaor
0fac429fac fix(transmog): fix transmog issues.
Untested commit.
2025-11-09 11:57:28 +01:00
Houmgaor
36065ce273 fix(plate data): was not save, nor transmog data. 2025-11-01 18:14:30 +01:00
Houmgaor
3da54fade8 chore: adds remaining logging for Hunter Navi and Plate data. 2025-11-01 17:14:05 +01:00
Houmgaor
afc554f1ec fix(save): avoid double-save.
feat(logging): more complete logging data.
2025-11-01 00:37:59 +01:00
Houmgaor
18592c5ded fix(handlers): trying to fix issues with incomplete saves. 2025-10-31 13:10:17 +01:00
Houmgaor
2d3edcfd10 test: session lifecycle tests to reveal issues with sessions configuration. 2025-10-31 12:59:32 +01:00
wish
5f265ee291 Merge pull request #144 from gab3-dev/patch-1
Fix typos in Docker README
2025-10-29 00:00:32 +11:00
Gabriel Henrique
2a297e693f Fix typos in Docker README
"soruce" to "source"
2025-10-28 09:33:52 -03:00
Houmgaor
a6cf550fdb tests(common): comprehensive code coverage for common 2025-10-27 12:59:22 +01:00
Houmgaor
d3fd0c72b0 tests: extra tests for Dicord bit and nullcomp. 2025-10-27 12:33:33 +01:00
Houmgaor
127d3af167 tests(network): adds tests for network features (except mhfpacket). 2025-10-27 12:18:41 +01:00
Houmgaor
25d218fbcd tests(integration): more complete tests with integration of a test database, 2025-10-27 11:58:12 +01:00
Houmgaor
e1a461e892 fix(stage): fix deadlock that was preventing stage change. 2025-10-27 01:13:43 +01:00
Houmgaor
5e0c5ea75b test(config): comprehensive testing of config.go 2025-10-21 01:12:58 +02:00
Houmgaor
5aa17a749f test(api): comprehensive test suite for server/api. 2025-10-21 01:09:37 +02:00
Houmgaor
73e874f43f fix: array bound crashes on clans. 2025-10-21 00:21:50 +02:00
Houmgaor
060635e422 fix(stage): fix race condition with stages. 2025-10-21 00:00:08 +02:00
Houmgaor
1c32be98cc fix(session): race condition. 2025-10-19 23:49:23 +02:00
Houmgaor
4908731773 fix(ci): remove linting, fix not passing test. 2025-10-19 23:39:23 +02:00
Houmgaor
c55f23442b fix(lint): fixing go static check failing. 2025-10-19 22:52:58 +02:00
Houmgaor
fc6e479df9 fix(lint): fixing more complex formatters problems. 2025-10-19 22:46:21 +02:00
Houmgaor
1398383a8d fix(lint): automated linting, with simple formatter. 2025-10-19 22:43:05 +02:00
Houmgaor
f79e05c0c9 feat(go): upgrade from go 1.21 to 1.23
BREAKING CHANGE: will not work properly with Go 1.21.
2025-10-19 22:24:48 +02:00
Houmgaor
cde7995132 feat(ci): trying a new CI pipeline. 2025-10-19 22:00:14 +02:00
Houmgaor
3cb77bd669 tests: more tests for the guild system. 2025-10-19 21:52:14 +02:00