summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-06 13:30:25 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-08-10 11:42:25 +0200
commitcb4358c9b16289d938f41d04a71dfaddb9716b0e (patch)
tree558c6bb21cfa49cd77fc07141b07145befe0abb1
parentcommon: Remove probably superfluous import (diff)
downloadrtems-docs-cb4358c9b16289d938f41d04a71dfaddb9716b0e.tar.bz2
user: Add shell environment migration aid
Update #3859.
-rw-r--r--user/migration/v4_11-to-v5.rst27
1 files changed, 27 insertions, 0 deletions
diff --git a/user/migration/v4_11-to-v5.rst b/user/migration/v4_11-to-v5.rst
index a0cab02..0e0fb46 100644
--- a/user/migration/v4_11-to-v5.rst
+++ b/user/migration/v4_11-to-v5.rst
@@ -126,3 +126,30 @@ interface name.
exit(1);
}
}
+
+Shell Environment
+-----------------
+
+To address resource leaks in the RTEMS shell, the management of shell
+environments changed. This change may break existing code. Here is an example
+how a broken Telnet shell can be fixed:
+
+. code-block:: c
+
+ static void
+ telnet_shell( char *name, void *arg )
+ {
+ rtems_shell_env_t env;
+
+ /* Previous WRONG approach: memset( &env, 0, sizeof( env) ); */
+
+ /* Correct way to initialize the shell environment */
+ rtems_shell_dup_current_env( &env );
+
+ env.devname = name;
+ env.taskname = "TLNT";
+ env.login_check = NULL;
+ env.forever = false;
+
+ rtems_shell_main_loop( &env );
+ }