Skip to content

Commit 0b1a04e

Browse files
authored
check the TYPE parameter in a case-insensitive manner (#386)
* check the TYPE parameter in a case-insensitive manner * add some tests
1 parent d33ce00 commit 0b1a04e

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

handle_misc.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ func (c *clientHandler) handleFEAT(param string) error {
257257
}
258258

259259
func (c *clientHandler) handleTYPE(param string) error {
260+
param = strings.ReplaceAll(strings.ToUpper(param), " ", "")
260261
switch param {
261262
case "I", "L8":
262263
c.currentTransferType = TransferTypeBinary

handle_misc_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,22 @@ func TestTYPE(t *testing.T) {
297297
require.NoError(t, err)
298298
require.Equal(t, StatusOK, rc)
299299

300+
rc, _, err = raw.SendCommand("TYPE i")
301+
require.NoError(t, err)
302+
require.Equal(t, StatusOK, rc)
303+
304+
rc, _, err = raw.SendCommand("TYPE a")
305+
require.NoError(t, err)
306+
require.Equal(t, StatusOK, rc)
307+
308+
rc, _, err = raw.SendCommand("TYPE l 8")
309+
require.NoError(t, err)
310+
require.Equal(t, StatusOK, rc)
311+
312+
rc, _, err = raw.SendCommand("TYPE l 7")
313+
require.NoError(t, err)
314+
require.Equal(t, StatusOK, rc)
315+
300316
rc, _, err = raw.SendCommand("TYPE wrong")
301317
require.NoError(t, err)
302318
require.Equal(t, StatusNotImplementedParam, rc)

0 commit comments

Comments
 (0)