Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 6 additions & 9 deletions cmd/fmsgd/host.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,10 @@ const (
InboxDirName = "in"
OutboxDirName = "out"

// Response codes (SPEC §9). 2 was "unsupported version"; unsupported
// versions now TERMINATE without responding (SPEC §10.3/§10.5), so it is
// never sent and is left unassigned to keep the numbering stable.
RejectCodeInvalid uint8 = 1
RejectCodeUnsupportedVersion uint8 = 2
RejectCodeUndisclosed uint8 = 3
RejectCodeTooBig uint8 = 4
RejectCodeInsufficentResources uint8 = 5
Expand Down Expand Up @@ -64,8 +66,6 @@ func responseCodeName(code uint8) string {
switch code {
case RejectCodeInvalid:
return "invalid"
case RejectCodeUnsupportedVersion:
return "unsupported version"
case RejectCodeUndisclosed:
return "undisclosed"
case RejectCodeTooBig:
Expand Down Expand Up @@ -693,15 +693,12 @@ func readVersionOrChallenge(c net.Conn, r *bufio.Reader, h *FMsgHeader) (bool, e
if challengeVersion == 1 {
return true, handleChallenge(c, r)
}
if err := sendCode(c, RejectCodeUnsupportedVersion); err != nil {
log.Printf("WARN: failed to send unsupported version response: %s", err)
}
// TERMINATE without responding (SPEC §10.3/§10.5): an unsupported
// version is one we do not know how to respond in.
return false, fmt.Errorf("unsupported challenge version: %d", challengeVersion)
}
if v != 1 {
if err := sendCode(c, RejectCodeUnsupportedVersion); err != nil {
log.Printf("WARN: failed to send unsupported version response: %s", err)
}
// TERMINATE without responding (SPEC §10.3/§10.5).
return false, fmt.Errorf("unsupported message version: %d", v)
}
h.Version = v
Expand Down
1 change: 0 additions & 1 deletion cmd/fmsgd/host_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,6 @@ func TestResponseCodeName(t *testing.T) {
want string
}{
{RejectCodeInvalid, "invalid"},
{RejectCodeUnsupportedVersion, "unsupported version"},
{RejectCodeUndisclosed, "undisclosed"},
{RejectCodeTooBig, "too big"},
{RejectCodeInsufficentResources, "insufficient resources"},
Expand Down
Loading