summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-10-05 14:39:46 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-10-05 14:39:46 +0200
commitdcf42bb23848e031774324a4fe3d047eab1335fa (patch)
tree1482891e295ff097e649ff91856f8191549a4922 /testsuites
parentftpd: Avoid NULL pointer checks before free() (diff)
downloadrtems-dcf42bb23848e031774324a4fe3d047eab1335fa.tar.bz2
ftpd: Remove FTPD_SessionInfo_t::pass member
There is no need to keep the password throughout the session. Update #3530.
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/libtests/ftp01/ftp01.scn32
-rw-r--r--testsuites/libtests/ftp01/init.c25
2 files changed, 50 insertions, 7 deletions
diff --git a/testsuites/libtests/ftp01/ftp01.scn b/testsuites/libtests/ftp01/ftp01.scn
index a27da4b698..c960064450 100644
--- a/testsuites/libtests/ftp01/ftp01.scn
+++ b/testsuites/libtests/ftp01/ftp01.scn
@@ -1,10 +1,17 @@
-*** TEST FTP 1 ***
+*** BEGIN OF TEST FTP 1 ***
+*** TEST VERSION: 5.0.0.b38887ad22e2e28c15b4e248dac72f6eaff8cb13
+*** TEST STATE: EXPECTED-PASS
+*** TEST BUILD: RTEMS_NETWORKING
+*** TEST TOOLS: 7.3.0 20180125 (RTEMS 5, RSB 9670d7541e0621915e521fe76e7bb33de8cee661, Newlib d13c84eb07e35984bf7a974cd786a6cdac29e6b9)
syslog: ftpd: FTP daemon started (2 sessions max)
220 RTEMS FTP server (Version 1.1-JWJ) ready.
+login check (1): user "anonymous"
USER anonymous
230 User logged in.
TYPE I
200 Type set to I.
+SIZE a.txt
+550 Could not get file size.
PASV
227 Entering passive mode (127,0,0,1,4,1).
STOR a.txt
@@ -13,6 +20,7 @@ STOR a.txt
QUIT
221 Goodbye.
220 RTEMS FTP server (Version 1.1-JWJ) ready.
+login check (1): user "anonymous"
USER anonymous
230 User logged in.
TYPE I
@@ -24,10 +32,16 @@ PASV
RETR a.txt
150 Opening BINARY mode data connection.
220 RTEMS FTP server (Version 1.1-JWJ) ready.
-USER anonymous
+login check (1): user "user"
+USER user
+331 User name okay, need password.
+login check (2): user "user", pass "pass"
+PASS pass
230 User logged in.
TYPE I
200 Type set to I.
+SIZE b.txt
+550 Could not get file size.
PASV
227 Entering passive mode (127,0,0,1,4,7).
STOR b.txt
@@ -39,7 +53,11 @@ QUIT
QUIT
221 Goodbye.
220 RTEMS FTP server (Version 1.1-JWJ) ready.
-USER anonymous
+login check (1): user "user"
+USER user
+331 User name okay, need password.
+login check (2): user "user", pass "pass"
+PASS pass
230 User logged in.
TYPE I
200 Type set to I.
@@ -53,6 +71,7 @@ RETR b.txt
QUIT
221 Goodbye.
220 RTEMS FTP server (Version 1.1-JWJ) ready.
+login check (1): user "anonymous"
USER anonymous
230 User logged in.
TYPE I
@@ -62,7 +81,11 @@ SIZE a.txt
QUIT
221 Goodbye.
220 RTEMS FTP server (Version 1.1-JWJ) ready.
-USER anonymous
+login check (1): user "user"
+USER user
+331 User name okay, need password.
+login check (2): user "user", pass "pass"
+PASS pass
230 User logged in.
TYPE I
200 Type set to I.
@@ -70,4 +93,5 @@ SIZE b.txt
213 1102
QUIT
221 Goodbye.
+
*** END OF TEST FTP 1 ***
diff --git a/testsuites/libtests/ftp01/init.c b/testsuites/libtests/ftp01/init.c
index 55699a2e16..acbbcbe4ad 100644
--- a/testsuites/libtests/ftp01/init.c
+++ b/testsuites/libtests/ftp01/init.c
@@ -1,8 +1,8 @@
/*
- * Copyright (c) 2011 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2011, 2018 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
- * Obere Lagerstr. 30
+ * Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
@@ -38,6 +38,24 @@ struct rtems_bsdnet_config rtems_bsdnet_config;
#define FTP_WORKER_TASK_EXTRA_STACK (FTP_WORKER_TASK_COUNT * FTPD_STACKSIZE)
+static bool login_check(const char *user, const char *pass)
+{
+ rtems_test_assert(
+ strcmp(user, "anonymous") == 0 || strcmp(user, "user") == 0
+ );
+
+ if (pass != NULL) {
+ rtems_test_assert(
+ strcmp(pass, "anonymous") == 0 || strcmp(pass, "pass") == 0
+ );
+ printf("login check (2): user \"%s\", pass \"%s\"\n", user, pass);
+ return true;
+ } else {
+ printf("login check (1): user \"%s\"\n", user);
+ return strcmp(user, "anonymous") == 0;
+ }
+}
+
struct rtems_ftpd_configuration rtems_ftpd_configuration = {
.priority = 90,
.max_hook_filesize = 0,
@@ -46,6 +64,7 @@ struct rtems_ftpd_configuration rtems_ftpd_configuration = {
.root = NULL,
.tasks_count = FTP_WORKER_TASK_COUNT,
.idle = 0,
+ .login = login_check,
.access = 0
};
@@ -199,7 +218,7 @@ static void test(void)
{
int rv = 0;
const char file_a [] = "/FTP/127.0.0.1/a.txt";
- const char file_b [] = "/FTP/127.0.0.1/b.txt";
+ const char file_b [] = "/FTP/user:pass@127.0.0.1/b.txt";
rv = rtems_bsdnet_initialize_network();
rtems_test_assert(rv == 0);