summaryrefslogtreecommitdiffstats
path: root/core/payload.go
diff options
context:
space:
mode:
authorbt <bt@rctt.net>2026-04-10 19:31:31 +0200
committerbt <bt@rctt.net>2026-04-18 22:33:20 +0200
commite9aebac1a2a4732763c2f7e4428a23983d4eb6a3 (patch)
treeb66ea36939ea75360ed6c554cf352348d19786bb /core/payload.go
parentf66e28aa88a5f4176934001fa9e4967ddccde4a9 (diff)
downloadsolec-e9aebac1a2a4732763c2f7e4428a23983d4eb6a3.tar.gz
solec-e9aebac1a2a4732763c2f7e4428a23983d4eb6a3.zip
[common] Exchange messages between servers
Diffstat (limited to 'core/payload.go')
-rw-r--r--core/payload.go34
1 files changed, 28 insertions, 6 deletions
diff --git a/core/payload.go b/core/payload.go
index b8e8b9f..e943647 100644
--- a/core/payload.go
+++ b/core/payload.go
@@ -36,11 +36,12 @@ func DecodeError(buf io.Reader) (Error, error) {
type Handshake struct {
Major, Minor uint8
+ ConnType ConnType
}
func (h Handshake) Wrap() (PayloadType, []any) {
return PayloadHandshake, []any{
- h.Major, h.Minor,
+ h.Major, h.Minor, h.ConnType,
}
}
@@ -57,22 +58,27 @@ func DecodeHandshake(buf io.Reader) (Handshake, error) {
return h, err
}
+ err = decodeNumeric(buf, &h.ConnType)
+ if err != nil {
+ return h, err
+ }
+
return h, nil
}
-type Auth struct {
+type UserAuth struct {
Name string
Pass string
}
-func (a Auth) Wrap() (PayloadType, []any) {
- return PayloadAuth, []any{
+func (a UserAuth) Wrap() (PayloadType, []any) {
+ return PayloadUserAuth, []any{
a.Name, a.Pass,
}
}
-func DecodeAuth(buf io.Reader) (Auth, error) {
- var a Auth
+func DecodeUserAuth(buf io.Reader) (UserAuth, error) {
+ var a UserAuth
err := decodeString(buf, &a.Name)
if err != nil {
return a, err
@@ -86,6 +92,22 @@ func DecodeAuth(buf io.Reader) (Auth, error) {
return a, nil
}
+type ServerAuth struct {
+ Name string
+}
+
+func (a ServerAuth) Wrap() (PayloadType, []any) {
+ return PayloadServerAuth, []any{
+ a.Name,
+ }
+}
+
+func DecodeServerAuth(buf io.Reader) (ServerAuth, error) {
+ var a ServerAuth
+ err := decodeString(buf, &a.Name)
+ return a, err
+}
+
type Message struct {
Source string
Target string