From 5b40274acb3355d23e65ef59def92e92f89c72e2 Mon Sep 17 00:00:00 2001
From: Ingela Anderton Andin <ingela@erlang.org>
Date: Fri, 6 Dec 2013 15:12:49 +0100
Subject: inets: Start CT'ify httpd_SUITE

Conflicts:

	lib/inets/test/httpd_SUITE.erl
---
 lib/inets/test/Makefile                            |    4 +-
 lib/inets/test/httpd_1_0.erl                       |   33 +
 lib/inets/test/httpd_1_1.erl                       |   12 +-
 lib/inets/test/httpd_SUITE.erl                     | 2991 ++++----------------
 .../test/httpd_SUITE_data/server_root/Makefile     |  209 --
 .../httpd_SUITE_data/server_root/conf/8080.conf    |   79 -
 .../httpd_SUITE_data/server_root/conf/8888.conf    |   63 -
 .../httpd_SUITE_data/server_root/conf/httpd.conf   |  268 --
 .../httpd_SUITE_data/server_root/conf/mime.types   |  465 ---
 .../httpd_SUITE_data/server_root/conf/ssl.conf     |   66 -
 .../test/httpd_SUITE_data/server_root/icons/README |  161 --
 .../server_root/logs/Dummy_File_Needed_By_WinZip   |    1 -
 .../server_root/ssl/ssl_client.pem                 |   31 -
 .../server_root/ssl/ssl_server.pem                 |   31 -
 lib/inets/test/httpd_all.erl                       |  239 ++
 lib/inets/test/httpd_mod_SUITE.erl                 |   76 +
 lib/inets/test/inets_test_lib.erl                  |    6 +-
 lib/inets/test/old_httpd_SUITE.erl                 | 2444 ++++++++++++++++
 lib/inets/test/old_httpd_SUITE_data/Makefile.src   |   14 +
 lib/inets/test/old_httpd_SUITE_data/cgi_echo.c     |   97 +
 .../test/old_httpd_SUITE_data/server_root/Makefile |  208 ++
 .../old_httpd_SUITE_data/server_root/auth/group    |    3 +
 .../old_httpd_SUITE_data/server_root/auth/passwd   |    4 +
 .../server_root/cgi-bin/printenv.bat               |    7 +
 .../server_root/cgi-bin/printenv.sh                |    6 +
 .../server_root/conf/8080.conf                     |   79 +
 .../server_root/conf/8888.conf                     |   63 +
 .../server_root/conf/httpd.conf                    |  268 ++
 .../server_root/conf/mime.types                    |  462 +++
 .../old_httpd_SUITE_data/server_root/conf/ssl.conf |   66 +
 .../server_root/htdocs/config.shtml                |   60 +
 .../server_root/htdocs/dets_open/dummy.html        |   10 +
 .../server_root/htdocs/dets_secret/dummy.html      |   10 +
 .../htdocs/dets_secret/top_secret/index.html       |    9 +
 .../server_root/htdocs/echo.shtml                  |   25 +
 .../server_root/htdocs/exec.shtml                  |   20 +
 .../server_root/htdocs/flastmod.shtml              |   19 +
 .../server_root/htdocs/fsize.shtml                 |   19 +
 .../server_root/htdocs/include.shtml               |   23 +
 .../server_root/htdocs/index.html                  |   25 +
 .../server_root/htdocs/last_modified.html          |   12 +
 .../server_root/htdocs/misc/friedrich.html         |    7 +
 .../server_root/htdocs/misc/oech.html              |    4 +
 .../server_root/htdocs/misc/welcome.html           |    1 +
 .../server_root/htdocs/mnesia_open/dummy.html      |   10 +
 .../server_root/htdocs/mnesia_secret/dummy.html    |   10 +
 .../htdocs/mnesia_secret/top_secret/index.html     |    9 +
 .../server_root/htdocs/open/dummy.html             |   10 +
 .../server_root/htdocs/secret/dummy.html           |   10 +
 .../htdocs/secret/top_secret/index.html            |    9 +
 .../old_httpd_SUITE_data/server_root/icons/README  |  161 ++
 .../old_httpd_SUITE_data/server_root/icons/a.gif   |  Bin 0 -> 246 bytes
 .../server_root/icons/alert.black.gif              |  Bin 0 -> 242 bytes
 .../server_root/icons/alert.red.gif                |  Bin 0 -> 247 bytes
 .../server_root/icons/apache_pb.gif                |  Bin 0 -> 2326 bytes
 .../server_root/icons/back.gif                     |  Bin 0 -> 216 bytes
 .../server_root/icons/ball.gray.gif                |  Bin 0 -> 233 bytes
 .../server_root/icons/ball.red.gif                 |  Bin 0 -> 205 bytes
 .../server_root/icons/binary.gif                   |  Bin 0 -> 246 bytes
 .../server_root/icons/binhex.gif                   |  Bin 0 -> 246 bytes
 .../server_root/icons/blank.gif                    |  Bin 0 -> 148 bytes
 .../server_root/icons/bomb.gif                     |  Bin 0 -> 308 bytes
 .../server_root/icons/box1.gif                     |  Bin 0 -> 251 bytes
 .../server_root/icons/box2.gif                     |  Bin 0 -> 268 bytes
 .../server_root/icons/broken.gif                   |  Bin 0 -> 247 bytes
 .../server_root/icons/burst.gif                    |  Bin 0 -> 235 bytes
 .../server_root/icons/button1.gif                  |  Bin 0 -> 755 bytes
 .../server_root/icons/button10.gif                 |  Bin 0 -> 781 bytes
 .../server_root/icons/button2.gif                  |  Bin 0 -> 785 bytes
 .../server_root/icons/button3.gif                  |  Bin 0 -> 745 bytes
 .../server_root/icons/button4.gif                  |  Bin 0 -> 786 bytes
 .../server_root/icons/button5.gif                  |  Bin 0 -> 780 bytes
 .../server_root/icons/button6.gif                  |  Bin 0 -> 791 bytes
 .../server_root/icons/button7.gif                  |  Bin 0 -> 796 bytes
 .../server_root/icons/button8.gif                  |  Bin 0 -> 784 bytes
 .../server_root/icons/button9.gif                  |  Bin 0 -> 784 bytes
 .../server_root/icons/buttonl.gif                  |  Bin 0 -> 587 bytes
 .../server_root/icons/buttonr.gif                  |  Bin 0 -> 576 bytes
 .../old_httpd_SUITE_data/server_root/icons/c.gif   |  Bin 0 -> 242 bytes
 .../server_root/icons/comp.blue.gif                |  Bin 0 -> 251 bytes
 .../server_root/icons/comp.gray.gif                |  Bin 0 -> 246 bytes
 .../server_root/icons/compressed.gif               |  Bin 0 -> 1038 bytes
 .../server_root/icons/continued.gif                |  Bin 0 -> 214 bytes
 .../old_httpd_SUITE_data/server_root/icons/dir.gif |  Bin 0 -> 225 bytes
 .../server_root/icons/down.gif                     |  Bin 0 -> 163 bytes
 .../old_httpd_SUITE_data/server_root/icons/dvi.gif |  Bin 0 -> 238 bytes
 .../old_httpd_SUITE_data/server_root/icons/f.gif   |  Bin 0 -> 236 bytes
 .../server_root/icons/folder.gif                   |  Bin 0 -> 225 bytes
 .../server_root/icons/folder.open.gif              |  Bin 0 -> 242 bytes
 .../server_root/icons/folder.sec.gif               |  Bin 0 -> 243 bytes
 .../server_root/icons/forward.gif                  |  Bin 0 -> 219 bytes
 .../server_root/icons/generic.gif                  |  Bin 0 -> 221 bytes
 .../server_root/icons/generic.red.gif              |  Bin 0 -> 220 bytes
 .../server_root/icons/generic.sec.gif              |  Bin 0 -> 249 bytes
 .../server_root/icons/hand.right.gif               |  Bin 0 -> 217 bytes
 .../server_root/icons/hand.up.gif                  |  Bin 0 -> 223 bytes
 .../server_root/icons/htdig.gif                    |  Bin 0 -> 1822 bytes
 .../server_root/icons/icon.sheet.gif               |  Bin 0 -> 11977 bytes
 .../server_root/icons/image1.gif                   |  Bin 0 -> 274 bytes
 .../server_root/icons/image2.gif                   |  Bin 0 -> 309 bytes
 .../server_root/icons/image3.gif                   |  Bin 0 -> 286 bytes
 .../server_root/icons/index.gif                    |  Bin 0 -> 268 bytes
 .../server_root/icons/layout.gif                   |  Bin 0 -> 276 bytes
 .../server_root/icons/left.gif                     |  Bin 0 -> 172 bytes
 .../server_root/icons/link.gif                     |  Bin 0 -> 249 bytes
 .../server_root/icons/movie.gif                    |  Bin 0 -> 243 bytes
 .../old_httpd_SUITE_data/server_root/icons/p.gif   |  Bin 0 -> 237 bytes
 .../server_root/icons/patch.gif                    |  Bin 0 -> 251 bytes
 .../old_httpd_SUITE_data/server_root/icons/pdf.gif |  Bin 0 -> 249 bytes
 .../server_root/icons/pie0.gif                     |  Bin 0 -> 188 bytes
 .../server_root/icons/pie1.gif                     |  Bin 0 -> 198 bytes
 .../server_root/icons/pie2.gif                     |  Bin 0 -> 198 bytes
 .../server_root/icons/pie3.gif                     |  Bin 0 -> 191 bytes
 .../server_root/icons/pie4.gif                     |  Bin 0 -> 193 bytes
 .../server_root/icons/pie5.gif                     |  Bin 0 -> 189 bytes
 .../server_root/icons/pie6.gif                     |  Bin 0 -> 186 bytes
 .../server_root/icons/pie7.gif                     |  Bin 0 -> 185 bytes
 .../server_root/icons/pie8.gif                     |  Bin 0 -> 173 bytes
 .../server_root/icons/portal.gif                   |  Bin 0 -> 254 bytes
 .../server_root/icons/poweredby.gif                |  Bin 0 -> 2748 bytes
 .../old_httpd_SUITE_data/server_root/icons/ps.gif  |  Bin 0 -> 244 bytes
 .../server_root/icons/quill.gif                    |  Bin 0 -> 267 bytes
 .../server_root/icons/right.gif                    |  Bin 0 -> 172 bytes
 .../server_root/icons/screw1.gif                   |  Bin 0 -> 258 bytes
 .../server_root/icons/screw2.gif                   |  Bin 0 -> 263 bytes
 .../server_root/icons/script.gif                   |  Bin 0 -> 242 bytes
 .../server_root/icons/sound1.gif                   |  Bin 0 -> 248 bytes
 .../server_root/icons/sound2.gif                   |  Bin 0 -> 221 bytes
 .../server_root/icons/sphere1.gif                  |  Bin 0 -> 285 bytes
 .../server_root/icons/sphere2.gif                  |  Bin 0 -> 264 bytes
 .../server_root/icons/star.gif                     |  Bin 0 -> 89 bytes
 .../server_root/icons/star_blank.gif               |  Bin 0 -> 53 bytes
 .../old_httpd_SUITE_data/server_root/icons/tar.gif |  Bin 0 -> 243 bytes
 .../old_httpd_SUITE_data/server_root/icons/tex.gif |  Bin 0 -> 251 bytes
 .../server_root/icons/text.gif                     |  Bin 0 -> 229 bytes
 .../server_root/icons/transfer.gif                 |  Bin 0 -> 242 bytes
 .../server_root/icons/unknown.gif                  |  Bin 0 -> 245 bytes
 .../old_httpd_SUITE_data/server_root/icons/up.gif  |  Bin 0 -> 164 bytes
 .../old_httpd_SUITE_data/server_root/icons/uu.gif  |  Bin 0 -> 236 bytes
 .../server_root/icons/uuencoded.gif                |  Bin 0 -> 236 bytes
 .../server_root/icons/world1.gif                   |  Bin 0 -> 228 bytes
 .../server_root/icons/world2.gif                   |  Bin 0 -> 261 bytes
 .../server_root/logs/Dummy_File_Needed_By_WinZip   |    0
 .../server_root/ssl/ssl_client.pem                 |   31 +
 .../server_root/ssl/ssl_server.pem                 |   31 +
 145 files changed, 5206 insertions(+), 3775 deletions(-)
 create mode 100644 lib/inets/test/httpd_1_0.erl
 delete mode 100644 lib/inets/test/httpd_SUITE_data/server_root/Makefile
 delete mode 100644 lib/inets/test/httpd_SUITE_data/server_root/conf/8080.conf
 delete mode 100644 lib/inets/test/httpd_SUITE_data/server_root/conf/8888.conf
 delete mode 100644 lib/inets/test/httpd_SUITE_data/server_root/conf/httpd.conf
 delete mode 100644 lib/inets/test/httpd_SUITE_data/server_root/conf/mime.types
 delete mode 100644 lib/inets/test/httpd_SUITE_data/server_root/conf/ssl.conf
 delete mode 100644 lib/inets/test/httpd_SUITE_data/server_root/icons/README
 delete mode 100644 lib/inets/test/httpd_SUITE_data/server_root/logs/Dummy_File_Needed_By_WinZip
 delete mode 100644 lib/inets/test/httpd_SUITE_data/server_root/ssl/ssl_client.pem
 delete mode 100644 lib/inets/test/httpd_SUITE_data/server_root/ssl/ssl_server.pem
 create mode 100644 lib/inets/test/httpd_all.erl
 create mode 100644 lib/inets/test/httpd_mod_SUITE.erl
 create mode 100644 lib/inets/test/old_httpd_SUITE.erl
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/Makefile.src
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/cgi_echo.c
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/Makefile
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/auth/group
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/auth/passwd
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/cgi-bin/printenv.bat
 create mode 100755 lib/inets/test/old_httpd_SUITE_data/server_root/cgi-bin/printenv.sh
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/conf/8080.conf
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/conf/8888.conf
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/conf/httpd.conf
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/conf/mime.types
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/conf/ssl.conf
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/config.shtml
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_open/dummy.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_secret/dummy.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_secret/top_secret/index.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/echo.shtml
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/exec.shtml
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/flastmod.shtml
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/fsize.shtml
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/include.shtml
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/index.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/last_modified.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/friedrich.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/oech.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/welcome.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_open/dummy.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_secret/dummy.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_secret/top_secret/index.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/open/dummy.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/secret/dummy.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/secret/top_secret/index.html
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/README
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/a.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/alert.black.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/alert.red.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/apache_pb.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/back.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/ball.gray.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/ball.red.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/binary.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/binhex.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/blank.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/bomb.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/box1.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/box2.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/broken.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/burst.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/button1.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/button10.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/button2.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/button3.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/button4.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/button5.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/button6.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/button7.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/button8.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/button9.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/buttonl.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/buttonr.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/c.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/comp.blue.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/comp.gray.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/compressed.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/continued.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/dir.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/down.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/dvi.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/f.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.open.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.sec.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/forward.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.red.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.sec.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/hand.right.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/hand.up.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/htdig.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/icon.sheet.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/image1.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/image2.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/image3.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/index.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/layout.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/left.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/link.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/movie.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/p.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/patch.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/pdf.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie0.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie1.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie2.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie3.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie4.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie5.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie6.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie7.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie8.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/portal.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/poweredby.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/ps.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/quill.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/right.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/screw1.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/screw2.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/script.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/sound1.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/sound2.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/sphere1.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/sphere2.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/star.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/star_blank.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/tar.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/tex.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/text.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/transfer.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/unknown.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/up.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/uu.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/uuencoded.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/world1.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/icons/world2.gif
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/logs/Dummy_File_Needed_By_WinZip
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/ssl/ssl_client.pem
 create mode 100644 lib/inets/test/old_httpd_SUITE_data/server_root/ssl/ssl_server.pem

diff --git a/lib/inets/test/Makefile b/lib/inets/test/Makefile
index b353687cff..096d029865 100644
--- a/lib/inets/test/Makefile
+++ b/lib/inets/test/Makefile
@@ -1,7 +1,7 @@
 #
 # %CopyrightBegin%
 #
-# Copyright Ericsson AB 1997-2012. All Rights Reserved.
+# Copyright Ericsson AB 1997-2014. All Rights Reserved.
 #
 # The contents of this file are subject to the Erlang Public License,
 # Version 1.1, (the "License"); you may not use this file except in
@@ -158,12 +158,14 @@ MODULES =                 		\
 	httpc_cookie_SUITE		\
 	httpc_proxy_SUITE		\
 	httpd_SUITE       		\
+	old_httpd_SUITE       		\
 	httpd_basic_SUITE		\
 	httpd_mod 	  		\
 	httpd_block	  		\
 	httpd_load        		\
 	httpd_time_test	  		\
 	httpd_1_1         		\
+	httpd_1_0                       \
 	httpd_test_lib    		\
 	inets_sup_SUITE   		\
 	inets_SUITE       		\
diff --git a/lib/inets/test/httpd_1_0.erl b/lib/inets/test/httpd_1_0.erl
new file mode 100644
index 0000000000..6059546057
--- /dev/null
+++ b/lib/inets/test/httpd_1_0.erl
@@ -0,0 +1,33 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2013-2014. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(httpd_1_0).
+
+-export([host/4]).
+
+%%-------------------------------------------------------------------------
+%% Test cases
+%%-------------------------------------------------------------------------
+host(Type, Port, Host, Node) ->
+    %% No host needed for HTTP/1.0
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET / HTTP/1.0\r\n\r\n",
+				       [{statuscode, 200},
+					{version, "HTTP/1.0"}]).
diff --git a/lib/inets/test/httpd_1_1.erl b/lib/inets/test/httpd_1_1.erl
index 07d94ea97a..9d2b623772 100644
--- a/lib/inets/test/httpd_1_1.erl
+++ b/lib/inets/test/httpd_1_1.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %% 
-%% Copyright Ericsson AB 2005-2011. All Rights Reserved.
+%% Copyright Ericsson AB 2005-2014. All Rights Reserved.
 %% 
 %% The contents of this file are subject to the Erlang Public License,
 %% Version 1.1, (the "License"); you may not use this file except in
@@ -20,8 +20,6 @@
 
 -module(httpd_1_1).
 
--include("test_server.hrl").
--include("test_server_line.hrl").
 -include_lib("kernel/include/file.hrl").
 
 -export([host/4, chunked/4, expect/4, range/4, if_test/5, http_trace/4,
@@ -40,14 +38,10 @@
 
 
 %%-------------------------------------------------------------------------
-%% Test cases starts here.
+%% Test cases
 %%-------------------------------------------------------------------------
 host(Type, Port, Host, Node) ->
-    %% No host needed for HTTP/1.0
-    ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 
-				       "GET / HTTP/1.0\r\n\r\n", 
-				       [{statuscode, 200},
-					{version, "HTTP/1.0"}]),
+
     %% No host must generate an error
     ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 
 				       "GET / HTTP/1.1\r\n\r\n",
diff --git a/lib/inets/test/httpd_SUITE.erl b/lib/inets/test/httpd_SUITE.erl
index a1600fa97f..021ea89e14 100644
--- a/lib/inets/test/httpd_SUITE.erl
+++ b/lib/inets/test/httpd_SUITE.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 2005-2013. All Rights Reserved.
+%% Copyright Ericsson AB 2013-2014. All Rights Reserved.
 %%
 %% The contents of this file are subject to the Erlang Public License,
 %% Version 1.1, (the "License"); you may not use this file except in
@@ -18,2451 +18,664 @@
 %%
 %%
 
--module(httpd_SUITE).
+%%
+%% ct:run("../inets_test", httpd_SUITE).
+%%
 
--include_lib("test_server/include/test_server.hrl").
--include("test_server_line.hrl").
--include("inets_test_lib.hrl").
+-module(httpd_SUITE).
 
 -include_lib("kernel/include/file.hrl").
+-include_lib("common_test/include/ct.hrl").
+-include("inets_test_lib.hrl").
 
-%% Test server specific exports
--export([all/0, suite/0,groups/0,init_per_group/2,end_per_group/2]).
--export([init_per_testcase/2, end_per_testcase/2,
-	 init_per_suite/1, end_per_suite/1]).
-
-%% Core Server tests
--export([
-	 ip_mod_alias/1, 
-	 ip_mod_actions/1, 
-	 ip_mod_security/1, 
-	 ip_mod_auth/1,
-	 ip_mod_auth_api/1, 
-	 ip_mod_auth_mnesia_api/1, 
-	 ip_mod_htaccess/1, 
-	 ip_mod_cgi/1, 
-	 ip_mod_esi/1,
-	 ip_mod_get/1, 
-	 ip_mod_head/1, 
-	 ip_mod_all/1, 
-	 ip_load_light/1,
-	 ip_load_medium/1, 
-	 ip_load_heavy/1, 
-	 ip_dos_hostname/1, 
-	 ip_time_test/1, 
-	 ip_block_disturbing_idle/1, 
-	 ip_block_non_disturbing_idle/1, 
-	 ip_block_503/1, 
-	 ip_block_disturbing_active/1, 
-	 ip_block_non_disturbing_active/1, 
-	 ip_block_disturbing_active_timeout_not_released/1, 
-	 ip_block_disturbing_active_timeout_released/1, 
-	 ip_block_non_disturbing_active_timeout_not_released/1, 
-	 ip_block_non_disturbing_active_timeout_released/1, 
-	 ip_block_disturbing_blocker_dies/1, 
-	 ip_block_non_disturbing_blocker_dies/1, 
-	 ip_restart_no_block/1, 
-	 ip_restart_disturbing_block/1, 
-	 ip_restart_non_disturbing_block/1
-	]).
-
--export([
-	 essl_mod_alias/1, 
-	 essl_mod_actions/1, 
-	 essl_mod_security/1, 
-	 essl_mod_auth/1, 
-	 essl_mod_auth_api/1,  
-	 essl_mod_auth_mnesia_api/1, 
-	 essl_mod_htaccess/1, 
-	 essl_mod_cgi/1,
-	 essl_mod_esi/1, 
-	 essl_mod_get/1, 
-	 essl_mod_head/1, 
-	 essl_mod_all/1, 
-	 essl_load_light/1, 
-	 essl_load_medium/1, 
-	 essl_load_heavy/1, 
-	 essl_dos_hostname/1, 
-	 essl_time_test/1,
-	 essl_restart_no_block/1, 
-	 essl_restart_disturbing_block/1,
-	 essl_restart_non_disturbing_block/1, 
-	 essl_block_disturbing_idle/1, 
-	 essl_block_non_disturbing_idle/1, 
-	 essl_block_503/1, 
-	 essl_block_disturbing_active/1, 
-	 essl_block_non_disturbing_active/1, 
-	 essl_block_disturbing_active_timeout_not_released/1, 
-	 essl_block_disturbing_active_timeout_released/1, 
-	 essl_block_non_disturbing_active_timeout_not_released/1, 
-	 essl_block_non_disturbing_active_timeout_released/1, 
-	 essl_block_disturbing_blocker_dies/1, 
-	 essl_block_non_disturbing_blocker_dies/1
-	]).
-
-%%% HTTP 1.1 tests
--export([ip_host/1, ip_chunked/1, ip_expect/1, ip_range/1,
-	 ip_if_test/1, ip_http_trace/1, ip_http1_1_head/1, 
-	 ip_mod_cgi_chunked_encoding_test/1]).
-
-%%% HTTP 1.0 tests
--export([ip_head_1_0/1, ip_get_1_0/1, ip_post_1_0/1]).
-
-%%% HTTP 0.9 tests
--export([ip_get_0_9/1]).
-
-%%% Ticket tests
--export([ticket_5775/1,ticket_5865/1,ticket_5913/1,ticket_6003/1,
-	 ticket_7304/1]).
-
-%%% IPv6 tests
--export([ipv6_hostname_ipcomm/0, ipv6_hostname_ipcomm/1, 
-	 ipv6_address_ipcomm/0,  ipv6_address_ipcomm/1, 
-	 ipv6_hostname_essl/0,   ipv6_hostname_essl/1,   
-	 ipv6_address_essl/0,    ipv6_address_essl/1]).
-
-%% Help functions 
--export([cleanup_mnesia/0, setup_mnesia/0, setup_mnesia/1]).
-
--define(IP_PORT, 8898).
--define(SSL_PORT, 8899).
--define(MAX_HEADER_SIZE, 256).
--define(IPV6_LOCAL_HOST, "0:0:0:0:0:0:0:1").
-
-%% Minutes before failed auths timeout.
--define(FAIL_EXPIRE_TIME,1). 
-
-%% Seconds before successful auths timeout.
--define(AUTH_TIMEOUT,5).
-
--record(httpd_user,  {user_name, password, user_data}).
--record(httpd_group, {group_name, userlist}).
-
+%% Note: This directive should only be used in test suites.
+-compile(export_all).
 
 %%--------------------------------------------------------------------
-%% all(Arg) -> [Doc] | [Case] | {skip, Comment}
-%% Arg - doc | suite
-%% Doc - string()
-%% Case - atom() 
-%%	Name of a test case function. 
-%% Comment - string()
-%% Description: Returns documentation/test cases in this test suite
-%%		or a skip tuple if the platform is not supported.  
+%% Common Test interface functions -----------------------------------
 %%--------------------------------------------------------------------
-suite() -> [{ct_hooks,[ts_install_cth]}].
+suite() ->
+    [{ct_hooks,[ts_install_cth]}].
 
-all() -> 
+all() ->
     [
-     {group, ip}, 
-     {group, ssl}, 
-     {group, http_1_1_ip},
-     {group, http_1_0_ip}, 
-     {group, http_0_9_ip},
-     {group, ipv6}, 
-     {group, tickets}
+     {group, http}
+     %{group, https}
     ].
 
-groups() -> 
+groups() ->
     [
-     {ip, [],
-      [ip_mod_alias, ip_mod_actions, ip_mod_security,
-       ip_mod_auth, ip_mod_auth_api, ip_mod_auth_mnesia_api,
-       ip_mod_htaccess, ip_mod_cgi, ip_mod_esi, ip_mod_get,
-       ip_mod_head, ip_mod_all, ip_load_light, ip_load_medium,
-       ip_load_heavy, ip_dos_hostname, ip_time_test,
-       ip_restart_no_block, ip_restart_disturbing_block,
-       ip_restart_non_disturbing_block,
-       ip_block_disturbing_idle, ip_block_non_disturbing_idle,
-       ip_block_503, ip_block_disturbing_active,
-       ip_block_non_disturbing_active,
-       ip_block_disturbing_active_timeout_not_released,
-       ip_block_disturbing_active_timeout_released,
-       ip_block_non_disturbing_active_timeout_not_released,
-       ip_block_non_disturbing_active_timeout_released,
-       ip_block_disturbing_blocker_dies,
-       ip_block_non_disturbing_blocker_dies]},
-     {ssl, [], [{group, essl}]},
-     {essl, [],
-      [essl_mod_alias, essl_mod_actions, essl_mod_security,
-       essl_mod_auth, essl_mod_auth_api,
-       essl_mod_auth_mnesia_api, essl_mod_htaccess,
-       essl_mod_cgi, essl_mod_esi, essl_mod_get, essl_mod_head,
-       essl_mod_all, essl_load_light, essl_load_medium,
-       essl_load_heavy, essl_dos_hostname, essl_time_test,
-       essl_restart_no_block, essl_restart_disturbing_block,
-       essl_restart_non_disturbing_block,
-       essl_block_disturbing_idle,
-       essl_block_non_disturbing_idle, essl_block_503,
-       essl_block_disturbing_active,
-       essl_block_non_disturbing_active,
-       essl_block_disturbing_active_timeout_not_released,
-       essl_block_disturbing_active_timeout_released,
-       essl_block_non_disturbing_active_timeout_not_released,
-       essl_block_non_disturbing_active_timeout_released,
-       essl_block_disturbing_blocker_dies,
-       essl_block_non_disturbing_blocker_dies]},
-     {http_1_1_ip, [],
-      [ip_host, ip_chunked, ip_expect, ip_range, ip_if_test,
-       ip_http_trace, ip_http1_1_head,
-       ip_mod_cgi_chunked_encoding_test]},
-     {http_1_0_ip, [],
-      [ip_head_1_0, ip_get_1_0, ip_post_1_0]},
-     {http_0_9_ip, [], [ip_get_0_9]},
-     {ipv6, [], [ipv6_hostname_ipcomm, ipv6_address_ipcomm, 
-		 ipv6_hostname_essl,   ipv6_address_essl]},
-     {tickets, [],
-      [ticket_5775, ticket_5865, ticket_5913, ticket_6003,
-       ticket_7304]}].
-
-
-init_per_group(ipv6 = _GroupName, Config) ->
-    case inets_test_lib:has_ipv6_support() of
-	{ok, _} ->
-	    Config;
-	_ ->
-	    {skip, "Host does not support IPv6"}
-    end;
-init_per_group(essl, Config) ->
-    catch crypto:stop(),
-    case (catch crypto:start()) of
-	ok ->
-	    Config;
-	_ ->
-	    {skip, "Crypto not startable"}
-    end;
-
-init_per_group(_GroupName, Config) ->
-    Config.
+     {http, [], all_groups()},
+     %{https, [], all_groups()},
+     {http_1_1, [], [host, chunked, expect, cgi] ++ http_head() ++ http_get()},
+     {http_1_0, [], [host, cgi] ++ http_head() ++ http_get()},
+     {http_0_9, [], http_head() ++ http_get()}
+    ].
 
-end_per_group(_GroupName, Config) ->
-    Config.
+all_groups ()->
+    [{group, http_1_1},
+     {group, http_1_0},
+     {group, http_0_9}
+    ].
 
+http_head() ->
+    [head].
+http_get() ->
+    [alias, get, basic_auth, esi, ssi].
 
-%%--------------------------------------------------------------------
-%% Function: init_per_suite(Config) -> Config
-%% Config - [tuple()]
-%%   A list of key/value pairs, holding the test case configuration.
-%% Description: Initiation before the whole suite
-%%
-%% Note: This function is free to add any key/value pairs to the Config
-%% variable, but should NOT alter/remove any existing entries.
-%%--------------------------------------------------------------------
 init_per_suite(Config) ->
-    io:format(user, "init_per_suite -> entry with"
-	      "~n   Config: ~p"
-	      "~n", [Config]),
-
-    ?PRINT_SYSTEM_INFO([]),
-
     PrivDir = ?config(priv_dir, Config),
-    SuiteTopDir = filename:join(PrivDir, ?MODULE),
-    case file:make_dir(SuiteTopDir) of
-        ok ->
-            ok;
-        {error, eexist} ->
-            ok;
-        Error ->
-            throw({error, {failed_creating_suite_top_dir, Error}})
-    end,
-
-    [{has_ipv6_support, inets_test_lib:has_ipv6_support()}, 
-     {suite_top_dir,    SuiteTopDir},
+    DataDir = ?config(data_dir, Config),
+    inets_test_lib:stop_apps([inets]),
+    inets_test_lib:start_apps([inets]),
+    ServerRoot = filename:join(PrivDir, "server_root"),
+    inets_test_lib:del_dirs(ServerRoot),
+    DocRoot = filename:join(ServerRoot, "htdocs"),
+    setup_server_dirs(ServerRoot, DocRoot, DataDir),
+    [{server_root, ServerRoot},
+     {doc_root, DocRoot},
      {node,             node()},
-     {host,             inets_test_lib:hostname()},
-     {address,          getaddr()} | Config].
-
-
-%%--------------------------------------------------------------------
-%% Function: end_per_suite(Config) -> _
-%% Config - [tuple()]
-%%   A list of key/value pairs, holding the test case configuration.
-%% Description: Cleanup after the whole suite
-%%--------------------------------------------------------------------
+     {host,             inets_test_lib:hostname()} | Config].
 
 end_per_suite(_Config) ->
-    %% SuiteTopDir = ?config(suite_top_dir, Config), 
-    %% inets_test_lib:del_dirs(SuiteTopDir),
     ok.
 
-
-%%--------------------------------------------------------------------
-%% Function: init_per_testcase(Case, Config) -> Config
-%% Case - atom()
-%%   Name of the test case that is about to be run.
-%% Config - [tuple()]
-%%   A list of key/value pairs, holding the test case configuration.
-%%
-%% Description: Initiation before each test case
-%%
-%% Note: This function is free to add any key/value pairs to the Config
-%% variable, but should NOT alter/remove any existing entries.
-%%--------------------------------------------------------------------
-init_per_testcase(Case, Config) ->
-    NewConfig = init_per_testcase2(Case, Config), 
-    init_per_testcase3(Case, NewConfig).
-
-
-init_per_testcase2(Case, Config) ->
-
-    %% tsp("init_per_testcase2 -> entry with"
-    %% 	"~n   Config: ~p", [Config]),
-    
-    IpNormal    = integer_to_list(?IP_PORT)    ++ ".conf",
-    IpHtaccess  = integer_to_list(?IP_PORT)   ++ "htaccess.conf",
-    SslNormal   = integer_to_list(?SSL_PORT)  ++ ".conf",
-    SslHtaccess = integer_to_list(?SSL_PORT) ++ "htaccess.conf",
-
-    DataDir     = ?config(data_dir, Config),
-    SuiteTopDir = ?config(suite_top_dir, Config),
-
-    %% tsp("init_per_testcase2 -> "
-    %% 	"~n   SuiteDir: ~p"
-    %% 	"~n   DataDir:  ~p", [SuiteTopDir, DataDir]),
-    
-    TcTopDir = filename:join(SuiteTopDir, Case),
-    ?line ok = file:make_dir(TcTopDir),
-
-    %% tsp("init_per_testcase2 -> "
-    %% 	"~n   TcTopDir: ~p", [TcTopDir]),
-
-    DataSrc    = filename:join([DataDir, "server_root"]),
-    ServerRoot = filename:join([TcTopDir, "server_root"]),
-    
-    %% tsp("init_per_testcase2 -> "
-    %% 	"~n   DataSrc:    ~p"
-    %% 	"~n   ServerRoot: ~p", [DataSrc, ServerRoot]),
-
-    ok = file:make_dir(ServerRoot),
-    ok = file:make_dir(filename:join([TcTopDir, "logs"])),
-
-    NewConfig = [{tc_top_dir, TcTopDir}, {server_root, ServerRoot} | Config],
-
-    %% tsp("init_per_testcase2 -> copy DataSrc to ServerRoot"),
-
-    inets_test_lib:copy_dirs(DataSrc, ServerRoot),
-
-    %% tsp("init_per_testcase2 -> fix cgi"),
-    EnvCGI =  filename:join([ServerRoot, "cgi-bin", "printenv.sh"]),
-    {ok, FileInfo} = file:read_file_info(EnvCGI),
-    ok = file:write_file_info(EnvCGI, 
-			      FileInfo#file_info{mode = 8#00755}),
-    
-    EchoCGI = case test_server:os_type() of
-	      {win32, _} ->
-		  "cgi_echo.exe";
-	      _ ->
-		  "cgi_echo"
-	      end,
-    CGIDir = filename:join([ServerRoot, "cgi-bin"]),
-    inets_test_lib:copy_file(EchoCGI, DataDir,  CGIDir),
-    NewEchoCGI = filename:join([CGIDir, EchoCGI]),
-    {ok, FileInfo1} = file:read_file_info(NewEchoCGI),
-    ok = file:write_file_info(NewEchoCGI, 
-			      FileInfo1#file_info{mode = 8#00755}),
-    
-    %% To be used by IP test cases
-    %% tsp("init_per_testcase2 -> ip testcase setups"),
-    create_config([{port, ?IP_PORT}, {sock_type, ip_comm} | NewConfig], 
-		  normal_access, IpNormal), 
-    create_config([{port, ?IP_PORT}, {sock_type, ip_comm} | NewConfig], 
-    		  mod_htaccess, IpHtaccess), 
-
-    %% To be used by SSL test cases
-    %% tsp("init_per_testcase2 -> ssl testcase setups"),
-    SocketType = 
-	case atom_to_list(Case) of
-	    [X, $s, $s, $l | _] ->
-		case X of
-		    $p -> ssl;
-		    $e -> essl
-		end;
-	    _ ->
-		ssl
-	end,
-
-    create_config([{port, ?SSL_PORT}, {sock_type, SocketType} | NewConfig], 
-		  normal_access, SslNormal),
-    create_config([{port, ?SSL_PORT}, {sock_type, SocketType} | NewConfig],
-    		  mod_htaccess, SslHtaccess),  
-  
-    %% To be used by IPv6 test cases. Case-clause is so that
-    %% you can do ts:run(inets, httpd_SUITE, <test case>)
-    %% for all cases except the ipv6 cases as they depend
-    %% on  'test_host_ipv6_only' that will only be present
-    %% when you run the whole test suite due  to shortcomings
-    %% of the test server.
-
-    tsp("init_per_testcase2 -> maybe generate IPv6 config file(s)"),
-    NewConfig2 = 
-	case atom_to_list(Case) of
-	    "ipv6_" ++ _ ->
-		case (catch inets_test_lib:has_ipv6_support(NewConfig)) of
-		    {ok, IPv6Address0} ->
-			{ok, Hostname} = inet:gethostname(), 
-			IPv6Address = http_transport:ipv6_name(IPv6Address0), 
-			create_ipv6_config([{port, ?IP_PORT}, 
-					    {sock_type, ip_comm},
-					    {ipv6_host, IPv6Address} | 
-					    NewConfig],
-					   "ipv6_hostname_ipcomm.conf", 
-					   Hostname),
-			create_ipv6_config([{port, ?IP_PORT}, 
-					    {sock_type, ip_comm},
-					    {ipv6_host, IPv6Address} | 
-					    NewConfig],
-					   "ipv6_address_ipcomm.conf",  
-					   IPv6Address),
-			create_ipv6_config([{port, ?SSL_PORT}, 
-					    {sock_type, essl},
-					    {ipv6_host, IPv6Address} | 
-					    NewConfig],
-					   "ipv6_hostname_essl.conf", 
-					   Hostname),
-			create_ipv6_config([{port, ?SSL_PORT}, 
-					    {sock_type, essl},
-					    {ipv6_host, IPv6Address} | 
-					    NewConfig],
-					   "ipv6_address_essl.conf",  
-					   IPv6Address),
-			[{ipv6_host, IPv6Address} | NewConfig];
-		    _ ->
-			NewConfig
-		end;
-
-	    _ ->
-		NewConfig
-	end,
-
-    %% tsp("init_per_testcase2 -> done when"
-    %% 	"~n   NewConfig2: ~p", [NewConfig2]),
-
-    NewConfig2.
-
-
-init_per_testcase3(Case, Config) ->
-    tsp("init_per_testcase3(~w) -> entry with"
-	"~n   Config: ~p", [Case, Config]),
-
-    
-%%     %% Create a new fresh node to be used by the server in this test-case
-    
-%%     NodeName = list_to_atom(atom_to_list(Case) ++ "_httpd"), 
-%%     Node     = inets_test_lib:start_node(NodeName),
-    
-    %% Clean up (we do not want this clean up in end_per_testcase
-    %% if init_per_testcase crashes for some testcase it will
-    %% have contaminated the environment and there will be no clean up.)
-    %% This init can take a few different paths so that one crashes
-    %% does not mean that all invocations will.
-
-    application:unset_env(inets, services),
-    application:stop(inets),
-    application:stop(ssl),
-    cleanup_mnesia(),
-
-    %% Start initialization
-    tsp("init_per_testcase3(~w) -> start init", [Case]),
-
-    Dog = test_server:timetrap(inets_test_lib:minutes(10)),
-    NewConfig = lists:keydelete(watchdog, 1, Config),
-    TcTopDir = ?config(tc_top_dir, Config),
-
-    CaseRest = 
-	case atom_to_list(Case) of
-	    "ip_mod_htaccess" ->
-		inets_test_lib:start_http_server(
-		  filename:join(TcTopDir,
-				integer_to_list(?IP_PORT) ++
-				"htaccess.conf")),
-		"mod_htaccess";
-	    "ip_" ++ Rest ->
-		inets_test_lib:start_http_server(
-		  filename:join(TcTopDir,
-				integer_to_list(?IP_PORT) ++ ".conf")),
-		Rest;
-	    "ticket_5913" ->
-		HttpdOptions =
-		    [{file,
-		      filename:join(TcTopDir,
-				    integer_to_list(?IP_PORT) ++ ".conf")},
-		     {accept_timeout,30000},
-		     {debug,[{exported_functions,
-			      [httpd_manager,httpd_request_handler]}]}],
-		inets_test_lib:start_http_server(HttpdOptions);
-	    "ticket_"++Rest ->
-		%% OTP-5913 use the new syntax of inets.config 
-		inets_test_lib:start_http_server([{file,
-		  filename:join(TcTopDir,
-				integer_to_list(?IP_PORT) ++ ".conf")}]),
-		Rest;
-
-	    [X, $s, $s, $l, $_, $m, $o, $d, $_, $h, $t, $a, $c, $c, $e, $s, $s] ->
-		?ENSURE_STARTED([crypto, public_key, ssl]),		
-		SslTag = 
-		    case X of
-			$p -> ssl;  % Plain
-			$e -> essl  % Erlang based ssl
-		    end,
-		case inets_test_lib:start_http_server_ssl(
-		       filename:join(TcTopDir,
-				     integer_to_list(?SSL_PORT) ++ 
-				     "htaccess.conf"), SslTag) of
-		    ok ->
-			"mod_htaccess";
-		    Other ->
-			error_logger:info_msg("Other: ~p~n", [Other]),
-			{skip, "SSL does not seem to be supported"}
-		end;
-	    [X, $s, $s, $l, $_ | Rest] ->
-		?ENSURE_STARTED([crypto, public_key, ssl]),		
-		SslTag = 
-		    case X of
-			$p -> ssl;
-			$e -> essl
-		    end,
-		case inets_test_lib:start_http_server_ssl(
-		       filename:join(TcTopDir,
-				     integer_to_list(?SSL_PORT) ++ 
-				     ".conf"), SslTag) of
-		    ok ->
-			Rest;
-		    Other ->
-			error_logger:info_msg("Other: ~p~n", [Other]),
-			{skip, "SSL does not seem to be supported"}
-		end;
-	    "ipv6_" ++ _  = TestCaseStr ->
-		case inets_test_lib:has_ipv6_support() of
-		    {ok, _} ->
-			inets_test_lib:start_http_server(
-			  filename:join(TcTopDir,
-					TestCaseStr ++ ".conf"));
-		    
-		    _ ->
-			{skip, "Host does not support IPv6"}
-		end
-	end,
-
-    InitRes = 
-	case CaseRest of
-	    {skip, _} = Skip ->
-		Skip;
-	    "mod_auth_" ++ _ ->
-		start_mnesia(?config(node, Config)),
-		[{watchdog, Dog} | NewConfig];
-	    "mod_htaccess" ->
-		ServerRoot = ?config(server_root, Config), 
-		Path = filename:join([ServerRoot, "htdocs"]),
-		catch remove_htaccess(Path),
-		create_htaccess_data(Path, ?config(address, Config)),
-		[{watchdog, Dog} | NewConfig];
-	    "range" ->
-		ServerRoot = ?config(server_root, Config), 
-		Path = filename:join([ServerRoot, "htdocs"]),
-		create_range_data(Path),
-		[{watchdog, Dog} | NewConfig];
-	    _ ->
-		[{watchdog, Dog} | NewConfig]
-	end,
-    
-    tsp("init_per_testcase3(~w) -> done when"
-	"~n   InitRes: ~p", [Case, InitRes]),
-
-    InitRes.
-
-
-%%--------------------------------------------------------------------
-%% Function: end_per_testcase(Case, Config) -> _
-%% Case - atom()
-%%   Name of the test case that is about to be run.
-%% Config - [tuple()]
-%%   A list of key/value pairs, holding the test case configuration.
-%% Description: Cleanup after each test case
 %%--------------------------------------------------------------------
-end_per_testcase(Case, Config) ->
-    Dog = ?config(watchdog, Config),
-    test_server:timetrap_cancel(Dog),
-    end_per_testcase2(Case, lists:keydelete(watchdog, 1, Config)),
-    ok.
-
-end_per_testcase2(Case, Config) ->
-    tsp("end_per_testcase2(~w) -> entry with"
-	"~n   Config: ~p", [Case, Config]),
-    application:unset_env(inets, services),
-    application:stop(inets),
-    application:stop(ssl),     
-    application:stop(crypto), % used by the new ssl (essl test cases)  
-    cleanup_mnesia(),
-    tsp("end_per_testcase2(~w) -> done", [Case]),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-%% Test cases starts here.
-%%-------------------------------------------------------------------------
-
-%%-------------------------------------------------------------------------
-ip_mod_alias(doc) -> 
-    ["Module test: mod_alias"];
-ip_mod_alias(suite) -> 
-    [];
-ip_mod_alias(Config) when is_list(Config) ->
-    httpd_mod:alias(ip_comm, ?IP_PORT, 
-		    ?config(host, Config), ?config(node, Config)),
-    ok.
-
-%%-------------------------------------------------------------------------
-ip_mod_actions(doc) -> 
-    ["Module test: mod_actions"];
-ip_mod_actions(suite) -> 
-    [];
-ip_mod_actions(Config) when is_list(Config) ->
-    httpd_mod:actions(ip_comm, ?IP_PORT, 
-		      ?config(host, Config), ?config(node, Config)),
-    ok.
-
-%%-------------------------------------------------------------------------
-ip_mod_security(doc) -> 
-    ["Module test: mod_security"];
-ip_mod_security(suite) -> 
-    [];
-ip_mod_security(Config) when is_list(Config) ->
-    ServerRoot = ?config(server_root, Config), 
-    httpd_mod:security(ServerRoot, ip_comm, ?IP_PORT, 
-		       ?config(host, Config), ?config(node, Config)),
-    ok.
-
-%%-------------------------------------------------------------------------
-ip_mod_auth(doc) -> 
-    ["Module test: mod_auth"];
-ip_mod_auth(suite) -> 
-    [];
-ip_mod_auth(Config) when is_list(Config) ->
-    httpd_mod:auth(ip_comm, ?IP_PORT, 
-		   ?config(host, Config), ?config(node, Config)),
-    ok.
-
-%%-------------------------------------------------------------------------
-ip_mod_auth_api(doc) -> 
-    ["Module test: mod_auth_api"];
-ip_mod_auth_api(suite) -> 
-    [];
-ip_mod_auth_api(Config) when is_list(Config) ->
-    ServerRoot = ?config(server_root, Config), 
-    Host =  ?config(host, Config),
-    Node = ?config(node, Config),
-    httpd_mod:auth_api(ServerRoot, "", ip_comm, ?IP_PORT, Host, Node),
-    httpd_mod:auth_api(ServerRoot, "dets_", ip_comm, ?IP_PORT, Host, Node),
-    httpd_mod:auth_api(ServerRoot, "mnesia_", ip_comm, ?IP_PORT, Host, Node),
-    ok. 
-%%-------------------------------------------------------------------------
-ip_mod_auth_mnesia_api(doc) -> 
-    ["Module test: mod_auth_mnesia_api"];
-ip_mod_auth_mnesia_api(suite) -> 
-    [];
-ip_mod_auth_mnesia_api(Config) when is_list(Config) ->
-    httpd_mod:auth_mnesia_api(ip_comm, ?IP_PORT, 
-		   ?config(host, Config), ?config(node, Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_mod_htaccess(doc) -> 
-    ["Module test: mod_htaccess"];
-ip_mod_htaccess(suite) -> 
-    [];
-ip_mod_htaccess(Config) when is_list(Config) ->
-    httpd_mod:htaccess(ip_comm, ?IP_PORT, 
-		       ?config(host, Config), ?config(node, Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_mod_cgi(doc) ->
-    ["Module test: mod_cgi"];
-ip_mod_cgi(suite) ->
-    [];
-ip_mod_cgi(Config) when is_list(Config) ->
-    case test_server:os_type() of
-	vxworks ->
-	    {skip, cgi_not_supported_on_vxwoks};
-	_ ->
-	    httpd_mod:cgi(ip_comm, ?IP_PORT, 
-			  ?config(host, Config), ?config(node, Config)),
-	    ok
-    end.
-%%-------------------------------------------------------------------------
-ip_mod_esi(doc) ->
-    ["Module test: mod_esi"];
-ip_mod_esi(suite) ->
-    [];
-ip_mod_esi(Config) when is_list(Config) ->
-    httpd_mod:esi(ip_comm, ?IP_PORT, 
-		  ?config(host, Config), ?config(node, Config)),
-    ok.
-
-%%-------------------------------------------------------------------------
-ip_mod_get(doc) ->
-    ["Module test: mod_get"];
-ip_mod_get(suite) ->
-    [];
-ip_mod_get(Config) when is_list(Config) ->
-    httpd_mod:get(ip_comm, ?IP_PORT, 
-		  ?config(host, Config), ?config(node, Config)),
-    ok.
-
-%%-------------------------------------------------------------------------
-ip_mod_head(doc) ->
-    ["Module test: mod_head"];
-ip_mod_head(suite) ->
-    [];
-ip_mod_head(Config) when is_list(Config) ->
-    httpd_mod:head(ip_comm, ?IP_PORT, 
-		   ?config(host, Config), ?config(node, Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_mod_all(doc) ->
-    ["All modules test"];
-ip_mod_all(suite) ->
-    [];
-ip_mod_all(Config) when is_list(Config) ->
-    httpd_mod:all(ip_comm, ?IP_PORT, 
-		  ?config(host, Config), ?config(node, Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_load_light(doc) ->
-    ["Test light load"];
-ip_load_light(suite) ->
-    [];
-ip_load_light(Config) when is_list(Config) ->
-    httpd_load:load_test(ip_comm, ?IP_PORT, ?config(host, Config), 
-			 ?config(node, Config),
-			 get_nof_clients(ip_comm, light)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_load_medium(doc) ->
-    ["Test  medium load"];
-ip_load_medium(suite) ->
-    [];
-ip_load_medium(Config) when is_list(Config) ->
-      httpd_load:load_test(ip_comm, ?IP_PORT, ?config(host, Config),
-			   ?config(node, Config),
-			   get_nof_clients(ip_comm, medium)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_load_heavy(doc) ->
-    ["Test heavy load"];
-ip_load_heavy(suite) ->
-    [];
-ip_load_heavy(Config) when is_list(Config) ->
-     httpd_load:load_test(ip_comm, ?IP_PORT, ?config(host, Config),
-			  ?config(node, Config),
-			  get_nof_clients(ip_comm, heavy)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-ip_dos_hostname(doc) ->
-    ["Denial Of Service (DOS) attack test case"];
-ip_dos_hostname(suite) ->
-    [];
-ip_dos_hostname(Config) when is_list(Config) ->
-    dos_hostname(ip_comm, ?IP_PORT, ?config(host, Config), 
-		 ?config(node, Config), ?MAX_HEADER_SIZE),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-ip_time_test(doc) ->
-    [""];
-ip_time_test(suite) ->
-    [];
-ip_time_test(Config) when is_list(Config) ->
-    %% <CONDITIONAL-SKIP>
-    Skippable = [win32],
-    Condition = fun() -> ?OS_BASED_SKIP(Skippable) end,
-    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
-    %% </CONDITIONAL-SKIP>
-    
-    httpd_time_test:t(ip_comm, ?config(host, Config), ?IP_PORT),
-    ok.
-
-%%-------------------------------------------------------------------------
-ip_block_503(doc) ->
-    ["Check that you will receive status code 503 when the server"
-     " is blocked and 200 when its not blocked."];
-ip_block_503(suite) ->
-    [];
-ip_block_503(Config) when is_list(Config) ->
-    httpd_block:block_503(ip_comm, ?IP_PORT, ?config(host, Config), 
-				 ?config(node, Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_block_disturbing_idle(doc) ->
-    ["Check that you can block/unblock an idle server. The strategy " 
-     "distribing does not really make a difference in this case."];
-ip_block_disturbing_idle(suite) ->
-    [];
-ip_block_disturbing_idle(Config) when is_list(Config) ->
-    httpd_block:block_disturbing_idle(ip_comm, ?IP_PORT, 
-				      ?config(host, Config), 
-				      ?config(node, Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_block_non_disturbing_idle(doc) ->
-    ["Check that you can block/unblock an idle server. The strategy " 
-     "non distribing does not really make a difference in this case."];
-ip_block_non_disturbing_idle(suite) ->
-    [];
-ip_block_non_disturbing_idle(Config) when is_list(Config) ->
-    httpd_block:block_non_disturbing_idle(ip_comm, ?IP_PORT, 
-					  ?config(host, Config), 
-					  ?config(node, Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_block_disturbing_active(doc) ->
-    ["Check that you can block/unblock an active server. The strategy " 
-     "distribing means ongoing requests should be terminated."];
-ip_block_disturbing_active(suite) ->
-    [];
-ip_block_disturbing_active(Config) when is_list(Config) ->
-    httpd_block:block_disturbing_active(ip_comm, ?IP_PORT, 
-					?config(host, Config), 
-					?config(node, Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_block_non_disturbing_active(doc) ->
-    ["Check that you can block/unblock an idle server. The strategy " 
-     "non distribing means the ongoing requests should be compleated."];
-ip_block_non_disturbing_active(suite) ->
-    [];
-ip_block_non_disturbing_active(Config) when is_list(Config) ->
-    httpd_block:block_non_disturbing_idle(ip_comm, ?IP_PORT, 
-					  ?config(host, Config), 
-					  ?config(node, Config)),
-    ok.
-
-%%-------------------------------------------------------------------------
-ip_block_disturbing_active_timeout_not_released(doc) ->
-    ["Check that you can block an active server. The strategy " 
-     "distribing means ongoing requests should be compleated"
-     "if the timeout does not occur."];
-ip_block_disturbing_active_timeout_not_released(suite) ->
-    [];
-ip_block_disturbing_active_timeout_not_released(Config) 
-  when is_list(Config) ->
-    httpd_block:block_disturbing_active_timeout_not_released(ip_comm, 
-							     ?IP_PORT, 
-							     ?config(host,
-								     Config), 
-							     ?config(node, 
-								     Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_block_disturbing_active_timeout_released(doc) ->
-    ["Check that you can block an active server. The strategy " 
-     "distribing means ongoing requests should be terminated when"
-     "the timeout occurs."];
-ip_block_disturbing_active_timeout_released(suite) ->
-    [];
-ip_block_disturbing_active_timeout_released(Config) 
-  when is_list(Config) ->
-    httpd_block:block_disturbing_active_timeout_released(ip_comm, 
-							 ?IP_PORT, 
-							 ?config(host,
-								 Config), 
-							 ?config(node, 
-								 Config)),
-    ok.
-
-%%-------------------------------------------------------------------------
-ip_block_non_disturbing_active_timeout_not_released(doc) ->
-    ["Check that you can block an active server. The strategy " 
-     "non non distribing means ongoing requests should be completed."];
-ip_block_non_disturbing_active_timeout_not_released(suite) ->
-    [];
-ip_block_non_disturbing_active_timeout_not_released(Config)
-  when is_list(Config) ->
-    httpd_block:
-	block_non_disturbing_active_timeout_not_released(ip_comm,
-							 ?IP_PORT, 
-							 ?config(host, 
-								 Config), 
-							 ?config(node, 
-								 Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_block_non_disturbing_active_timeout_released(doc) ->
-    ["Check that you can block an active server. The strategy " 
-     "non non distribing means ongoing requests should be completed. "
-     "When the timeout occurs the block operation sohould be canceled." ];
-ip_block_non_disturbing_active_timeout_released(suite) ->
-    [];
-ip_block_non_disturbing_active_timeout_released(Config)
-  when is_list(Config) ->
-    httpd_block:
-	block_non_disturbing_active_timeout_released(ip_comm,
-						     ?IP_PORT, 
-						     ?config(host, 
-							     Config), 
-						     ?config(node, 
-							     Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_block_disturbing_blocker_dies(doc) ->
-    [];
-ip_block_disturbing_blocker_dies(suite) ->
-    [];
-ip_block_disturbing_blocker_dies(Config) when is_list(Config) ->
-    httpd_block:disturbing_blocker_dies(ip_comm, ?IP_PORT, 
-					?config(host, Config), 
-					?config(node, Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_block_non_disturbing_blocker_dies(doc) ->
-    [];
-ip_block_non_disturbing_blocker_dies(suite) ->
-    [];
-ip_block_non_disturbing_blocker_dies(Config) when is_list(Config) ->
-    httpd_block:non_disturbing_blocker_dies(ip_comm, ?IP_PORT, 
-					    ?config(host, Config), 
-					    ?config(node, Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_restart_no_block(doc) ->
-    [""];
-ip_restart_no_block(suite) ->
-    [];
-ip_restart_no_block(Config) when is_list(Config) ->
-    httpd_block:restart_no_block(ip_comm, ?IP_PORT, ?config(host, Config), 
-				 ?config(node, Config)),
-    ok.
-%%-------------------------------------------------------------------------
-ip_restart_disturbing_block(doc) ->
-    [""];
-ip_restart_disturbing_block(suite) ->
-    [];
-ip_restart_disturbing_block(Config) when is_list(Config) ->
-    %% <CONDITIONAL-SKIP>
-    Condition = 
-	fun() -> 
-		case os:type() of
-		    {unix, linux} ->
-			HW = string:strip(os:cmd("uname -m"), right, $\n),
-			case HW of
-			    "ppc" ->
-				case inet:gethostname() of
-				    {ok, "peach"} ->
-					true;
-				    _ ->
-					false
-				end;
-			    _ ->
-				false
-			end;
-		    _ ->
-			false
-		end
-	end,
-    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
-    %% </CONDITIONAL-SKIP>
-
-    httpd_block:restart_disturbing_block(ip_comm, ?IP_PORT, 
-					 ?config(host, Config),
-					 ?config(node, Config)),
-    ok.
-
-%%-------------------------------------------------------------------------
-ip_restart_non_disturbing_block(doc) ->
-    [""];
-ip_restart_non_disturbing_block(suite) ->
-    [];
-ip_restart_non_disturbing_block(Config) when is_list(Config) ->
-    %% <CONDITIONAL-SKIP>
-    Condition = 
-	fun() -> 
-		case os:type() of
-		    {unix, linux} ->
-			HW = string:strip(os:cmd("uname -m"), right, $\n),
-			case HW of
-			    "ppc" ->
-				case inet:gethostname() of
-				    {ok, "peach"} ->
-					true;
-				    _ ->
-					false
-				end;
-			    _ ->
-				false
-			end;
-		    _ ->
-			false
-		end
-	end,
-    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
-    %% </CONDITIONAL-SKIP>
-
-    httpd_block:restart_non_disturbing_block(ip_comm, ?IP_PORT,
-					    ?config(host, Config), 
-					    ?config(node, Config)),
-    ok.
-
-%%-------------------------------------------------------------------------
-
-essl_mod_alias(doc) -> 
-    ["Module test: mod_alias - using new of configure new SSL"];
-essl_mod_alias(suite) -> 
-    [];
-essl_mod_alias(Config) when is_list(Config) ->
-    ssl_mod_alias(essl, Config).
-
-
-ssl_mod_alias(Tag, Config) ->
-    httpd_mod:alias(Tag, ?SSL_PORT, 
-		    ?config(host, Config), ?config(node, Config)),
-    ok. 
-
-
-%%-------------------------------------------------------------------------
-
-essl_mod_actions(doc) -> 
-    ["Module test: mod_actions - using new of configure new SSL"];
-essl_mod_actions(suite) -> 
-    [];
-essl_mod_actions(Config) when is_list(Config) ->
-    ssl_mod_actions(essl, Config).
-
-
-ssl_mod_actions(Tag, Config) ->
-    httpd_mod:actions(Tag, 
-		      ?SSL_PORT, 
-		      ?config(host, Config), 
-		      ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_mod_security(doc) -> 
-    ["Module test: mod_security - using new of configure new SSL"];
-essl_mod_security(suite) -> 
-    [];
-essl_mod_security(Config) when is_list(Config) ->
-    ssl_mod_security(essl, Config).
-
-ssl_mod_security(Tag, Config) ->
-    ServerRoot = ?config(server_root, Config), 
-    httpd_mod:security(ServerRoot, 
-		       Tag, 
-		       ?SSL_PORT, 
-		       ?config(host, Config), 
-		       ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_mod_auth(doc) -> 
-    ["Module test: mod_auth - using new of configure new SSL"];
-essl_mod_auth(suite) -> 
-    [];
-essl_mod_auth(Config) when is_list(Config) ->
-    ssl_mod_auth(essl, Config).
-
-ssl_mod_auth(Tag, Config) ->
-    httpd_mod:auth(Tag, 
-		   ?SSL_PORT, 
-		   ?config(host, Config), 
-		   ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-
-essl_mod_auth_api(doc) -> 
-    ["Module test: mod_auth - using new of configure new SSL"];
-essl_mod_auth_api(suite) -> 
-    [];
-essl_mod_auth_api(Config) when is_list(Config) ->
-    ssl_mod_auth_api(essl, Config).
-
-ssl_mod_auth_api(Tag, Config) ->
-    ServerRoot = ?config(server_root, Config), 
-    Host       =  ?config(host, Config),
-    Node       = ?config(node, Config),
-    httpd_mod:auth_api(ServerRoot, "",        Tag, ?SSL_PORT, Host, Node),
-    httpd_mod:auth_api(ServerRoot, "dets_",   Tag, ?SSL_PORT, Host, Node),
-    httpd_mod:auth_api(ServerRoot, "mnesia_", Tag, ?SSL_PORT, Host, Node),
-    ok. 
-
-
-%%-------------------------------------------------------------------------
-
-
-essl_mod_auth_mnesia_api(doc) -> 
-    ["Module test: mod_auth_mnesia_api - using new of configure new SSL"];
-essl_mod_auth_mnesia_api(suite) -> 
-    [];
-essl_mod_auth_mnesia_api(Config) when is_list(Config) ->
-    ssl_mod_auth_mnesia_api(essl, Config).
-
-ssl_mod_auth_mnesia_api(Tag, Config) ->
-    httpd_mod:auth_mnesia_api(Tag, 
-			      ?SSL_PORT, 
-			      ?config(host, Config), 
-			      ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_mod_htaccess(doc) -> 
-    ["Module test: mod_htaccess - using new of configure new SSL"];
-essl_mod_htaccess(suite) -> 
-    [];
-essl_mod_htaccess(Config) when is_list(Config) ->
-    ssl_mod_htaccess(essl, Config).
-
-ssl_mod_htaccess(Tag, Config) ->
-    httpd_mod:htaccess(Tag, 
-		       ?SSL_PORT, 
-		       ?config(host, Config), 
-		       ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_mod_cgi(doc) ->
-    ["Module test: mod_cgi - using new of configure new SSL"];
-essl_mod_cgi(suite) ->
-    [];
-essl_mod_cgi(Config) when is_list(Config) ->
-    ssl_mod_cgi(essl, Config).
-
-ssl_mod_cgi(Tag, Config) ->
-    case test_server:os_type() of
-	vxworks ->
-	    {skip, cgi_not_supported_on_vxwoks};
+init_per_group(https = Group, Config0) ->
+    case start_apps(Group) of
+	ok ->
+	    init_httpd(Group, [{type, ssl} | Config0]);
 	_ ->
-	    httpd_mod:cgi(Tag, 
-			  ?SSL_PORT, 
-			  ?config(host, Config), 
-			  ?config(node, Config)),
-	    ok
-    end.
-
-
-%%-------------------------------------------------------------------------
-
-essl_mod_esi(doc) ->
-    ["Module test: mod_esi - using new of configure new SSL"];
-essl_mod_esi(suite) ->
-    [];
-essl_mod_esi(Config) when is_list(Config) ->
-    ssl_mod_esi(essl, Config).
-
-ssl_mod_esi(Tag, Config) ->
-    httpd_mod:esi(Tag, 
-		  ?SSL_PORT, 
-		  ?config(host, Config), 
-		  ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_mod_get(doc) ->
-    ["Module test: mod_get - using new of configure new SSL"];
-essl_mod_get(suite) ->
-    [];
-essl_mod_get(Config) when is_list(Config) ->
-    ssl_mod_get(essl, Config).
-
-ssl_mod_get(Tag, Config) ->
-    httpd_mod:get(Tag, 
-		  ?SSL_PORT, 
-		  ?config(host, Config), 
-		  ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_mod_head(doc) ->
-    ["Module test: mod_head - using new of configure new SSL"];
-essl_mod_head(suite) ->
-    [];
-essl_mod_head(Config) when is_list(Config) ->
-    ssl_mod_head(essl, Config).
-
-ssl_mod_head(Tag, Config) ->
-    httpd_mod:head(Tag, 
-		   ?SSL_PORT, 
-		   ?config(host, Config), 
-		   ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_mod_all(doc) ->
-    ["All modules test - using new of configure new SSL"];
-essl_mod_all(suite) ->
-    [];
-essl_mod_all(Config) when is_list(Config) ->
-    ssl_mod_all(essl, Config).
-
-ssl_mod_all(Tag, Config) ->
-    httpd_mod:all(Tag, 
-		  ?SSL_PORT, 
-		  ?config(host, Config), 
-		  ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_load_light(doc) ->
-    ["Test light load - using new of configure new SSL"];
-essl_load_light(suite) ->
-    [];
-essl_load_light(Config) when is_list(Config) ->
-    ssl_load_light(essl, Config).
-
-ssl_load_light(Tag, Config) ->
-    httpd_load:load_test(Tag, 
-			 ?SSL_PORT, 
-			 ?config(host, Config), 
-			 ?config(node, Config),
-			 get_nof_clients(ssl, light)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_load_medium(doc) ->
-    ["Test medium load - using new of configure new SSL"];
-essl_load_medium(suite) ->
-    [];
-essl_load_medium(Config) when is_list(Config) ->
-    ssl_load_medium(essl, Config).
-
-ssl_load_medium(Tag, Config) ->
-    %% <CONDITIONAL-SKIP>
-    Skippable = [win32],
-    Condition = fun() -> ?OS_BASED_SKIP(Skippable) end,
-    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
-    %% </CONDITIONAL-SKIP>
-
-    httpd_load:load_test(Tag, 
-			 ?SSL_PORT, 
-			 ?config(host, Config), 
-			 ?config(node, Config),
-			 get_nof_clients(ssl, medium)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_load_heavy(doc) ->
-    ["Test heavy load - using new of configure new SSL"];
-essl_load_heavy(suite) ->
-    [];
-essl_load_heavy(Config) when is_list(Config) ->
-    ssl_load_heavy(essl, Config).
-
-ssl_load_heavy(Tag, Config) ->
-    %% <CONDITIONAL-SKIP>
-    Skippable = [win32],
-    Condition = fun() -> ?OS_BASED_SKIP(Skippable) end,
-    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
-    %% </CONDITIONAL-SKIP>
-
-    httpd_load:load_test(Tag, 
-			 ?SSL_PORT, 
-			 ?config(host, Config), 
-			 ?config(node, Config),
-			 get_nof_clients(ssl, heavy)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-
-essl_dos_hostname(doc) ->
-    ["Denial Of Service (DOS) attack test case - using new of configure new SSL"];
-essl_dos_hostname(suite) ->
-    [];
-essl_dos_hostname(Config) when is_list(Config) ->
-    ssl_dos_hostname(essl, Config).
-
-ssl_dos_hostname(Tag, Config) ->
-    dos_hostname(Tag, 
-		 ?SSL_PORT, 
-		 ?config(host, Config), 
-		 ?config(node, Config), 
-		 ?MAX_HEADER_SIZE),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-
-essl_time_test(doc) ->
-    ["using new of configure new SSL"];
-essl_time_test(suite) ->
-    [];
-essl_time_test(Config) when is_list(Config) ->
-    ssl_time_test(essl, Config).
-
-ssl_time_test(Tag, Config) when is_list(Config) ->
-    %% <CONDITIONAL-SKIP>
-    FreeBSDVersionVerify = 
-	fun() ->
-		case os:version() of
-		    {7, 1, _} -> % We only have one such machine, so...
-			true;
-		    _ ->
-			false
-		end
-	end,
-    Skippable = [win32, {unix, [{freebsd, FreeBSDVersionVerify}]}],
-    Condition = fun() -> ?OS_BASED_SKIP(Skippable) end,
-    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
-    %% </CONDITIONAL-SKIP>
-    
-    httpd_time_test:t(Tag, 
-		      ?config(host, Config), 
-		      ?SSL_PORT),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-
-essl_block_503(doc) ->
-    ["Check that you will receive status code 503 when the server"
-     " is blocked and 200 when its not blocked - using new of configure new SSL."];
-essl_block_503(suite) ->
-    [];
-essl_block_503(Config) when is_list(Config) ->
-    ssl_block_503(essl, Config).
-
-ssl_block_503(Tag, Config) ->
-    httpd_block:block_503(Tag, 
-			  ?SSL_PORT, 
-			  ?config(host, Config), 
-			  ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_block_disturbing_idle(doc) ->
-    ["Check that you can block/unblock an idle server. The strategy " 
-     "distribing does not really make a difference in this case." 
-     "Using new of configure new SSL"];
-essl_block_disturbing_idle(suite) ->
-    [];
-essl_block_disturbing_idle(Config) when is_list(Config) ->
-    ssl_block_disturbing_idle(essl, Config).
-
-ssl_block_disturbing_idle(Tag, Config) ->
-    httpd_block:block_disturbing_idle(Tag, 
-				      ?SSL_PORT, 
-				      ?config(host, Config), 
-				      ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_block_non_disturbing_idle(doc) ->
-    ["Check that you can block/unblock an idle server. The strategy " 
-     "non distribing does not really make a difference in this case." 
-     "Using new of configure new SSL"];
-essl_block_non_disturbing_idle(suite) ->
-    [];
-essl_block_non_disturbing_idle(Config) when is_list(Config) ->
-    ssl_block_non_disturbing_idle(essl, Config).
-
-ssl_block_non_disturbing_idle(Tag, Config) ->
-    httpd_block:block_non_disturbing_idle(Tag, 
-					  ?SSL_PORT, 
-					  ?config(host, Config), 
-					  ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_block_disturbing_active(doc) ->
-    ["Check that you can block/unblock an active server. The strategy " 
-     "distribing means ongoing requests should be terminated." 
-     "Using new of configure new SSL"];
-essl_block_disturbing_active(suite) ->
-    [];
-essl_block_disturbing_active(Config) when is_list(Config) ->
-    ssl_block_disturbing_active(essl, Config).
-
-ssl_block_disturbing_active(Tag, Config) ->
-    httpd_block:block_disturbing_active(Tag, 
-					?SSL_PORT, 
-					?config(host, Config), 
-					?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_block_non_disturbing_active(doc) ->
-    ["Check that you can block/unblock an idle server. The strategy " 
-     "non distribing means the ongoing requests should be compleated." 
-     "Using new of configure new SSL"];
-essl_block_non_disturbing_active(suite) ->
-    [];
-essl_block_non_disturbing_active(Config) when is_list(Config) ->
-    ssl_block_non_disturbing_active(essl, Config).
-
-ssl_block_non_disturbing_active(Tag, Config) ->
-    httpd_block:block_non_disturbing_idle(Tag, 
-					  ?SSL_PORT, 
-					  ?config(host, Config), 
-					  ?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_block_disturbing_active_timeout_not_released(doc) ->
-    ["Check that you can block an active server. The strategy " 
-     "distribing means ongoing requests should be compleated"
-     "if the timeout does not occur." 
-    "Using new of configure new SSL"];
-essl_block_disturbing_active_timeout_not_released(suite) ->
-    [];
-essl_block_disturbing_active_timeout_not_released(Config) 
-  when is_list(Config) ->
-    ssl_block_disturbing_active_timeout_not_released(essl, Config).
-
-ssl_block_disturbing_active_timeout_not_released(Tag, Config) ->
-    Port = ?SSL_PORT, 
-    Host = ?config(host, Config), 
-    Node = ?config(node, Config), 
-    httpd_block:block_disturbing_active_timeout_not_released(Tag, 
-							     Port, Host, Node),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_block_disturbing_active_timeout_released(doc) ->
-    ["Check that you can block an active server. The strategy " 
-     "distribing means ongoing requests should be terminated when"
-     "the timeout occurs." 
-    "Using new of configure new SSL"];
-essl_block_disturbing_active_timeout_released(suite) ->
-    [];
-essl_block_disturbing_active_timeout_released(Config) 
-  when is_list(Config) ->
-    ssl_block_disturbing_active_timeout_released(essl, Config).
-
-ssl_block_disturbing_active_timeout_released(Tag, Config) ->
-    Port = ?SSL_PORT, 
-    Host = ?config(host, Config), 
-    Node = ?config(node, Config),     
-    httpd_block:block_disturbing_active_timeout_released(Tag, 
-							 Port, 
-							 Host, 
-							 Node), 
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-essl_block_non_disturbing_active_timeout_not_released(doc) ->
-    ["Check that you can block an active server. The strategy " 
-     "non non distribing means ongoing requests should be completed." 
-    "Using new of configure new SSL"];
-essl_block_non_disturbing_active_timeout_not_released(suite) ->
-    [];
-essl_block_non_disturbing_active_timeout_not_released(Config)
-  when is_list(Config) ->
-    ssl_block_non_disturbing_active_timeout_not_released(essl, Config).
-
-ssl_block_non_disturbing_active_timeout_not_released(Tag, Config) ->
-    Port = ?SSL_PORT, 
-    Host = ?config(host, Config), 
-    Node = ?config(node, Config), 
-    httpd_block:block_non_disturbing_active_timeout_not_released(Tag,
-								 Port, 
-								 Host, 
-								 Node),
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-
-essl_block_non_disturbing_active_timeout_released(doc) ->
-    ["Check that you can block an active server. The strategy " 
-     "non distribing means ongoing requests should be completed. "
-     "When the timeout occurs the block operation sohould be canceled." 
-     "Using new of configure new SSL"];
-essl_block_non_disturbing_active_timeout_released(suite) ->
-    [];
-essl_block_non_disturbing_active_timeout_released(Config)
-  when is_list(Config) ->
-    ssl_block_non_disturbing_active_timeout_released(essl, Config).
-
-ssl_block_non_disturbing_active_timeout_released(Tag, Config)
-  when is_list(Config) ->
-    Port = ?SSL_PORT, 
-    Host = ?config(host, Config), 
-    Node = ?config(node, Config), 
-    httpd_block:block_non_disturbing_active_timeout_released(Tag, 
-							     Port, 
-							     Host, 
-							     Node), 
-
-    ok.
-
-
-%%-------------------------------------------------------------------------
-
-
-essl_block_disturbing_blocker_dies(doc) ->
-    ["using new of configure new SSL"];
-essl_block_disturbing_blocker_dies(suite) ->
-    [];
-essl_block_disturbing_blocker_dies(Config) when is_list(Config) ->
-    ssl_block_disturbing_blocker_dies(essl, Config).
-
-ssl_block_disturbing_blocker_dies(Tag, Config) ->
-    httpd_block:disturbing_blocker_dies(Tag, 
-					?SSL_PORT, 
-					?config(host, Config), 
-					?config(node, Config)),
-    ok.
-
-
-%%-------------------------------------------------------------------------
+	    {skip, "Could not start https apps"}
+    end;
 
-essl_block_non_disturbing_blocker_dies(doc) ->
-    ["using new of configure new SSL"];
-essl_block_non_disturbing_blocker_dies(suite) ->
-    [];
-essl_block_non_disturbing_blocker_dies(Config) when is_list(Config) ->
-    ssl_block_non_disturbing_blocker_dies(essl, Config).
-
-ssl_block_non_disturbing_blocker_dies(Tag, Config) ->
-    httpd_block:non_disturbing_blocker_dies(Tag, 
-					    ?SSL_PORT, 
-					    ?config(host, Config), 
-					    ?config(node, Config)),
+init_per_group(http = Group, Config0) ->
+    init_httpd(Group, [{type, ip_comm} | Config0]);
+init_per_group(http_1_1, Config) ->
+    [{http_version, "HTTP/1.1"} | Config];
+init_per_group(http_1_0, Config) ->
+    [{http_version, "HTTP/1.0"} | Config];
+init_per_group(http_0_9, Config) ->
+    [{http_version, "HTTP/0.9"} | Config];
+init_per_group(_, Config) ->
+    Config.
+end_per_group(_, _Config) ->
     ok.
+init_httpd(Group, Config0) ->
+    Config = proplists:delete(port, Config0),
+    Port = server_start(Group, server_config(Group, Config)),
+    [{port, Port} | Config].
+%%--------------------------------------------------------------------
+init_per_testcase(host, Config) ->
+    Prop = ?config(tc_group_properties, Config),
+    Name = proplists:get_value(name, Prop),
+    Cb = case Name of
+	     http_1_0 ->
+		 httpd_1_0;
+	     http_1_1 ->
+		 httpd_1_1
+	 end,
+    [{version_cb, Cb} | proplists:delete(version_cb, Config)];
+
+init_per_testcase(_Case, Config) ->
+    Config.
 
-
-%%-------------------------------------------------------------------------
-
-
-essl_restart_no_block(doc) ->
-    ["using new of configure new SSL"];
-essl_restart_no_block(suite) ->
-    [];
-essl_restart_no_block(Config) when is_list(Config) ->
-    ssl_restart_no_block(essl, Config).
-
-ssl_restart_no_block(Tag, Config) ->
-    httpd_block:restart_no_block(Tag, 
-				 ?SSL_PORT, 
-				 ?config(host, Config), 
-				 ?config(node, Config)),
+end_per_testcase(_Case, _Config) ->
     ok.
 
-
 %%-------------------------------------------------------------------------
-
-
-essl_restart_disturbing_block(doc) ->
-    ["using new of configure new SSL"];
-essl_restart_disturbing_block(suite) ->
-    [];
-essl_restart_disturbing_block(Config) when is_list(Config) ->
-    ssl_restart_disturbing_block(essl, Config).
-
-ssl_restart_disturbing_block(Tag, Config) ->
-    %% <CONDITIONAL-SKIP>
-    Condition = 
-	fun() -> 
-		case os:type() of
-		    {unix, linux} ->
-			case ?OSCMD("uname -m") of
-			    "ppc" ->
-				case file:read_file_info("/etc/fedora-release") of
-				    {ok, _} ->
-					case ?OSCMD("awk '{print $2}' /etc/fedora-release") of
-					    "release" ->
-						%% Fedora 7 and later
-						case ?OSCMD("awk '{print $3}' /etc/fedora-release") of
-						    "7" ->
-							true;
-						    _ ->
-							false
-						end;
-					    _ ->
-						false
-					end;
-				    _ ->
-					false
-				end;
-			    _ ->
-				false
-			end;
-		    _ ->
-			false
-		end
-	end,
-    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
-    %% </CONDITIONAL-SKIP>
-
-    httpd_block:restart_disturbing_block(Tag, ?SSL_PORT, 
-					 ?config(host, Config), 
-					 ?config(node, Config)),
-    ok.
-
-
+%% Test cases starts here.
 %%-------------------------------------------------------------------------
 
+head() ->
+    [{doc, "HTTP HEAD request for static page"}].
 
-essl_restart_non_disturbing_block(doc) ->
-    ["using new of configure new SSL"];
-essl_restart_non_disturbing_block(suite) ->
-    [];
-essl_restart_non_disturbing_block(Config) when is_list(Config) ->
-    ssl_restart_non_disturbing_block(essl, Config).
-
-ssl_restart_non_disturbing_block(Tag, Config) ->
-    %% <CONDITIONAL-SKIP>
-    Condition = 
-	fun() -> 
-		case os:type() of
-		    {unix, linux} ->
-			HW = string:strip(os:cmd("uname -m"), right, $\n),
-			case HW of
-			    "ppc" ->
-				case inet:gethostname() of
-				    {ok, "peach"} ->
-					true;
-				    _ ->
-					false
-				end;
-			    _ ->
-				false
-			end;
-		    _ ->
-			false
-		end
-	end,
-    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
-    %% </CONDITIONAL-SKIP>
+head(Config) when is_list(Config) ->
+    Version = ?config(http_version, Config),
+    Host = ?config(host, Config),
+    ok = httpd_test_lib:verify_request(?config(type, Config), Host,
+				       ?config(port, Config),  ?config(node, Config),
+				       http_request("HEAD /index.html ", Version, Host),
+				       [{statuscode, head_status(Version)},
+					{version, Version}]).
 
-    httpd_block:restart_non_disturbing_block(Tag, 
-					     ?SSL_PORT, 
-					     ?config(host, Config), 
-					     ?config(node, Config)),
-    ok.
+get() ->
+    [{doc, "HTTP GET request for static page"}].
 
+get(Config) when is_list(Config) ->
+    Version = ?config(http_version, Config),
+    Host = ?config(host, Config),
+    ok = httpd_test_lib:verify_request(?config(type, Config), Host,
+				       ?config(port, Config),  ?config(node, Config),
+				       http_request("GET /index.html ", Version, Host),
+				       [{statuscode, 200},
+					{header, "Content-Type", "text/html"},
+					{header, "Date"},
+					{header, "Server"},
+					{version, Version}]).
 
-%%-------------------------------------------------------------------------
-ip_host(doc) ->   
-    ["Control that the server accepts/rejects requests with/ without host"];
-ip_host(suite)->
-    [];
-ip_host(Config) when is_list(Config) ->
-    httpd_1_1:host(ip_comm, ?IP_PORT, ?config(host, Config),
-		   ?config(node, Config)),
-    ok.
-%%------------------------------------------------------------------------- 
-ip_chunked(doc) ->   
-    ["Control that the server accepts chunked requests"];
-ip_chunked(suite) ->
-    [];
-ip_chunked(Config) when is_list(Config) ->
-    httpd_1_1:chunked(ip_comm, ?IP_PORT, ?config(host, Config),
-		      ?config(node, Config)),
-    ok.
-%%------------------------------------------------------------------------- 
-ip_expect(doc) ->   
-    ["Control that the server handles request with the expect header "
-     "field appropiate"];
-ip_expect(suite)->
-    [];
-ip_expect(Config) when is_list(Config) ->
-    httpd_1_1:expect(ip_comm, ?IP_PORT, ?config(host, Config),
-		     ?config(node, Config)),
-    ok.
-%%------------------------------------------------------------------------- 
-ip_range(doc) ->   
-    ["Control that the server can handle range requests to plain files"];
-ip_range(suite)->
-    [];
-ip_range(Config) when is_list(Config) ->
-    httpd_1_1:range(ip_comm, ?IP_PORT, ?config(host, Config),
-		    ?config(node, Config)),
-    ok.
-%%------------------------------------------------------------------------- 
-ip_if_test(doc) ->   
-    ["Test that the if - request header fields is handled correclty"];
-ip_if_test(suite) ->
-    [];
-ip_if_test(Config) when is_list(Config) ->
-    ServerRoot = ?config(server_root, Config), 
-    DocRoot = filename:join([ServerRoot, "htdocs"]),
-    httpd_1_1:if_test(ip_comm, ?IP_PORT, ?config(host, Config),
-		      ?config(node, Config), DocRoot),
-    ok.
-%%------------------------------------------------------------------------- 
-ip_http_trace(doc) ->   
-    ["Test the trace module "];
-ip_http_trace(suite) -> 
-    [];
-ip_http_trace(Config) when is_list(Config) ->
-    httpd_1_1:http_trace(ip_comm, ?IP_PORT, ?config(host, Config),
-			 ?config(node, Config)),
-    ok.
-%%------------------------------------------------------------------------- 
-ip_http1_1_head(doc) ->  
-    ["Test the trace module "];
-ip_http1_1_head(suite)->
-    [];
-ip_http1_1_head(Config) when is_list(Config) ->
-    httpd_1_1:head(ip_comm, ?IP_PORT, ?config(host, Config),
-			   ?config(node, Config)),
-    ok.
+basic_auth() ->
+    [{doc, "Test Basic authentication with WWW-Authenticate header"}].
 
-%%------------------------------------------------------------------------- 
-ip_get_0_9(doc) ->  
-    ["Test simple HTTP/0.9 GET"];
-ip_get_0_9(suite)->
-    [];
-ip_get_0_9(Config) when is_list(Config) ->
-    Host =  ?config(host, Config),
-    Node =  ?config(node, Config),
-    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node, 
-				       "GET / \r\n\r\n", 
-				       [{statuscode, 200},
-					{version, "HTTP/0.9"} ]),
-    %% Without space after uri
-    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node, 
-				       "GET /\r\n\r\n", 
-				       [{statuscode, 200},
-					{version, "HTTP/0.9"} ]),
-    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node, 
-				       "GET / HTTP/0.9\r\n\r\n", 
-				       [{statuscode, 200},
-					{version, "HTTP/0.9"}]),
-    
-    ok.
-%%------------------------------------------------------------------------- 
-ip_head_1_0(doc) ->  
-    ["Test HTTP/1.0 HEAD"];
-ip_head_1_0(suite)->
-    [];
-ip_head_1_0(Config) when is_list(Config) ->
-    Host =  ?config(host, Config),
-    Node =  ?config(node, Config),
-    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node, 
-			 "HEAD / HTTP/1.0\r\n\r\n", [{statuscode, 200},
-						    {version, "HTTP/1.0"}]),
-    
-    ok.
-%%------------------------------------------------------------------------- 
-ip_get_1_0(doc) ->  
-    ["Test HTTP/1.0 GET"];
-ip_get_1_0(suite)->
-    [];
-ip_get_1_0(Config) when is_list(Config) ->
-    Host =  ?config(host, Config),
-    Node =  ?config(node, Config),
-    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node, 
-			 "GET / HTTP/1.0\r\n\r\n", [{statuscode, 200},
-						    {version, "HTTP/1.0"}]),
-    
-    ok.
-%%------------------------------------------------------------------------- 
-ip_post_1_0(doc) ->  
-    ["Test HTTP/1.0 POST"];
-ip_post_1_0(suite)->
-    [];
-ip_post_1_0(Config) when is_list(Config) ->
-    Host =  ?config(host, Config),
-    Node =  ?config(node, Config),
-    %% Test the post message formatin 1.0! Real post are testes elsewhere
-    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node, 
-			 "POST / HTTP/1.0\r\n\r\n "  
-			 "Content-Length:6 \r\n\r\nfoobar", 
-			 [{statuscode, 500}, {version, "HTTP/1.0"}]),
-    
-    ok.
-%%------------------------------------------------------------------------- 
-ip_mod_cgi_chunked_encoding_test(doc) ->  
-    ["Test the trace module "];
-ip_mod_cgi_chunked_encoding_test(suite)->
-    [];
-ip_mod_cgi_chunked_encoding_test(Config) when is_list(Config) ->
+basic_auth(Config) ->
+    Version = ?config(http_version, Config),
     Host = ?config(host, Config),
-    Script =
+    basic_auth_requiered(Config),
+    %% Authentication OK! ["one:OnePassword" user first in user list]
+    ok = auth_status(auth_request("/open/dummy.html", "one", "onePassword", Version, Host), Config,
+		     [{statuscode, 200}]),
+    %% Authentication OK and a directory listing is supplied!
+    %% ["Aladdin:open sesame" user second in user list]
+    ok = auth_status(auth_request("/open/", "Aladdin", "AladdinPassword", Version, Host), Config,
+		     [{statuscode, 200}]),
+     %% User correct but wrong password! ["one:one" user first in user list]
+    ok = auth_status(auth_request("/open/dummy.html", "one", "one", Version, Host), Config,
+		     [{statuscode, 401},
+		      {header, "WWW-Authenticate"}]),
+    %% Make sure Authenticate header is received even the second time
+    %% we try a incorrect password! Otherwise a browser client will hang!
+    ok = auth_status(auth_request("/open/dummy.html", "one", "one", Version, Host), Config,
+		     [{statuscode, 401},
+		      {header, "WWW-Authenticate"}]),
+    %% Neither user or password correct! ["dummy:dummy"]
+    ok = auth_status(auth_request("/open/dummy.html", "dummy", "dummy", Version, Host), Config,
+		     [{statuscode, 401}]),
+    %% Nested secret/top_secret OK! ["Aladdin:open sesame"]
+    ok = http_status(auth_request("/secret/top_secret/", "Aladdin", "AladdinPassword", Version, Host),
+		     Config, [{statuscode, 200}]),
+    %% Authentication still required!
+    basic_auth_requiered(Config).
+
+ssi() ->
+    [{doc, "HTTP GET server side include test"}].
+ssi(Config) when is_list(Config) ->
+    Version = ?config(http_version, Config),
+    Host = ?config(host, Config),
+    ok = httpd_test_lib:verify_request(?config(type, Config), Host, ?config(port, Config),
+				       ?config(node, Config),
+				       http_request("GET /fsize.shtml ", Version, Host),
+				       [{statuscode, 200},
+					{header, "Content-Type", "text/html"},
+					{header, "Date"},
+					{header, "Server"},
+					{version, Version}]).
+host() ->
+    [{doc, "Test host header"}].
+
+host(Config) when is_list(Config) ->
+    Cb = ?config(version_cb, Config),
+    Cb:host(?config(type, Config), ?config(port, Config),
+	    ?config(host, Config), ?config(node, Config)).
+
+chunked() ->
+    [{doc, "Check that the server accepts chunked requests."}].
+
+chunked(Config) when is_list(Config) ->
+    httpd_1_1:chunked(?config(type, Config), ?config(port, Config),
+		      ?config(host, Config), ?config(node, Config)).
+
+expect() ->
+    ["Check that the server handles request with the expect header "
+     "field appropiate"].
+expect(Config) when is_list(Config) ->
+    httpd_1_1:expect(?config(type, Config), ?config(port, Config),
+		     ?config(host, Config), ?config(node, Config)).
+
+esi() ->
+    [{doc, "Test mod_esi"}].
+
+esi(Config) when is_list(Config) ->
+    ok = http_status("GET /eval?httpd_example:print(\"Hi!\") ",
+		     Config, [{statuscode, 200}]),
+    ok = http_status("GET /eval?not_allowed:print(\"Hi!\") ",
+		     Config, [{statuscode, 403}]),
+    ok = http_status("GET /eval?httpd_example:undef(\"Hi!\") ",
+		      Config, [{statuscode, 500}]),
+    ok = http_status("GET /cgi-bin/erl/httpd_example ",
+		     Config, [{statuscode, 400}]),
+    ok = http_status("GET /cgi-bin/erl/httpd_example:get ",
+		     Config, [{statuscode, 200}]),
+    ok = http_status("GET /cgi-bin/erl/httpd_example:"
+		     "get?input=4711 ", Config,
+		     [{statuscode, 200}]),
+    ok = http_status("GET /cgi-bin/erl/httpd_example:post ",
+		     Config, [{statuscode, 200}]),
+    ok = http_status("GET /cgi-bin/erl/not_allowed:post ",
+		     Config, [{statuscode, 403}]),
+    ok = http_status("GET /cgi-bin/erl/httpd_example:undef ",
+		     Config, [{statuscode, 404}]),
+    ok = http_status("GET /cgi-bin/erl/httpd_example/yahoo ",
+		     Config, [{statuscode, 302}]),
+    %% Check "ErlScriptNoCache" directive (default: false)
+    ok = http_status("GET /cgi-bin/erl/httpd_example:get ",
+		     Config, [{statuscode, 200},
+		      {no_header, "cache-control"}]).
+
+cgi() ->
+    [{doc, "Test mod_cgi"}].
+
+cgi(Config) when is_list(Config) ->
+    {Script, Script2, Script3} =
 	case test_server:os_type() of
 	    {win32, _} ->
-		"/cgi-bin/printenv.bat";
+		{"printenv.bat", "printenv.sh", "cgi_echo.exe"};
 	    _ ->
-		"/cgi-bin/printenv.sh"
+		{"printenv.sh", "printenv.bat", "cgi_echo"}
 	end,
-    Requests = 
-	["GET " ++ Script ++ " HTTP/1.1\r\nHost:"++ Host ++"\r\n\r\n",
-	 "GET /cgi-bin/erl/httpd_example/newformat  HTTP/1.1\r\nHost:"
-	 ++ Host ++"\r\n\r\n"],
-    httpd_1_1:mod_cgi_chunked_encoding_test(ip_comm, ?IP_PORT,
-					    Host,
-					    ?config(node, Config),
-					    Requests),
-    ok.
-
-%------------------------------------------------------------------------- 
-
-ipv6_hostname_ipcomm() ->
-    [{require, ipv6_hosts}].
-ipv6_hostname_ipcomm(X) -> 
-    SocketType = ip_comm,
-    Port       = ?IP_PORT, 
-    ipv6_hostname(SocketType, Port, X).
-
-ipv6_hostname_essl() ->
-    [{require, ipv6_hosts}].
-ipv6_hostname_essl(X) -> 
-    SocketType = essl, 
-    Port       = ?SSL_PORT, 
-    ipv6_hostname(SocketType, Port, X).
-
-ipv6_hostname(_SocketType, _Port, doc) ->  
-    ["Test standard ipv6 address"];
-ipv6_hostname(_SocketType, _Port, suite)->
-    [];
-ipv6_hostname(SocketType, Port, Config) when is_list(Config) -> 
-    tsp("ipv6_hostname -> entry with"
-	"~n   SocketType: ~p"
-	"~n   Port:       ~p"
-	"~n   Config:     ~p", [SocketType, Port, Config]),
-    Host = ?config(host, Config),
-    URI  = "GET HTTP://" ++ 
-	Host ++ ":" ++ integer_to_list(Port) ++ "/ HTTP/1.1\r\n\r\n", 
-    tsp("ipv6_hostname -> Host: ~p", [Host]),
-    httpd_test_lib:verify_request(SocketType, Host, Port, [inet6], 
-				  node(), 
-				  URI, 
-				  [{statuscode, 200}, {version, "HTTP/1.1"}]),
-    ok.
-
-%%------------------------------------------------------------------------- 
-
-ipv6_address_ipcomm() ->
-    [{require, ipv6_hosts}].
-ipv6_address_ipcomm(X) ->
-    SocketType = ip_comm,
-    Port       = ?IP_PORT, 
-    ipv6_address(SocketType, Port, X).
-
-ipv6_address_essl() ->
-    [{require, ipv6_hosts}].
-ipv6_address_essl(X) ->
-    SocketType = essl,
-    Port       = ?SSL_PORT, 
-    ipv6_address(SocketType, Port, X).
-
-ipv6_address(_SocketType, _Port, doc) ->
-    ["Test standard ipv6 address"];
-ipv6_address(_SocketType, _Port, suite)->
-    [];
-ipv6_address(SocketType, Port, Config) when is_list(Config) ->   
-    tsp("ipv6_address -> entry with"
-	"~n   SocketType: ~p"
-	"~n   Port:       ~p"
-	"~n   Config:     ~p", [SocketType, Port, Config]),
-    Host = ?config(host, Config),
-    tsp("ipv6_address -> Host: ~p", [Host]),
-    URI = "GET HTTP://" ++ 
-	Host ++ ":" ++ integer_to_list(Port) ++ "/ HTTP/1.1\r\n\r\n", 
-    httpd_test_lib:verify_request(SocketType, Host, Port, [inet6], 
-				  node(), 
-				  URI, 
-				  [{statuscode, 200}, {version, "HTTP/1.1"}]),
-    ok.
-
-
-%%--------------------------------------------------------------------
-ticket_5775(doc) ->
-    ["Tests that content-length is correct"];
-ticket_5775(suite) ->
-    [];
-ticket_5775(Config) ->
-    ok=httpd_test_lib:verify_request(ip_comm, ?config(host, Config),
-				     ?IP_PORT, ?config(node, Config),
-				       "GET /cgi-bin/erl/httpd_example:get_bin "
-				       "HTTP/1.0\r\n\r\n", 
-				       [{statuscode, 200},
-				       {version, "HTTP/1.0"}]),
-    ok.
-ticket_5865(doc) ->
-    ["Tests that a header without last-modified is handled"];
-ticket_5865(suite) ->
-    [];
-ticket_5865(Config) ->
-    ?SKIP(as_of_r15_behaviour_of_calendar_has_changed),
-    Host = ?config(host,Config),
-    ServerRoot = ?config(server_root, Config), 
-    DocRoot = filename:join([ServerRoot, "htdocs"]),
-    File = filename:join([DocRoot,"last_modified.html"]),
-
-    Bad_mtime = case test_server:os_type() of
-		    {win32, _} ->
-			{{1600,12,31},{23,59,59}};
-		    {unix, _} ->
-			{{1969,12,31},{23,59,59}}
-		end,
-    
-    {ok,FI}=file:read_file_info(File),
-    
-    case file:write_file_info(File,FI#file_info{mtime=Bad_mtime}) of
-	ok ->
-	    ok = httpd_test_lib:verify_request(ip_comm, Host,
-					       ?IP_PORT, ?config(node, Config),
-					       "GET /last_modified.html"
-					       " HTTP/1.1\r\nHost:"
-					       ++Host++"\r\n\r\n", 
-					       [{statuscode, 200},
-						{no_header,
-						 "last-modified"}]),
-	    ok;
-	{error, Reason} ->
-	    Fault = 
-		io_lib:format("Attempt to change the file info to set the"
-			      " preconditions of the test case failed ~p~n",
-			      [Reason]),
-	    {skip, Fault}
-    end.
-
-ticket_5913(doc) ->
-    ["Tests that a header without last-modified is handled"];
-ticket_5913(suite) -> [];
-ticket_5913(Config) ->
-    ok = httpd_test_lib:verify_request(ip_comm, ?config(host, Config),
-				       ?IP_PORT, ?config(node, Config),
-				       "GET /cgi-bin/erl/httpd_example:get_bin "
-				       "HTTP/1.0\r\n\r\n", 
-				       [{statuscode, 200},
-					{version, "HTTP/1.0"}]),
-    ok.
 
-ticket_6003(doc) ->
-    ["Tests that a URI with a bad hexadecimal code is handled"];
-ticket_6003(suite) -> [];
-ticket_6003(Config) ->
-    ok = httpd_test_lib:verify_request(ip_comm, ?config(host, Config),
-				       ?IP_PORT, ?config(node, Config),
-				       "GET http://www.erlang.org/%skalle "
-				       "HTTP/1.0\r\n\r\n",
-				       [{statuscode, 400},
-					{version, "HTTP/1.0"}]),
-    ok.
+     %%The length (> 100) is intentional
+     ok = http_status("POST /cgi-bin/" ++ Script3 ++ " ",
+		     {"Content-Length:100 \r\n",
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		      "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"},
+		      Config,
+		     [{statuscode, 200},
+		      {header, "content-type", "text/plain"}]),
+
+    ok = http_status("GET /cgi-bin/"++ Script ++ " ", Config, [{statuscode, 200}]),
+
+    ok = http_status("GET /cgi-bin/not_there ", Config,
+		     [{statuscode, 404}, {statuscode, 500}]),
+
+    ok = http_status("GET /cgi-bin/"++ Script ++ "?Nisse:kkk?sss/lll ",
+		     Config,
+		     [{statuscode, 200}]),
+
+    ok = http_status("POST /cgi-bin/"++ Script  ++ " ", Config,
+		     [{statuscode, 200}]),
+
+    ok = http_status("GET /htbin/"++ Script ++ " ",  Config,
+		     [{statuscode, 200}]),
+
+    ok = http_status("GET /htbin/not_there ", Config,
+		     [{statuscode, 404},{statuscode, 500}]),
+
+    ok = http_status("GET /htbin/"++ Script ++ "?Nisse:kkk?sss/lll ", Config,
+		     [{statuscode, 200}]),
+
+    ok = http_status("POST /htbin/"++ Script ++ " ",   Config,
+		     [{statuscode, 200}]),
+
+    ok = http_status("POST /htbin/"++ Script ++ " ",  Config,
+		     [{statuscode, 200}]),
+
+    %% Execute an existing, but bad CGI script..
+    ok = http_status("POST /htbin/"++ Script2 ++ " ",  Config,
+		     [{statuscode, 404}]),
+
+    ok = http_status("POST /cgi-bin/"++ Script2 ++ " ", Config,
+		     [{statuscode, 404}]),
+
+    %% Check "ScriptNoCache" directive (default: false)
+    ok = http_status("GET /cgi-bin/" ++ Script ++ " ", Config,
+		     [{statuscode, 200},
+		      {no_header, "cache-control"}]).
+
+alias() ->
+    [{doc, "Test mod_alias"}].
+
+alias(Config) when is_list(Config) ->
+    ok = http_status("GET /pics/icon.sheet.gif ", Config,
+		     [{statuscode, 200},
+		      {header, "Content-Type","image/gif"},
+		      {header, "Server"},
+		      {header, "Date"}]),
+
+    ok = http_status("GET / ", Config,
+		     [{statuscode, 200},
+		      {header, "Content-Type","text/html"},
+		      {header, "Server"},
+		      {header, "Date"}]),
+
+    ok = http_status("GET /misc/ ", Config,
+		     [{statuscode, 200},
+		      {header, "Content-Type","text/html"},
+		      {header, "Server"},
+		      {header, "Date"}]),
+
+    %% Check redirection if trailing slash is missing.
+    ok = http_status("GET /misc ", Config,
+		     [{statuscode, 301},
+		      {header, "Location"},
+		      {header, "Content-Type","text/html"}]).
+
+
+%% auth_api() ->
+%%     [{doc, "Test mod_auth API"}].
+
+%% auth_api(Config) when is_list(Config) ->
+%%     Version = ?config(http_version, Config),
+%%     Host = ?config(host, Config),
+%%     ok = http_status("GET / ", Config,
+%% 		     [{statuscode, 200}]),
+%%     ok = auth_status(auth_request("/", "one", "WrongPassword", Version, Host), Config,
+%% 		     [{statuscode, 200}]),
+
+%%     %% Make sure Authenticate header is received even the second time
+%%     %% we try a incorrect password! Otherwise a browser client will hang!
+%%     ok = auth_status(auth_request("/" ++ AuthStoreType ++ "open/",
+%% 				  "dummy", "WrongPassword", Host), Config,
+%% 		     [{statuscode, 401},
+%% 		      {header, "WWW-Authenticate"}]),
+%%     ok = auth_status(auth_request("/" ++ AuthStoreType ++ "open/", "dummy", "WrongPassword",
+%% 				  Host), Config, [{statuscode, 401},
+%% 						  {header, "WWW-Authenticate"}]),
+
+%%     %% Change the password to DummyPassword then try to add a user
+%%     %% Get an error and set it to NoPassword
+%%     ok = update_password(Node, ServerRoot, Host, Port, AuthStoreType ++
+%% 			 "open", "NoPassword", "DummyPassword"),
+%%     {error,bad_password} =
+%% 	add_user(Node, ServerRoot, Port, AuthStoreType ++ "open", "one",
+%% 		 "onePassword", []),
+%%     ok = update_password(Node, ServerRoot, Host, Port, AuthStoreType ++"open",
+%% 			 "DummyPassword", "NoPassword"),
+
+%%     %% Test /*open, require user one Aladdin
+%%     remove_users(Node, ServerRoot, Host, Port, AuthStoreType ++ "open"),
+
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++ "open/",
+%% 		 "one", "onePassword", [{statuscode, 401}]),
+
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++ "open/",
+%% 		 "two", "twoPassword", [{statuscode, 401}]),
+
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++ "open/",
+%% 		 "Aladdin", "onePassword", [{statuscode, 401}]),
+
+%%     add_user(Node, ServerRoot, Port, AuthStoreType ++ "open", "one",
+%% 	     "onePassword", []),
+%%     add_user(Node, ServerRoot, Port, AuthStoreType ++ "open", "two",
+%% 	     "twoPassword", []),
+%%     add_user(Node, ServerRoot, Port, AuthStoreType ++ "open", "Aladdin",
+%% 	     "AladdinPassword", []),
+
+%%     {ok, [_|_]} = list_users(Node, ServerRoot, Host, Port,
+%% 			  AuthStoreType++"open"),
+%%     auth_request(Type, Host, Port, Node, "/" ++ AuthStoreType ++ "open/",
+%% 		 "one", "WrongPassword", [{statuscode, 401}]),
+%%     auth_request(Type, Host, Port, Node, "/" ++ AuthStoreType ++ "open/",
+%% 		 "one", "onePassword", [{statuscode, 200}]),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++ "open/",
+%% 		 "two", "twoPassword", [{statuscode, 401}]),
+%%     auth_request(Type, Host, Port, Node, "/" ++ AuthStoreType ++ "open/",
+%% 		 "Aladdin", "WrongPassword", [{statuscode, 401}]),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++ "open/",
+%% 		 "Aladdin", "AladdinPassword", [{statuscode, 200}]),
+
+%%     remove_users(Node, ServerRoot, Host, Port, AuthStoreType++"open"),
+%%     {ok, []} = list_users(Node, ServerRoot, Host, Port,
+%% 			  AuthStoreType++"open"),
+
+%%     %% Phase 2
+%%     remove_users(Node, ServerRoot, Host, Port, AuthStoreType++"secret"),
+%%     {ok, []} = list_users(Node, ServerRoot, Host, Port, AuthStoreType ++
+%% 			  "secret"),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++ "secret/",
+%% 		 "one", "onePassword", [{statuscode, 401}]),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++ "secret/",
+%% 		 "two", "twoPassword", [{statuscode, 401}]),
+%%     auth_request(Type, Host, Port,  Node, "/" ++ AuthStoreType ++ "secret/",
+%% 		 "three", "threePassword", [{statuscode, 401}]),
+%%     add_user(Node, ServerRoot, Port, AuthStoreType ++ "secret", "one",
+%% 	     "onePassword",
+%% 	     []),
+%%     add_user(Node, ServerRoot, Port, AuthStoreType ++ "secret",
+%% 	     "two", "twoPassword", []),
+%%     add_user(Node, ServerRoot, Port, AuthStoreType++"secret", "Aladdin",
+%% 	     "AladdinPassword",[]),
+%%     add_group_member(Node, ServerRoot, Port, AuthStoreType ++ "secret",
+%% 		     "one", "group1"),
+%%     add_group_member(Node, ServerRoot, Port, AuthStoreType ++ "secret",
+%% 		     "two", "group1"),
+%%     add_group_member(Node, ServerRoot, Port, AuthStoreType ++
+%% 		     "secret", "Aladdin", "group2"),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++ "secret/",
+%% 		 "one", "onePassword", [{statuscode, 200}]),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++ "secret/",
+%% 		 "two", "twoPassword", [{statuscode, 200}]),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++ "secret/",
+%% 		 "Aladdin", "AladdinPassword", [{statuscode, 200}]),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++ "secret/",
+%% 		 "three", "threePassword", [{statuscode, 401}]),
+%%     remove_users(Node, ServerRoot, Host, Port, AuthStoreType ++ "secret"),
+%%     {ok, []} = list_users(Node, ServerRoot, Host, Port,
+%% 			  AuthStoreType ++ "secret"),
+%%     remove_groups(Node, ServerRoot, Host, Port, AuthStoreType ++ "secret"),
+%%     Directory = filename:join([ServerRoot, "htdocs", AuthStoreType ++
+%% 			       "secret"]),
+%%     {ok, []} = list_groups(Node, ServerRoot, Host, Port, Directory),
+
+%%     %% Phase 3
+%%     remove_users(Node, ServerRoot, Host, Port, AuthStoreType ++
+%% 		 "secret/top_secret"),
+%%     remove_groups(Node, ServerRoot, Host, Port, AuthStoreType ++
+%% 		  "secret/top_secret"),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++
+%% 		 "secret/top_secret/",
+%% 		 "three", "threePassword", [{statuscode, 401}]),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++
+%% 		 "secret/top_secret/", "two", "twoPassword",
+%% 		 [{statuscode, 401}]),
+%%     add_user(Node, ServerRoot, Port, AuthStoreType ++
+%% 	     "secret/top_secret","three",
+%% 	     "threePassword",[]),
+%%     add_user(Node, ServerRoot, Port, AuthStoreType ++ "secret/top_secret",
+%% 	     "two","twoPassword", []),
+%%     add_group_member(Node, ServerRoot, Port, AuthStoreType ++
+%% 		     "secret/top_secret",
+%% 		     "three", "group3"),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++
+%% 		 "secret/top_secret/", "three", "threePassword",
+%% 		 [{statuscode, 200}]),
+%%     auth_request(Type, Host, Port, Node,"/" ++ AuthStoreType ++
+%% 		 "secret/top_secret/", "two", "twoPassword",
+%% 		 [{statuscode, 401}]),
+%%     add_group_member(Node, ServerRoot, Port, AuthStoreType ++
+%% 		     "secret/top_secret",
+%% 		     "two", "group3"),
+%%     auth_request(Type,Host,Port,Node,"/" ++ AuthStoreType ++
+%% 		 "secret/top_secret/",
+%% 		 "two", "twoPassword", [{statuscode, 200}]),
+%%     remove_users(Node, ServerRoot, Host, Port, AuthStoreType ++
+%% 		 "secret/top_secret"),
+%%     {ok, []} = list_users(Node, ServerRoot, Host, Port,
+%% 			  AuthStoreType ++ "secret/top_secret"),
+%%     remove_groups(Node, ServerRoot, Host, Port, AuthStoreType ++
+%% 		  "secret/top_secret"),
+%%     Directory2 = filename:join([ServerRoot, "htdocs",
+%% 				AuthStoreType ++ "secret/top_secret"]),
+%%     {ok, []} = list_groups(Node, ServerRoot, Host, Port, Directory2),
+%%     auth_request(Type, Host, Port, Node, "/" ++ AuthStoreType ++
+%% 		 "secret/top_secret/", "two", "twoPassword",
+%% 		 [{statuscode, 401}]),
+%%     auth_request(Type, Host, Port, Node, "/" ++ AuthStoreType ++
+%% 		 "secret/top_secret/","three", "threePassword",
+%% 		 [{statuscode, 401}]).
 
-ticket_7304(doc) ->
-     ["Tests missing CR in delimiter"];
-ticket_7304(suite) -> 
-    [];
-ticket_7304(Config) ->
-    ok = httpd_test_lib:verify_request(ip_comm, ?config(host, Config),
-				       ?IP_PORT, ?config(node, Config),
-				       "GET / HTTP/1.0\r\n\n",
-				       [{statuscode, 200},
-					{version, "HTTP/1.0"}]),
-    ok.
 
 %%--------------------------------------------------------------------
-%% Internal functions
+%% Internal functions -----------------------------------
 %%--------------------------------------------------------------------
-dos_hostname(Type, Port, Host, Node, Max) ->
-    H1 = {"", 200},
-    H2 = {"dummy-host.ericsson.se", 200},
-    TooLongHeader = lists:append(lists:duplicate(Max + 1, "a")),
-    H3 = {TooLongHeader, 403},
-    Hosts = [H1,H2,H3],
-    dos_hostname_poll(Type, Host, Port, Node, Hosts).
 
-%% make_ipv6(T) when is_tuple(T) andalso (size(T) =:= 8) ->
-%%     make_ipv6(tuple_to_list(T));
+setup_server_dirs(ServerRoot, DocRoot, DataDir) ->
+    CgiDir =  filename:join(ServerRoot, "cgi-bin"),
+    AuthDir =  filename:join(ServerRoot, "auth"),
+    PicsDir =  filename:join(ServerRoot, "icons"),
 
-%% make_ipv6([_, _, _, _, _, _, _, _] = IPV6) ->
-%%     lists:flatten(io_lib:format("~s:~s:~s:~s:~s:~s:~s:~s", IPV6)).
+    ok = file:make_dir(ServerRoot),
+    ok = file:make_dir(DocRoot),
+    ok = file:make_dir(CgiDir),
+    ok = file:make_dir(AuthDir),
+    ok = file:make_dir(PicsDir),
+
+    DocSrc = filename:join(DataDir, "server_root/htdocs"),
+    AuthSrc = filename:join(DataDir, "server_root/auth"),
+    CgiSrc =  filename:join(DataDir, "server_root/cgi-bin"),
+    PicsSrc =  filename:join(DataDir, "server_root/icons"),
+
+    inets_test_lib:copy_dirs(DocSrc, DocRoot),
+    inets_test_lib:copy_dirs(AuthSrc, AuthDir),
+    inets_test_lib:copy_dirs(CgiSrc, CgiDir),
+    inets_test_lib:copy_dirs(PicsSrc, PicsDir),
+
+    Cgi = case test_server:os_type() of
+	      {win32, _} ->
+		  "cgi_echo.exe";
+	      _ ->
+		  "cgi_echo"
+	  end,
 
+    inets_test_lib:copy_file(Cgi, DataDir, CgiDir),
+    AbsCgi = filename:join([CgiDir, Cgi]),
+    {ok, FileInfo} = file:read_file_info(AbsCgi),
+    ok = file:write_file_info(AbsCgi, FileInfo#file_info{mode = 8#00755}),
 
-%%--------------------------------------------------------------------
-%% Other help functions
-create_config(Config, Access, FileName) ->
-    ServerRoot = ?config(server_root, Config),
-    TcTopDir   = ?config(tc_top_dir,  Config),
-    Port       = ?config(port,        Config),
-    Type       = ?config(sock_type,   Config),
-    Host       = ?config(host,        Config),
-    Mods       = io_lib:format("~p", [httpd_mod]),
-    Funcs      = io_lib:format("~p", [ssl_password_cb]),
-    MaxHdrSz   = io_lib:format("~p", [256]),
-    MaxHdrAct  = io_lib:format("~p", [close]),
-
-    io:format(user, 
-	      "create_config -> "
-	      "~n   ServerRoot: ~p"
-	      "~n   TcTopDir:   ~p"
-	      "~n   Type:       ~p"
-	      "~n   Port:       ~p"
-	      "~n   Host:       ~p"
-	      "~n", [ServerRoot, TcTopDir, Type, Port, Host]),
-
-    SSL =
-	if
-	    (Type =:= ssl)  orelse 
-	    (Type =:= essl) ->
-		[cline(["SSLCertificateFile ", 
-			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
-		 cline(["SSLCertificateKeyFile ",
-			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
-		 cline(["SSLCACertificateFile ",
-			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
-		 cline(["SSLPasswordCallbackModule ", Mods]),
-		 cline(["SSLPasswordCallbackFunction ", Funcs]),
-		 cline(["SSLVerifyClient 0"]),
-		 cline(["SSLVerifyDepth 1"])];
-	    true ->
-		[]
-	end,
-    ModOrder = 
-	case Access of
-	    mod_htaccess ->
-		"Modules mod_alias mod_htaccess mod_auth "
-		    "mod_security "
-		    "mod_responsecontrol mod_trace mod_esi "
-		    "mod_actions mod_cgi mod_include mod_dir "
-		    "mod_range mod_get "
-		    "mod_head mod_log mod_disk_log";
-	    _ ->
-		"Modules mod_alias mod_auth mod_security "
-		    "mod_responsecontrol mod_trace mod_esi "
-		    "mod_actions mod_cgi mod_include mod_dir "
-			   "mod_range mod_get "
-		    "mod_head mod_log mod_disk_log"
-	end,
-    
-    %% The test suite currently does not handle an explicit BindAddress.
-    %% They assume any has been used, that is Addr is always set to undefined!
-
-    %%     {ok, Hostname} = inet:gethostname(), 
-    %%     {ok, Addr} = inet:getaddr(Hostname, inet6),
-    %%     AddrStr = make_ipv6(Addr), 
-    %%     BindAddress = lists:flatten(io_lib:format("~s|inet6", [AddrStr])),
-
-    BindAddress = "*|inet", 
-    %% BindAddress = "*", 
-
-    HttpConfig = [
-		  cline(["Port ", integer_to_list(Port)]),
-		  cline(["ServerName ", Host]),
-		  cline(["SocketType ", atom_to_list(Type)]),
-		  cline([ModOrder]),
-		  %% cline(["LogFormat ", "erlang"]),
-		  cline(["ServerAdmin mattias@erix.ericsson.se"]),
-		  cline(["BindAddress ", BindAddress]),
-		  cline(["ServerRoot ", ServerRoot]),
-		  cline(["ErrorLog ", TcTopDir, 
-		     "/logs/error_log_", integer_to_list(Port)]),
-		  cline(["TransferLog ", TcTopDir, 
-			 "/logs/access_log_", integer_to_list(Port)]),
-		  cline(["SecurityLog ", TcTopDir, 
-			 "/logs/security_log_", integer_to_list(Port)]),
-		  cline(["ErrorDiskLog ", TcTopDir, 
-			 "/logs/error_disk_log_", integer_to_list(Port)]),
-		  cline(["ErrorDiskLogSize ", "190000 ", "11"]),
-		  cline(["TransferDiskLog ", TcTopDir, 
-			 "/logs/access_disk_log_", integer_to_list(Port)]),
-		  cline(["TransferDiskLogSize ", "200000 ", "10"]),
-		  cline(["SecurityDiskLog ", TcTopDir, 
-			 "/logs/security_disk_log_", integer_to_list(Port)]),
-		  cline(["SecurityDiskLogSize ", "210000 ", "9"]),
-		  cline(["MaxClients 10"]),
-		  cline(["MaxHeaderSize ", MaxHdrSz]),
-		  cline(["MaxHeaderAction ", MaxHdrAct]),
-		  cline(["DocumentRoot ", 
-			 filename:join(ServerRoot, "htdocs")]),
-		  cline(["DirectoryIndex ", "index.html ", "welcome.html"]),
-		  cline(["DefaultType ", "text/plain"]),
-		  SSL,
-		  mod_alias_config(ServerRoot),
-		  
-		  config_directory(filename:join([ServerRoot,"htdocs",
-						  "open"]),
-				   "Open Area", 
-				   filename:join(ServerRoot, "auth/passwd"),
-				   filename:join(ServerRoot, "auth/group"),
-				   plain,
-				   "user one Aladdin",
-				   filename:join(ServerRoot, "security_data")),
-		  config_directory(filename:join([ServerRoot,"htdocs", 
-						  "secret"]),
-				   "Secret Area", 
-				   filename:join(ServerRoot, "auth/passwd"),
-				   filename:join(ServerRoot, "auth/group"),
-				   plain,
-				   "group group1 group2",
-				   filename:join(ServerRoot, "security_data")),
-		  config_directory(filename:join([ServerRoot,"htdocs", 
-						  "secret", 
-						  "top_secret"]),
-				   "Top Secret Area", 
-				   filename:join(ServerRoot, "auth/passwd"),
-				   filename:join(ServerRoot, "auth/group"),
-				   plain,
-				   "group group3",
-				   filename:join(ServerRoot, "security_data")),
-		  
-		  config_directory(filename:join([ServerRoot,"htdocs", 
-						  "dets_open"]),
-				   "Dets Open Area", 
-				   filename:join(ServerRoot, "passwd"),
-				   filename:join(ServerRoot, "group"),
-				   dets,
-				   "user one Aladdin",
-				   filename:join(ServerRoot, "security_data")),
-		  config_directory(filename:join([ServerRoot,"htdocs", 
-						  "dets_secret"]),
-			       "Dets Secret Area", 
-				   filename:join(ServerRoot, "passwd"),
-				   filename:join(ServerRoot, "group"),
-				   dets,
-				   "group group1 group2",
-				   filename:join(ServerRoot, "security_data")),
-		  config_directory(filename:join([ServerRoot,"htdocs", 
-						  "dets_secret", 
-						  "top_secret"]),
-				   "Dets Top Secret Area", 
-				   filename:join(ServerRoot, "passwd"),
-				   filename:join(ServerRoot, "group"),
-				   dets,
-				   "group group3",
-				   filename:join(ServerRoot, "security_data")),
-		  
-		  config_directory(filename:join([ServerRoot,"htdocs", 
-						  "mnesia_open"]),
-				   "Mnesia Open Area", 
-				   false,
-				   false,
-				   mnesia,
-				   "user one Aladdin",
-			       filename:join(ServerRoot, "security_data")),
-		  config_directory(filename:join([ServerRoot,"htdocs", 
-						  "mnesia_secret"]),
-				   "Mnesia Secret Area", 
-				   false,
-				   false,
-				   mnesia,
-				   "group group1 group2",
-				   filename:join(ServerRoot, "security_data")),
-		  config_directory(filename:join(
-				     [ServerRoot, "htdocs", "mnesia_secret",
-				      "top_secret"]),
-				   "Mnesia Top Secret Area", 
-				   false,
-				   false,
-				   mnesia,
-				   "group group3",
-				   filename:join(ServerRoot, "security_data"))
-		 ],
-    ConfigFile = filename:join([TcTopDir, FileName]),
-    {ok, Fd} = file:open(ConfigFile, [write]),
-    ok = file:write(Fd, lists:flatten(HttpConfig)),
-    ok = file:close(Fd).
-
-config_directory(Dir, AuthName, AuthUserFile, AuthGroupFile, AuthDBType, 
-		 Require, SF) ->
-    file:delete(SF),
-    [
-     cline(["<Directory ", Dir, ">"]),
-     cline(["SecurityDataFile ", SF]),
-     cline(["SecurityMaxRetries 3"]),
-     cline(["SecurityFailExpireTime ", integer_to_list(?FAIL_EXPIRE_TIME)]),
-     cline(["SecurityBlockTime 1"]),
-     cline(["SecurityAuthTimeout ", integer_to_list(?AUTH_TIMEOUT)]),
-     cline(["SecurityCallbackModule ", "httpd_mod"]),
-     cline_if_set("AuthUserFile", AuthUserFile),
-     cline_if_set("AuthGroupFile", AuthGroupFile),
-     cline_if_set("AuthName", AuthName),
-     cline_if_set("AuthDBType", AuthDBType),
-     cline(["require ", Require]),
-     cline(["</Directory>\r\n"])
-    ].
+    EnvCGI =  filename:join([ServerRoot, "cgi-bin", "printenv.sh"]),
+    {ok, FileInfo1} = file:read_file_info(EnvCGI),
+    ok = file:write_file_info(EnvCGI,
+			      FileInfo1#file_info{mode = 8#00755}).
 
-mod_alias_config(Root) ->
-    [
-     cline(["Alias /icons/ ", filename:join(Root,"icons"), "/"]),
-     cline(["Alias /pics/ ", filename:join(Root, "icons"), "/"]),
-     cline(["ScriptAlias /cgi-bin/ ", filename:join(Root, "cgi-bin"), "/"]),
-     cline(["ScriptAlias /htbin/ ", filename:join(Root, "cgi-bin"), "/"]),
-     cline(["ErlScriptAlias /cgi-bin/erl httpd_example io"]),
-     cline(["EvalScriptAlias /eval httpd_example io"])
-    ].
+start_apps(https) ->
+    inets_test_lib:start_apps([crypto, public_key, ssl]);
+start_apps(_) ->
+    ok.
 
-cline(List) ->
-    lists:flatten([List, "\r\n"]).
+server_start(_, HttpdConfig) ->
+    {ok, Pid} = inets:start(httpd, HttpdConfig),
+    Serv = inets:services_info(),
+    {value, {_, _, Info}} = lists:keysearch(Pid, 2, Serv),
+    proplists:get_value(port, Info).
 
-cline_if_set(_, false) ->
-    [];
-cline_if_set(Name, Var) when is_list(Var) ->
-    cline([Name, " ", Var]);
-cline_if_set(Name, Var) when is_atom(Var) ->
-    cline([Name, " ", atom_to_list(Var)]).
 
-getaddr() ->
-    {ok,HostName} = inet:gethostname(),
-    {ok,{A1,A2,A3,A4}} = inet:getaddr(HostName,inet),
-    lists:flatten(io_lib:format("~p.~p.~p.~p",[A1,A2,A3,A4])).
+server_config(http, Config) ->
+    ServerRoot = ?config(server_root, Config),
+    [{port, 0},
+     {server_name,"httpd_test"},
+     {server_root, ServerRoot},
+     {document_root, ?config(doc_root, Config)},
+     {bind_address, any},
+     {ipfamily, inet},
+     {max_header_size, 256},
+     {max_header_action, close},
+     {mime_types, [{"html","text/html"},{"htm","text/html"}, {"shtml","text/html"},
+		   {"gif", "image/gif"}]},
+     {alias, {"/icons/", filename:join(ServerRoot,"icons") ++ "/"}},
+     {alias, {"/pics/",  filename:join(ServerRoot,"icons") ++ "/"}},
+     {script_alias, {"/cgi-bin/", filename:join(ServerRoot, "cgi-bin") ++ "/"}},
+     {script_alias, {"/htbin/", filename:join(ServerRoot, "cgi-bin") ++ "/"}},
+     {erl_script_alias, {"/cgi-bin/erl", [httpd_example, io]}},
+     {eval_script_alias, {"/eval", [httpd_example, io]}}
+    ] ++  auth_conf(ServerRoot);
+server_config(_, _) ->
+    [].
+
+http_request(Request, "HTTP/1.1" = Version, Host, {Headers, Body}) ->
+    Request ++ Version ++ "\r\nhost:" ++ Host ++ "\r\n" ++ Headers ++ "\r\n" ++ Body;
+http_request(Request, Version, _, {Headers, Body}) ->
+    Request ++ Version ++ "\r\n" ++ Headers  ++ "\r\n" ++ Body.
+
+http_request(Request, "HTTP/1.1" = Version, Host) ->
+    Request ++ Version ++ "\r\nhost:" ++ Host  ++ "\r\n\r\n";
+http_request(Request, Version, _) ->
+    Request ++ Version ++ "\r\n\r\n".
+
+auth_request(Path, User, Passwd, "HTTP/1.1" = Version, Host) ->
+    "GET " ++ Path ++ " " ++ Version ++  "\r\nhost:" ++ Host  ++
+	"\r\nAuthorization: Basic " ++
+	base64:encode_to_string(User++":"++Passwd) ++
+	"\r\n\r\n";
+auth_request(Path, User, Passwd, Version, _Host) ->
+    "GET " ++ Path ++ " " ++ Version ++
+	"\r\nAuthorization: Basic " ++
+	base64:encode_to_string(User++":"++Passwd) ++
+	"\r\n\r\n".
+
+head_status("HTTP/0.9") ->
+    501; %% Not implemented in HTTP/0.9
+head_status(_) ->
+    200.
+
+auth_conf(Root) ->
+    [{directory, {filename:join(Root, "htdocs/open"),
+		  [{auth_type, plain},
+		   {auth_name, "Open Area"},
+		   {auth_user_file, filename:join(Root, "auth/passwd")},
+		   {auth_group_file, filename:join(Root, "auth/group")},
+		   {require_user, ["one", "Aladdin"]}]}},
+    {directory, {filename:join(Root, "htdocs/secret"),
+		  [{auth_type, plain},
+		   {auth_name, "Secret Area"},
+		   {auth_user_file, filename:join(Root, "auth/passwd")},
+		   {auth_group_file, filename:join(Root, "auth/group")},
+		   {require_group, ["group1", "group2"]}]}},
+     {directory, {filename:join(Root, "htdocs/secret/top_secret"),
+		  [{auth_type, plain},
+		   {auth_name, "Top Secret Area"},
+		   {auth_user_file, filename:join(Root, "auth/passwd")},
+		   {auth_group_file, filename:join(Root, "auth/group")},
+		   {require_group, ["group3"]}]}},
+     {directory, {filename:join(Root, "htdocs/open"),
+		  [{auth_type, mnesia},
+		   {auth_name, "Open Area"},
+		   {auth_user_file, filename:join(Root, "auth/passwd")},
+		   {auth_group_file, filename:join(Root, "auth/group")},
+		   {require_user, ["one", "Aladdin"]}]}},
+     {directory, {filename:join(Root, "htdocs/secret"),
+		  [{auth_type, mnesia},
+		   {auth_name, "Secret Area"},
+		   {auth_user_file, filename:join(Root, "auth/passwd")},
+		   {auth_group_file, filename:join(Root, "auth/group")},
+		   {require_group, ["group1", "group2"]}]}}
+    ].
 
-start_mnesia(Node) ->
-    case rpc:call(Node, ?MODULE, cleanup_mnesia, []) of
-	ok ->
-	    ok;
-	Other ->
-	    tsf({failed_to_cleanup_mnesia, Other})
-    end,
-    case rpc:call(Node, ?MODULE, setup_mnesia, []) of
-	{atomic, ok} ->
-	    ok;
-	Other2 ->
-	    tsf({failed_to_setup_mnesia, Other2})
-    end,
-    ok.
 
-setup_mnesia() ->
-    setup_mnesia([node()]).
-
-setup_mnesia(Nodes) ->
-    ok = mnesia:create_schema(Nodes),
-    ok = mnesia:start(),
-    {atomic, ok} = mnesia:create_table(httpd_user,
-				       [{attributes, 
-					 record_info(fields, httpd_user)}, 
-					{disc_copies,Nodes}, {type, set}]),
-    {atomic, ok} = mnesia:create_table(httpd_group,
-				       [{attributes, 
-					 record_info(fields,
-						     httpd_group)}, 
-					{disc_copies,Nodes}, {type,bag}]).
-
-cleanup_mnesia() ->
-    mnesia:start(),
-    mnesia:delete_table(httpd_user),
-    mnesia:delete_table(httpd_group),
-    stopped = mnesia:stop(),
-    mnesia:delete_schema([node()]),
-    ok.
+http_status(Request, Config, Expected) ->
+    Version = ?config(http_version, Config),
+    Host = ?config(host, Config),
+    httpd_test_lib:verify_request(?config(type, Config), Host,
+				  ?config(port, Config),  ?config(node, Config),
+				  http_request(Request, Version, Host),
+				  Expected ++ [{version, Version}]).
 
-create_htaccess_data(Path, IpAddress)->
-    create_htaccess_dirs(Path),
-    
-    create_html_file(filename:join([Path,"ht/open/dummy.html"])),
-    create_html_file(filename:join([Path,"ht/blocknet/dummy.html"])),
-    create_html_file(filename:join([Path,"ht/secret/dummy.html"])),
-    create_html_file(filename:join([Path,"ht/secret/top_secret/dummy.html"])),
-    
-    create_htaccess_file(filename:join([Path,"ht/open/.htaccess"]),
-			 Path, "user one Aladdin"),
-    create_htaccess_file(filename:join([Path,"ht/secret/.htaccess"]),
-			 Path, "group group1 group2"),
-    create_htaccess_file(filename:join([Path,
-				       "ht/secret/top_secret/.htaccess"]),
-			Path, "user four"),
-    create_htaccess_file(filename:join([Path,"ht/blocknet/.htaccess"]),
-			Path, nouser, IpAddress),
-   
-    create_user_group_file(filename:join([Path,"ht","users.file"]),
-			   "one:OnePassword\ntwo:TwoPassword\nthree:"
-			   "ThreePassword\nfour:FourPassword\nAladdin:"
-			   "AladdinPassword"),
-    create_user_group_file(filename:join([Path,"ht","groups.file"]),
-			   "group1: two one\ngroup2: two three").
-
-create_html_file(PathAndFileName)->
-    file:write_file(PathAndFileName,list_to_binary(
-	 "<html><head><title>test</title></head>
-         <body>testar</body></html>")).
-
-create_htaccess_file(PathAndFileName, BaseDir, RequireData)->
-    file:write_file(PathAndFileName,
-		    list_to_binary(
-		      "AuthUserFile "++ BaseDir ++
-		      "/ht/users.file\nAuthGroupFile "++ BaseDir
-		      ++ "/ht/groups.file\nAuthName Test\nAuthType"
-		      " Basic\n<Limit>\nrequire " ++ RequireData ++
-		      "\n</Limit>")).
-
-create_htaccess_file(PathAndFileName, BaseDir, nouser, IpAddress)->
-    file:write_file(PathAndFileName,list_to_binary(
-				      "AuthUserFile "++ BaseDir ++
-				      "/ht/users.file\nAuthGroupFile " ++ 
-				      BaseDir ++ "/ht/groups.file\nAuthName"
-				      " Test\nAuthType"
-				      " Basic\n<Limit GET>\n\tallow from " ++ 
-				      format_ip(IpAddress,
-						string:rchr(IpAddress,$.)) ++ 
-				      "\n</Limit>")).
-
-create_user_group_file(PathAndFileName, Data)->
-    file:write_file(PathAndFileName, list_to_binary(Data)).
-
-create_htaccess_dirs(Path)->
-    ok = file:make_dir(filename:join([Path,"ht"])),
-    ok = file:make_dir(filename:join([Path,"ht/open"])),
-    ok = file:make_dir(filename:join([Path,"ht/blocknet"])),
-    ok = file:make_dir(filename:join([Path,"ht/secret"])),
-    ok = file:make_dir(filename:join([Path,"ht/secret/top_secret"])).
-
-remove_htaccess_dirs(Path)->
-    file:del_dir(filename:join([Path,"ht/secret/top_secret"])),
-    file:del_dir(filename:join([Path,"ht/secret"])),
-    file:del_dir(filename:join([Path,"ht/blocknet"])),
-    file:del_dir(filename:join([Path,"ht/open"])),
-    file:del_dir(filename:join([Path,"ht"])).
-
-format_ip(IpAddress,Pos)when Pos > 0->
-    case lists:nth(Pos,IpAddress) of
-	$.->
-	    case lists:nth(Pos-2,IpAddress) of
-		$.->
-		   format_ip(IpAddress,Pos-3);
-		_->
-		    lists:sublist(IpAddress,Pos-2) ++ "."
-	    end;
-	_ ->
-	    format_ip(IpAddress,Pos-1)
-    end;
+http_status(Request, HeadersAndBody, Config, Expected) ->
+    Version = ?config(http_version, Config),
+    Host = ?config(host, Config),
+    httpd_test_lib:verify_request(?config(type, Config), Host,
+				  ?config(port, Config),  ?config(node, Config),
+				  http_request(Request, Version, Host, HeadersAndBody),
+				  Expected ++ [{version, Version}]).
 
-format_ip(IpAddress, _Pos)->
-    "1" ++ IpAddress.
-
-remove_htaccess(Path)->
-    file:delete(filename:join([Path,"ht/open/dummy.html"])),
-    file:delete(filename:join([Path,"ht/secret/dummy.html"])),
-    file:delete(filename:join([Path,"ht/secret/top_secret/dummy.html"])),
-    file:delete(filename:join([Path,"ht/blocknet/dummy.html"])),
-    file:delete(filename:join([Path,"ht/blocknet/.htaccess"])),
-    file:delete(filename:join([Path,"ht/open/.htaccess"])),
-    file:delete(filename:join([Path,"ht/secret/.htaccess"])),
-    file:delete(filename:join([Path,"ht/secret/top_secret/.htaccess"])),
-    file:delete(filename:join([Path,"ht","users.file"])),
-    file:delete(filename:join([Path,"ht","groups.file"])),
-    remove_htaccess_dirs(Path).
-
-
-dos_hostname_poll(Type, Host, Port, Node, Hosts) ->
-    [dos_hostname_poll1(Type, Host, Port, Node, Host1, Code)
-     || {Host1,Code} <- Hosts].
-
-dos_hostname_poll1(Type, Host, Port, Node, Host1, Code) ->
-    ok = httpd_test_lib:verify_request(Type, Host, Port, Node, 
-				       dos_hostname_request(Host1),
-				       [{statuscode, Code},
-					{version, "HTTP/1.0"}]).
-        
-dos_hostname_request(Host) ->
-    "GET / HTTP/1.0\r\n" ++ Host ++ "\r\n\r\n".
-
-get_nof_clients(Mode, Load) ->
-    get_nof_clients(test_server:os_type(), Mode, Load).
-
-get_nof_clients(vxworks, _,       light)  -> 1;
-get_nof_clients(vxworks, ip_comm, medium) -> 3;
-get_nof_clients(vxworks, ssl,     medium) -> 3;
-get_nof_clients(vxworks, ip_comm, heavy)  -> 5;
-get_nof_clients(vxworks, ssl,     heavy)  -> 5;
-get_nof_clients(_,       ip_comm, light)  -> 5;
-get_nof_clients(_,       ssl,     light)  -> 2;
-get_nof_clients(_,       ip_comm, medium) -> 10;
-get_nof_clients(_,       ssl,     medium) -> 4;
-get_nof_clients(_,       ip_comm, heavy)  -> 20;
-get_nof_clients(_,       ssl,     heavy)  -> 6.
-
-%% Make a file 100 bytes long containing 012...9*10
-create_range_data(Path) ->
-    PathAndFileName=filename:join([Path,"range.txt"]),
-    file:write_file(PathAndFileName,list_to_binary(["12345678901234567890",
-						   "12345678901234567890",
-						   "12345678901234567890",
-						   "12345678901234567890",
-						   "12345678901234567890"])).
-
-create_ipv6_config(Config, FileName, Ipv6Address) ->
-    ServerRoot = ?config(server_root, Config),
-    TcTopDir   = ?config(tc_top_dir,  Config),
-    Port       = ?config(port,        Config),
-    SockType   = ?config(sock_type,   Config),
-    Mods       = io_lib:format("~p",  [httpd_mod]),
-    Funcs      = io_lib:format("~p",  [ssl_password_cb]),
-    Host       = ?config(ipv6_host,   Config),
-
-    MaxHdrSz     = io_lib:format("~p", [256]),
-    MaxHdrAct    = io_lib:format("~p", [close]),
-  
-    Mod_order = "Modules mod_alias mod_auth mod_esi mod_actions mod_cgi" 
-	" mod_include mod_dir mod_get mod_head" 
-	" mod_log mod_disk_log mod_trace",
-	    
-    SSL =
-	if
-	    (SockType =:= ssl)  orelse 
-	    (SockType =:= essl) ->
-		[cline(["SSLCertificateFile ", 
-			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
-		 cline(["SSLCertificateKeyFile ",
-			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
-		 cline(["SSLCACertificateFile ",
-			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
-		 cline(["SSLPasswordCallbackModule ", Mods]),
-		 cline(["SSLPasswordCallbackFunction ", Funcs]),
-		 cline(["SSLVerifyClient 0"]),
-		 cline(["SSLVerifyDepth 1"])];
-	    true ->
-		[]
-	end,
+auth_status(AuthRequest, Config, Expected) ->
+    Version = ?config(http_version, Config),
+    Host = ?config(host, Config),
+    httpd_test_lib:verify_request(?config(type, Config), Host,
+				  ?config(port, Config),  ?config(node, Config),
+				  AuthRequest,
+				  Expected ++ [{version, Version}]).
+
+basic_auth_requiered(Config) ->
+    ok = http_status("GET /secret/dummy.html ", Config, [{statuscode, 401},
+							 {header, "WWW-Authenticate"}]),
+    ok = http_status("GET /open/ ", Config,  [{statuscode, 401},
+					      {header, "WWW-Authenticate"}]),
+    ok = http_status("GET /secret/ ", Config,  [{statuscode, 401},
+						{header, "WWW-Authenticate"}]),
+    ok = http_status("GET /secret/top_secret ", Config,  [{statuscode, 401},
+						      {header, "WWW-Authenticate"}]).
 
-    BindAddress = "[" ++ Ipv6Address ++"]|inet6", 
-
-    HttpConfig = 
-	[cline(["BindAddress ", BindAddress]),
-	 cline(["Port ", integer_to_list(Port)]),
-	 cline(["ServerName ", Host]),
-	 cline(["SocketType ", atom_to_list(SockType)]),
-	 cline([Mod_order]),
-	 cline(["ServerRoot ", ServerRoot]),
-	 cline(["DocumentRoot ", filename:join(ServerRoot, "htdocs")]),
-	 cline(["MaxHeaderSize ",MaxHdrSz]),
-	 cline(["MaxHeaderAction ",MaxHdrAct]),
-	 cline(["DirectoryIndex ", "index.html "]),
-	 cline(["DefaultType ", "text/plain"]), 
-	 SSL],
-    ConfigFile = filename:join([TcTopDir,FileName]),
-    {ok, Fd} = file:open(ConfigFile, [write]),
-    ok = file:write(Fd, lists:flatten(HttpConfig)),
-    ok = file:close(Fd).
-
-
-tsp(F) ->
-    inets_test_lib:tsp("[~w]" ++ F, [?MODULE]).
-tsp(F, A) ->
-    inets_test_lib:tsp("[~w]" ++ F, [?MODULE|A]).
-
-tsf(Reason) ->
-    inets_test_lib:tsf(Reason).
diff --git a/lib/inets/test/httpd_SUITE_data/server_root/Makefile b/lib/inets/test/httpd_SUITE_data/server_root/Makefile
deleted file mode 100644
index d7a3231068..0000000000
--- a/lib/inets/test/httpd_SUITE_data/server_root/Makefile
+++ /dev/null
@@ -1,209 +0,0 @@
-#
-# %CopyrightBegin%
-#
-# Copyright Ericsson AB 1997-2010. All Rights Reserved.
-#
-# The contents of this file are subject to the Erlang Public License,
-# Version 1.1, (the "License"); you may not use this file except in
-# compliance with the License. You should have received a copy of the
-# Erlang Public License along with this software. If not, it can be
-# retrieved online at http://www.erlang.org/.
-#
-# Software distributed under the License is distributed on an "AS IS"
-# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
-# the License for the specific language governing rights and limitations
-# under the License.
-#
-# %CopyrightEnd%
-#
-#
-include $(ERL_TOP)/make/target.mk
-include $(ERL_TOP)/make/$(TARGET)/otp.mk
-
-# ----------------------------------------------------
-# Application version
-# ----------------------------------------------------
-include ../../vsn.mk
-VSN=$(INETS_VSN)
-
-# ----------------------------------------------------
-# Release directory specification
-# ----------------------------------------------------
-RELSYSDIR = $(RELEASE_PATH)/lib/inets-$(VSN)
-
-# ----------------------------------------------------
-# Target Specs
-# ----------------------------------------------------
-MODULE= 
-
-AUTH_FILES = auth/group \
-	auth/passwd 
-CGI_FILES = cgi-bin/printenv.sh 
-CONF_FILES = conf/8080.conf \
-	conf/8888.conf \
-	conf/httpd.conf \
-	conf/ssl.conf \
-	conf/mime.types 
-OPEN_FILES = htdocs/open/dummy.html 
-MNESIA_OPEN_FILES = htdocs/mnesia_open/dummy.html 
-MISC_FILES = htdocs/misc/friedrich.html \
-	htdocs/misc/oech.html
-SECRET_FILES = htdocs/secret/dummy.html 
-MNESIA_SECRET_FILES = htdocs/mnesia_secret/dummy.html 
-HTDOCS_FILES = htdocs/index.html \
-	htdocs/config.shtml \
-	htdocs/echo.shtml \
-	htdocs/exec.shtml \
-	htdocs/flastmod.shtml \
-	htdocs/fsize.shtml \
-	htdocs/include.shtml
-ICON_FILES = icons/README \
-	icons/a.gif \
-	icons/alert.black.gif \
-	icons/alert.red.gif \
-	icons/apache_pb.gif \
-	icons/back.gif \
-	icons/ball.gray.gif \
-	icons/ball.red.gif \
-	icons/binary.gif \
-	icons/binhex.gif \
-	icons/blank.gif \
-	icons/bomb.gif \
-	icons/box1.gif \
-	icons/box2.gif \
-	icons/broken.gif \
-	icons/burst.gif \
-	icons/button1.gif \
-	icons/button10.gif \
-	icons/button2.gif \
-	icons/button3.gif \
-	icons/button4.gif \
-	icons/button5.gif \
-	icons/button6.gif \
-	icons/button7.gif \
-	icons/button8.gif \
-	icons/button9.gif \
-	icons/buttonl.gif \
-	icons/buttonr.gif \
-	icons/c.gif \
-	icons/comp.blue.gif \
-	icons/comp.gray.gif \
-	icons/compressed.gif \
-	icons/continued.gif \
-	icons/dir.gif \
-	icons/down.gif \
-	icons/dvi.gif \
-	icons/f.gif \
-	icons/folder.gif \
-	icons/folder.open.gif \
-	icons/folder.sec.gif \
-	icons/forward.gif \
-	icons/generic.gif \
-	icons/generic.red.gif \
-	icons/generic.sec.gif \
-	icons/hand.right.gif \
-	icons/hand.up.gif \
-	icons/htdig.gif \
-	icons/icon.sheet.gif \
-	icons/image1.gif \
-	icons/image2.gif \
-	icons/image3.gif \
-	icons/index.gif \
-	icons/layout.gif \
-	icons/left.gif \
-	icons/link.gif \
-	icons/movie.gif \
-	icons/p.gif \
-	icons/patch.gif \
-	icons/pdf.gif \
-	icons/pie0.gif \
-	icons/pie1.gif \
-	icons/pie2.gif \
-	icons/pie3.gif \
-	icons/pie4.gif \
-	icons/pie5.gif \
-	icons/pie6.gif \
-	icons/pie7.gif \
-	icons/pie8.gif \
-	icons/portal.gif \
-	icons/poweredby.gif \
-	icons/ps.gif \
-	icons/quill.gif \
-	icons/right.gif \
-	icons/screw1.gif \
-	icons/screw2.gif \
-	icons/script.gif \
-	icons/sound1.gif \
-	icons/sound2.gif \
-	icons/sphere1.gif \
-	icons/sphere2.gif \
-	icons/star.gif \
-	icons/star_blank.gif \
-	icons/tar.gif \
-	icons/tex.gif \
-	icons/text.gif \
-	icons/transfer.gif \
-	icons/unknown.gif \
-	icons/up.gif \
-	icons/uu.gif \
-	icons/uuencoded.gif \
-	icons/world1.gif \
-	icons/world2.gif
-
-SSL_FILES = ssl/ssl_client.pem \
-	ssl/ssl_server.pem
-
-# ----------------------------------------------------
-# FLAGS
-# ----------------------------------------------------
-ERL_COMPILE_FLAGS +=
-
-# ----------------------------------------------------
-# Targets
-# ----------------------------------------------------
-
-debug opt: 
-
-clean:
-
-docs:
-
-# ----------------------------------------------------
-# Release Target
-# ---------------------------------------------------- 
-include $(ERL_TOP)/make/otp_release_targets.mk
-
-release_spec: opt
-	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/auth
-	$(INSTALL_DATA) $(AUTH_FILES) $(RELSYSDIR)/examples/server_root/auth
-	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/cgi-bin
-	$(INSTALL_SCRIPT) $(CGI_FILES) $(RELSYSDIR)/examples/server_root/cgi-bin
-	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/conf
-	$(INSTALL_DATA) $(CONF_FILES) $(RELSYSDIR)/examples/server_root/conf
-	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/htdocs/open
-	$(INSTALL_DATA) $(OPEN_FILES) \
-		$(RELSYSDIR)/examples/server_root/htdocs/open
-	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/htdocs/mnesia_open
-	$(INSTALL_DATA) $(MNESIA_OPEN_FILES) \
-		$(RELSYSDIR)/examples/server_root/htdocs/mnesia_open
-	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/htdocs/misc
-	$(INSTALL_DATA) $(MISC_FILES) \
-		$(RELSYSDIR)/examples/server_root/htdocs/misc
-	$(INSTALL_DIR)  \
-		$(RELSYSDIR)/examples/server_root/htdocs/secret/top_secret
-	$(INSTALL_DIR)  \
-		$(RELSYSDIR)/examples/server_root/htdocs/mnesia_secret/top_secret
-	$(INSTALL_DATA) $(SECRET_FILES)  \
-		$(RELSYSDIR)/examples/server_root/htdocs/secret
-	$(INSTALL_DATA) $(MNESIA_SECRET_FILES)  \
-		$(RELSYSDIR)/examples/server_root/htdocs/mnesia_secret
-	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/htdocs
-	$(INSTALL_DATA) $(HTDOCS_FILES) $(RELSYSDIR)/examples/server_root/htdocs
-	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/icons
-	$(INSTALL_DATA) $(ICON_FILES) $(RELSYSDIR)/examples/server_root/icons
-	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/ssl
-	$(INSTALL_DATA) $(SSL_FILES) $(RELSYSDIR)/examples/server_root/ssl
-	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/logs
-
-release_docs_spec:
-
diff --git a/lib/inets/test/httpd_SUITE_data/server_root/conf/8080.conf b/lib/inets/test/httpd_SUITE_data/server_root/conf/8080.conf
deleted file mode 100644
index 48e66f0114..0000000000
--- a/lib/inets/test/httpd_SUITE_data/server_root/conf/8080.conf
+++ /dev/null
@@ -1,79 +0,0 @@
-Port 8080
-#ServerName your.server.net
-SocketType ip_comm
-Modules mod_alias mod_auth mod_esi mod_actions mod_cgi mod_include mod_dir mod_get mod_head mod_log mod_disk_log
-ServerAdmin jocke@erix.ericsson.se
-ServerRoot /var/tmp/server_root
-ErrorLog logs/error_log_8080
-TransferLog logs/access_log_8080
-SecurityLog logs/security_log_8080
-ErrorDiskLog logs/error_disk_log_8080
-ErrorDiskLogSize 200000 10
-TransferDiskLog logs/access_disk_log_8080
-TransferDiskLogSize 200000 10
-SecurityDiskLog logs/security_disk_log
-SecurityDiskLogSize 200000 10
-MaxClients 50
-#KeepAlive 5
-#KeepAliveTimeout 10
-DocumentRoot /var/tmp/server_root/htdocs
-DirectoryIndex index.html welcome.html
-DefaultType text/plain
-Alias /icons/ /var/tmp/server_root/icons/
-Alias /pics/ /var/tmp/server_root/icons/
-ScriptAlias /cgi-bin/ /var/tmp/server_root/cgi-bin/
-ScriptAlias /htbin/ /var/tmp/server_root/cgi-bin/
-ErlScriptAlias /cgi-bin/erl httpd_example io
-EvalScriptAlias /eval httpd_example io
-#Script HEAD /cgi-bin/printenv.sh
-#Action image/gif /cgi-bin/printenv.sh
-
-<Directory /var/tmp/server_root/htdocs/open>
-AuthDBType plain
-AuthName Open Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require user one Aladdin
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/secret>
-AuthDBType plain
-AuthName Secret Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require group group1 group2
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/secret/top_secret>
-AuthDBType plain
-AuthName Top Secret Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require group group3
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_open>
-AuthDBType mnesia
-AuthName Open Area
-require user one Aladdin
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_secret>
-AuthDBType mnesia
-AuthName Secret Area
-require group group1 group2
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_secret/top_secret>
-AuthDBType mnesia
-AuthName Top Secret Area
-require group group3
-allow from 130.100.34 130.100.35
-deny from 100.234.22.12 194.100.34.1 130.100.34.25
-SecurityDataFile logs/security_data
-SecurityMaxRetries 3
-SecurityBlockTime 10
-SecurityFailExpireTime 1
-SecurityAuthTimeout 1
-SecurityCallbackModule security_callback
-</Directory>
diff --git a/lib/inets/test/httpd_SUITE_data/server_root/conf/8888.conf b/lib/inets/test/httpd_SUITE_data/server_root/conf/8888.conf
deleted file mode 100644
index 79bb7fcca4..0000000000
--- a/lib/inets/test/httpd_SUITE_data/server_root/conf/8888.conf
+++ /dev/null
@@ -1,63 +0,0 @@
-Port 8888
-#ServerName your.server.net
-SocketType ip_comm
-Modules mod_alias mod_auth mod_esi mod_actions mod_cgi mod_include mod_dir mod_get mod_head mod_log mod_disk_log
-ServerAdmin jocke@erix.ericsson.se
-ServerRoot /var/tmp/server_root
-ErrorLog logs/error_log_8888
-TransferLog logs/access_log_8888
-ErrorDiskLog logs/error_disk_log_8888
-ErrorDiskLogSize 200000 10
-TransferDiskLog logs/access_disk_log_8888
-TransferDiskLogSize 200000 10
-MaxClients 150
-DocumentRoot /var/tmp/server_root/htdocs
-DirectoryIndex index.html welcome.html
-DefaultType text/plain
-Alias /icons/ /var/tmp/server_root/icons/
-Alias /pics/ /var/tmp/server_root/icons/
-ScriptAlias /cgi-bin/ /var/tmp/server_root/cgi-bin/
-ScriptAlias /htbin/ /var/tmp/server_root/cgi-bin/
-ErlScriptAlias /cgi-bin/erl httpd_example io
-EvalScriptAlias /eval httpd_example io
-#Script HEAD /cgi-bin/printenv.sh
-#Action image/gif /cgi-bin/printenv.sh
-
-<Directory /var/tmp/server_root/htdocs/open>
-AuthName Open Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require user one Aladdin
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/secret>
-AuthName Secret Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require group group1 group2
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/secret/top_secret>
-AuthName Top Secret Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require group group3
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_open>
-AuthName Open Area
-AuthMnesiaDB On
-require user one Aladdin
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_secret>
-AuthName Secret Area
-AuthMnesiaDB On
-require group group1 group2
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_secret/top_secret>
-AuthName Top Secret Area
-AuthMnesiaDB On
-require group group3
-</Directory>
diff --git a/lib/inets/test/httpd_SUITE_data/server_root/conf/httpd.conf b/lib/inets/test/httpd_SUITE_data/server_root/conf/httpd.conf
deleted file mode 100644
index ceb94237d2..0000000000
--- a/lib/inets/test/httpd_SUITE_data/server_root/conf/httpd.conf
+++ /dev/null
@@ -1,268 +0,0 @@
-#
-# %CopyrightBegin%
-# 
-# Copyright Ericsson AB 1997-2011. All Rights Reserved.
-# 
-# The contents of this file are subject to the Erlang Public License,
-# Version 1.1, (the "License"); you may not use this file except in
-# compliance with the License. You should have received a copy of the
-# Erlang Public License along with this software. If not, it can be
-# retrieved online at http://www.erlang.org/.
-# 
-# Software distributed under the License is distributed on an "AS IS"
-# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
-# the License for the specific language governing rights and limitations
-# under the License.
-# 
-# %CopyrightEnd%
-#
-#
-
-# Port: The port the standalone listens to. For ports < 1023, you will
-# need httpd to be run as root initially.
-
-Port 8888
-
-# BindAddress: This directive is used to tell the server which IP address
-# to listen to. It can either contain "*", an IP address, or a fully
-# qualified Internet domain name.
-# 
-# It is also possible to specify the ip-family with the directive.
-# There ar three possible value: inet, inet6 and inet6fb4
-# inet:     Use IpFamily inet when retreiving the address and
-#           fail if that does not work.
-# inet6:    Use IpFamily inet6 when retreiving the address and
-#           fail if that does not work.
-# inet6fb4: First IpFamily inet6 is tried and if that does not work, 
-#           inet is used as fallback. 
-# Default value for ip-family is inet6fb4
-# 
-# The syntax is: <address>[|<ip-family>]
-#
-#BindAddress *
-#BindAddress *|inet
-
-
-# ServerName allows you to set a host name which is sent back to clients for
-# your server if it's different than the one the program would get (i.e. use
-# "www" instead of the host's real name).
-#
-# Note: You cannot just invent host names and hope they work. The name you 
-# define here must be a valid DNS name for your host. If you don't understand
-# this, ask your network administrator.
-
-#ServerName your.server.net
-
-# SocketType is either ip_comm, sockets or ssl.
-
-SocketType ip_comm
-
-# Modules: Server run-time plug-in modules written using the Erlang
-# Web Server API (EWSAPI). The server API make it easy to add functionality
-# to the server. Read more about EWSAPI in the Reference Manual.
-# WARNING! Do not tamper with this directive unless you are familiar with
-# EWSAPI.
-
-Modules mod_alias mod_auth mod_esi mod_actions mod_cgi mod_responsecontrol mod_trace mod_range mod_head mod_include mod_dir mod_get mod_log mod_disk_log
-
-# ServerAdmin: Your address, where problems with the server should be
-# e-mailed.
-
-ServerAdmin jocke@erix.ericsson.se
-
-# ServerRoot: The directory the server's config, error, and log files
-# are kept in
-
-ServerRoot /var/tmp/server_root
-
-# ErrorLog: The location of the error log file. If this does not start
-# with /, ServerRoot is prepended to it.
-
-ErrorLog logs/error_log
-
-# TransferLog: The location of the transfer log file. If this does not
-# start with /, ServerRoot is prepended to it.
-
-TransferLog logs/access_log
-
-# SecurityLog: The location of the security log file (mod_security required)
-#
-SecurityLog logs/security_log
-
-# ErrorDiskLog: The location of the error log file. If this does not
-# start with /, ServerRoot is prepended to it. This log file is managed
-# with the disk_log module [See disk_log(3)]. The ErrorDiskLogSize directive
-# takes two argument, i.e. MaxBytes and MaxFiles. The wrap log writes at most
-# MaxBytes bytes on each file, and it uses MaxFiles files before it wraps, and
-# truncates the first file.
-
-ErrorDiskLog logs/error_disk_log
-ErrorDiskLogSize 200000 10
-
-# TransferDiskLog: The location of the transfer log file. If this does not
-# start with /, ServerRoot is prepended to it. This log file is managed
-# with the disk_log module [See disk_log(3)]. The TransferDiskLogSize directive
-# takes two argument, i.e. MaxBytes and MaxFiles. The wrap log writes at most
-# MaxBytes bytes on each file, and it uses MaxFiles files before it wraps, and
-# truncates the first file.
-
-TransferDiskLog logs/access_disk_log
-TransferDiskLogSize 200000 10
-
-# SecurityDiskLog: The location of the security log file. If this does not
-# start with /, ServerRoot is prepended to it. This log file is managed
-# with the disk_log module [See disk_log(3)]. The SecurityDiskLogSize directive
-# takes two argument, i.e. MaxBytes and MaxFiles. The wrap log writes at most
-# MaxBytes bytes on each file, and it uses MaxFiles files before it wraps, and
-# truncates the first file.
-
-SecurityDiskLog logs/security_disk_log
-SecurityDiskLogSize 200000 10
-
-# Limit on total number of servers running, i.e., limit on the number
-# of clients who can simultaneously connect --- if this limit is ever
-# reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.
-# It is intended mainly as a brake to keep a runaway server from taking
-# the server with it as it spirals down...
-
-MaxClients 50
-
-# KeepAlive set the flag for persistent connections. For peristent connections
-# set KeepAlive to on. To use One request per connection set the flag to off
-# Note: The value has changed since previous version of INETS.
-KeepAlive on
-
-# KeepAliveTimeout sets the number of seconds before a persistent connection
-# times out and closes.
-KeepAliveTimeout 10
-
-# MaxKeepAliveRequests sets the number of seconds before a persistent connection
-# times out and closes.
-MaxKeepAliveRequests 10
-
-
-
-# DocumentRoot: The directory out of which you will serve your
-# documents. By default, all requests are taken from this directory, but
-# symbolic links and aliases may be used to point to other locations.
-
-DocumentRoot /var/tmp/server_root/htdocs
-
-# DirectoryIndex: Name of the file or files to use as a pre-written HTML
-# directory index.  Separate multiple entries with spaces.
-
-DirectoryIndex index.html welcome.html
-
-# DefaultType is the default MIME type for documents which the server
-# cannot find the type of from filename extensions.
-
-DefaultType text/plain
-
-# Aliases: Add here as many aliases as you need (with no limit). The format is 
-# Alias fakename realname
-
-Alias /icons/ /var/tmp/server_root/icons/
-Alias /pics/ /var/tmp/server_root/icons/
-
-# ScriptAlias: This controls which directories contain server scripts.
-# Format: ScriptAlias fakename realname
-
-ScriptAlias /cgi-bin/ /var/tmp/server_root/cgi-bin/
-ScriptAlias /htbin/ /var/tmp/server_root/cgi-bin/
-
-# This directive adds an action, which will activate cgi-script when a
-# file is requested using the method of method, which can be one of
-# GET, POST and HEAD. It sends the URL and file path of the requested
-# document using the standard CGI PATH_INFO and PATH_TRANSLATED
-# environment variables.
-
-#Script HEAD /cgi-bin/printenv.sh
-
-# This directive adds an action, which will activate cgi-script when a
-# file of content type mime-type is requested. It sends the URL and
-# file path of the requested document using the standard CGI PATH_INFO
-# and PATH_TRANSLATED environment variables.
-
-#Action image/gif /cgi-bin/printenv.sh
-
-# ErlScriptAlias: This specifies how "Erl" server scripts are called.
-# Format: ErlScriptAlias fakename realname allowed_modules
-
-ErlScriptAlias /down/erl httpd_example io
-
-# EvalScriptAlias: This specifies how "Eval" server scripts are called.
-# Format: EvalScriptAlias fakename realname allowed_modules
-
-EvalScriptAlias /eval httpd_example io
-
-# Point SSLCertificateFile at a PEM encoded certificate.
-
-SSLCertificateFile /var/tmp/server_root/ssl/ssl_server.pem
-
-# If the key is not combined with the certificate, use this directive to
-# point at the key file.
-
-SSLCertificateKeyFile /var/tmp/server_root/ssl/ssl_server.pem
-
-# Set SSLVerifyClient to:
-# 0 if no certicate is required
-# 1 if the client may present a valid certificate
-# 2 if the client must present a valid certificate
-# 3 if the client may present a valid certificate but it is not required to
-#   have a valid CA
-
-SSLVerifyClient 0
-
-# Each directory to which INETS has access, can be configured with respect
-# to which services and features are allowed and/or disabled in that
-# directory (and its subdirectories). 
-
-<Directory /var/tmp/server_root/htdocs/open>
-AuthDBType plain
-AuthName Open Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require user one Aladdin
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/secret>
-AuthDBType plain
-AuthName Secret Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require group group1 group2
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/secret/top_secret>
-AuthDBType plain
-AuthName Top Secret Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require group group3
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_open>
-AuthDBType mnesia
-AuthName Open Area
-require user one Aladdin
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_secret>
-AuthDBType mnesia
-AuthName Secret Area
-require group group1 group2
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_secret/top_secret>
-AuthDBType mnesia
-AuthName Top Secret Area
-require group group3
-allow from 130.100.34 130.100.35
-deny from 100.234.22.12 194.100.34.1 130.100.34.25
-SecurityDataFile logs/security_data
-SecurityMaxRetries 3
-SecurityBlockTime 10
-SecurityFailExpireTime 1
-SecurityAuthTimeout 1
-SecurityCallbackModule security_callback
-</Directory>
diff --git a/lib/inets/test/httpd_SUITE_data/server_root/conf/mime.types b/lib/inets/test/httpd_SUITE_data/server_root/conf/mime.types
deleted file mode 100644
index d2f81e4e5e..0000000000
--- a/lib/inets/test/httpd_SUITE_data/server_root/conf/mime.types
+++ /dev/null
@@ -1,465 +0,0 @@
-# This is a comment. I love comments.
-
-# MIME type			Extension
-application/EDI-Consent
-application/EDI-X12
-application/EDIFACT
-application/activemessage
-application/andrew-inset	ez
-application/applefile
-application/atomicmail
-application/batch-SMTP
-application/beep+xml
-application/cals-1840
-application/commonground
-application/cybercash
-application/dca-rft
-application/dec-dx
-application/dvcs
-application/eshop
-application/http
-application/hyperstudio
-application/iges
-application/index
-application/index.cmd
-application/index.obj
-application/index.response
-application/index.vnd
-application/iotp
-application/ipp
-application/isup
-application/font-tdpfr
-application/mac-binhex40	hqx
-application/mac-compactpro	cpt
-application/macwriteii
-application/marc
-application/mathematica
-application/mathematica-old
-application/msword		doc
-application/news-message-id
-application/news-transmission
-application/ocsp-request
-application/ocsp-response
-application/octet-stream	bin dms lha lzh exe class so dll
-application/oda			oda
-application/parityfec
-application/pdf			pdf
-application/pgp-encrypted
-application/pgp-keys
-application/pgp-signature
-application/pkcs10
-application/pkcs7-mime
-application/pkcs7-signature
-application/pkix-cert
-application/pkix-crl
-application/pkixcmp
-application/postscript		ai eps ps
-application/prs.alvestrand.titrax-sheet
-application/prs.cww
-application/prs.nprend
-application/qsig
-application/remote-printing
-application/riscos
-application/rtf
-application/sdp
-application/set-payment
-application/set-payment-initiation
-application/set-registration
-application/set-registration-initiation
-application/sgml
-application/sgml-open-catalog
-application/sieve
-application/slate
-application/smil		smi smil
-application/timestamp-query
-application/timestamp-reply
-application/vemmi
-application/vnd.3M.Post-it-Notes
-application/vnd.FloGraphIt
-application/vnd.accpac.simply.aso
-application/vnd.accpac.simply.imp
-application/vnd.acucobol
-application/vnd.aether.imp
-application/vnd.anser-web-certificate-issue-initiation
-application/vnd.anser-web-funds-transfer-initiation
-application/vnd.audiograph
-application/vnd.businessobjects
-application/vnd.bmi
-application/vnd.canon-cpdl
-application/vnd.canon-lips
-application/vnd.claymore
-application/vnd.commerce-battelle
-application/vnd.commonspace
-application/vnd.comsocaller
-application/vnd.contact.cmsg
-application/vnd.cosmocaller
-application/vnd.cups-postscript
-application/vnd.cups-raster
-application/vnd.cups-raw
-application/vnd.ctc-posml
-application/vnd.cybank
-application/vnd.dna
-application/vnd.dpgraph
-application/vnd.dxr
-application/vnd.ecdis-update
-application/vnd.ecowin.chart
-application/vnd.ecowin.filerequest
-application/vnd.ecowin.fileupdate
-application/vnd.ecowin.series
-application/vnd.ecowin.seriesrequest
-application/vnd.ecowin.seriesupdate
-application/vnd.enliven
-application/vnd.epson.esf
-application/vnd.epson.msf
-application/vnd.epson.quickanime
-application/vnd.epson.salt
-application/vnd.epson.ssf
-application/vnd.ericsson.quickcall
-application/vnd.eudora.data
-application/vnd.fdf
-application/vnd.ffsns
-application/vnd.framemaker
-application/vnd.fsc.weblaunch
-application/vnd.fujitsu.oasys
-application/vnd.fujitsu.oasys2
-application/vnd.fujitsu.oasys3
-application/vnd.fujitsu.oasysgp
-application/vnd.fujitsu.oasysprs
-application/vnd.fujixerox.ddd
-application/vnd.fujixerox.docuworks
-application/vnd.fujixerox.docuworks.binder
-application/vnd.fut-misnet
-application/vnd.grafeq
-application/vnd.groove-account
-application/vnd.groove-identity-message
-application/vnd.groove-injector
-application/vnd.groove-tool-message
-application/vnd.groove-tool-template
-application/vnd.groove-vcard
-application/vnd.hhe.lesson-player
-application/vnd.hp-HPGL
-application/vnd.hp-PCL
-application/vnd.hp-PCLXL
-application/vnd.hp-hpid
-application/vnd.hp-hps
-application/vnd.httphone
-application/vnd.hzn-3d-crossword
-application/vnd.ibm.afplinedata
-application/vnd.ibm.MiniPay
-application/vnd.ibm.modcap
-application/vnd.informix-visionary
-application/vnd.intercon.formnet
-application/vnd.intertrust.digibox
-application/vnd.intertrust.nncp
-application/vnd.intu.qbo
-application/vnd.intu.qfx
-application/vnd.irepository.package+xml
-application/vnd.is-xpr
-application/vnd.japannet-directory-service
-application/vnd.japannet-jpnstore-wakeup
-application/vnd.japannet-payment-wakeup
-application/vnd.japannet-registration
-application/vnd.japannet-registration-wakeup
-application/vnd.japannet-setstore-wakeup
-application/vnd.japannet-verification
-application/vnd.japannet-verification-wakeup
-application/vnd.koan
-application/vnd.lotus-1-2-3
-application/vnd.lotus-approach
-application/vnd.lotus-freelance
-application/vnd.lotus-notes
-application/vnd.lotus-organizer
-application/vnd.lotus-screencam
-application/vnd.lotus-wordpro
-application/vnd.mcd
-application/vnd.mediastation.cdkey
-application/vnd.meridian-slingshot
-application/vnd.mif		mif
-application/vnd.minisoft-hp3000-save
-application/vnd.mitsubishi.misty-guard.trustweb
-application/vnd.mobius.daf
-application/vnd.mobius.dis
-application/vnd.mobius.msl
-application/vnd.mobius.plc
-application/vnd.mobius.txf
-application/vnd.motorola.flexsuite
-application/vnd.motorola.flexsuite.adsi
-application/vnd.motorola.flexsuite.fis
-application/vnd.motorola.flexsuite.gotap
-application/vnd.motorola.flexsuite.kmr
-application/vnd.motorola.flexsuite.ttc
-application/vnd.motorola.flexsuite.wem
-application/vnd.mozilla.xul+xml
-application/vnd.ms-artgalry
-application/vnd.ms-asf
-application/vnd.ms-excel	xls
-application/vnd.ms-lrm
-application/vnd.ms-powerpoint	ppt
-application/vnd.ms-project
-application/vnd.ms-tnef
-application/vnd.ms-works
-application/vnd.mseq
-application/vnd.msign
-application/vnd.music-niff
-application/vnd.musician
-application/vnd.netfpx
-application/vnd.noblenet-directory
-application/vnd.noblenet-sealer
-application/vnd.noblenet-web
-application/vnd.novadigm.EDM
-application/vnd.novadigm.EDX
-application/vnd.novadigm.EXT
-application/vnd.osa.netdeploy
-application/vnd.palm
-application/vnd.pg.format
-application/vnd.pg.osasli
-application/vnd.powerbuilder6
-application/vnd.powerbuilder6-s
-application/vnd.powerbuilder7
-application/vnd.powerbuilder7-s
-application/vnd.powerbuilder75
-application/vnd.powerbuilder75-s
-application/vnd.previewsystems.box
-application/vnd.publishare-delta-tree
-application/vnd.pvi.ptid1
-application/vnd.pwg-xhtml-print+xml
-application/vnd.rapid
-application/vnd.s3sms
-application/vnd.seemail
-application/vnd.shana.informed.formdata
-application/vnd.shana.informed.formtemplate
-application/vnd.shana.informed.interchange
-application/vnd.shana.informed.package
-application/vnd.sss-cod
-application/vnd.sss-dtf
-application/vnd.sss-ntf
-application/vnd.street-stream
-application/vnd.svd
-application/vnd.swiftview-ics
-application/vnd.triscape.mxs
-application/vnd.trueapp
-application/vnd.truedoc
-application/vnd.tve-trigger
-application/vnd.ufdl
-application/vnd.uplanet.alert
-application/vnd.uplanet.alert-wbxml
-application/vnd.uplanet.bearer-choice-wbxml
-application/vnd.uplanet.bearer-choice
-application/vnd.uplanet.cacheop
-application/vnd.uplanet.cacheop-wbxml
-application/vnd.uplanet.channel
-application/vnd.uplanet.channel-wbxml
-application/vnd.uplanet.list
-application/vnd.uplanet.list-wbxml
-application/vnd.uplanet.listcmd
-application/vnd.uplanet.listcmd-wbxml
-application/vnd.uplanet.signal
-application/vnd.vcx
-application/vnd.vectorworks
-application/vnd.vidsoft.vidconference
-application/vnd.visio
-application/vnd.vividence.scriptfile
-application/vnd.wap.sic
-application/vnd.wap.slc
-application/vnd.wap.wbxml	wbxml
-application/vnd.wap.wmlc	wmlc
-application/vnd.wap.wmlscriptc	wmlsc
-application/vnd.webturbo
-application/vnd.wrq-hp3000-labelled
-application/vnd.wt.stf
-application/vnd.xara
-application/vnd.xfdl
-application/vnd.yellowriver-custom-menu
-application/whoispp-query
-application/whoispp-response
-application/wita
-application/wordperfect5.1
-application/x-bcpio		bcpio
-application/x-cdlink		vcd
-application/x-chess-pgn		pgn
-application/x-compress
-application/x-cpio		cpio
-application/x-csh		csh
-application/x-director		dcr dir dxr
-application/x-dvi		dvi
-application/x-futuresplash	spl
-application/x-gtar		gtar
-application/x-gzip
-application/x-hdf		hdf
-application/x-javascript	js
-application/x-koan		skp skd skt skm
-application/x-latex		latex
-application/x-netcdf		nc cdf
-application/x-sh		sh
-application/x-shar		shar
-application/x-shockwave-flash	swf
-application/x-stuffit		sit
-application/x-sv4cpio		sv4cpio
-application/x-sv4crc		sv4crc
-application/x-tar		tar
-application/x-tcl		tcl
-application/x-tex		tex
-application/x-texinfo		texinfo texi
-application/x-troff		t tr roff
-application/x-troff-man		man
-application/x-troff-me		me
-application/x-troff-ms		ms
-application/x-ustar		ustar
-application/x-wais-source	src
-application/x400-bp
-application/xml
-application/xml-dtd
-application/xml-external-parsed-entity
-application/zip			zip
-audio/32kadpcm
-audio/basic			au snd
-audio/g.722.1
-audio/l16
-audio/midi			mid midi kar
-audio/mp4a-latm
-audio/mpa-robust
-audio/mpeg			mpga mp2 mp3
-audio/parityfec
-audio/prs.sid
-audio/telephone-event
-audio/tone
-audio/vnd.cisco.nse
-audio/vnd.cns.anp1
-audio/vnd.cns.inf1
-audio/vnd.digital-winds
-audio/vnd.everad.plj
-audio/vnd.lucent.voice
-audio/vnd.nortel.vbk
-audio/vnd.nuera.ecelp4800
-audio/vnd.nuera.ecelp7470
-audio/vnd.nuera.ecelp9600
-audio/vnd.octel.sbc
-audio/vnd.qcelp
-audio/vnd.rhetorex.32kadpcm
-audio/vnd.vmx.cvsd
-audio/x-aiff			aif aiff aifc
-audio/x-mpegurl			m3u
-audio/x-pn-realaudio		ram rm
-audio/x-pn-realaudio-plugin	rpm
-audio/x-realaudio		ra
-audio/x-wav			wav
-chemical/x-pdb			pdb
-chemical/x-xyz			xyz
-image/bmp			bmp
-image/cgm
-image/g3fax
-image/gif			gif
-image/ief			ief
-image/jpeg			jpeg jpg jpe
-image/naplps
-image/png			png
-image/prs.btif
-image/prs.pti
-image/tiff			tiff tif
-image/vnd.cns.inf2
-image/vnd.dwg
-image/vnd.dxf
-image/vnd.fastbidsheet
-image/vnd.fpx
-image/vnd.fst
-image/vnd.fujixerox.edmics-mmr
-image/vnd.fujixerox.edmics-rlc
-image/vnd.mix
-image/vnd.net-fpx
-image/vnd.svf
-image/vnd.wap.wbmp		wbmp
-image/vnd.xiff
-image/x-cmu-raster		ras
-image/x-portable-anymap		pnm
-image/x-portable-bitmap		pbm
-image/x-portable-graymap	pgm
-image/x-portable-pixmap		ppm
-image/x-rgb			rgb
-image/x-xbitmap			xbm
-image/x-xpixmap			xpm
-image/x-xwindowdump		xwd
-message/delivery-status
-message/disposition-notification
-message/external-body
-message/http
-message/news
-message/partial
-message/rfc822
-message/s-http
-model/iges			igs iges
-model/mesh			msh mesh silo
-model/vnd.dwf
-model/vnd.flatland.3dml
-model/vnd.gdl
-model/vnd.gs-gdl
-model/vnd.gtw
-model/vnd.mts
-model/vnd.vtu
-model/vrml			wrl vrml
-multipart/alternative
-multipart/appledouble
-multipart/byteranges
-multipart/digest
-multipart/encrypted
-multipart/form-data
-multipart/header-set
-multipart/mixed
-multipart/parallel
-multipart/related
-multipart/report
-multipart/signed
-multipart/voice-message
-text/calendar
-text/css			css
-text/directory
-text/enriched
-text/html			html htm
-text/parityfec
-text/plain			asc txt
-text/prs.lines.tag
-text/rfc822-headers
-text/richtext			rtx
-text/rtf			rtf
-text/sgml			sgml sgm
-text/tab-separated-values	tsv
-text/t140
-text/uri-list
-text/vnd.DMClientScript
-text/vnd.IPTC.NITF
-text/vnd.IPTC.NewsML
-text/vnd.abc
-text/vnd.curl
-text/vnd.flatland.3dml
-text/vnd.fly
-text/vnd.fmi.flexstor
-text/vnd.in3d.3dml
-text/vnd.in3d.spot
-text/vnd.latex-z
-text/vnd.motorola.reflex
-text/vnd.ms-mediapackage
-text/vnd.wap.si
-text/vnd.wap.sl
-text/vnd.wap.wml		wml
-text/vnd.wap.wmlscript		wmls
-text/x-setext			etx
-text/x-server-parsed-html       shtml
-text/xml			xml xsl
-text/xml-external-parsed-entity
-video/mp4v-es
-video/mpeg			mpeg mpg mpe
-video/parityfec
-video/pointer
-video/quicktime			qt mov
-video/vnd.fvt
-video/vnd.motorola.video
-video/vnd.motorola.videop
-video/vnd.mpegurl		mxu
-video/vnd.mts
-video/vnd.nokia.interleaved-multimedia
-video/vnd.vivo
-video/x-msvideo			avi
-video/x-sgi-movie		movie
-x-conference/x-cooltalk		ice
-
-
-
diff --git a/lib/inets/test/httpd_SUITE_data/server_root/conf/ssl.conf b/lib/inets/test/httpd_SUITE_data/server_root/conf/ssl.conf
deleted file mode 100644
index 8b8c57a98b..0000000000
--- a/lib/inets/test/httpd_SUITE_data/server_root/conf/ssl.conf
+++ /dev/null
@@ -1,66 +0,0 @@
-Port 8088
-#ServerName your.server.net
-SocketType ssl
-Modules mod_alias mod_auth mod_esi mod_actions mod_cgi mod_include mod_dir mod_get mod_head mod_log mod_disk_log
-ServerAdmin jocke@erix.ericsson.se
-ServerRoot /var/tmp/server_root
-ErrorLog logs/error_log_8088
-TransferLog logs/access_log_8088
-ErrorDiskLog logs/error_disk_log_8088
-ErrorDiskLogSize 200000 10
-TransferDiskLog logs/access_disk_log_8088
-TransferDiskLogSize 200000 10
-MaxClients 150
-DocumentRoot /var/tmp/server_root/htdocs
-DirectoryIndex index.html welcome.html
-DefaultType text/plain
-Alias /icons/ /var/tmp/server_root/icons/
-Alias /pics/ /var/tmp/server_root/icons/
-ScriptAlias /cgi-bin/ /var/tmp/server_root/cgi-bin/
-ScriptAlias /htbin/ /var/tmp/server_root/cgi-bin/
-ErlScriptAlias /cgi-bin/erl httpd_example io
-EvalScriptAlias /eval httpd_example io
-SSLCertificateFile /var/tmp/server_root/ssl/ssl_server.pem
-SSLCertificateKeyFile /var/tmp/server_root/ssl/ssl_server.pem
-SSLVerifyClient 0
-#Script HEAD /cgi-bin/printenv.sh
-#Action image/gif /cgi-bin/printenv.sh
-
-<Directory /var/tmp/server_root/htdocs/open>
-AuthName Open Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require user one Aladdin
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/secret>
-AuthName Secret Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require group group1 group2
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/secret/top_secret>
-AuthName Top Secret Area
-AuthUserFile /var/tmp/server_root/auth/passwd
-AuthGroupFile /var/tmp/server_root/auth/group
-require group group3
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_open>
-AuthName Open Area
-AuthMnesiaDB On
-require user one Aladdin
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_secret>
-AuthName Secret Area
-AuthMnesiaDB On
-require group group1 group2
-</Directory>
-
-<Directory /var/tmp/server_root/htdocs/mnesia_secret/top_secret>
-AuthName Top Secret Area
-AuthMnesiaDB On
-require group group3
-</Directory>
diff --git a/lib/inets/test/httpd_SUITE_data/server_root/icons/README b/lib/inets/test/httpd_SUITE_data/server_root/icons/README
deleted file mode 100644
index a1fc5a5a9c..0000000000
--- a/lib/inets/test/httpd_SUITE_data/server_root/icons/README
+++ /dev/null
@@ -1,161 +0,0 @@
-Public Domain Icons
-
-     These icons were originally made for Mosaic for X and have been
-     included in the NCSA httpd and Apache server distributions in the
-     past. They are in the public domain and may be freely included in any
-     application. The originals were done by Kevin Hughes (kevinh@eit.com).
-
-     Many thanks to Andy Polyakov for tuning the icon colors and adding a
-     few new images. If you'd like to contribute additions or ideas to
-     this set, please let me know.
-
-     The distribution site for these icons is at:
-
-          http://www.eit.com/goodies/www.icons/
-
-     Kevin Hughes
-     September 11, 1995
-
-
-Suggested Uses
-
-The following are a few suggestions, to serve as a starting point for ideas.
-Please feel free to tweak and rename the icons as you like.
-
-     a.gif
-          This might be used to represent PostScript or text layout
-          languages.
-
-     alert.black.gif, alert.red.gif
-          These can be used to highlight any important items, such as a
-          README file in a directory.
-
-     back.gif, forward.gif
-          These can be used as links to go to previous and next areas.
-
-     ball.gray.gif, ball.red.gif
-          These might be used as bullets.
-
-     binary.gif
-          This can be used to represent binary files.
-
-     binhex.gif
-          This can represent BinHex-encoded data.
-
-     blank.gif
-          This can be used as a placeholder or a spacing element.
-
-     bomb.gif
-          This can be used to repreesnt core files.
-
-     box1.gif, box2.gif
-          These icons can be used to represent generic 3D applications and
-          related files.
-
-     broken.gif
-          This can represent corrupted data.
-
-     burst.gif
-          This can call attention to new and important items.
-
-     c.gif
-          This might represent C source code.
-
-     comp.blue.gif, comp.red.gif
-          These little computer icons can stand for telnet or FTP
-          sessions.
-
-     compressed.gif
-          This may represent compressed data.
-
-     continued.gif
-          This can be a link to a continued listing of a directory.
-
-     down.gif, up.gif, left.gif, right.gif
-          These can be used to scroll up, down, left and right in a
-          listing or may be used to denote items in an outline.
-
-     dvi.gif
-          This can represent DVI files.
-
-     f.gif
-          This might represent FORTRAN or Forth source code.
-
-     folder.gif, folder.open.gif, folder.sec.gif
-          The folder can represent directories. There is also a version
-          that can represent secure directories or directories that cannot
-          be viewed.
-
-     generic.gif, generic.sec.gif, generic.red.gif
-          These can represent generic files, secure files, and important
-          files, respectively.
-
-     hand.right.gif, hand.up.gif
-          These can point out important items (pun intended).
-
-     image1.gif, image2.gif, image3.gif
-          These can represent image formats of various types.
-
-     index.gif
-          This might represent a WAIS index or search facility.
-
-     layout.gif
-          This might represent files and formats that contain graphics as
-          well as text layout, such as HTML and PDF files.
-
-     link.gif
-          This might represent files that are symbolic links.
-
-     movie.gif
-          This can represent various movie formats.
-
-     p.gif
-          This may stand for Perl or Python source code.
-
-     pie0.gif ... pie8.gif
-          These icons can be used in applications where a list of
-          documents is returned from a search. The little pie chart images
-          can denote how relevant the documents may be to your search
-          query.
-
-     patch.gif
-          This may stand for patches and diff files.
-
-     portal.gif
-          This might be a link to an online service or a 3D world.
-
-     ps.gif, quill.gif
-          These may represent PostScript files.
-
-     screw1.gif, screw2.gif
-          These may represent CAD or engineering data and formats.
-
-     script.gif
-          This can represent any of various interpreted languages, such as
-          Perl, python, TCL, and shell scripts, as well as server
-          configuration files.
-
-     sound1.gif, sound2.gif
-          These can represent sound files.
-
-     sphere1.gif, sphere2.gif
-          These can represent 3D worlds or rendering applications and
-          formats.
-
-     tex.gif
-          This can represent TeX files.
-
-     text.gif
-          This can represent generic (plain) text files.
-
-     transfer.gif
-          This can represent FTP transfers or uploads/downloads.
-
-     unknown.gif
-          This may represent a file of an unknown type.
-
-     uuencoded.gif
-          This can stand for uuencoded data.
-
-     world1.gif, world2.gif
-          These can represent 3D worlds or other 3D formats.
diff --git a/lib/inets/test/httpd_SUITE_data/server_root/logs/Dummy_File_Needed_By_WinZip b/lib/inets/test/httpd_SUITE_data/server_root/logs/Dummy_File_Needed_By_WinZip
deleted file mode 100644
index 8d1c8b69c3..0000000000
--- a/lib/inets/test/httpd_SUITE_data/server_root/logs/Dummy_File_Needed_By_WinZip
+++ /dev/null
@@ -1 +0,0 @@
- 
diff --git a/lib/inets/test/httpd_SUITE_data/server_root/ssl/ssl_client.pem b/lib/inets/test/httpd_SUITE_data/server_root/ssl/ssl_client.pem
deleted file mode 100644
index 427447958d..0000000000
--- a/lib/inets/test/httpd_SUITE_data/server_root/ssl/ssl_client.pem
+++ /dev/null
@@ -1,31 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQCTFBPkOO98fDY3j6MIxIGKp+rampfIay50Lx4+EnCnRSSVwC+n
-0VVmP7V5SGFJpuXJzN0hvqPUWOOjiMTNlNRaGy0pqu2oMXWAPLOxHWL1wT53h2Zr
-3FUNU/N0Rvnkttse1KZJ9uYCLKUiuXXsv2rR62nH3OhRIiBHSAcSv0NRWwIDAQAB
-AoGACdIVYe/LTeydUihtInC8lZ2QuPgJmoBNocRjqJFipEihoL4scHAx25n1bBvB
-I0HZphffzBkGp28oBAtl2LRPWXqu527unc/RWRfLMqSK1xNSq1DxD1a30zkrZPna
-QiV65vEJuNSJTtlDy/Zqc/BVZXCpxWlzYQedZgkmf0Qse8ECQQCmaz02Yur8zC9f
-eSQKU5OSzGw3bSIumEzziCfHdTheK6MEoccf5TCAyLXhZwA7QlKja4tFXfeyVxws
-/LlnUJN9AkEA4j+xnOeYUyGKXL5i+BAbnqpI4MzPiq+IoCYkaRlD/wAws24r5HNI
-ZQmEHWqD/NNzOf/A2XuyLtMiTGJPW/DftwJBAKKpJP6Ytuh6xz8BUCnLwO12Y7vV
-LtjuQiCzD3aUa5EYA9HOMqxJPxxRkf0LyR0i2VUkE8+sZiPpov+R0cJa7p0CQQCj
-40GUiArGRSiF7/+e84QeVfl+pb29F1QftiFv5DZmFEwy3Z572KpbTh5edJbxYHY6
-UDHxGHJFCvnwXNJhpkVXAkBJqfEfiMJ3Q/E5Gpf3sQizacouW92iiN8ojlF1oB80
-t34RysJH7SgI3gdMhTribCo2UUaV0StjR6yodPN+TB2J
------END RSA PRIVATE KEY-----
------BEGIN CERTIFICATE-----
-MIIChzCCAfCgAwIBAgIGAIsapa8BMA0GCSqGSIb3DQEBBQUAMHoxDjAMBgNVBAMT
-BW90cENBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0ZXJAZXJsYW5nLm9yZzESMBAGA1UE
-BxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEPMA0GA1UEChMGZXJsYW5nMRQwEgYD
-VQQLEwt0ZXN0aW5nIGRlcDAiGA8yMDEwMDkwMTAwMDAwMFoYDzIwMjUwODI4MDAw
-MDAwWjB7MQ8wDQYDVQQDEwZjbGllbnQxIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBl
-cmxhbmcub3JnMRIwEAYDVQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYD
-VQQKEwZlcmxhbmcxFDASBgNVBAsTC3Rlc3RpbmcgZGVwMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQCTFBPkOO98fDY3j6MIxIGKp+rampfIay50Lx4+EnCnRSSV
-wC+n0VVmP7V5SGFJpuXJzN0hvqPUWOOjiMTNlNRaGy0pqu2oMXWAPLOxHWL1wT53
-h2Zr3FUNU/N0Rvnkttse1KZJ9uYCLKUiuXXsv2rR62nH3OhRIiBHSAcSv0NRWwID
-AQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAG8t6f1A
-PF7xayGxtUpG2r6W5ETylC3ZIKPS2kfJk9aYi7AZNTp7/xTU6SgqvFBN8aBPzxCD
-4jHrSNC8DSb4X1x9uimarb6qdZDHEdij+DRAd2eygJHZxEf7+8B4Fx34thQeU9hZ
-S1Izke5AlsyFMkvB7h0anE4k9BfuU70vl6v5
------END CERTIFICATE-----
diff --git a/lib/inets/test/httpd_SUITE_data/server_root/ssl/ssl_server.pem b/lib/inets/test/httpd_SUITE_data/server_root/ssl/ssl_server.pem
deleted file mode 100644
index 4aac86db49..0000000000
--- a/lib/inets/test/httpd_SUITE_data/server_root/ssl/ssl_server.pem
+++ /dev/null
@@ -1,31 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIICXQIBAAKBgQCf4Htxr99lLs5W8QQw7jdakqyAkIjOW4aqH8sr4va4SvZ9Adq6
-7k8jMHefCVZo+F8x4cwsBgB4aWzFIGBnvFTi6YsH27XW7f9O9IPCej8fdhRZ4UAt
-NHa253buOWpDGla2JmIdkmfFvXFJycMIKbG5tYilVXoWKBMKmCwWaXz0nQIDAQAB
-AoGAQIlma0r6W6bcRj4+Wd4fXCFvHuq5Psu1fYEeC5Yvz8761xVjjSfbrDHJZ9pm
-FjOEgedK+s5lbDXqYVyjbdyZSugStBRocSmbG8SQHcAsxR2ZIkNzX2hYzB+lslWo
-T3YJojDyB134O7XJznCu+ZFXP86jyJ1JT6k6a+OIHcwnJ+ECQQDYn57dY4Px3mEd
-VBLStN3YkRF5oFyT+xk7IaKeLLB6n4gCnoVbBoHut7PFbPYPzoNzEwPk3MQKDIHb
-Kig3S5CpAkEAvPA1VmoJWAlN6kUi+F2L8HXEArzE8x7vwdsslrwMKUe4dFS+ZC/7
-5iDOaxcZ7TYkCgwzBt341++DCgP6j3fY1QJBALB6AcOcwi52m6l4B8mu3ZkEPjdX
-BHTuONTqhv/TqoaLlxODL2NDvvDKqeMp7KBd/srt79swW2lQXS4+fvrlTdkCQQCm
-zxj4O1QWkthkfje6ubSkTwUIOatUzrp1F9GNH2dJRtX2dx9FCwxGCC7WY6XzRXqa
-GF0wsedSllbGD+82nWQlAkAicMGqCqRq4hKR/cVmFatOqKVWCVkx6OFF2FhuiI5Z
-h5eIOPGCt8dVRs1P9DNSld/D98Sfm65m85z8BtXovvYV
------END RSA PRIVATE KEY-----
------BEGIN CERTIFICATE-----
-MIIChzCCAfCgAwIBAgIGANUxXM9BMA0GCSqGSIb3DQEBBQUAMHoxDjAMBgNVBAMT
-BW90cENBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0ZXJAZXJsYW5nLm9yZzESMBAGA1UE
-BxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEPMA0GA1UEChMGZXJsYW5nMRQwEgYD
-VQQLEwt0ZXN0aW5nIGRlcDAiGA8yMDEwMDkwMTAwMDAwMFoYDzIwMjUwODI4MDAw
-MDAwWjB7MQ8wDQYDVQQDEwZzZXJ2ZXIxIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBl
-cmxhbmcub3JnMRIwEAYDVQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYD
-VQQKEwZlcmxhbmcxFDASBgNVBAsTC3Rlc3RpbmcgZGVwMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQCf4Htxr99lLs5W8QQw7jdakqyAkIjOW4aqH8sr4va4SvZ9
-Adq67k8jMHefCVZo+F8x4cwsBgB4aWzFIGBnvFTi6YsH27XW7f9O9IPCej8fdhRZ
-4UAtNHa253buOWpDGla2JmIdkmfFvXFJycMIKbG5tYilVXoWKBMKmCwWaXz0nQID
-AQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAGF5Pfwk
-QDdwJup/mVITPxbBls4Yl7anDooUQsq8066lA1g54H/PRfXscGkyCFGh1ifXvf1L
-psMRoBAdDHL/wSJplk3rRavkC94eBgnTFZmfKL6844g1j53yameiYL8IEVExYMBg
-/XGyc0qwq57WT8B/K4aElrvlBlQ0wF3wN54M
------END CERTIFICATE-----
diff --git a/lib/inets/test/httpd_all.erl b/lib/inets/test/httpd_all.erl
new file mode 100644
index 0000000000..7ce1129bf5
--- /dev/null
+++ b/lib/inets/test/httpd_all.erl
@@ -0,0 +1,239 @@
+alias(Version, Type, Port, Host, Node) ->
+    Opts = [],
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Opts, Node,
+				       "GET /pics/icon.sheet.gif "
+				       ++ Version ++ "\r\n\r\n",
+				       [{statuscode, 200},
+					{header, "Content-Type","image/gif"},
+					{header, "Server"},
+					{header, "Date"},
+				        {version, Version}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Opts, Node,
+				       "GET / " ++  Version ++ "\r\n\r\n",
+				       [{statuscode, 200},
+					{header, "Content-Type","text/html"},
+					{header, "Server"},
+					{header, "Date"},
+				        {version, Version}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Opts, Node,
+				       "GET /misc/ " ++ Version ++ "\r\n\r\n",
+				       [{statuscode, 200},
+					{header, "Content-Type","text/html"},
+					{header, "Server"},
+					{header, "Date"},
+				        {version, Version}]),
+
+    %% Check redirection if trailing slash is missing.
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Opts, Node,
+				       "GET /misc "++ Version ++ "\r\n\r\n",
+				       [{statuscode, 301},
+					{header, "Location"},
+					{header, "Content-Type","text/html"},
+				        {version, Version}]).
+
+
+head(Version, Type, Port, Host, Node) ->
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "HEAD /index.html " ++ Version ++ "\r\n\r\n",
+				       [{statuscode, 200},
+					{version, Version}]).
+
+
+get(Version, Type, Port, Host, Node) ->
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /index.html " ++ Version ++ "\r\n\r\n",
+				       [{statuscode, 200},
+					{header, "Content-Type", "text/html"},
+					{header, "Date"},
+					{header, "Server"},
+					{version, Version}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /fsize.shtml " ++ Version ++ "\r\nHost:"
+				       ++ Host ++ "\r\n\r\n",
+				       [{statuscode, 200},
+					{header, "Content-Type", "text/html"},
+					{header, "Date"},
+					{header, "Server"}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /secret/dummy.html "
+				       ++ Version  ++ "\r\n\r\n",
+				       [{statuscode, 401},
+					{header, "WWW-Authenticate"},
+					{version, Version}]).
+
+esi(Version, Type, Port, Host, Node) ->
+    %% Check "ErlScriptAlias" and "EvalScriptAlias" directives
+     ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+					"GET /eval?httpd_example:print(\"Hi!\") "
+				        ++ Version ++ "\r\n\r\n",
+					[{statuscode, 200},
+					 {version, Version}]),
+     ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /eval?not_allowed:print(\"Hi!\") "
+					++ Version ++ "\r\n\r\n",
+					[{statuscode, 403},
+					 {version, Version}]),
+     ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /eval?httpd_example:undef(\"Hi!\") "
+				       ++ Version ++ "\r\n\r\n",
+				       [{statuscode, 500},
+					{version, Version}]),
+     ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+					"GET /cgi-bin/erl/httpd_example "
+					++ Version ++ "\r\n\r\n",
+				       [{statuscode, 400},
+					{version, Version}]),
+     ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+					"GET /cgi-bin/erl/httpd_example:get "
+					++ Version  ++ "\r\n\r\n",
+					[{statuscode, 200},
+					 {version, Version}]),
+     ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /cgi-bin/erl/httpd_example:"
+				       "get?input=4711"
+				       " HTTP/1.0\r\n\r\n",
+				       [{statuscode, 200},
+				       {version, "HTTP/1.0"}]),
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /cgi-bin/erl/httpd_example:"
+				       "post " ++ Version ++ "\r\n\r\n",
+				       [{statuscode, 200},
+					{version, Version}]),
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /cgi-bin/erl/not_allowed:post "
+				       ++ Version ++ "\r\n\r\n",
+				       [{statuscode, 403},
+					{version, Version}]),
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /cgi-bin/erl/httpd_example:undef "
+				       ++ Version ++ "\r\n\r\n",
+				       [{statuscode, 404},
+					{version, Version}]),
+    ok =  httpd_test_lib:verify_request(Type, Host, Port, Node,
+					"GET /cgi-bin/erl/httpd_example/yahoo "
+					++ Version ++ "\r\n\r\n",
+					[{statuscode, 302},
+					{version, Version}]),
+    %% Check "ErlScriptNoCache" directive (default: false)
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /cgi-bin/erl/httpd_example:get "
+				       ++ Version ++ "\r\n\r\n",
+				       [{statuscode, 200},
+					{no_header, "cache-control"},
+					{version, "HTTP/1.0"}]).
+
+cgi(Version, Type, Port, Host, Node) ->
+    {Script, Script2, Script3} =
+	case test_server:os_type() of
+	    {win32, _} ->
+		{"printenv.bat", "printenv.sh", "cgi_echo.exe"};
+	    _ ->
+		{"printenv.sh", "printenv.bat", "cgi_echo"}
+	end,
+
+    %% The length (> 100) is intentional
+    ok = httpd_test_lib:
+	verify_request(Type, Host, Port, Node,
+		       "POST /cgi-bin/" ++ Script3 ++
+			   Version ++ " \r\n"
+		       "Content-Length:100 \r\n\r\n "
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
+		       " \r\n\r\n",
+		       [{statuscode, 200},
+			{version, Version},
+			{header, "content-type", "text/plain"}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /cgi-bin/"++ Script ++
+					   " " ++ Version ++ "\r\n\r\n",
+				       [{statuscode, 200},
+					{version, Version}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /cgi-bin/not_there " ++
+					   Version ++ "\r\n\r\n",
+				       [{statuscode, 404},{statuscode, 500},
+					{version, Version}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /cgi-bin/"++ Script ++
+					   "?Nisse:kkk?sss/lll " ++ Version ++ "\r\n\r\n",
+				       [{statuscode, 200},
+					{version, Version}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "POST /cgi-bin/"++ Script ++
+				       " HTTP/1.0\r\n\r\n",
+				       [{statuscode, 200},
+					{version, "HTTP/1.0"}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /htbin/"++ Script ++
+				       " HTTP/1.0\r\n\r\n",
+				       [{statuscode, 200},
+				       {version, "HTTP/1.0"}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /htbin/not_there "
+				       "HTTP/1.0\r\n\r\n",
+				       [{statuscode, 404},{statuscode, 500},
+				        {version, "HTTP/1.0"}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /htbin/"++ Script ++
+				       "?Nisse:kkk?sss/lll HTTP/1.0\r\n\r\n",
+				       [{statuscode, 200},
+					{version, "HTTP/1.0"}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "POST /htbin/"++ Script ++
+				       " HTTP/1.0\r\n\r\n",
+				       [{statuscode, 200},
+				       {version, "HTTP/1.0"}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "POST /htbin/"++ Script ++
+				       " HTTP/1.0\r\n\r\n",
+				       [{statuscode, 200},
+				       {version, "HTTP/1.0"}]),
+
+    %% Execute an existing, but bad CGI script..
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "POST /htbin/"++ Script2 ++
+				       " HTTP/1.0\r\n\r\n",
+				       [{statuscode, 404},
+					{version, "HTTP/1.0"}]),
+
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "POST /cgi-bin/"++ Script2 ++
+				       " HTTP/1.0\r\n\r\n",
+				       [{statuscode, 404},
+				       {version, "HTTP/1.0"}]),
+
+    %% Check "ScriptNoCache" directive (default: false)
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       "GET /cgi-bin/" ++ Script ++
+				       " HTTP/1.0\r\n\r\n",
+				       [{statuscode, 200},
+					{no_header, "cache-control"},
+					{version, "HTTP/1.0"}]).
diff --git a/lib/inets/test/httpd_mod_SUITE.erl b/lib/inets/test/httpd_mod_SUITE.erl
new file mode 100644
index 0000000000..07e2c2418a
--- /dev/null
+++ b/lib/inets/test/httpd_mod_SUITE.erl
@@ -0,0 +1,76 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2013-2014. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+%%
+%% ct:run("../inets_test", httpd_mod_SUITE).
+-module(httpd_mod_SUITE).
+
+-include_lib("kernel/include/file.hrl").
+-include_lib("common_test/include/ct.hrl").
+-include("inets_test_lib.hrl").
+
+%% Note: This directive should only be used in test suites.
+-compile(export_all).
+
+%%--------------------------------------------------------------------
+%% Common Test interface functions -----------------------------------
+%%--------------------------------------------------------------------
+suite() ->
+    [{ct_hooks,[ts_install_cth]}].
+
+all() ->
+    [
+     {group, http},
+     {group, https}
+    ].
+
+groups() ->
+    [
+     {http, [], all_version_groups()},
+     {https, [], all_version_groups()}
+     {http_1_1, [], []},
+     {http_1_0, [], []},
+     {http_0_9, [], []},
+     {mod_alias, [], []},
+     {mod_actions, [], []},
+     {mod_security, [], []},
+     {mod_auth, [], []},
+     {mod_htaccess, [], []},
+     {mod_cgi, [], []},
+     {mod_esi, [], []},
+     {mod_head, [], []},
+     {configure, [], []}
+    ].
+
+all_version_groups ()->
+    [
+     {group, mod_alias},
+     {group, mod_actions},
+     {group, mod_security},
+     {group, mod_auth},
+     {group, mod_htaccess},
+     {group, mod_cgi},
+     {group, mod_esi},
+     {group, mod_head}
+    ].
+
+%%-------------------------------------------------------------------------
+%% Test cases starts here.
+%%-------------------------------------------------------------------------
diff --git a/lib/inets/test/inets_test_lib.erl b/lib/inets/test/inets_test_lib.erl
index 3494269d70..4755776ee8 100644
--- a/lib/inets/test/inets_test_lib.erl
+++ b/lib/inets/test/inets_test_lib.erl
@@ -1,7 +1,7 @@
 %%
 %% %CopyrightBegin%
 %%
-%% Copyright Ericsson AB 2001-2013. All Rights Reserved.
+%% Copyright Ericsson AB 2001-2014. All Rights Reserved.
 %%
 %% The contents of this file are subject to the Erlang Public License,
 %% Version 1.1, (the "License"); you may not use this file except in
@@ -287,7 +287,9 @@ print(F, A, Mod, Line) ->
     print("", F, A, Mod, Line).
 
 hostname() ->
-    from($@, atom_to_list(node())).
+   {ok, Name} = inet:gethostname(),
+    Name.
+
 from(H, [H | T]) -> T;
 from(H, [_ | T]) -> from(H, T);
 from(_, []) -> [].
diff --git a/lib/inets/test/old_httpd_SUITE.erl b/lib/inets/test/old_httpd_SUITE.erl
new file mode 100644
index 0000000000..b2ad593629
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE.erl
@@ -0,0 +1,2444 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2014. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+%%
+
+-module(old_httpd_SUITE).
+
+-include_lib("test_server/include/test_server.hrl").
+-include("test_server_line.hrl").
+-include("inets_test_lib.hrl").
+
+-include_lib("kernel/include/file.hrl").
+
+%% Test server specific exports
+-export([all/0, suite/0,groups/0,init_per_group/2,end_per_group/2]).
+-export([init_per_testcase/2, end_per_testcase/2,
+	 init_per_suite/1, end_per_suite/1]).
+
+%% Core Server tests
+-export([
+	 ip_mod_alias/1,
+	 ip_mod_actions/1,
+	 ip_mod_security/1,
+	 ip_mod_auth/1,
+	 ip_mod_auth_api/1,
+	 ip_mod_auth_mnesia_api/1,
+	 ip_mod_htaccess/1,
+	 ip_mod_cgi/1,
+	 ip_mod_esi/1,
+	 ip_mod_get/1,
+	 ip_mod_head/1,
+	 ip_mod_all/1,
+	 ip_load_light/1,
+	 ip_load_medium/1,
+	 ip_load_heavy/1,
+	 ip_dos_hostname/1,
+	 ip_time_test/1,
+	 ip_block_disturbing_idle/1,
+	 ip_block_non_disturbing_idle/1,
+	 ip_block_503/1,
+	 ip_block_disturbing_active/1,
+	 ip_block_non_disturbing_active/1,
+	 ip_block_disturbing_active_timeout_not_released/1,
+	 ip_block_disturbing_active_timeout_released/1,
+	 ip_block_non_disturbing_active_timeout_not_released/1,
+	 ip_block_non_disturbing_active_timeout_released/1,
+	 ip_block_disturbing_blocker_dies/1,
+	 ip_block_non_disturbing_blocker_dies/1,
+	 ip_restart_no_block/1,
+	 ip_restart_disturbing_block/1,
+	 ip_restart_non_disturbing_block/1
+	]).
+
+-export([
+	 essl_mod_alias/1,
+	 essl_mod_actions/1,
+	 essl_mod_security/1,
+	 essl_mod_auth/1,
+	 essl_mod_auth_api/1,
+	 essl_mod_auth_mnesia_api/1,
+	 essl_mod_htaccess/1,
+	 essl_mod_cgi/1,
+	 essl_mod_esi/1,
+	 essl_mod_get/1,
+	 essl_mod_head/1,
+	 essl_mod_all/1,
+	 essl_load_light/1,
+	 essl_load_medium/1,
+	 essl_load_heavy/1,
+	 essl_dos_hostname/1,
+	 essl_time_test/1,
+	 essl_restart_no_block/1,
+	 essl_restart_disturbing_block/1,
+	 essl_restart_non_disturbing_block/1,
+	 essl_block_disturbing_idle/1,
+	 essl_block_non_disturbing_idle/1,
+	 essl_block_503/1,
+	 essl_block_disturbing_active/1,
+	 essl_block_non_disturbing_active/1,
+	 essl_block_disturbing_active_timeout_not_released/1,
+	 essl_block_disturbing_active_timeout_released/1,
+	 essl_block_non_disturbing_active_timeout_not_released/1,
+	 essl_block_non_disturbing_active_timeout_released/1,
+	 essl_block_disturbing_blocker_dies/1,
+	 essl_block_non_disturbing_blocker_dies/1
+	]).
+
+%%% HTTP 1.1 tests
+-export([ip_host/1, ip_chunked/1, ip_expect/1, ip_range/1,
+	 ip_if_test/1, ip_http_trace/1, ip_http1_1_head/1,
+	 ip_mod_cgi_chunked_encoding_test/1]).
+
+%%% HTTP 1.0 tests
+-export([ip_head_1_0/1, ip_get_1_0/1, ip_post_1_0/1]).
+
+%%% HTTP 0.9 tests
+-export([ip_get_0_9/1]).
+
+%%% Ticket tests
+-export([ticket_5775/1,ticket_5865/1,ticket_5913/1,ticket_6003/1,
+	 ticket_7304/1]).
+
+%%% IPv6 tests
+-export([ipv6_hostname_ipcomm/0, ipv6_hostname_ipcomm/1,
+	 ipv6_address_ipcomm/0,  ipv6_address_ipcomm/1,
+	 ipv6_hostname_essl/0,   ipv6_hostname_essl/1,
+	 ipv6_address_essl/0,    ipv6_address_essl/1]).
+
+%% Help functions
+-export([cleanup_mnesia/0, setup_mnesia/0, setup_mnesia/1]).
+
+-define(IP_PORT, 8898).
+-define(SSL_PORT, 8899).
+-define(MAX_HEADER_SIZE, 256).
+-define(IPV6_LOCAL_HOST, "0:0:0:0:0:0:0:1").
+
+%% Minutes before failed auths timeout.
+-define(FAIL_EXPIRE_TIME,1).
+
+%% Seconds before successful auths timeout.
+-define(AUTH_TIMEOUT,5).
+
+-record(httpd_user,  {user_name, password, user_data}).
+-record(httpd_group, {group_name, userlist}).
+
+
+%%--------------------------------------------------------------------
+%% all(Arg) -> [Doc] | [Case] | {skip, Comment}
+%% Arg - doc | suite
+%% Doc - string()
+%% Case - atom()
+%%	Name of a test case function.
+%% Comment - string()
+%% Description: Returns documentation/test cases in this test suite
+%%		or a skip tuple if the platform is not supported.
+%%--------------------------------------------------------------------
+suite() -> [{ct_hooks,[ts_install_cth]}].
+
+all() ->
+    [
+     {group, ip},
+     {group, ssl},
+     {group, http_1_1_ip},
+     {group, http_1_0_ip},
+     {group, http_0_9_ip},
+     {group, ipv6},
+     {group, tickets}
+    ].
+
+groups() ->
+    [
+     {ip, [],
+      [ip_mod_alias, ip_mod_actions, ip_mod_security,
+       ip_mod_auth, ip_mod_auth_api, ip_mod_auth_mnesia_api,
+       ip_mod_htaccess, ip_mod_cgi, ip_mod_esi, ip_mod_get,
+       ip_mod_head, ip_mod_all, ip_load_light, ip_load_medium,
+       ip_load_heavy, ip_dos_hostname, ip_time_test,
+       ip_restart_no_block, ip_restart_disturbing_block,
+       ip_restart_non_disturbing_block,
+       ip_block_disturbing_idle, ip_block_non_disturbing_idle,
+       ip_block_503, ip_block_disturbing_active,
+       ip_block_non_disturbing_active,
+       ip_block_disturbing_active_timeout_not_released,
+       ip_block_disturbing_active_timeout_released,
+       ip_block_non_disturbing_active_timeout_not_released,
+       ip_block_non_disturbing_active_timeout_released,
+       ip_block_disturbing_blocker_dies,
+       ip_block_non_disturbing_blocker_dies]},
+     {ssl, [], [{group, essl}]},
+     {essl, [],
+      [essl_mod_alias, essl_mod_actions, essl_mod_security,
+       essl_mod_auth, essl_mod_auth_api,
+       essl_mod_auth_mnesia_api, essl_mod_htaccess,
+       essl_mod_cgi, essl_mod_esi, essl_mod_get, essl_mod_head,
+       essl_mod_all, essl_load_light, essl_load_medium,
+       essl_load_heavy, essl_dos_hostname, essl_time_test,
+       essl_restart_no_block, essl_restart_disturbing_block,
+       essl_restart_non_disturbing_block,
+       essl_block_disturbing_idle,
+       essl_block_non_disturbing_idle, essl_block_503,
+       essl_block_disturbing_active,
+       essl_block_non_disturbing_active,
+       essl_block_disturbing_active_timeout_not_released,
+       essl_block_disturbing_active_timeout_released,
+       essl_block_non_disturbing_active_timeout_not_released,
+       essl_block_non_disturbing_active_timeout_released,
+       essl_block_disturbing_blocker_dies,
+       essl_block_non_disturbing_blocker_dies]},
+     {http_1_1_ip, [],
+      [ip_host, ip_chunked, ip_expect, ip_range, ip_if_test,
+       ip_http_trace, ip_http1_1_head,
+       ip_mod_cgi_chunked_encoding_test]},
+     {http_1_0_ip, [],
+      [ip_head_1_0, ip_get_1_0, ip_post_1_0]},
+     {http_0_9_ip, [], [ip_get_0_9]},
+     {ipv6, [], [ipv6_hostname_ipcomm, ipv6_address_ipcomm,
+		 ipv6_hostname_essl,   ipv6_address_essl]},
+     {tickets, [],
+      [ticket_5775, ticket_5865, ticket_5913, ticket_6003,
+       ticket_7304]}].
+
+
+init_per_group(ipv6 = _GroupName, Config) ->
+    case inets_test_lib:has_ipv6_support() of
+	{ok, _} ->
+	    Config;
+	_ ->
+	    {skip, "Host does not support IPv6"}
+    end;
+init_per_group(_GroupName, Config) ->
+    Config.
+
+end_per_group(_GroupName, Config) ->
+    Config.
+
+
+%%--------------------------------------------------------------------
+%% Function: init_per_suite(Config) -> Config
+%% Config - [tuple()]
+%%   A list of key/value pairs, holding the test case configuration.
+%% Description: Initiation before the whole suite
+%%
+%% Note: This function is free to add any key/value pairs to the Config
+%% variable, but should NOT alter/remove any existing entries.
+%%--------------------------------------------------------------------
+init_per_suite(Config) ->
+    io:format(user, "init_per_suite -> entry with"
+	      "~n   Config: ~p"
+	      "~n", [Config]),
+
+    ?PRINT_SYSTEM_INFO([]),
+
+    PrivDir = ?config(priv_dir, Config),
+    SuiteTopDir = filename:join(PrivDir, ?MODULE),
+    case file:make_dir(SuiteTopDir) of
+        ok ->
+            ok;
+        {error, eexist} ->
+            ok;
+        Error ->
+            throw({error, {failed_creating_suite_top_dir, Error}})
+    end,
+
+    [{has_ipv6_support, inets_test_lib:has_ipv6_support()},
+     {suite_top_dir,    SuiteTopDir},
+     {node,             node()},
+     {host,             inets_test_lib:hostname()},
+     {address,          getaddr()} | Config].
+
+
+%%--------------------------------------------------------------------
+%% Function: end_per_suite(Config) -> _
+%% Config - [tuple()]
+%%   A list of key/value pairs, holding the test case configuration.
+%% Description: Cleanup after the whole suite
+%%--------------------------------------------------------------------
+
+end_per_suite(_Config) ->
+    %% SuiteTopDir = ?config(suite_top_dir, Config),
+    %% inets_test_lib:del_dirs(SuiteTopDir),
+    ok.
+
+
+%%--------------------------------------------------------------------
+%% Function: init_per_testcase(Case, Config) -> Config
+%% Case - atom()
+%%   Name of the test case that is about to be run.
+%% Config - [tuple()]
+%%   A list of key/value pairs, holding the test case configuration.
+%%
+%% Description: Initiation before each test case
+%%
+%% Note: This function is free to add any key/value pairs to the Config
+%% variable, but should NOT alter/remove any existing entries.
+%%--------------------------------------------------------------------
+init_per_testcase(Case, Config) ->
+    NewConfig = init_per_testcase2(Case, Config),
+    init_per_testcase3(Case, NewConfig).
+
+
+init_per_testcase2(Case, Config) ->
+
+    %% tsp("init_per_testcase2 -> entry with"
+    %% 	"~n   Config: ~p", [Config]),
+
+    IpNormal    = integer_to_list(?IP_PORT)    ++ ".conf",
+    IpHtaccess  = integer_to_list(?IP_PORT)   ++ "htaccess.conf",
+    SslNormal   = integer_to_list(?SSL_PORT)  ++ ".conf",
+    SslHtaccess = integer_to_list(?SSL_PORT) ++ "htaccess.conf",
+
+    DataDir     = ?config(data_dir, Config),
+    SuiteTopDir = ?config(suite_top_dir, Config),
+
+    %% tsp("init_per_testcase2 -> "
+    %% 	"~n   SuiteDir: ~p"
+    %% 	"~n   DataDir:  ~p", [SuiteTopDir, DataDir]),
+
+    TcTopDir = filename:join(SuiteTopDir, Case),
+    ?line ok = file:make_dir(TcTopDir),
+
+    %% tsp("init_per_testcase2 -> "
+    %% 	"~n   TcTopDir: ~p", [TcTopDir]),
+
+    DataSrc    = filename:join([DataDir, "server_root"]),
+    ServerRoot = filename:join([TcTopDir, "server_root"]),
+
+    %% tsp("init_per_testcase2 -> "
+    %% 	"~n   DataSrc:    ~p"
+    %% 	"~n   ServerRoot: ~p", [DataSrc, ServerRoot]),
+
+    ok = file:make_dir(ServerRoot),
+    ok = file:make_dir(filename:join([TcTopDir, "logs"])),
+
+    NewConfig = [{tc_top_dir, TcTopDir}, {server_root, ServerRoot} | Config],
+
+    %% tsp("init_per_testcase2 -> copy DataSrc to ServerRoot"),
+
+    inets_test_lib:copy_dirs(DataSrc, ServerRoot),
+
+    %% tsp("init_per_testcase2 -> fix cgi"),
+    EnvCGI =  filename:join([ServerRoot, "cgi-bin", "printenv.sh"]),
+    {ok, FileInfo} = file:read_file_info(EnvCGI),
+    ok = file:write_file_info(EnvCGI,
+			      FileInfo#file_info{mode = 8#00755}),
+
+    EchoCGI = case test_server:os_type() of
+	      {win32, _} ->
+		  "cgi_echo.exe";
+	      _ ->
+		  "cgi_echo"
+	      end,
+    CGIDir = filename:join([ServerRoot, "cgi-bin"]),
+    inets_test_lib:copy_file(EchoCGI, DataDir,  CGIDir),
+    NewEchoCGI = filename:join([CGIDir, EchoCGI]),
+    {ok, FileInfo1} = file:read_file_info(NewEchoCGI),
+    ok = file:write_file_info(NewEchoCGI,
+			      FileInfo1#file_info{mode = 8#00755}),
+
+    %% To be used by IP test cases
+    %% tsp("init_per_testcase2 -> ip testcase setups"),
+    create_config([{port, ?IP_PORT}, {sock_type, ip_comm} | NewConfig],
+		  normal_access, IpNormal),
+    create_config([{port, ?IP_PORT}, {sock_type, ip_comm} | NewConfig],
+		  mod_htaccess, IpHtaccess),
+
+    %% To be used by SSL test cases
+    %% tsp("init_per_testcase2 -> ssl testcase setups"),
+    SocketType =
+	case atom_to_list(Case) of
+	    [X, $s, $s, $l | _] ->
+		case X of
+		    $p -> ssl;
+		    $e -> essl
+		end;
+	    _ ->
+		ssl
+	end,
+
+    create_config([{port, ?SSL_PORT}, {sock_type, SocketType} | NewConfig],
+		  normal_access, SslNormal),
+    create_config([{port, ?SSL_PORT}, {sock_type, SocketType} | NewConfig],
+		  mod_htaccess, SslHtaccess),
+
+    %% To be used by IPv6 test cases. Case-clause is so that
+    %% you can do ts:run(inets, httpd_SUITE, <test case>)
+    %% for all cases except the ipv6 cases as they depend
+    %% on  'test_host_ipv6_only' that will only be present
+    %% when you run the whole test suite due  to shortcomings
+    %% of the test server.
+
+    tsp("init_per_testcase2 -> maybe generate IPv6 config file(s)"),
+    NewConfig2 =
+	case atom_to_list(Case) of
+	    "ipv6_" ++ _ ->
+		case (catch inets_test_lib:has_ipv6_support(NewConfig)) of
+		    {ok, IPv6Address0} ->
+			{ok, Hostname} = inet:gethostname(),
+			IPv6Address = http_transport:ipv6_name(IPv6Address0),
+			create_ipv6_config([{port, ?IP_PORT},
+					    {sock_type, ip_comm},
+					    {ipv6_host, IPv6Address} |
+					    NewConfig],
+					   "ipv6_hostname_ipcomm.conf",
+					   Hostname),
+			create_ipv6_config([{port, ?IP_PORT},
+					    {sock_type, ip_comm},
+					    {ipv6_host, IPv6Address} |
+					    NewConfig],
+					   "ipv6_address_ipcomm.conf",
+					   IPv6Address),
+			create_ipv6_config([{port, ?SSL_PORT},
+					    {sock_type, essl},
+					    {ipv6_host, IPv6Address} |
+					    NewConfig],
+					   "ipv6_hostname_essl.conf",
+					   Hostname),
+			create_ipv6_config([{port, ?SSL_PORT},
+					    {sock_type, essl},
+					    {ipv6_host, IPv6Address} |
+					    NewConfig],
+					   "ipv6_address_essl.conf",
+					   IPv6Address),
+			[{ipv6_host, IPv6Address} | NewConfig];
+		    _ ->
+			NewConfig
+		end;
+
+	    _ ->
+		NewConfig
+	end,
+
+    %% tsp("init_per_testcase2 -> done when"
+    %% 	"~n   NewConfig2: ~p", [NewConfig2]),
+
+    NewConfig2.
+
+
+init_per_testcase3(Case, Config) ->
+    tsp("init_per_testcase3(~w) -> entry with"
+	"~n   Config: ~p", [Case, Config]),
+
+
+%%     %% Create a new fresh node to be used by the server in this test-case
+
+%%     NodeName = list_to_atom(atom_to_list(Case) ++ "_httpd"),
+%%     Node     = inets_test_lib:start_node(NodeName),
+
+    %% Clean up (we do not want this clean up in end_per_testcase
+    %% if init_per_testcase crashes for some testcase it will
+    %% have contaminated the environment and there will be no clean up.)
+    %% This init can take a few different paths so that one crashes
+    %% does not mean that all invocations will.
+
+    application:unset_env(inets, services),
+    application:stop(inets),
+    application:stop(ssl),
+    cleanup_mnesia(),
+
+    %% Start initialization
+    tsp("init_per_testcase3(~w) -> start init", [Case]),
+
+    Dog = test_server:timetrap(inets_test_lib:minutes(10)),
+    NewConfig = lists:keydelete(watchdog, 1, Config),
+    TcTopDir = ?config(tc_top_dir, Config),
+
+    CaseRest =
+	case atom_to_list(Case) of
+	    "ip_mod_htaccess" ->
+		inets_test_lib:start_http_server(
+		  filename:join(TcTopDir,
+				integer_to_list(?IP_PORT) ++
+				"htaccess.conf")),
+		"mod_htaccess";
+	    "ip_" ++ Rest ->
+		inets_test_lib:start_http_server(
+		  filename:join(TcTopDir,
+				integer_to_list(?IP_PORT) ++ ".conf")),
+		Rest;
+	    "ticket_5913" ->
+		HttpdOptions =
+		    [{file,
+		      filename:join(TcTopDir,
+				    integer_to_list(?IP_PORT) ++ ".conf")},
+		     {accept_timeout,30000},
+		     {debug,[{exported_functions,
+			      [httpd_manager,httpd_request_handler]}]}],
+		inets_test_lib:start_http_server(HttpdOptions);
+	    "ticket_"++Rest ->
+		%% OTP-5913 use the new syntax of inets.config
+		inets_test_lib:start_http_server([{file,
+		  filename:join(TcTopDir,
+				integer_to_list(?IP_PORT) ++ ".conf")}]),
+		Rest;
+
+	    [X, $s, $s, $l, $_, $m, $o, $d, $_, $h, $t, $a, $c, $c, $e, $s, $s] ->
+		?ENSURE_STARTED([crypto, public_key, ssl]),
+		SslTag =
+		    case X of
+			$p -> ssl;  % Plain
+			$e -> essl  % Erlang based ssl
+		    end,
+		case inets_test_lib:start_http_server_ssl(
+		       filename:join(TcTopDir,
+				     integer_to_list(?SSL_PORT) ++
+				     "htaccess.conf"), SslTag) of
+		    ok ->
+			"mod_htaccess";
+		    Other ->
+			error_logger:info_msg("Other: ~p~n", [Other]),
+			{skip, "SSL does not seem to be supported"}
+		end;
+	    [X, $s, $s, $l, $_ | Rest] ->
+		?ENSURE_STARTED([crypto, public_key, ssl]),
+		SslTag =
+		    case X of
+			$p -> ssl;
+			$e -> essl
+		    end,
+		case inets_test_lib:start_http_server_ssl(
+		       filename:join(TcTopDir,
+				     integer_to_list(?SSL_PORT) ++
+				     ".conf"), SslTag) of
+		    ok ->
+			Rest;
+		    Other ->
+			error_logger:info_msg("Other: ~p~n", [Other]),
+			{skip, "SSL does not seem to be supported"}
+		end;
+	    "ipv6_" ++ _  = TestCaseStr ->
+		case inets_test_lib:has_ipv6_support() of
+		    {ok, _} ->
+			inets_test_lib:start_http_server(
+			  filename:join(TcTopDir,
+					TestCaseStr ++ ".conf"));
+
+		    _ ->
+			{skip, "Host does not support IPv6"}
+		end
+	end,
+
+    InitRes =
+	case CaseRest of
+	    {skip, _} = Skip ->
+		Skip;
+	    "mod_auth_" ++ _ ->
+		start_mnesia(?config(node, Config)),
+		[{watchdog, Dog} | NewConfig];
+	    "mod_htaccess" ->
+		ServerRoot = ?config(server_root, Config),
+		Path = filename:join([ServerRoot, "htdocs"]),
+		catch remove_htaccess(Path),
+		create_htaccess_data(Path, ?config(address, Config)),
+		[{watchdog, Dog} | NewConfig];
+	    "range" ->
+		ServerRoot = ?config(server_root, Config),
+		Path = filename:join([ServerRoot, "htdocs"]),
+		create_range_data(Path),
+		[{watchdog, Dog} | NewConfig];
+	    _ ->
+		[{watchdog, Dog} | NewConfig]
+	end,
+
+    tsp("init_per_testcase3(~w) -> done when"
+	"~n   InitRes: ~p", [Case, InitRes]),
+
+    InitRes.
+
+
+%%--------------------------------------------------------------------
+%% Function: end_per_testcase(Case, Config) -> _
+%% Case - atom()
+%%   Name of the test case that is about to be run.
+%% Config - [tuple()]
+%%   A list of key/value pairs, holding the test case configuration.
+%% Description: Cleanup after each test case
+%%--------------------------------------------------------------------
+end_per_testcase(Case, Config) ->
+    Dog = ?config(watchdog, Config),
+    test_server:timetrap_cancel(Dog),
+    end_per_testcase2(Case, lists:keydelete(watchdog, 1, Config)),
+    ok.
+
+end_per_testcase2(Case, Config) ->
+    tsp("end_per_testcase2(~w) -> entry with"
+	"~n   Config: ~p", [Case, Config]),
+    application:unset_env(inets, services),
+    application:stop(inets),
+    application:stop(ssl),
+    application:stop(crypto), % used by the new ssl (essl test cases)
+    cleanup_mnesia(),
+    tsp("end_per_testcase2(~w) -> done", [Case]),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+%% Test cases starts here.
+%%-------------------------------------------------------------------------
+
+%%-------------------------------------------------------------------------
+ip_mod_alias(doc) ->
+    ["Module test: mod_alias"];
+ip_mod_alias(suite) ->
+    [];
+ip_mod_alias(Config) when is_list(Config) ->
+    httpd_mod:alias(ip_comm, ?IP_PORT,
+		    ?config(host, Config), ?config(node, Config)),
+    ok.
+
+%%-------------------------------------------------------------------------
+ip_mod_actions(doc) ->
+    ["Module test: mod_actions"];
+ip_mod_actions(suite) ->
+    [];
+ip_mod_actions(Config) when is_list(Config) ->
+    httpd_mod:actions(ip_comm, ?IP_PORT,
+		      ?config(host, Config), ?config(node, Config)),
+    ok.
+
+%%-------------------------------------------------------------------------
+ip_mod_security(doc) ->
+    ["Module test: mod_security"];
+ip_mod_security(suite) ->
+    [];
+ip_mod_security(Config) when is_list(Config) ->
+    ServerRoot = ?config(server_root, Config),
+    httpd_mod:security(ServerRoot, ip_comm, ?IP_PORT,
+		       ?config(host, Config), ?config(node, Config)),
+    ok.
+
+%%-------------------------------------------------------------------------
+ip_mod_auth(doc) ->
+    ["Module test: mod_auth"];
+ip_mod_auth(suite) ->
+    [];
+ip_mod_auth(Config) when is_list(Config) ->
+    httpd_mod:auth(ip_comm, ?IP_PORT,
+		   ?config(host, Config), ?config(node, Config)),
+    ok.
+
+%%-------------------------------------------------------------------------
+ip_mod_auth_api(doc) ->
+    ["Module test: mod_auth_api"];
+ip_mod_auth_api(suite) ->
+    [];
+ip_mod_auth_api(Config) when is_list(Config) ->
+    ServerRoot = ?config(server_root, Config),
+    Host =  ?config(host, Config),
+    Node = ?config(node, Config),
+    httpd_mod:auth_api(ServerRoot, "", ip_comm, ?IP_PORT, Host, Node),
+    httpd_mod:auth_api(ServerRoot, "dets_", ip_comm, ?IP_PORT, Host, Node),
+    httpd_mod:auth_api(ServerRoot, "mnesia_", ip_comm, ?IP_PORT, Host, Node),
+    ok.
+%%-------------------------------------------------------------------------
+ip_mod_auth_mnesia_api(doc) ->
+    ["Module test: mod_auth_mnesia_api"];
+ip_mod_auth_mnesia_api(suite) ->
+    [];
+ip_mod_auth_mnesia_api(Config) when is_list(Config) ->
+    httpd_mod:auth_mnesia_api(ip_comm, ?IP_PORT,
+		   ?config(host, Config), ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_mod_htaccess(doc) ->
+    ["Module test: mod_htaccess"];
+ip_mod_htaccess(suite) ->
+    [];
+ip_mod_htaccess(Config) when is_list(Config) ->
+    httpd_mod:htaccess(ip_comm, ?IP_PORT,
+		       ?config(host, Config), ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_mod_cgi(doc) ->
+    ["Module test: mod_cgi"];
+ip_mod_cgi(suite) ->
+    [];
+ip_mod_cgi(Config) when is_list(Config) ->
+    httpd_mod:cgi(ip_comm, ?IP_PORT,
+	?config(host, Config), ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_mod_esi(doc) ->
+    ["Module test: mod_esi"];
+ip_mod_esi(suite) ->
+    [];
+ip_mod_esi(Config) when is_list(Config) ->
+    httpd_mod:esi(ip_comm, ?IP_PORT,
+		  ?config(host, Config), ?config(node, Config)),
+    ok.
+
+%%-------------------------------------------------------------------------
+ip_mod_get(doc) ->
+    ["Module test: mod_get"];
+ip_mod_get(suite) ->
+    [];
+ip_mod_get(Config) when is_list(Config) ->
+    httpd_mod:get(ip_comm, ?IP_PORT,
+		  ?config(host, Config), ?config(node, Config)),
+    ok.
+
+%%-------------------------------------------------------------------------
+ip_mod_head(doc) ->
+    ["Module test: mod_head"];
+ip_mod_head(suite) ->
+    [];
+ip_mod_head(Config) when is_list(Config) ->
+    httpd_mod:head(ip_comm, ?IP_PORT,
+		   ?config(host, Config), ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_mod_all(doc) ->
+    ["All modules test"];
+ip_mod_all(suite) ->
+    [];
+ip_mod_all(Config) when is_list(Config) ->
+    httpd_mod:all(ip_comm, ?IP_PORT,
+		  ?config(host, Config), ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_load_light(doc) ->
+    ["Test light load"];
+ip_load_light(suite) ->
+    [];
+ip_load_light(Config) when is_list(Config) ->
+    httpd_load:load_test(ip_comm, ?IP_PORT, ?config(host, Config),
+			 ?config(node, Config),
+			 get_nof_clients(ip_comm, light)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_load_medium(doc) ->
+    ["Test  medium load"];
+ip_load_medium(suite) ->
+    [];
+ip_load_medium(Config) when is_list(Config) ->
+      httpd_load:load_test(ip_comm, ?IP_PORT, ?config(host, Config),
+			   ?config(node, Config),
+			   get_nof_clients(ip_comm, medium)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_load_heavy(doc) ->
+    ["Test heavy load"];
+ip_load_heavy(suite) ->
+    [];
+ip_load_heavy(Config) when is_list(Config) ->
+     httpd_load:load_test(ip_comm, ?IP_PORT, ?config(host, Config),
+			  ?config(node, Config),
+			  get_nof_clients(ip_comm, heavy)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+ip_dos_hostname(doc) ->
+    ["Denial Of Service (DOS) attack test case"];
+ip_dos_hostname(suite) ->
+    [];
+ip_dos_hostname(Config) when is_list(Config) ->
+    dos_hostname(ip_comm, ?IP_PORT, ?config(host, Config),
+		 ?config(node, Config), ?MAX_HEADER_SIZE),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+ip_time_test(doc) ->
+    [""];
+ip_time_test(suite) ->
+    [];
+ip_time_test(Config) when is_list(Config) ->
+    %% <CONDITIONAL-SKIP>
+    Skippable = [win32],
+    Condition = fun() -> ?OS_BASED_SKIP(Skippable) end,
+    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
+    %% </CONDITIONAL-SKIP>
+
+    httpd_time_test:t(ip_comm, ?config(host, Config), ?IP_PORT),
+    ok.
+
+%%-------------------------------------------------------------------------
+ip_block_503(doc) ->
+    ["Check that you will receive status code 503 when the server"
+     " is blocked and 200 when its not blocked."];
+ip_block_503(suite) ->
+    [];
+ip_block_503(Config) when is_list(Config) ->
+    httpd_block:block_503(ip_comm, ?IP_PORT, ?config(host, Config),
+				 ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_block_disturbing_idle(doc) ->
+    ["Check that you can block/unblock an idle server. The strategy "
+     "distribing does not really make a difference in this case."];
+ip_block_disturbing_idle(suite) ->
+    [];
+ip_block_disturbing_idle(Config) when is_list(Config) ->
+    httpd_block:block_disturbing_idle(ip_comm, ?IP_PORT,
+				      ?config(host, Config),
+				      ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_block_non_disturbing_idle(doc) ->
+    ["Check that you can block/unblock an idle server. The strategy "
+     "non distribing does not really make a difference in this case."];
+ip_block_non_disturbing_idle(suite) ->
+    [];
+ip_block_non_disturbing_idle(Config) when is_list(Config) ->
+    httpd_block:block_non_disturbing_idle(ip_comm, ?IP_PORT,
+					  ?config(host, Config),
+					  ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_block_disturbing_active(doc) ->
+    ["Check that you can block/unblock an active server. The strategy "
+     "distribing means ongoing requests should be terminated."];
+ip_block_disturbing_active(suite) ->
+    [];
+ip_block_disturbing_active(Config) when is_list(Config) ->
+    httpd_block:block_disturbing_active(ip_comm, ?IP_PORT,
+					?config(host, Config),
+					?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_block_non_disturbing_active(doc) ->
+    ["Check that you can block/unblock an idle server. The strategy "
+     "non distribing means the ongoing requests should be compleated."];
+ip_block_non_disturbing_active(suite) ->
+    [];
+ip_block_non_disturbing_active(Config) when is_list(Config) ->
+    httpd_block:block_non_disturbing_idle(ip_comm, ?IP_PORT,
+					  ?config(host, Config),
+					  ?config(node, Config)),
+    ok.
+
+%%-------------------------------------------------------------------------
+ip_block_disturbing_active_timeout_not_released(doc) ->
+    ["Check that you can block an active server. The strategy "
+     "distribing means ongoing requests should be compleated"
+     "if the timeout does not occur."];
+ip_block_disturbing_active_timeout_not_released(suite) ->
+    [];
+ip_block_disturbing_active_timeout_not_released(Config)
+  when is_list(Config) ->
+    httpd_block:block_disturbing_active_timeout_not_released(ip_comm,
+							     ?IP_PORT,
+							     ?config(host,
+								     Config),
+							     ?config(node,
+								     Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_block_disturbing_active_timeout_released(doc) ->
+    ["Check that you can block an active server. The strategy "
+     "distribing means ongoing requests should be terminated when"
+     "the timeout occurs."];
+ip_block_disturbing_active_timeout_released(suite) ->
+    [];
+ip_block_disturbing_active_timeout_released(Config)
+  when is_list(Config) ->
+    httpd_block:block_disturbing_active_timeout_released(ip_comm,
+							 ?IP_PORT,
+							 ?config(host,
+								 Config),
+							 ?config(node,
+								 Config)),
+    ok.
+
+%%-------------------------------------------------------------------------
+ip_block_non_disturbing_active_timeout_not_released(doc) ->
+    ["Check that you can block an active server. The strategy "
+     "non non distribing means ongoing requests should be completed."];
+ip_block_non_disturbing_active_timeout_not_released(suite) ->
+    [];
+ip_block_non_disturbing_active_timeout_not_released(Config)
+  when is_list(Config) ->
+    httpd_block:
+	block_non_disturbing_active_timeout_not_released(ip_comm,
+							 ?IP_PORT,
+							 ?config(host,
+								 Config),
+							 ?config(node,
+								 Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_block_non_disturbing_active_timeout_released(doc) ->
+    ["Check that you can block an active server. The strategy "
+     "non non distribing means ongoing requests should be completed. "
+     "When the timeout occurs the block operation sohould be canceled." ];
+ip_block_non_disturbing_active_timeout_released(suite) ->
+    [];
+ip_block_non_disturbing_active_timeout_released(Config)
+  when is_list(Config) ->
+    httpd_block:
+	block_non_disturbing_active_timeout_released(ip_comm,
+						     ?IP_PORT,
+						     ?config(host,
+							     Config),
+						     ?config(node,
+							     Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_block_disturbing_blocker_dies(doc) ->
+    [];
+ip_block_disturbing_blocker_dies(suite) ->
+    [];
+ip_block_disturbing_blocker_dies(Config) when is_list(Config) ->
+    httpd_block:disturbing_blocker_dies(ip_comm, ?IP_PORT,
+					?config(host, Config),
+					?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_block_non_disturbing_blocker_dies(doc) ->
+    [];
+ip_block_non_disturbing_blocker_dies(suite) ->
+    [];
+ip_block_non_disturbing_blocker_dies(Config) when is_list(Config) ->
+    httpd_block:non_disturbing_blocker_dies(ip_comm, ?IP_PORT,
+					    ?config(host, Config),
+					    ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_restart_no_block(doc) ->
+    [""];
+ip_restart_no_block(suite) ->
+    [];
+ip_restart_no_block(Config) when is_list(Config) ->
+    httpd_block:restart_no_block(ip_comm, ?IP_PORT, ?config(host, Config),
+				 ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_restart_disturbing_block(doc) ->
+    [""];
+ip_restart_disturbing_block(suite) ->
+    [];
+ip_restart_disturbing_block(Config) when is_list(Config) ->
+    %% <CONDITIONAL-SKIP>
+    Condition =
+	fun() ->
+		case os:type() of
+		    {unix, linux} ->
+			HW = string:strip(os:cmd("uname -m"), right, $\n),
+			case HW of
+			    "ppc" ->
+				case inet:gethostname() of
+				    {ok, "peach"} ->
+					true;
+				    _ ->
+					false
+				end;
+			    _ ->
+				false
+			end;
+		    _ ->
+			false
+		end
+	end,
+    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
+    %% </CONDITIONAL-SKIP>
+
+    httpd_block:restart_disturbing_block(ip_comm, ?IP_PORT,
+					 ?config(host, Config),
+					 ?config(node, Config)),
+    ok.
+
+%%-------------------------------------------------------------------------
+ip_restart_non_disturbing_block(doc) ->
+    [""];
+ip_restart_non_disturbing_block(suite) ->
+    [];
+ip_restart_non_disturbing_block(Config) when is_list(Config) ->
+    %% <CONDITIONAL-SKIP>
+    Condition =
+	fun() ->
+		case os:type() of
+		    {unix, linux} ->
+			HW = string:strip(os:cmd("uname -m"), right, $\n),
+			case HW of
+			    "ppc" ->
+				case inet:gethostname() of
+				    {ok, "peach"} ->
+					true;
+				    _ ->
+					false
+				end;
+			    _ ->
+				false
+			end;
+		    _ ->
+			false
+		end
+	end,
+    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
+    %% </CONDITIONAL-SKIP>
+
+    httpd_block:restart_non_disturbing_block(ip_comm, ?IP_PORT,
+					    ?config(host, Config),
+					    ?config(node, Config)),
+    ok.
+
+%%-------------------------------------------------------------------------
+
+essl_mod_alias(doc) ->
+    ["Module test: mod_alias - using new of configure new SSL"];
+essl_mod_alias(suite) ->
+    [];
+essl_mod_alias(Config) when is_list(Config) ->
+    ssl_mod_alias(essl, Config).
+
+
+ssl_mod_alias(Tag, Config) ->
+    httpd_mod:alias(Tag, ?SSL_PORT,
+		    ?config(host, Config), ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_mod_actions(doc) ->
+    ["Module test: mod_actions - using new of configure new SSL"];
+essl_mod_actions(suite) ->
+    [];
+essl_mod_actions(Config) when is_list(Config) ->
+    ssl_mod_actions(essl, Config).
+
+
+ssl_mod_actions(Tag, Config) ->
+    httpd_mod:actions(Tag,
+		      ?SSL_PORT,
+		      ?config(host, Config),
+		      ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_mod_security(doc) ->
+    ["Module test: mod_security - using new of configure new SSL"];
+essl_mod_security(suite) ->
+    [];
+essl_mod_security(Config) when is_list(Config) ->
+    ssl_mod_security(essl, Config).
+
+ssl_mod_security(Tag, Config) ->
+    ServerRoot = ?config(server_root, Config),
+    httpd_mod:security(ServerRoot,
+		       Tag,
+		       ?SSL_PORT,
+		       ?config(host, Config),
+		       ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_mod_auth(doc) ->
+    ["Module test: mod_auth - using new of configure new SSL"];
+essl_mod_auth(suite) ->
+    [];
+essl_mod_auth(Config) when is_list(Config) ->
+    ssl_mod_auth(essl, Config).
+
+ssl_mod_auth(Tag, Config) ->
+    httpd_mod:auth(Tag,
+		   ?SSL_PORT,
+		   ?config(host, Config),
+		   ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+
+essl_mod_auth_api(doc) ->
+    ["Module test: mod_auth - using new of configure new SSL"];
+essl_mod_auth_api(suite) ->
+    [];
+essl_mod_auth_api(Config) when is_list(Config) ->
+    ssl_mod_auth_api(essl, Config).
+
+ssl_mod_auth_api(Tag, Config) ->
+    ServerRoot = ?config(server_root, Config),
+    Host       =  ?config(host, Config),
+    Node       = ?config(node, Config),
+    httpd_mod:auth_api(ServerRoot, "",        Tag, ?SSL_PORT, Host, Node),
+    httpd_mod:auth_api(ServerRoot, "dets_",   Tag, ?SSL_PORT, Host, Node),
+    httpd_mod:auth_api(ServerRoot, "mnesia_", Tag, ?SSL_PORT, Host, Node),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+
+essl_mod_auth_mnesia_api(doc) ->
+    ["Module test: mod_auth_mnesia_api - using new of configure new SSL"];
+essl_mod_auth_mnesia_api(suite) ->
+    [];
+essl_mod_auth_mnesia_api(Config) when is_list(Config) ->
+    ssl_mod_auth_mnesia_api(essl, Config).
+
+ssl_mod_auth_mnesia_api(Tag, Config) ->
+    httpd_mod:auth_mnesia_api(Tag,
+			      ?SSL_PORT,
+			      ?config(host, Config),
+			      ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_mod_htaccess(doc) ->
+    ["Module test: mod_htaccess - using new of configure new SSL"];
+essl_mod_htaccess(suite) ->
+    [];
+essl_mod_htaccess(Config) when is_list(Config) ->
+    ssl_mod_htaccess(essl, Config).
+
+ssl_mod_htaccess(Tag, Config) ->
+    httpd_mod:htaccess(Tag,
+		       ?SSL_PORT,
+		       ?config(host, Config),
+		       ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_mod_cgi(doc) ->
+    ["Module test: mod_cgi - using new of configure new SSL"];
+essl_mod_cgi(suite) ->
+    [];
+essl_mod_cgi(Config) when is_list(Config) ->
+    ssl_mod_cgi(essl, Config).
+
+ssl_mod_cgi(Tag, Config) ->
+    httpd_mod:cgi(Tag,
+	?SSL_PORT,
+	?config(host, Config),
+	?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_mod_esi(doc) ->
+    ["Module test: mod_esi - using new of configure new SSL"];
+essl_mod_esi(suite) ->
+    [];
+essl_mod_esi(Config) when is_list(Config) ->
+    ssl_mod_esi(essl, Config).
+
+ssl_mod_esi(Tag, Config) ->
+    httpd_mod:esi(Tag,
+		  ?SSL_PORT,
+		  ?config(host, Config),
+		  ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_mod_get(doc) ->
+    ["Module test: mod_get - using new of configure new SSL"];
+essl_mod_get(suite) ->
+    [];
+essl_mod_get(Config) when is_list(Config) ->
+    ssl_mod_get(essl, Config).
+
+ssl_mod_get(Tag, Config) ->
+    httpd_mod:get(Tag,
+		  ?SSL_PORT,
+		  ?config(host, Config),
+		  ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_mod_head(doc) ->
+    ["Module test: mod_head - using new of configure new SSL"];
+essl_mod_head(suite) ->
+    [];
+essl_mod_head(Config) when is_list(Config) ->
+    ssl_mod_head(essl, Config).
+
+ssl_mod_head(Tag, Config) ->
+    httpd_mod:head(Tag,
+		   ?SSL_PORT,
+		   ?config(host, Config),
+		   ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_mod_all(doc) ->
+    ["All modules test - using new of configure new SSL"];
+essl_mod_all(suite) ->
+    [];
+essl_mod_all(Config) when is_list(Config) ->
+    ssl_mod_all(essl, Config).
+
+ssl_mod_all(Tag, Config) ->
+    httpd_mod:all(Tag,
+		  ?SSL_PORT,
+		  ?config(host, Config),
+		  ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_load_light(doc) ->
+    ["Test light load - using new of configure new SSL"];
+essl_load_light(suite) ->
+    [];
+essl_load_light(Config) when is_list(Config) ->
+    ssl_load_light(essl, Config).
+
+ssl_load_light(Tag, Config) ->
+    httpd_load:load_test(Tag,
+			 ?SSL_PORT,
+			 ?config(host, Config),
+			 ?config(node, Config),
+			 get_nof_clients(ssl, light)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_load_medium(doc) ->
+    ["Test medium load - using new of configure new SSL"];
+essl_load_medium(suite) ->
+    [];
+essl_load_medium(Config) when is_list(Config) ->
+    ssl_load_medium(essl, Config).
+
+ssl_load_medium(Tag, Config) ->
+    %% <CONDITIONAL-SKIP>
+    Skippable = [win32],
+    Condition = fun() -> ?OS_BASED_SKIP(Skippable) end,
+    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
+    %% </CONDITIONAL-SKIP>
+
+    httpd_load:load_test(Tag,
+			 ?SSL_PORT,
+			 ?config(host, Config),
+			 ?config(node, Config),
+			 get_nof_clients(ssl, medium)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_load_heavy(doc) ->
+    ["Test heavy load - using new of configure new SSL"];
+essl_load_heavy(suite) ->
+    [];
+essl_load_heavy(Config) when is_list(Config) ->
+    ssl_load_heavy(essl, Config).
+
+ssl_load_heavy(Tag, Config) ->
+    %% <CONDITIONAL-SKIP>
+    Skippable = [win32],
+    Condition = fun() -> ?OS_BASED_SKIP(Skippable) end,
+    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
+    %% </CONDITIONAL-SKIP>
+
+    httpd_load:load_test(Tag,
+			 ?SSL_PORT,
+			 ?config(host, Config),
+			 ?config(node, Config),
+			 get_nof_clients(ssl, heavy)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+
+essl_dos_hostname(doc) ->
+    ["Denial Of Service (DOS) attack test case - using new of configure new SSL"];
+essl_dos_hostname(suite) ->
+    [];
+essl_dos_hostname(Config) when is_list(Config) ->
+    ssl_dos_hostname(essl, Config).
+
+ssl_dos_hostname(Tag, Config) ->
+    dos_hostname(Tag,
+		 ?SSL_PORT,
+		 ?config(host, Config),
+		 ?config(node, Config),
+		 ?MAX_HEADER_SIZE),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+
+essl_time_test(doc) ->
+    ["using new of configure new SSL"];
+essl_time_test(suite) ->
+    [];
+essl_time_test(Config) when is_list(Config) ->
+    ssl_time_test(essl, Config).
+
+ssl_time_test(Tag, Config) when is_list(Config) ->
+    %% <CONDITIONAL-SKIP>
+    FreeBSDVersionVerify =
+	fun() ->
+		case os:version() of
+		    {7, 1, _} -> % We only have one such machine, so...
+			true;
+		    _ ->
+			false
+		end
+	end,
+    Skippable = [win32, {unix, [{freebsd, FreeBSDVersionVerify}]}],
+    Condition = fun() -> ?OS_BASED_SKIP(Skippable) end,
+    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
+    %% </CONDITIONAL-SKIP>
+
+    httpd_time_test:t(Tag,
+		      ?config(host, Config),
+		      ?SSL_PORT),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+
+essl_block_503(doc) ->
+    ["Check that you will receive status code 503 when the server"
+     " is blocked and 200 when its not blocked - using new of configure new SSL."];
+essl_block_503(suite) ->
+    [];
+essl_block_503(Config) when is_list(Config) ->
+    ssl_block_503(essl, Config).
+
+ssl_block_503(Tag, Config) ->
+    httpd_block:block_503(Tag,
+			  ?SSL_PORT,
+			  ?config(host, Config),
+			  ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_block_disturbing_idle(doc) ->
+    ["Check that you can block/unblock an idle server. The strategy "
+     "distribing does not really make a difference in this case."
+     "Using new of configure new SSL"];
+essl_block_disturbing_idle(suite) ->
+    [];
+essl_block_disturbing_idle(Config) when is_list(Config) ->
+    ssl_block_disturbing_idle(essl, Config).
+
+ssl_block_disturbing_idle(Tag, Config) ->
+    httpd_block:block_disturbing_idle(Tag,
+				      ?SSL_PORT,
+				      ?config(host, Config),
+				      ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_block_non_disturbing_idle(doc) ->
+    ["Check that you can block/unblock an idle server. The strategy "
+     "non distribing does not really make a difference in this case."
+     "Using new of configure new SSL"];
+essl_block_non_disturbing_idle(suite) ->
+    [];
+essl_block_non_disturbing_idle(Config) when is_list(Config) ->
+    ssl_block_non_disturbing_idle(essl, Config).
+
+ssl_block_non_disturbing_idle(Tag, Config) ->
+    httpd_block:block_non_disturbing_idle(Tag,
+					  ?SSL_PORT,
+					  ?config(host, Config),
+					  ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_block_disturbing_active(doc) ->
+    ["Check that you can block/unblock an active server. The strategy "
+     "distribing means ongoing requests should be terminated."
+     "Using new of configure new SSL"];
+essl_block_disturbing_active(suite) ->
+    [];
+essl_block_disturbing_active(Config) when is_list(Config) ->
+    ssl_block_disturbing_active(essl, Config).
+
+ssl_block_disturbing_active(Tag, Config) ->
+    httpd_block:block_disturbing_active(Tag,
+					?SSL_PORT,
+					?config(host, Config),
+					?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_block_non_disturbing_active(doc) ->
+    ["Check that you can block/unblock an idle server. The strategy "
+     "non distribing means the ongoing requests should be compleated."
+     "Using new of configure new SSL"];
+essl_block_non_disturbing_active(suite) ->
+    [];
+essl_block_non_disturbing_active(Config) when is_list(Config) ->
+    ssl_block_non_disturbing_active(essl, Config).
+
+ssl_block_non_disturbing_active(Tag, Config) ->
+    httpd_block:block_non_disturbing_idle(Tag,
+					  ?SSL_PORT,
+					  ?config(host, Config),
+					  ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_block_disturbing_active_timeout_not_released(doc) ->
+    ["Check that you can block an active server. The strategy "
+     "distribing means ongoing requests should be compleated"
+     "if the timeout does not occur."
+    "Using new of configure new SSL"];
+essl_block_disturbing_active_timeout_not_released(suite) ->
+    [];
+essl_block_disturbing_active_timeout_not_released(Config)
+  when is_list(Config) ->
+    ssl_block_disturbing_active_timeout_not_released(essl, Config).
+
+ssl_block_disturbing_active_timeout_not_released(Tag, Config) ->
+    Port = ?SSL_PORT,
+    Host = ?config(host, Config),
+    Node = ?config(node, Config),
+    httpd_block:block_disturbing_active_timeout_not_released(Tag,
+							     Port, Host, Node),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_block_disturbing_active_timeout_released(doc) ->
+    ["Check that you can block an active server. The strategy "
+     "distribing means ongoing requests should be terminated when"
+     "the timeout occurs."
+    "Using new of configure new SSL"];
+essl_block_disturbing_active_timeout_released(suite) ->
+    [];
+essl_block_disturbing_active_timeout_released(Config)
+  when is_list(Config) ->
+    ssl_block_disturbing_active_timeout_released(essl, Config).
+
+ssl_block_disturbing_active_timeout_released(Tag, Config) ->
+    Port = ?SSL_PORT,
+    Host = ?config(host, Config),
+    Node = ?config(node, Config),
+    httpd_block:block_disturbing_active_timeout_released(Tag,
+							 Port,
+							 Host,
+							 Node),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_block_non_disturbing_active_timeout_not_released(doc) ->
+    ["Check that you can block an active server. The strategy "
+     "non non distribing means ongoing requests should be completed."
+    "Using new of configure new SSL"];
+essl_block_non_disturbing_active_timeout_not_released(suite) ->
+    [];
+essl_block_non_disturbing_active_timeout_not_released(Config)
+  when is_list(Config) ->
+    ssl_block_non_disturbing_active_timeout_not_released(essl, Config).
+
+ssl_block_non_disturbing_active_timeout_not_released(Tag, Config) ->
+    Port = ?SSL_PORT,
+    Host = ?config(host, Config),
+    Node = ?config(node, Config),
+    httpd_block:block_non_disturbing_active_timeout_not_released(Tag,
+								 Port,
+								 Host,
+								 Node),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+
+essl_block_non_disturbing_active_timeout_released(doc) ->
+    ["Check that you can block an active server. The strategy "
+     "non distribing means ongoing requests should be completed. "
+     "When the timeout occurs the block operation sohould be canceled."
+     "Using new of configure new SSL"];
+essl_block_non_disturbing_active_timeout_released(suite) ->
+    [];
+essl_block_non_disturbing_active_timeout_released(Config)
+  when is_list(Config) ->
+    ssl_block_non_disturbing_active_timeout_released(essl, Config).
+
+ssl_block_non_disturbing_active_timeout_released(Tag, Config)
+  when is_list(Config) ->
+    Port = ?SSL_PORT,
+    Host = ?config(host, Config),
+    Node = ?config(node, Config),
+    httpd_block:block_non_disturbing_active_timeout_released(Tag,
+							     Port,
+							     Host,
+							     Node),
+
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+
+essl_block_disturbing_blocker_dies(doc) ->
+    ["using new of configure new SSL"];
+essl_block_disturbing_blocker_dies(suite) ->
+    [];
+essl_block_disturbing_blocker_dies(Config) when is_list(Config) ->
+    ssl_block_disturbing_blocker_dies(essl, Config).
+
+ssl_block_disturbing_blocker_dies(Tag, Config) ->
+    httpd_block:disturbing_blocker_dies(Tag,
+					?SSL_PORT,
+					?config(host, Config),
+					?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+essl_block_non_disturbing_blocker_dies(doc) ->
+    ["using new of configure new SSL"];
+essl_block_non_disturbing_blocker_dies(suite) ->
+    [];
+essl_block_non_disturbing_blocker_dies(Config) when is_list(Config) ->
+    ssl_block_non_disturbing_blocker_dies(essl, Config).
+
+ssl_block_non_disturbing_blocker_dies(Tag, Config) ->
+    httpd_block:non_disturbing_blocker_dies(Tag,
+					    ?SSL_PORT,
+					    ?config(host, Config),
+					    ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+
+essl_restart_no_block(doc) ->
+    ["using new of configure new SSL"];
+essl_restart_no_block(suite) ->
+    [];
+essl_restart_no_block(Config) when is_list(Config) ->
+    ssl_restart_no_block(essl, Config).
+
+ssl_restart_no_block(Tag, Config) ->
+    httpd_block:restart_no_block(Tag,
+				 ?SSL_PORT,
+				 ?config(host, Config),
+				 ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+
+essl_restart_disturbing_block(doc) ->
+    ["using new of configure new SSL"];
+essl_restart_disturbing_block(suite) ->
+    [];
+essl_restart_disturbing_block(Config) when is_list(Config) ->
+    ssl_restart_disturbing_block(essl, Config).
+
+ssl_restart_disturbing_block(Tag, Config) ->
+    %% <CONDITIONAL-SKIP>
+    Condition =
+	fun() ->
+		case os:type() of
+		    {unix, linux} ->
+			case ?OSCMD("uname -m") of
+			    "ppc" ->
+				case file:read_file_info("/etc/fedora-release") of
+				    {ok, _} ->
+					case ?OSCMD("awk '{print $2}' /etc/fedora-release") of
+					    "release" ->
+						%% Fedora 7 and later
+						case ?OSCMD("awk '{print $3}' /etc/fedora-release") of
+						    "7" ->
+							true;
+						    _ ->
+							false
+						end;
+					    _ ->
+						false
+					end;
+				    _ ->
+					false
+				end;
+			    _ ->
+				false
+			end;
+		    _ ->
+			false
+		end
+	end,
+    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
+    %% </CONDITIONAL-SKIP>
+
+    httpd_block:restart_disturbing_block(Tag, ?SSL_PORT,
+					 ?config(host, Config),
+					 ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+
+
+essl_restart_non_disturbing_block(doc) ->
+    ["using new of configure new SSL"];
+essl_restart_non_disturbing_block(suite) ->
+    [];
+essl_restart_non_disturbing_block(Config) when is_list(Config) ->
+    ssl_restart_non_disturbing_block(essl, Config).
+
+ssl_restart_non_disturbing_block(Tag, Config) ->
+    %% <CONDITIONAL-SKIP>
+    Condition =
+	fun() ->
+		case os:type() of
+		    {unix, linux} ->
+			HW = string:strip(os:cmd("uname -m"), right, $\n),
+			case HW of
+			    "ppc" ->
+				case inet:gethostname() of
+				    {ok, "peach"} ->
+					true;
+				    _ ->
+					false
+				end;
+			    _ ->
+				false
+			end;
+		    _ ->
+			false
+		end
+	end,
+    ?NON_PC_TC_MAYBE_SKIP(Config, Condition),
+    %% </CONDITIONAL-SKIP>
+
+    httpd_block:restart_non_disturbing_block(Tag,
+					     ?SSL_PORT,
+					     ?config(host, Config),
+					     ?config(node, Config)),
+    ok.
+
+
+%%-------------------------------------------------------------------------
+ip_host(doc) ->
+    ["Control that the server accepts/rejects requests with/ without host"];
+ip_host(suite)->
+    [];
+ip_host(Config) when is_list(Config) ->
+    httpd_1_1:host(ip_comm, ?IP_PORT, ?config(host, Config),
+		   ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_chunked(doc) ->
+    ["Control that the server accepts chunked requests"];
+ip_chunked(suite) ->
+    [];
+ip_chunked(Config) when is_list(Config) ->
+    httpd_1_1:chunked(ip_comm, ?IP_PORT, ?config(host, Config),
+		      ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_expect(doc) ->
+    ["Control that the server handles request with the expect header "
+     "field appropiate"];
+ip_expect(suite)->
+    [];
+ip_expect(Config) when is_list(Config) ->
+    httpd_1_1:expect(ip_comm, ?IP_PORT, ?config(host, Config),
+		     ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_range(doc) ->
+    ["Control that the server can handle range requests to plain files"];
+ip_range(suite)->
+    [];
+ip_range(Config) when is_list(Config) ->
+    httpd_1_1:range(ip_comm, ?IP_PORT, ?config(host, Config),
+		    ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_if_test(doc) ->
+    ["Test that the if - request header fields is handled correclty"];
+ip_if_test(suite) ->
+    [];
+ip_if_test(Config) when is_list(Config) ->
+    ServerRoot = ?config(server_root, Config),
+    DocRoot = filename:join([ServerRoot, "htdocs"]),
+    httpd_1_1:if_test(ip_comm, ?IP_PORT, ?config(host, Config),
+		      ?config(node, Config), DocRoot),
+    ok.
+%%-------------------------------------------------------------------------
+ip_http_trace(doc) ->
+    ["Test the trace module "];
+ip_http_trace(suite) ->
+    [];
+ip_http_trace(Config) when is_list(Config) ->
+    httpd_1_1:http_trace(ip_comm, ?IP_PORT, ?config(host, Config),
+			 ?config(node, Config)),
+    ok.
+%%-------------------------------------------------------------------------
+ip_http1_1_head(doc) ->
+    ["Test the trace module "];
+ip_http1_1_head(suite)->
+    [];
+ip_http1_1_head(Config) when is_list(Config) ->
+    httpd_1_1:head(ip_comm, ?IP_PORT, ?config(host, Config),
+			   ?config(node, Config)),
+    ok.
+
+%%-------------------------------------------------------------------------
+ip_get_0_9(doc) ->
+    ["Test simple HTTP/0.9 GET"];
+ip_get_0_9(suite)->
+    [];
+ip_get_0_9(Config) when is_list(Config) ->
+    Host =  ?config(host, Config),
+    Node =  ?config(node, Config),
+    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node,
+				       "GET / \r\n\r\n",
+				       [{statuscode, 200},
+					{version, "HTTP/0.9"} ]),
+    %% Without space after uri
+    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node,
+				       "GET /\r\n\r\n",
+				       [{statuscode, 200},
+					{version, "HTTP/0.9"} ]),
+    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node,
+				       "GET / HTTP/0.9\r\n\r\n",
+				       [{statuscode, 200},
+					{version, "HTTP/0.9"}]),
+
+    ok.
+%%-------------------------------------------------------------------------
+ip_head_1_0(doc) ->
+    ["Test HTTP/1.0 HEAD"];
+ip_head_1_0(suite)->
+    [];
+ip_head_1_0(Config) when is_list(Config) ->
+    Host =  ?config(host, Config),
+    Node =  ?config(node, Config),
+    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node,
+			 "HEAD / HTTP/1.0\r\n\r\n", [{statuscode, 200},
+						    {version, "HTTP/1.0"}]),
+
+    ok.
+%%-------------------------------------------------------------------------
+ip_get_1_0(doc) ->
+    ["Test HTTP/1.0 GET"];
+ip_get_1_0(suite)->
+    [];
+ip_get_1_0(Config) when is_list(Config) ->
+    Host =  ?config(host, Config),
+    Node =  ?config(node, Config),
+    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node,
+			 "GET / HTTP/1.0\r\n\r\n", [{statuscode, 200},
+						    {version, "HTTP/1.0"}]),
+
+    ok.
+%%-------------------------------------------------------------------------
+ip_post_1_0(doc) ->
+    ["Test HTTP/1.0 POST"];
+ip_post_1_0(suite)->
+    [];
+ip_post_1_0(Config) when is_list(Config) ->
+    Host =  ?config(host, Config),
+    Node =  ?config(node, Config),
+    %% Test the post message formatin 1.0! Real post are testes elsewhere
+    ok = httpd_test_lib:verify_request(ip_comm, Host, ?IP_PORT, Node,
+			 "POST / HTTP/1.0\r\n\r\n "
+			 "Content-Length:6 \r\n\r\nfoobar",
+			 [{statuscode, 500}, {version, "HTTP/1.0"}]),
+
+    ok.
+%%-------------------------------------------------------------------------
+ip_mod_cgi_chunked_encoding_test(doc) ->
+    ["Test the trace module "];
+ip_mod_cgi_chunked_encoding_test(suite)->
+    [];
+ip_mod_cgi_chunked_encoding_test(Config) when is_list(Config) ->
+    Host = ?config(host, Config),
+    Script =
+	case test_server:os_type() of
+	    {win32, _} ->
+		"/cgi-bin/printenv.bat";
+	    _ ->
+		"/cgi-bin/printenv.sh"
+	end,
+    Requests =
+	["GET " ++ Script ++ " HTTP/1.1\r\nHost:"++ Host ++"\r\n\r\n",
+	 "GET /cgi-bin/erl/httpd_example/newformat  HTTP/1.1\r\nHost:"
+	 ++ Host ++"\r\n\r\n"],
+    httpd_1_1:mod_cgi_chunked_encoding_test(ip_comm, ?IP_PORT,
+					    Host,
+					    ?config(node, Config),
+					    Requests),
+    ok.
+
+%-------------------------------------------------------------------------
+
+ipv6_hostname_ipcomm() ->
+    [{require, ipv6_hosts}].
+ipv6_hostname_ipcomm(X) ->
+    SocketType = ip_comm,
+    Port       = ?IP_PORT,
+    ipv6_hostname(SocketType, Port, X).
+
+ipv6_hostname_essl() ->
+    [{require, ipv6_hosts}].
+ipv6_hostname_essl(X) ->
+    SocketType = essl,
+    Port       = ?SSL_PORT,
+    ipv6_hostname(SocketType, Port, X).
+
+ipv6_hostname(_SocketType, _Port, doc) ->
+    ["Test standard ipv6 address"];
+ipv6_hostname(_SocketType, _Port, suite)->
+    [];
+ipv6_hostname(SocketType, Port, Config) when is_list(Config) ->
+    tsp("ipv6_hostname -> entry with"
+	"~n   SocketType: ~p"
+	"~n   Port:       ~p"
+	"~n   Config:     ~p", [SocketType, Port, Config]),
+    Host = ?config(host, Config),
+    URI  = "GET HTTP://" ++
+	Host ++ ":" ++ integer_to_list(Port) ++ "/ HTTP/1.1\r\n\r\n",
+    tsp("ipv6_hostname -> Host: ~p", [Host]),
+    httpd_test_lib:verify_request(SocketType, Host, Port, [inet6],
+				  node(),
+				  URI,
+				  [{statuscode, 200}, {version, "HTTP/1.1"}]),
+    ok.
+
+%%-------------------------------------------------------------------------
+
+ipv6_address_ipcomm() ->
+    [{require, ipv6_hosts}].
+ipv6_address_ipcomm(X) ->
+    SocketType = ip_comm,
+    Port       = ?IP_PORT,
+    ipv6_address(SocketType, Port, X).
+
+ipv6_address_essl() ->
+    [{require, ipv6_hosts}].
+ipv6_address_essl(X) ->
+    SocketType = essl,
+    Port       = ?SSL_PORT,
+    ipv6_address(SocketType, Port, X).
+
+ipv6_address(_SocketType, _Port, doc) ->
+    ["Test standard ipv6 address"];
+ipv6_address(_SocketType, _Port, suite)->
+    [];
+ipv6_address(SocketType, Port, Config) when is_list(Config) ->
+    tsp("ipv6_address -> entry with"
+	"~n   SocketType: ~p"
+	"~n   Port:       ~p"
+	"~n   Config:     ~p", [SocketType, Port, Config]),
+    Host = ?config(host, Config),
+    tsp("ipv6_address -> Host: ~p", [Host]),
+    URI = "GET HTTP://" ++
+	Host ++ ":" ++ integer_to_list(Port) ++ "/ HTTP/1.1\r\n\r\n",
+    httpd_test_lib:verify_request(SocketType, Host, Port, [inet6],
+				  node(),
+				  URI,
+				  [{statuscode, 200}, {version, "HTTP/1.1"}]),
+    ok.
+
+
+%%--------------------------------------------------------------------
+ticket_5775(doc) ->
+    ["Tests that content-length is correct"];
+ticket_5775(suite) ->
+    [];
+ticket_5775(Config) ->
+    ok=httpd_test_lib:verify_request(ip_comm, ?config(host, Config),
+				     ?IP_PORT, ?config(node, Config),
+				       "GET /cgi-bin/erl/httpd_example:get_bin "
+				       "HTTP/1.0\r\n\r\n",
+				       [{statuscode, 200},
+				       {version, "HTTP/1.0"}]),
+    ok.
+ticket_5865(doc) ->
+    ["Tests that a header without last-modified is handled"];
+ticket_5865(suite) ->
+    [];
+ticket_5865(Config) ->
+    ?SKIP(as_of_r15_behaviour_of_calendar_has_changed),
+    Host = ?config(host,Config),
+    ServerRoot = ?config(server_root, Config),
+    DocRoot = filename:join([ServerRoot, "htdocs"]),
+    File = filename:join([DocRoot,"last_modified.html"]),
+
+    Bad_mtime = case test_server:os_type() of
+		    {win32, _} ->
+			{{1600,12,31},{23,59,59}};
+		    {unix, _} ->
+			{{1969,12,31},{23,59,59}}
+		end,
+
+    {ok,FI}=file:read_file_info(File),
+
+    case file:write_file_info(File,FI#file_info{mtime=Bad_mtime}) of
+	ok ->
+	    ok = httpd_test_lib:verify_request(ip_comm, Host,
+					       ?IP_PORT, ?config(node, Config),
+					       "GET /last_modified.html"
+					       " HTTP/1.1\r\nHost:"
+					       ++Host++"\r\n\r\n",
+					       [{statuscode, 200},
+						{no_header,
+						 "last-modified"}]),
+	    ok;
+	{error, Reason} ->
+	    Fault =
+		io_lib:format("Attempt to change the file info to set the"
+			      " preconditions of the test case failed ~p~n",
+			      [Reason]),
+	    {skip, Fault}
+    end.
+
+ticket_5913(doc) ->
+    ["Tests that a header without last-modified is handled"];
+ticket_5913(suite) -> [];
+ticket_5913(Config) ->
+    ok = httpd_test_lib:verify_request(ip_comm, ?config(host, Config),
+				       ?IP_PORT, ?config(node, Config),
+				       "GET /cgi-bin/erl/httpd_example:get_bin "
+				       "HTTP/1.0\r\n\r\n",
+				       [{statuscode, 200},
+					{version, "HTTP/1.0"}]),
+    ok.
+
+ticket_6003(doc) ->
+    ["Tests that a URI with a bad hexadecimal code is handled"];
+ticket_6003(suite) -> [];
+ticket_6003(Config) ->
+    ok = httpd_test_lib:verify_request(ip_comm, ?config(host, Config),
+				       ?IP_PORT, ?config(node, Config),
+				       "GET http://www.erlang.org/%skalle "
+				       "HTTP/1.0\r\n\r\n",
+				       [{statuscode, 400},
+					{version, "HTTP/1.0"}]),
+    ok.
+
+ticket_7304(doc) ->
+     ["Tests missing CR in delimiter"];
+ticket_7304(suite) ->
+    [];
+ticket_7304(Config) ->
+    ok = httpd_test_lib:verify_request(ip_comm, ?config(host, Config),
+				       ?IP_PORT, ?config(node, Config),
+				       "GET / HTTP/1.0\r\n\n",
+				       [{statuscode, 200},
+					{version, "HTTP/1.0"}]),
+    ok.
+
+%%--------------------------------------------------------------------
+%% Internal functions
+%%--------------------------------------------------------------------
+dos_hostname(Type, Port, Host, Node, Max) ->
+    H1 = {"", 200},
+    H2 = {"dummy-host.ericsson.se", 200},
+    TooLongHeader = lists:append(lists:duplicate(Max + 1, "a")),
+    H3 = {TooLongHeader, 403},
+    Hosts = [H1,H2,H3],
+    dos_hostname_poll(Type, Host, Port, Node, Hosts).
+
+%% make_ipv6(T) when is_tuple(T) andalso (size(T) =:= 8) ->
+%%     make_ipv6(tuple_to_list(T));
+
+%% make_ipv6([_, _, _, _, _, _, _, _] = IPV6) ->
+%%     lists:flatten(io_lib:format("~s:~s:~s:~s:~s:~s:~s:~s", IPV6)).
+
+
+%%--------------------------------------------------------------------
+%% Other help functions
+create_config(Config, Access, FileName) ->
+    ServerRoot = ?config(server_root, Config),
+    TcTopDir   = ?config(tc_top_dir,  Config),
+    Port       = ?config(port,        Config),
+    Type       = ?config(sock_type,   Config),
+    Host       = ?config(host,        Config),
+    Mods       = io_lib:format("~p", [httpd_mod]),
+    Funcs      = io_lib:format("~p", [ssl_password_cb]),
+    MaxHdrSz   = io_lib:format("~p", [256]),
+    MaxHdrAct  = io_lib:format("~p", [close]),
+
+    io:format(user,
+	      "create_config -> "
+	      "~n   ServerRoot: ~p"
+	      "~n   TcTopDir:   ~p"
+	      "~n   Type:       ~p"
+	      "~n   Port:       ~p"
+	      "~n   Host:       ~p"
+	      "~n", [ServerRoot, TcTopDir, Type, Port, Host]),
+
+    SSL =
+	if
+	    (Type =:= ssl)  orelse
+	    (Type =:= essl) ->
+		[cline(["SSLCertificateFile ",
+			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
+		 cline(["SSLCertificateKeyFile ",
+			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
+		 cline(["SSLCACertificateFile ",
+			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
+		 cline(["SSLPasswordCallbackModule ", Mods]),
+		 cline(["SSLPasswordCallbackFunction ", Funcs]),
+		 cline(["SSLVerifyClient 0"]),
+		 cline(["SSLVerifyDepth 1"])];
+	    true ->
+		[]
+	end,
+    ModOrder =
+	case Access of
+	    mod_htaccess ->
+		"Modules mod_alias mod_htaccess mod_auth "
+		    "mod_security "
+		    "mod_responsecontrol mod_trace mod_esi "
+		    "mod_actions mod_cgi mod_include mod_dir "
+		    "mod_range mod_get "
+		    "mod_head mod_log mod_disk_log";
+	    _ ->
+		"Modules mod_alias mod_auth mod_security "
+		    "mod_responsecontrol mod_trace mod_esi "
+		    "mod_actions mod_cgi mod_include mod_dir "
+			   "mod_range mod_get "
+		    "mod_head mod_log mod_disk_log"
+	end,
+
+    %% The test suite currently does not handle an explicit BindAddress.
+    %% They assume any has been used, that is Addr is always set to undefined!
+
+    %%     {ok, Hostname} = inet:gethostname(),
+    %%     {ok, Addr} = inet:getaddr(Hostname, inet6),
+    %%     AddrStr = make_ipv6(Addr),
+    %%     BindAddress = lists:flatten(io_lib:format("~s|inet6", [AddrStr])),
+
+    BindAddress = "*|inet",
+    %% BindAddress = "*",
+
+    HttpConfig = [
+		  cline(["Port ", integer_to_list(Port)]),
+		  cline(["ServerName ", Host]),
+		  cline(["SocketType ", atom_to_list(Type)]),
+		  cline([ModOrder]),
+		  %% cline(["LogFormat ", "erlang"]),
+		  cline(["ServerAdmin mattias@erix.ericsson.se"]),
+		  cline(["BindAddress ", BindAddress]),
+		  cline(["ServerRoot ", ServerRoot]),
+		  cline(["ErrorLog ", TcTopDir,
+		     "/logs/error_log_", integer_to_list(Port)]),
+		  cline(["TransferLog ", TcTopDir,
+			 "/logs/access_log_", integer_to_list(Port)]),
+		  cline(["SecurityLog ", TcTopDir,
+			 "/logs/security_log_", integer_to_list(Port)]),
+		  cline(["ErrorDiskLog ", TcTopDir,
+			 "/logs/error_disk_log_", integer_to_list(Port)]),
+		  cline(["ErrorDiskLogSize ", "190000 ", "11"]),
+		  cline(["TransferDiskLog ", TcTopDir,
+			 "/logs/access_disk_log_", integer_to_list(Port)]),
+		  cline(["TransferDiskLogSize ", "200000 ", "10"]),
+		  cline(["SecurityDiskLog ", TcTopDir,
+			 "/logs/security_disk_log_", integer_to_list(Port)]),
+		  cline(["SecurityDiskLogSize ", "210000 ", "9"]),
+		  cline(["MaxClients 10"]),
+		  cline(["MaxHeaderSize ", MaxHdrSz]),
+		  cline(["MaxHeaderAction ", MaxHdrAct]),
+		  cline(["DocumentRoot ",
+			 filename:join(ServerRoot, "htdocs")]),
+		  cline(["DirectoryIndex ", "index.html ", "welcome.html"]),
+		  cline(["DefaultType ", "text/plain"]),
+		  SSL,
+		  mod_alias_config(ServerRoot),
+
+		  config_directory(filename:join([ServerRoot,"htdocs",
+						  "open"]),
+				   "Open Area",
+				   filename:join(ServerRoot, "auth/passwd"),
+				   filename:join(ServerRoot, "auth/group"),
+				   plain,
+				   "user one Aladdin",
+				   filename:join(ServerRoot, "security_data")),
+		  config_directory(filename:join([ServerRoot,"htdocs",
+						  "secret"]),
+				   "Secret Area",
+				   filename:join(ServerRoot, "auth/passwd"),
+				   filename:join(ServerRoot, "auth/group"),
+				   plain,
+				   "group group1 group2",
+				   filename:join(ServerRoot, "security_data")),
+		  config_directory(filename:join([ServerRoot,"htdocs",
+						  "secret",
+						  "top_secret"]),
+				   "Top Secret Area",
+				   filename:join(ServerRoot, "auth/passwd"),
+				   filename:join(ServerRoot, "auth/group"),
+				   plain,
+				   "group group3",
+				   filename:join(ServerRoot, "security_data")),
+
+		  config_directory(filename:join([ServerRoot,"htdocs",
+						  "dets_open"]),
+				   "Dets Open Area",
+				   filename:join(ServerRoot, "passwd"),
+				   filename:join(ServerRoot, "group"),
+				   dets,
+				   "user one Aladdin",
+				   filename:join(ServerRoot, "security_data")),
+		  config_directory(filename:join([ServerRoot,"htdocs",
+						  "dets_secret"]),
+			       "Dets Secret Area",
+				   filename:join(ServerRoot, "passwd"),
+				   filename:join(ServerRoot, "group"),
+				   dets,
+				   "group group1 group2",
+				   filename:join(ServerRoot, "security_data")),
+		  config_directory(filename:join([ServerRoot,"htdocs",
+						  "dets_secret",
+						  "top_secret"]),
+				   "Dets Top Secret Area",
+				   filename:join(ServerRoot, "passwd"),
+				   filename:join(ServerRoot, "group"),
+				   dets,
+				   "group group3",
+				   filename:join(ServerRoot, "security_data")),
+
+		  config_directory(filename:join([ServerRoot,"htdocs",
+						  "mnesia_open"]),
+				   "Mnesia Open Area",
+				   false,
+				   false,
+				   mnesia,
+				   "user one Aladdin",
+			       filename:join(ServerRoot, "security_data")),
+		  config_directory(filename:join([ServerRoot,"htdocs",
+						  "mnesia_secret"]),
+				   "Mnesia Secret Area",
+				   false,
+				   false,
+				   mnesia,
+				   "group group1 group2",
+				   filename:join(ServerRoot, "security_data")),
+		  config_directory(filename:join(
+				     [ServerRoot, "htdocs", "mnesia_secret",
+				      "top_secret"]),
+				   "Mnesia Top Secret Area",
+				   false,
+				   false,
+				   mnesia,
+				   "group group3",
+				   filename:join(ServerRoot, "security_data"))
+		 ],
+    ConfigFile = filename:join([TcTopDir, FileName]),
+    {ok, Fd} = file:open(ConfigFile, [write]),
+    ok = file:write(Fd, lists:flatten(HttpConfig)),
+    ok = file:close(Fd).
+
+config_directory(Dir, AuthName, AuthUserFile, AuthGroupFile, AuthDBType,
+		 Require, SF) ->
+    file:delete(SF),
+    [
+     cline(["<Directory ", Dir, ">"]),
+     cline(["SecurityDataFile ", SF]),
+     cline(["SecurityMaxRetries 3"]),
+     cline(["SecurityFailExpireTime ", integer_to_list(?FAIL_EXPIRE_TIME)]),
+     cline(["SecurityBlockTime 1"]),
+     cline(["SecurityAuthTimeout ", integer_to_list(?AUTH_TIMEOUT)]),
+     cline(["SecurityCallbackModule ", "httpd_mod"]),
+     cline_if_set("AuthUserFile", AuthUserFile),
+     cline_if_set("AuthGroupFile", AuthGroupFile),
+     cline_if_set("AuthName", AuthName),
+     cline_if_set("AuthDBType", AuthDBType),
+     cline(["require ", Require]),
+     cline(["</Directory>\r\n"])
+    ].
+
+mod_alias_config(Root) ->
+    [
+     cline(["Alias /icons/ ", filename:join(Root,"icons"), "/"]),
+     cline(["Alias /pics/ ", filename:join(Root, "icons"), "/"]),
+     cline(["ScriptAlias /cgi-bin/ ", filename:join(Root, "cgi-bin"), "/"]),
+     cline(["ScriptAlias /htbin/ ", filename:join(Root, "cgi-bin"), "/"]),
+     cline(["ErlScriptAlias /cgi-bin/erl httpd_example io"]),
+     cline(["EvalScriptAlias /eval httpd_example io"])
+    ].
+
+cline(List) ->
+    lists:flatten([List, "\r\n"]).
+
+cline_if_set(_, false) ->
+    [];
+cline_if_set(Name, Var) when is_list(Var) ->
+    cline([Name, " ", Var]);
+cline_if_set(Name, Var) when is_atom(Var) ->
+    cline([Name, " ", atom_to_list(Var)]).
+
+getaddr() ->
+    {ok,HostName} = inet:gethostname(),
+    {ok,{A1,A2,A3,A4}} = inet:getaddr(HostName,inet),
+    lists:flatten(io_lib:format("~p.~p.~p.~p",[A1,A2,A3,A4])).
+
+start_mnesia(Node) ->
+    case rpc:call(Node, ?MODULE, cleanup_mnesia, []) of
+	ok ->
+	    ok;
+	Other ->
+	    tsf({failed_to_cleanup_mnesia, Other})
+    end,
+    case rpc:call(Node, ?MODULE, setup_mnesia, []) of
+	{atomic, ok} ->
+	    ok;
+	Other2 ->
+	    tsf({failed_to_setup_mnesia, Other2})
+    end,
+    ok.
+
+setup_mnesia() ->
+    setup_mnesia([node()]).
+
+setup_mnesia(Nodes) ->
+    ok = mnesia:create_schema(Nodes),
+    ok = mnesia:start(),
+    {atomic, ok} = mnesia:create_table(httpd_user,
+				       [{attributes,
+					 record_info(fields, httpd_user)},
+					{disc_copies,Nodes}, {type, set}]),
+    {atomic, ok} = mnesia:create_table(httpd_group,
+				       [{attributes,
+					 record_info(fields,
+						     httpd_group)},
+					{disc_copies,Nodes}, {type,bag}]).
+
+cleanup_mnesia() ->
+    mnesia:start(),
+    mnesia:delete_table(httpd_user),
+    mnesia:delete_table(httpd_group),
+    stopped = mnesia:stop(),
+    mnesia:delete_schema([node()]),
+    ok.
+
+create_htaccess_data(Path, IpAddress)->
+    create_htaccess_dirs(Path),
+
+    create_html_file(filename:join([Path,"ht/open/dummy.html"])),
+    create_html_file(filename:join([Path,"ht/blocknet/dummy.html"])),
+    create_html_file(filename:join([Path,"ht/secret/dummy.html"])),
+    create_html_file(filename:join([Path,"ht/secret/top_secret/dummy.html"])),
+
+    create_htaccess_file(filename:join([Path,"ht/open/.htaccess"]),
+			 Path, "user one Aladdin"),
+    create_htaccess_file(filename:join([Path,"ht/secret/.htaccess"]),
+			 Path, "group group1 group2"),
+    create_htaccess_file(filename:join([Path,
+				       "ht/secret/top_secret/.htaccess"]),
+			Path, "user four"),
+    create_htaccess_file(filename:join([Path,"ht/blocknet/.htaccess"]),
+			Path, nouser, IpAddress),
+
+    create_user_group_file(filename:join([Path,"ht","users.file"]),
+			   "one:OnePassword\ntwo:TwoPassword\nthree:"
+			   "ThreePassword\nfour:FourPassword\nAladdin:"
+			   "AladdinPassword"),
+    create_user_group_file(filename:join([Path,"ht","groups.file"]),
+			   "group1: two one\ngroup2: two three").
+
+create_html_file(PathAndFileName)->
+    file:write_file(PathAndFileName,list_to_binary(
+	 "<html><head><title>test</title></head>
+         <body>testar</body></html>")).
+
+create_htaccess_file(PathAndFileName, BaseDir, RequireData)->
+    file:write_file(PathAndFileName,
+		    list_to_binary(
+		      "AuthUserFile "++ BaseDir ++
+		      "/ht/users.file\nAuthGroupFile "++ BaseDir
+		      ++ "/ht/groups.file\nAuthName Test\nAuthType"
+		      " Basic\n<Limit>\nrequire " ++ RequireData ++
+		      "\n</Limit>")).
+
+create_htaccess_file(PathAndFileName, BaseDir, nouser, IpAddress)->
+    file:write_file(PathAndFileName,list_to_binary(
+				      "AuthUserFile "++ BaseDir ++
+				      "/ht/users.file\nAuthGroupFile " ++
+				      BaseDir ++ "/ht/groups.file\nAuthName"
+				      " Test\nAuthType"
+				      " Basic\n<Limit GET>\n\tallow from " ++
+				      format_ip(IpAddress,
+						string:rchr(IpAddress,$.)) ++
+				      "\n</Limit>")).
+
+create_user_group_file(PathAndFileName, Data)->
+    file:write_file(PathAndFileName, list_to_binary(Data)).
+
+create_htaccess_dirs(Path)->
+    ok = file:make_dir(filename:join([Path,"ht"])),
+    ok = file:make_dir(filename:join([Path,"ht/open"])),
+    ok = file:make_dir(filename:join([Path,"ht/blocknet"])),
+    ok = file:make_dir(filename:join([Path,"ht/secret"])),
+    ok = file:make_dir(filename:join([Path,"ht/secret/top_secret"])).
+
+remove_htaccess_dirs(Path)->
+    file:del_dir(filename:join([Path,"ht/secret/top_secret"])),
+    file:del_dir(filename:join([Path,"ht/secret"])),
+    file:del_dir(filename:join([Path,"ht/blocknet"])),
+    file:del_dir(filename:join([Path,"ht/open"])),
+    file:del_dir(filename:join([Path,"ht"])).
+
+format_ip(IpAddress,Pos)when Pos > 0->
+    case lists:nth(Pos,IpAddress) of
+	$.->
+	    case lists:nth(Pos-2,IpAddress) of
+		$.->
+		   format_ip(IpAddress,Pos-3);
+		_->
+		    lists:sublist(IpAddress,Pos-2) ++ "."
+	    end;
+	_ ->
+	    format_ip(IpAddress,Pos-1)
+    end;
+
+format_ip(IpAddress, _Pos)->
+    "1" ++ IpAddress.
+
+remove_htaccess(Path)->
+    file:delete(filename:join([Path,"ht/open/dummy.html"])),
+    file:delete(filename:join([Path,"ht/secret/dummy.html"])),
+    file:delete(filename:join([Path,"ht/secret/top_secret/dummy.html"])),
+    file:delete(filename:join([Path,"ht/blocknet/dummy.html"])),
+    file:delete(filename:join([Path,"ht/blocknet/.htaccess"])),
+    file:delete(filename:join([Path,"ht/open/.htaccess"])),
+    file:delete(filename:join([Path,"ht/secret/.htaccess"])),
+    file:delete(filename:join([Path,"ht/secret/top_secret/.htaccess"])),
+    file:delete(filename:join([Path,"ht","users.file"])),
+    file:delete(filename:join([Path,"ht","groups.file"])),
+    remove_htaccess_dirs(Path).
+
+
+dos_hostname_poll(Type, Host, Port, Node, Hosts) ->
+    [dos_hostname_poll1(Type, Host, Port, Node, Host1, Code)
+     || {Host1,Code} <- Hosts].
+
+dos_hostname_poll1(Type, Host, Port, Node, Host1, Code) ->
+    ok = httpd_test_lib:verify_request(Type, Host, Port, Node,
+				       dos_hostname_request(Host1),
+				       [{statuscode, Code},
+					{version, "HTTP/1.0"}]).
+
+dos_hostname_request(Host) ->
+    "GET / HTTP/1.0\r\n" ++ Host ++ "\r\n\r\n".
+
+get_nof_clients(Mode, Load) ->
+    get_nof_clients(test_server:os_type(), Mode, Load).
+
+get_nof_clients(_,       ip_comm, light)  -> 5;
+get_nof_clients(_,       ssl,     light)  -> 2;
+get_nof_clients(_,       ip_comm, medium) -> 10;
+get_nof_clients(_,       ssl,     medium) -> 4;
+get_nof_clients(_,       ip_comm, heavy)  -> 20;
+get_nof_clients(_,       ssl,     heavy)  -> 6.
+
+%% Make a file 100 bytes long containing 012...9*10
+create_range_data(Path) ->
+    PathAndFileName=filename:join([Path,"range.txt"]),
+    file:write_file(PathAndFileName,list_to_binary(["12345678901234567890",
+						   "12345678901234567890",
+						   "12345678901234567890",
+						   "12345678901234567890",
+						   "12345678901234567890"])).
+
+create_ipv6_config(Config, FileName, Ipv6Address) ->
+    ServerRoot = ?config(server_root, Config),
+    TcTopDir   = ?config(tc_top_dir,  Config),
+    Port       = ?config(port,        Config),
+    SockType   = ?config(sock_type,   Config),
+    Mods       = io_lib:format("~p",  [httpd_mod]),
+    Funcs      = io_lib:format("~p",  [ssl_password_cb]),
+    Host       = ?config(ipv6_host,   Config),
+
+    MaxHdrSz     = io_lib:format("~p", [256]),
+    MaxHdrAct    = io_lib:format("~p", [close]),
+
+    Mod_order = "Modules mod_alias mod_auth mod_esi mod_actions mod_cgi"
+	" mod_include mod_dir mod_get mod_head"
+	" mod_log mod_disk_log mod_trace",
+
+    SSL =
+	if
+	    (SockType =:= ssl)  orelse
+	    (SockType =:= essl) ->
+		[cline(["SSLCertificateFile ",
+			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
+		 cline(["SSLCertificateKeyFile ",
+			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
+		 cline(["SSLCACertificateFile ",
+			filename:join(ServerRoot, "ssl/ssl_server.pem")]),
+		 cline(["SSLPasswordCallbackModule ", Mods]),
+		 cline(["SSLPasswordCallbackFunction ", Funcs]),
+		 cline(["SSLVerifyClient 0"]),
+		 cline(["SSLVerifyDepth 1"])];
+	    true ->
+		[]
+	end,
+
+    BindAddress = "[" ++ Ipv6Address ++"]|inet6",
+
+    HttpConfig =
+	[cline(["BindAddress ", BindAddress]),
+	 cline(["Port ", integer_to_list(Port)]),
+	 cline(["ServerName ", Host]),
+	 cline(["SocketType ", atom_to_list(SockType)]),
+	 cline([Mod_order]),
+	 cline(["ServerRoot ", ServerRoot]),
+	 cline(["DocumentRoot ", filename:join(ServerRoot, "htdocs")]),
+	 cline(["MaxHeaderSize ",MaxHdrSz]),
+	 cline(["MaxHeaderAction ",MaxHdrAct]),
+	 cline(["DirectoryIndex ", "index.html "]),
+	 cline(["DefaultType ", "text/plain"]),
+	 SSL],
+    ConfigFile = filename:join([TcTopDir,FileName]),
+    {ok, Fd} = file:open(ConfigFile, [write]),
+    ok = file:write(Fd, lists:flatten(HttpConfig)),
+    ok = file:close(Fd).
+
+
+tsp(F) ->
+    inets_test_lib:tsp("[~w]" ++ F, [?MODULE]).
+tsp(F, A) ->
+    inets_test_lib:tsp("[~w]" ++ F, [?MODULE|A]).
+
+tsf(Reason) ->
+    inets_test_lib:tsf(Reason).
diff --git a/lib/inets/test/old_httpd_SUITE_data/Makefile.src b/lib/inets/test/old_httpd_SUITE_data/Makefile.src
new file mode 100644
index 0000000000..b0fdb43d8d
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/Makefile.src
@@ -0,0 +1,14 @@
+CC = @CC@
+LD = @LD@
+CFLAGS = @CFLAGS@ -I@erl_include@ @DEFS@
+CROSSLDFLAGS = @CROSSLDFLAGS@
+
+PROGS = cgi_echo@exe@
+
+all: $(PROGS)
+
+cgi_echo@exe@: cgi_echo@obj@
+	$(LD) $(CROSSLDFLAGS) -o cgi_echo cgi_echo@obj@ @LIBS@
+
+cgi_echo@obj@: cgi_echo.c
+	$(CC) -c -o cgi_echo@obj@ $(CFLAGS) cgi_echo.c
diff --git a/lib/inets/test/old_httpd_SUITE_data/cgi_echo.c b/lib/inets/test/old_httpd_SUITE_data/cgi_echo.c
new file mode 100644
index 0000000000..4670c02c56
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/cgi_echo.c
@@ -0,0 +1,97 @@
+#include <stdlib.h>
+#include <stdio.h>
+
+#if defined __WIN32__
+#include <windows.h>
+#include <fcntl.h>
+#endif
+
+static int read_exact(char *buffer, int len);
+static int write_exact(char *buffer, int len);
+
+int main(void)
+{
+    char msg[100];
+    int msg_len;
+#ifdef __WIN32__
+    _setmode(_fileno( stdin),  _O_BINARY);
+    _setmode(_fileno( stdout), _O_BINARY);
+#endif
+    msg_len = read_exact(msg, 100);
+
+    write_exact("Content-type: text/plain\r\n\r\n", 28);
+    write_exact(msg, msg_len);
+    exit(EXIT_SUCCESS);
+}
+
+
+/* read from stdin */
+#ifdef __WIN32__
+static int read_exact(char *buffer, int len)
+{
+    HANDLE standard_input = GetStdHandle(STD_INPUT_HANDLE);
+
+    unsigned read_result;
+    unsigned sofar = 0;
+
+    if (!len) { /* Happens for "empty packages */
+	return 0;
+    }
+    for (;;) {
+	if (!ReadFile(standard_input, buffer + sofar,
+		      len - sofar, &read_result, NULL)) {
+	    return -1; /* EOF */
+	}
+	if (!read_result) {
+	    return -2; /* Interrupted while reading? */
+	}
+	sofar += read_result;
+	if (sofar == len) {
+	    return len;
+	}
+    }
+}
+#else
+static int read_exact(char *buffer, int len) {
+    int i, got = 0;
+
+    do {
+	if ((i = read(0, buffer + got, len - got)) <= 0)
+	    return(i);
+	got += i;
+    } while (got < len);
+    return len;
+
+}
+#endif
+
+/* write to stdout */
+#ifdef __WIN32__
+ static int write_exact(char *buffer, int len)
+   {
+     HANDLE standard_output = GetStdHandle(STD_OUTPUT_HANDLE);
+     unsigned written;
+
+     if (!WriteFile(standard_output, buffer, len, &written, NULL)) {
+       return -1; /* Broken Pipe */
+     }
+     if (written < ((unsigned) len)) {
+       /* This should not happen, standard output is not blocking? */
+       return -2;
+     }
+
+    return (int) written;
+}
+
+#else
+ static int write_exact(char *buffer, int len) {
+   int i, wrote = 0;
+
+   do {
+     if ((i = write(1, buffer + wrote, len - wrote)) <= 0)
+       return i;
+     wrote += i;
+   } while (wrote < len);
+   return len;
+ }
+#endif
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/Makefile b/lib/inets/test/old_httpd_SUITE_data/server_root/Makefile
new file mode 100644
index 0000000000..489f3cfb7a
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/Makefile
@@ -0,0 +1,208 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-2014. All Rights Reserved.
+#
+# The contents of this file are subject to the Erlang Public License,
+# Version 1.1, (the "License"); you may not use this file except in
+# compliance with the License. You should have received a copy of the
+# Erlang Public License along with this software. If not, it can be
+# retrieved online at http://www.erlang.org/.
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and limitations
+# under the License.
+#
+# %CopyrightEnd%
+#
+#
+include $(ERL_TOP)/make/target.mk
+include $(ERL_TOP)/make/$(TARGET)/otp.mk
+
+# ----------------------------------------------------
+# Application version
+# ----------------------------------------------------
+include ../../vsn.mk
+VSN=$(INETS_VSN)
+
+# ----------------------------------------------------
+# Release directory specification
+# ----------------------------------------------------
+RELSYSDIR = $(RELEASE_PATH)/lib/inets-$(VSN)
+
+# ----------------------------------------------------
+# Target Specs
+# ----------------------------------------------------
+MODULE=
+
+AUTH_FILES = auth/group \
+	auth/passwd
+CGI_FILES = cgi-bin/printenv.sh
+CONF_FILES = conf/8080.conf \
+	conf/8888.conf \
+	conf/httpd.conf \
+	conf/ssl.conf \
+	conf/mime.types
+OPEN_FILES = htdocs/open/dummy.html
+MNESIA_OPEN_FILES = htdocs/mnesia_open/dummy.html
+MISC_FILES = htdocs/misc/friedrich.html \
+	htdocs/misc/oech.html
+SECRET_FILES = htdocs/secret/dummy.html
+MNESIA_SECRET_FILES = htdocs/mnesia_secret/dummy.html
+HTDOCS_FILES = htdocs/index.html \
+	htdocs/config.shtml \
+	htdocs/echo.shtml \
+	htdocs/exec.shtml \
+	htdocs/flastmod.shtml \
+	htdocs/fsize.shtml \
+	htdocs/include.shtml
+ICON_FILES = icons/README \
+	icons/a.gif \
+	icons/alert.black.gif \
+	icons/alert.red.gif \
+	icons/apache_pb.gif \
+	icons/back.gif \
+	icons/ball.gray.gif \
+	icons/ball.red.gif \
+	icons/binary.gif \
+	icons/binhex.gif \
+	icons/blank.gif \
+	icons/bomb.gif \
+	icons/box1.gif \
+	icons/box2.gif \
+	icons/broken.gif \
+	icons/burst.gif \
+	icons/button1.gif \
+	icons/button10.gif \
+	icons/button2.gif \
+	icons/button3.gif \
+	icons/button4.gif \
+	icons/button5.gif \
+	icons/button6.gif \
+	icons/button7.gif \
+	icons/button8.gif \
+	icons/button9.gif \
+	icons/buttonl.gif \
+	icons/buttonr.gif \
+	icons/c.gif \
+	icons/comp.blue.gif \
+	icons/comp.gray.gif \
+	icons/compressed.gif \
+	icons/continued.gif \
+	icons/dir.gif \
+	icons/down.gif \
+	icons/dvi.gif \
+	icons/f.gif \
+	icons/folder.gif \
+	icons/folder.open.gif \
+	icons/folder.sec.gif \
+	icons/forward.gif \
+	icons/generic.gif \
+	icons/generic.red.gif \
+	icons/generic.sec.gif \
+	icons/hand.right.gif \
+	icons/hand.up.gif \
+	icons/htdig.gif \
+	icons/icon.sheet.gif \
+	icons/image1.gif \
+	icons/image2.gif \
+	icons/image3.gif \
+	icons/index.gif \
+	icons/layout.gif \
+	icons/left.gif \
+	icons/link.gif \
+	icons/movie.gif \
+	icons/p.gif \
+	icons/patch.gif \
+	icons/pdf.gif \
+	icons/pie0.gif \
+	icons/pie1.gif \
+	icons/pie2.gif \
+	icons/pie3.gif \
+	icons/pie4.gif \
+	icons/pie5.gif \
+	icons/pie6.gif \
+	icons/pie7.gif \
+	icons/pie8.gif \
+	icons/portal.gif \
+	icons/poweredby.gif \
+	icons/ps.gif \
+	icons/quill.gif \
+	icons/right.gif \
+	icons/screw1.gif \
+	icons/screw2.gif \
+	icons/script.gif \
+	icons/sound1.gif \
+	icons/sound2.gif \
+	icons/sphere1.gif \
+	icons/sphere2.gif \
+	icons/star.gif \
+	icons/star_blank.gif \
+	icons/tar.gif \
+	icons/tex.gif \
+	icons/text.gif \
+	icons/transfer.gif \
+	icons/unknown.gif \
+	icons/up.gif \
+	icons/uu.gif \
+	icons/uuencoded.gif \
+	icons/world1.gif \
+	icons/world2.gif
+
+SSL_FILES = ssl/ssl_client.pem \
+	ssl/ssl_server.pem
+
+# ----------------------------------------------------
+# FLAGS
+# ----------------------------------------------------
+ERL_COMPILE_FLAGS +=
+
+# ----------------------------------------------------
+# Targets
+# ----------------------------------------------------
+
+debug opt:
+
+clean:
+
+docs:
+
+# ----------------------------------------------------
+# Release Target
+# ----------------------------------------------------
+include $(ERL_TOP)/make/otp_release_targets.mk
+
+release_spec: opt
+	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/auth
+	$(INSTALL_DATA) $(AUTH_FILES) $(RELSYSDIR)/examples/server_root/auth
+	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/cgi-bin
+	$(INSTALL_SCRIPT) $(CGI_FILES) $(RELSYSDIR)/examples/server_root/cgi-bin
+	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/conf
+	$(INSTALL_DATA) $(CONF_FILES) $(RELSYSDIR)/examples/server_root/conf
+	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/htdocs/open
+	$(INSTALL_DATA) $(OPEN_FILES) \
+		$(RELSYSDIR)/examples/server_root/htdocs/open
+	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/htdocs/mnesia_open
+	$(INSTALL_DATA) $(MNESIA_OPEN_FILES) \
+		$(RELSYSDIR)/examples/server_root/htdocs/mnesia_open
+	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/htdocs/misc
+	$(INSTALL_DATA) $(MISC_FILES) \
+		$(RELSYSDIR)/examples/server_root/htdocs/misc
+	$(INSTALL_DIR)  \
+		$(RELSYSDIR)/examples/server_root/htdocs/secret/top_secret
+	$(INSTALL_DIR)  \
+		$(RELSYSDIR)/examples/server_root/htdocs/mnesia_secret/top_secret
+	$(INSTALL_DATA) $(SECRET_FILES)  \
+		$(RELSYSDIR)/examples/server_root/htdocs/secret
+	$(INSTALL_DATA) $(MNESIA_SECRET_FILES)  \
+		$(RELSYSDIR)/examples/server_root/htdocs/mnesia_secret
+	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/htdocs
+	$(INSTALL_DATA) $(HTDOCS_FILES) $(RELSYSDIR)/examples/server_root/htdocs
+	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/icons
+	$(INSTALL_DATA) $(ICON_FILES) $(RELSYSDIR)/examples/server_root/icons
+	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/ssl
+	$(INSTALL_DATA) $(SSL_FILES) $(RELSYSDIR)/examples/server_root/ssl
+	$(INSTALL_DIR) $(RELSYSDIR)/examples/server_root/logs
+
+release_docs_spec:
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/auth/group b/lib/inets/test/old_httpd_SUITE_data/server_root/auth/group
new file mode 100644
index 0000000000..b3da0ccbd3
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/auth/group
@@ -0,0 +1,3 @@
+group1: one two
+group2: two three
+group3: three Aladdin
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/auth/passwd b/lib/inets/test/old_httpd_SUITE_data/server_root/auth/passwd
new file mode 100644
index 0000000000..8c980ff547
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/auth/passwd
@@ -0,0 +1,4 @@
+one:onePassword
+two:twoPassword
+three:threePassword
+Aladdin:AladdinPassword
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/cgi-bin/printenv.bat b/lib/inets/test/old_httpd_SUITE_data/server_root/cgi-bin/printenv.bat
new file mode 100644
index 0000000000..c6b1704819
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/cgi-bin/printenv.bat
@@ -0,0 +1,7 @@
+@echo off
+echo tomrad > c:\cygwin\tmp\hej
+echo Content-type: text/html
+echo.
+echo ^<HTML^> ^<HEAD^> ^<TITLE^>OS Environment^</TITLE^> ^</HEAD^> ^<BODY^>^<PRE^>
+set
+echo ^</PRE^>^</BODY^>^</HTML^>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/cgi-bin/printenv.sh b/lib/inets/test/old_httpd_SUITE_data/server_root/cgi-bin/printenv.sh
new file mode 100755
index 0000000000..de81de9bde
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/cgi-bin/printenv.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+echo "Content-type: text/html"
+echo ""
+echo "<HTML> <HEAD> <TITLE>OS Environment</TITLE> </HEAD> <BODY><PRE>"
+env
+echo "</PRE></BODY></HTML>"
\ No newline at end of file
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/conf/8080.conf b/lib/inets/test/old_httpd_SUITE_data/server_root/conf/8080.conf
new file mode 100644
index 0000000000..48e66f0114
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/conf/8080.conf
@@ -0,0 +1,79 @@
+Port 8080
+#ServerName your.server.net
+SocketType ip_comm
+Modules mod_alias mod_auth mod_esi mod_actions mod_cgi mod_include mod_dir mod_get mod_head mod_log mod_disk_log
+ServerAdmin jocke@erix.ericsson.se
+ServerRoot /var/tmp/server_root
+ErrorLog logs/error_log_8080
+TransferLog logs/access_log_8080
+SecurityLog logs/security_log_8080
+ErrorDiskLog logs/error_disk_log_8080
+ErrorDiskLogSize 200000 10
+TransferDiskLog logs/access_disk_log_8080
+TransferDiskLogSize 200000 10
+SecurityDiskLog logs/security_disk_log
+SecurityDiskLogSize 200000 10
+MaxClients 50
+#KeepAlive 5
+#KeepAliveTimeout 10
+DocumentRoot /var/tmp/server_root/htdocs
+DirectoryIndex index.html welcome.html
+DefaultType text/plain
+Alias /icons/ /var/tmp/server_root/icons/
+Alias /pics/ /var/tmp/server_root/icons/
+ScriptAlias /cgi-bin/ /var/tmp/server_root/cgi-bin/
+ScriptAlias /htbin/ /var/tmp/server_root/cgi-bin/
+ErlScriptAlias /cgi-bin/erl httpd_example io
+EvalScriptAlias /eval httpd_example io
+#Script HEAD /cgi-bin/printenv.sh
+#Action image/gif /cgi-bin/printenv.sh
+
+<Directory /var/tmp/server_root/htdocs/open>
+AuthDBType plain
+AuthName Open Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require user one Aladdin
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/secret>
+AuthDBType plain
+AuthName Secret Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require group group1 group2
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/secret/top_secret>
+AuthDBType plain
+AuthName Top Secret Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require group group3
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_open>
+AuthDBType mnesia
+AuthName Open Area
+require user one Aladdin
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_secret>
+AuthDBType mnesia
+AuthName Secret Area
+require group group1 group2
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_secret/top_secret>
+AuthDBType mnesia
+AuthName Top Secret Area
+require group group3
+allow from 130.100.34 130.100.35
+deny from 100.234.22.12 194.100.34.1 130.100.34.25
+SecurityDataFile logs/security_data
+SecurityMaxRetries 3
+SecurityBlockTime 10
+SecurityFailExpireTime 1
+SecurityAuthTimeout 1
+SecurityCallbackModule security_callback
+</Directory>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/conf/8888.conf b/lib/inets/test/old_httpd_SUITE_data/server_root/conf/8888.conf
new file mode 100644
index 0000000000..79bb7fcca4
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/conf/8888.conf
@@ -0,0 +1,63 @@
+Port 8888
+#ServerName your.server.net
+SocketType ip_comm
+Modules mod_alias mod_auth mod_esi mod_actions mod_cgi mod_include mod_dir mod_get mod_head mod_log mod_disk_log
+ServerAdmin jocke@erix.ericsson.se
+ServerRoot /var/tmp/server_root
+ErrorLog logs/error_log_8888
+TransferLog logs/access_log_8888
+ErrorDiskLog logs/error_disk_log_8888
+ErrorDiskLogSize 200000 10
+TransferDiskLog logs/access_disk_log_8888
+TransferDiskLogSize 200000 10
+MaxClients 150
+DocumentRoot /var/tmp/server_root/htdocs
+DirectoryIndex index.html welcome.html
+DefaultType text/plain
+Alias /icons/ /var/tmp/server_root/icons/
+Alias /pics/ /var/tmp/server_root/icons/
+ScriptAlias /cgi-bin/ /var/tmp/server_root/cgi-bin/
+ScriptAlias /htbin/ /var/tmp/server_root/cgi-bin/
+ErlScriptAlias /cgi-bin/erl httpd_example io
+EvalScriptAlias /eval httpd_example io
+#Script HEAD /cgi-bin/printenv.sh
+#Action image/gif /cgi-bin/printenv.sh
+
+<Directory /var/tmp/server_root/htdocs/open>
+AuthName Open Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require user one Aladdin
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/secret>
+AuthName Secret Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require group group1 group2
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/secret/top_secret>
+AuthName Top Secret Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require group group3
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_open>
+AuthName Open Area
+AuthMnesiaDB On
+require user one Aladdin
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_secret>
+AuthName Secret Area
+AuthMnesiaDB On
+require group group1 group2
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_secret/top_secret>
+AuthName Top Secret Area
+AuthMnesiaDB On
+require group group3
+</Directory>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/conf/httpd.conf b/lib/inets/test/old_httpd_SUITE_data/server_root/conf/httpd.conf
new file mode 100644
index 0000000000..a1de5bf4a8
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/conf/httpd.conf
@@ -0,0 +1,268 @@
+#
+# %CopyrightBegin%
+#
+# Copyright Ericsson AB 1997-2014. All Rights Reserved.
+#
+# The contents of this file are subject to the Erlang Public License,
+# Version 1.1, (the "License"); you may not use this file except in
+# compliance with the License. You should have received a copy of the
+# Erlang Public License along with this software. If not, it can be
+# retrieved online at http://www.erlang.org/.
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+# the License for the specific language governing rights and limitations
+# under the License.
+#
+# %CopyrightEnd%
+#
+#
+
+# Port: The port the standalone listens to. For ports < 1023, you will
+# need httpd to be run as root initially.
+
+Port 8888
+
+# BindAddress: This directive is used to tell the server which IP address
+# to listen to. It can either contain "*", an IP address, or a fully
+# qualified Internet domain name.
+#
+# It is also possible to specify the ip-family with the directive.
+# There ar three possible value: inet, inet6 and inet6fb4
+# inet:     Use IpFamily inet when retreiving the address and
+#           fail if that does not work.
+# inet6:    Use IpFamily inet6 when retreiving the address and
+#           fail if that does not work.
+# inet6fb4: First IpFamily inet6 is tried and if that does not work,
+#           inet is used as fallback.
+# Default value for ip-family is inet6fb4
+#
+# The syntax is: <address>[|<ip-family>]
+#
+#BindAddress *
+#BindAddress *|inet
+
+
+# ServerName allows you to set a host name which is sent back to clients for
+# your server if it's different than the one the program would get (i.e. use
+# "www" instead of the host's real name).
+#
+# Note: You cannot just invent host names and hope they work. The name you
+# define here must be a valid DNS name for your host. If you don't understand
+# this, ask your network administrator.
+
+#ServerName your.server.net
+
+# SocketType is either ip_comm, sockets or ssl.
+
+SocketType ip_comm
+
+# Modules: Server run-time plug-in modules written using the Erlang
+# Web Server API (EWSAPI). The server API make it easy to add functionality
+# to the server. Read more about EWSAPI in the Reference Manual.
+# WARNING! Do not tamper with this directive unless you are familiar with
+# EWSAPI.
+
+Modules mod_alias mod_auth mod_esi mod_actions mod_cgi mod_responsecontrol mod_trace mod_range mod_head mod_include mod_dir mod_get mod_log mod_disk_log
+
+# ServerAdmin: Your address, where problems with the server should be
+# e-mailed.
+
+ServerAdmin jocke@erix.ericsson.se
+
+# ServerRoot: The directory the server's config, error, and log files
+# are kept in
+
+ServerRoot /var/tmp/server_root
+
+# ErrorLog: The location of the error log file. If this does not start
+# with /, ServerRoot is prepended to it.
+
+ErrorLog logs/error_log
+
+# TransferLog: The location of the transfer log file. If this does not
+# start with /, ServerRoot is prepended to it.
+
+TransferLog logs/access_log
+
+# SecurityLog: The location of the security log file (mod_security required)
+#
+SecurityLog logs/security_log
+
+# ErrorDiskLog: The location of the error log file. If this does not
+# start with /, ServerRoot is prepended to it. This log file is managed
+# with the disk_log module [See disk_log(3)]. The ErrorDiskLogSize directive
+# takes two argument, i.e. MaxBytes and MaxFiles. The wrap log writes at most
+# MaxBytes bytes on each file, and it uses MaxFiles files before it wraps, and
+# truncates the first file.
+
+ErrorDiskLog logs/error_disk_log
+ErrorDiskLogSize 200000 10
+
+# TransferDiskLog: The location of the transfer log file. If this does not
+# start with /, ServerRoot is prepended to it. This log file is managed
+# with the disk_log module [See disk_log(3)]. The TransferDiskLogSize directive
+# takes two argument, i.e. MaxBytes and MaxFiles. The wrap log writes at most
+# MaxBytes bytes on each file, and it uses MaxFiles files before it wraps, and
+# truncates the first file.
+
+TransferDiskLog logs/access_disk_log
+TransferDiskLogSize 200000 10
+
+# SecurityDiskLog: The location of the security log file. If this does not
+# start with /, ServerRoot is prepended to it. This log file is managed
+# with the disk_log module [See disk_log(3)]. The SecurityDiskLogSize directive
+# takes two argument, i.e. MaxBytes and MaxFiles. The wrap log writes at most
+# MaxBytes bytes on each file, and it uses MaxFiles files before it wraps, and
+# truncates the first file.
+
+SecurityDiskLog logs/security_disk_log
+SecurityDiskLogSize 200000 10
+
+# Limit on total number of servers running, i.e., limit on the number
+# of clients who can simultaneously connect --- if this limit is ever
+# reached, clients will be LOCKED OUT, so it should NOT BE SET TOO LOW.
+# It is intended mainly as a brake to keep a runaway server from taking
+# the server with it as it spirals down...
+
+MaxClients 50
+
+# KeepAlive set the flag for persistent connections. For peristent connections
+# set KeepAlive to on. To use One request per connection set the flag to off
+# Note: The value has changed since previous version of INETS.
+KeepAlive on
+
+# KeepAliveTimeout sets the number of seconds before a persistent connection
+# times out and closes.
+KeepAliveTimeout 10
+
+# MaxKeepAliveRequests sets the number of seconds before a persistent connection
+# times out and closes.
+MaxKeepAliveRequests 10
+
+
+
+# DocumentRoot: The directory out of which you will serve your
+# documents. By default, all requests are taken from this directory, but
+# symbolic links and aliases may be used to point to other locations.
+
+DocumentRoot /var/tmp/server_root/htdocs
+
+# DirectoryIndex: Name of the file or files to use as a pre-written HTML
+# directory index.  Separate multiple entries with spaces.
+
+DirectoryIndex index.html welcome.html
+
+# DefaultType is the default MIME type for documents which the server
+# cannot find the type of from filename extensions.
+
+DefaultType text/plain
+
+# Aliases: Add here as many aliases as you need (with no limit). The format is
+# Alias fakename realname
+
+Alias /icons/ /var/tmp/server_root/icons/
+Alias /pics/ /var/tmp/server_root/icons/
+
+# ScriptAlias: This controls which directories contain server scripts.
+# Format: ScriptAlias fakename realname
+
+ScriptAlias /cgi-bin/ /var/tmp/server_root/cgi-bin/
+ScriptAlias /htbin/ /var/tmp/server_root/cgi-bin/
+
+# This directive adds an action, which will activate cgi-script when a
+# file is requested using the method of method, which can be one of
+# GET, POST and HEAD. It sends the URL and file path of the requested
+# document using the standard CGI PATH_INFO and PATH_TRANSLATED
+# environment variables.
+
+#Script HEAD /cgi-bin/printenv.sh
+
+# This directive adds an action, which will activate cgi-script when a
+# file of content type mime-type is requested. It sends the URL and
+# file path of the requested document using the standard CGI PATH_INFO
+# and PATH_TRANSLATED environment variables.
+
+#Action image/gif /cgi-bin/printenv.sh
+
+# ErlScriptAlias: This specifies how "Erl" server scripts are called.
+# Format: ErlScriptAlias fakename realname allowed_modules
+
+ErlScriptAlias /down/erl httpd_example io
+
+# EvalScriptAlias: This specifies how "Eval" server scripts are called.
+# Format: EvalScriptAlias fakename realname allowed_modules
+
+EvalScriptAlias /eval httpd_example io
+
+# Point SSLCertificateFile at a PEM encoded certificate.
+
+SSLCertificateFile /var/tmp/server_root/ssl/ssl_server.pem
+
+# If the key is not combined with the certificate, use this directive to
+# point at the key file.
+
+SSLCertificateKeyFile /var/tmp/server_root/ssl/ssl_server.pem
+
+# Set SSLVerifyClient to:
+# 0 if no certicate is required
+# 1 if the client may present a valid certificate
+# 2 if the client must present a valid certificate
+# 3 if the client may present a valid certificate but it is not required to
+#   have a valid CA
+
+SSLVerifyClient 0
+
+# Each directory to which INETS has access, can be configured with respect
+# to which services and features are allowed and/or disabled in that
+# directory (and its subdirectories).
+
+<Directory /var/tmp/server_root/htdocs/open>
+AuthDBType plain
+AuthName Open Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require user one Aladdin
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/secret>
+AuthDBType plain
+AuthName Secret Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require group group1 group2
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/secret/top_secret>
+AuthDBType plain
+AuthName Top Secret Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require group group3
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_open>
+AuthDBType mnesia
+AuthName Open Area
+require user one Aladdin
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_secret>
+AuthDBType mnesia
+AuthName Secret Area
+require group group1 group2
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_secret/top_secret>
+AuthDBType mnesia
+AuthName Top Secret Area
+require group group3
+allow from 130.100.34 130.100.35
+deny from 100.234.22.12 194.100.34.1 130.100.34.25
+SecurityDataFile logs/security_data
+SecurityMaxRetries 3
+SecurityBlockTime 10
+SecurityFailExpireTime 1
+SecurityAuthTimeout 1
+SecurityCallbackModule security_callback
+</Directory>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/conf/mime.types b/lib/inets/test/old_httpd_SUITE_data/server_root/conf/mime.types
new file mode 100644
index 0000000000..cb23079659
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/conf/mime.types
@@ -0,0 +1,462 @@
+# This is a comment. I love comments.
+
+# MIME type			Extension
+application/EDI-Consent
+application/EDI-X12
+application/EDIFACT
+application/activemessage
+application/andrew-inset	ez
+application/applefile
+application/atomicmail
+application/batch-SMTP
+application/beep+xml
+application/cals-1840
+application/commonground
+application/cybercash
+application/dca-rft
+application/dec-dx
+application/dvcs
+application/eshop
+application/http
+application/hyperstudio
+application/iges
+application/index
+application/index.cmd
+application/index.obj
+application/index.response
+application/index.vnd
+application/iotp
+application/ipp
+application/isup
+application/font-tdpfr
+application/mac-binhex40	hqx
+application/mac-compactpro	cpt
+application/macwriteii
+application/marc
+application/mathematica
+application/mathematica-old
+application/msword		doc
+application/news-message-id
+application/news-transmission
+application/ocsp-request
+application/ocsp-response
+application/octet-stream	bin dms lha lzh exe class so dll
+application/oda			oda
+application/parityfec
+application/pdf			pdf
+application/pgp-encrypted
+application/pgp-keys
+application/pgp-signature
+application/pkcs10
+application/pkcs7-mime
+application/pkcs7-signature
+application/pkix-cert
+application/pkix-crl
+application/pkixcmp
+application/postscript		ai eps ps
+application/prs.alvestrand.titrax-sheet
+application/prs.cww
+application/prs.nprend
+application/qsig
+application/remote-printing
+application/riscos
+application/rtf
+application/sdp
+application/set-payment
+application/set-payment-initiation
+application/set-registration
+application/set-registration-initiation
+application/sgml
+application/sgml-open-catalog
+application/sieve
+application/slate
+application/smil		smi smil
+application/timestamp-query
+application/timestamp-reply
+application/vemmi
+application/vnd.3M.Post-it-Notes
+application/vnd.FloGraphIt
+application/vnd.accpac.simply.aso
+application/vnd.accpac.simply.imp
+application/vnd.acucobol
+application/vnd.aether.imp
+application/vnd.anser-web-certificate-issue-initiation
+application/vnd.anser-web-funds-transfer-initiation
+application/vnd.audiograph
+application/vnd.businessobjects
+application/vnd.bmi
+application/vnd.canon-cpdl
+application/vnd.canon-lips
+application/vnd.claymore
+application/vnd.commerce-battelle
+application/vnd.commonspace
+application/vnd.comsocaller
+application/vnd.contact.cmsg
+application/vnd.cosmocaller
+application/vnd.cups-postscript
+application/vnd.cups-raster
+application/vnd.cups-raw
+application/vnd.ctc-posml
+application/vnd.cybank
+application/vnd.dna
+application/vnd.dpgraph
+application/vnd.dxr
+application/vnd.ecdis-update
+application/vnd.ecowin.chart
+application/vnd.ecowin.filerequest
+application/vnd.ecowin.fileupdate
+application/vnd.ecowin.series
+application/vnd.ecowin.seriesrequest
+application/vnd.ecowin.seriesupdate
+application/vnd.enliven
+application/vnd.epson.esf
+application/vnd.epson.msf
+application/vnd.epson.quickanime
+application/vnd.epson.salt
+application/vnd.epson.ssf
+application/vnd.ericsson.quickcall
+application/vnd.eudora.data
+application/vnd.fdf
+application/vnd.ffsns
+application/vnd.framemaker
+application/vnd.fsc.weblaunch
+application/vnd.fujitsu.oasys
+application/vnd.fujitsu.oasys2
+application/vnd.fujitsu.oasys3
+application/vnd.fujitsu.oasysgp
+application/vnd.fujitsu.oasysprs
+application/vnd.fujixerox.ddd
+application/vnd.fujixerox.docuworks
+application/vnd.fujixerox.docuworks.binder
+application/vnd.fut-misnet
+application/vnd.grafeq
+application/vnd.groove-account
+application/vnd.groove-identity-message
+application/vnd.groove-injector
+application/vnd.groove-tool-message
+application/vnd.groove-tool-template
+application/vnd.groove-vcard
+application/vnd.hhe.lesson-player
+application/vnd.hp-HPGL
+application/vnd.hp-PCL
+application/vnd.hp-PCLXL
+application/vnd.hp-hpid
+application/vnd.hp-hps
+application/vnd.httphone
+application/vnd.hzn-3d-crossword
+application/vnd.ibm.afplinedata
+application/vnd.ibm.MiniPay
+application/vnd.ibm.modcap
+application/vnd.informix-visionary
+application/vnd.intercon.formnet
+application/vnd.intertrust.digibox
+application/vnd.intertrust.nncp
+application/vnd.intu.qbo
+application/vnd.intu.qfx
+application/vnd.irepository.package+xml
+application/vnd.is-xpr
+application/vnd.japannet-directory-service
+application/vnd.japannet-jpnstore-wakeup
+application/vnd.japannet-payment-wakeup
+application/vnd.japannet-registration
+application/vnd.japannet-registration-wakeup
+application/vnd.japannet-setstore-wakeup
+application/vnd.japannet-verification
+application/vnd.japannet-verification-wakeup
+application/vnd.koan
+application/vnd.lotus-1-2-3
+application/vnd.lotus-approach
+application/vnd.lotus-freelance
+application/vnd.lotus-notes
+application/vnd.lotus-organizer
+application/vnd.lotus-screencam
+application/vnd.lotus-wordpro
+application/vnd.mcd
+application/vnd.mediastation.cdkey
+application/vnd.meridian-slingshot
+application/vnd.mif		mif
+application/vnd.minisoft-hp3000-save
+application/vnd.mitsubishi.misty-guard.trustweb
+application/vnd.mobius.daf
+application/vnd.mobius.dis
+application/vnd.mobius.msl
+application/vnd.mobius.plc
+application/vnd.mobius.txf
+application/vnd.motorola.flexsuite
+application/vnd.motorola.flexsuite.adsi
+application/vnd.motorola.flexsuite.fis
+application/vnd.motorola.flexsuite.gotap
+application/vnd.motorola.flexsuite.kmr
+application/vnd.motorola.flexsuite.ttc
+application/vnd.motorola.flexsuite.wem
+application/vnd.mozilla.xul+xml
+application/vnd.ms-artgalry
+application/vnd.ms-asf
+application/vnd.ms-excel	xls
+application/vnd.ms-lrm
+application/vnd.ms-powerpoint	ppt
+application/vnd.ms-project
+application/vnd.ms-tnef
+application/vnd.ms-works
+application/vnd.mseq
+application/vnd.msign
+application/vnd.music-niff
+application/vnd.musician
+application/vnd.netfpx
+application/vnd.noblenet-directory
+application/vnd.noblenet-sealer
+application/vnd.noblenet-web
+application/vnd.novadigm.EDM
+application/vnd.novadigm.EDX
+application/vnd.novadigm.EXT
+application/vnd.osa.netdeploy
+application/vnd.palm
+application/vnd.pg.format
+application/vnd.pg.osasli
+application/vnd.powerbuilder6
+application/vnd.powerbuilder6-s
+application/vnd.powerbuilder7
+application/vnd.powerbuilder7-s
+application/vnd.powerbuilder75
+application/vnd.powerbuilder75-s
+application/vnd.previewsystems.box
+application/vnd.publishare-delta-tree
+application/vnd.pvi.ptid1
+application/vnd.pwg-xhtml-print+xml
+application/vnd.rapid
+application/vnd.s3sms
+application/vnd.seemail
+application/vnd.shana.informed.formdata
+application/vnd.shana.informed.formtemplate
+application/vnd.shana.informed.interchange
+application/vnd.shana.informed.package
+application/vnd.sss-cod
+application/vnd.sss-dtf
+application/vnd.sss-ntf
+application/vnd.street-stream
+application/vnd.svd
+application/vnd.swiftview-ics
+application/vnd.triscape.mxs
+application/vnd.trueapp
+application/vnd.truedoc
+application/vnd.tve-trigger
+application/vnd.ufdl
+application/vnd.uplanet.alert
+application/vnd.uplanet.alert-wbxml
+application/vnd.uplanet.bearer-choice-wbxml
+application/vnd.uplanet.bearer-choice
+application/vnd.uplanet.cacheop
+application/vnd.uplanet.cacheop-wbxml
+application/vnd.uplanet.channel
+application/vnd.uplanet.channel-wbxml
+application/vnd.uplanet.list
+application/vnd.uplanet.list-wbxml
+application/vnd.uplanet.listcmd
+application/vnd.uplanet.listcmd-wbxml
+application/vnd.uplanet.signal
+application/vnd.vcx
+application/vnd.vectorworks
+application/vnd.vidsoft.vidconference
+application/vnd.visio
+application/vnd.vividence.scriptfile
+application/vnd.wap.sic
+application/vnd.wap.slc
+application/vnd.wap.wbxml	wbxml
+application/vnd.wap.wmlc	wmlc
+application/vnd.wap.wmlscriptc	wmlsc
+application/vnd.webturbo
+application/vnd.wrq-hp3000-labelled
+application/vnd.wt.stf
+application/vnd.xara
+application/vnd.xfdl
+application/vnd.yellowriver-custom-menu
+application/whoispp-query
+application/whoispp-response
+application/wita
+application/wordperfect5.1
+application/x-bcpio		bcpio
+application/x-cdlink		vcd
+application/x-chess-pgn		pgn
+application/x-compress
+application/x-cpio		cpio
+application/x-csh		csh
+application/x-director		dcr dir dxr
+application/x-dvi		dvi
+application/x-futuresplash	spl
+application/x-gtar		gtar
+application/x-gzip
+application/x-hdf		hdf
+application/x-javascript	js
+application/x-koan		skp skd skt skm
+application/x-latex		latex
+application/x-netcdf		nc cdf
+application/x-sh		sh
+application/x-shar		shar
+application/x-shockwave-flash	swf
+application/x-stuffit		sit
+application/x-sv4cpio		sv4cpio
+application/x-sv4crc		sv4crc
+application/x-tar		tar
+application/x-tcl		tcl
+application/x-tex		tex
+application/x-texinfo		texinfo texi
+application/x-troff		t tr roff
+application/x-troff-man		man
+application/x-troff-me		me
+application/x-troff-ms		ms
+application/x-ustar		ustar
+application/x-wais-source	src
+application/x400-bp
+application/xml
+application/xml-dtd
+application/xml-external-parsed-entity
+application/zip			zip
+audio/32kadpcm
+audio/basic			au snd
+audio/g.722.1
+audio/l16
+audio/midi			mid midi kar
+audio/mp4a-latm
+audio/mpa-robust
+audio/mpeg			mpga mp2 mp3
+audio/parityfec
+audio/prs.sid
+audio/telephone-event
+audio/tone
+audio/vnd.cisco.nse
+audio/vnd.cns.anp1
+audio/vnd.cns.inf1
+audio/vnd.digital-winds
+audio/vnd.everad.plj
+audio/vnd.lucent.voice
+audio/vnd.nortel.vbk
+audio/vnd.nuera.ecelp4800
+audio/vnd.nuera.ecelp7470
+audio/vnd.nuera.ecelp9600
+audio/vnd.octel.sbc
+audio/vnd.qcelp
+audio/vnd.rhetorex.32kadpcm
+audio/vnd.vmx.cvsd
+audio/x-aiff			aif aiff aifc
+audio/x-mpegurl			m3u
+audio/x-pn-realaudio		ram rm
+audio/x-pn-realaudio-plugin	rpm
+audio/x-realaudio		ra
+audio/x-wav			wav
+chemical/x-pdb			pdb
+chemical/x-xyz			xyz
+image/bmp			bmp
+image/cgm
+image/g3fax
+image/gif			gif
+image/ief			ief
+image/jpeg			jpeg jpg jpe
+image/naplps
+image/png			png
+image/prs.btif
+image/prs.pti
+image/tiff			tiff tif
+image/vnd.cns.inf2
+image/vnd.dwg
+image/vnd.dxf
+image/vnd.fastbidsheet
+image/vnd.fpx
+image/vnd.fst
+image/vnd.fujixerox.edmics-mmr
+image/vnd.fujixerox.edmics-rlc
+image/vnd.mix
+image/vnd.net-fpx
+image/vnd.svf
+image/vnd.wap.wbmp		wbmp
+image/vnd.xiff
+image/x-cmu-raster		ras
+image/x-portable-anymap		pnm
+image/x-portable-bitmap		pbm
+image/x-portable-graymap	pgm
+image/x-portable-pixmap		ppm
+image/x-rgb			rgb
+image/x-xbitmap			xbm
+image/x-xpixmap			xpm
+image/x-xwindowdump		xwd
+message/delivery-status
+message/disposition-notification
+message/external-body
+message/http
+message/news
+message/partial
+message/rfc822
+message/s-http
+model/iges			igs iges
+model/mesh			msh mesh silo
+model/vnd.dwf
+model/vnd.flatland.3dml
+model/vnd.gdl
+model/vnd.gs-gdl
+model/vnd.gtw
+model/vnd.mts
+model/vnd.vtu
+model/vrml			wrl vrml
+multipart/alternative
+multipart/appledouble
+multipart/byteranges
+multipart/digest
+multipart/encrypted
+multipart/form-data
+multipart/header-set
+multipart/mixed
+multipart/parallel
+multipart/related
+multipart/report
+multipart/signed
+multipart/voice-message
+text/calendar
+text/css			css
+text/directory
+text/enriched
+text/html			html htm
+text/parityfec
+text/plain			asc txt
+text/prs.lines.tag
+text/rfc822-headers
+text/richtext			rtx
+text/rtf			rtf
+text/sgml			sgml sgm
+text/tab-separated-values	tsv
+text/t140
+text/uri-list
+text/vnd.DMClientScript
+text/vnd.IPTC.NITF
+text/vnd.IPTC.NewsML
+text/vnd.abc
+text/vnd.curl
+text/vnd.flatland.3dml
+text/vnd.fly
+text/vnd.fmi.flexstor
+text/vnd.in3d.3dml
+text/vnd.in3d.spot
+text/vnd.latex-z
+text/vnd.motorola.reflex
+text/vnd.ms-mediapackage
+text/vnd.wap.si
+text/vnd.wap.sl
+text/vnd.wap.wml		wml
+text/vnd.wap.wmlscript		wmls
+text/x-setext			etx
+text/x-server-parsed-html       shtml
+text/xml			xml xsl
+text/xml-external-parsed-entity
+video/mp4v-es
+video/mpeg			mpeg mpg mpe
+video/parityfec
+video/pointer
+video/quicktime			qt mov
+video/vnd.fvt
+video/vnd.motorola.video
+video/vnd.motorola.videop
+video/vnd.mpegurl		mxu
+video/vnd.mts
+video/vnd.nokia.interleaved-multimedia
+video/vnd.vivo
+video/x-msvideo			avi
+video/x-sgi-movie		movie
+x-conference/x-cooltalk		ice
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/conf/ssl.conf b/lib/inets/test/old_httpd_SUITE_data/server_root/conf/ssl.conf
new file mode 100644
index 0000000000..8b8c57a98b
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/conf/ssl.conf
@@ -0,0 +1,66 @@
+Port 8088
+#ServerName your.server.net
+SocketType ssl
+Modules mod_alias mod_auth mod_esi mod_actions mod_cgi mod_include mod_dir mod_get mod_head mod_log mod_disk_log
+ServerAdmin jocke@erix.ericsson.se
+ServerRoot /var/tmp/server_root
+ErrorLog logs/error_log_8088
+TransferLog logs/access_log_8088
+ErrorDiskLog logs/error_disk_log_8088
+ErrorDiskLogSize 200000 10
+TransferDiskLog logs/access_disk_log_8088
+TransferDiskLogSize 200000 10
+MaxClients 150
+DocumentRoot /var/tmp/server_root/htdocs
+DirectoryIndex index.html welcome.html
+DefaultType text/plain
+Alias /icons/ /var/tmp/server_root/icons/
+Alias /pics/ /var/tmp/server_root/icons/
+ScriptAlias /cgi-bin/ /var/tmp/server_root/cgi-bin/
+ScriptAlias /htbin/ /var/tmp/server_root/cgi-bin/
+ErlScriptAlias /cgi-bin/erl httpd_example io
+EvalScriptAlias /eval httpd_example io
+SSLCertificateFile /var/tmp/server_root/ssl/ssl_server.pem
+SSLCertificateKeyFile /var/tmp/server_root/ssl/ssl_server.pem
+SSLVerifyClient 0
+#Script HEAD /cgi-bin/printenv.sh
+#Action image/gif /cgi-bin/printenv.sh
+
+<Directory /var/tmp/server_root/htdocs/open>
+AuthName Open Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require user one Aladdin
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/secret>
+AuthName Secret Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require group group1 group2
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/secret/top_secret>
+AuthName Top Secret Area
+AuthUserFile /var/tmp/server_root/auth/passwd
+AuthGroupFile /var/tmp/server_root/auth/group
+require group group3
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_open>
+AuthName Open Area
+AuthMnesiaDB On
+require user one Aladdin
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_secret>
+AuthName Secret Area
+AuthMnesiaDB On
+require group group1 group2
+</Directory>
+
+<Directory /var/tmp/server_root/htdocs/mnesia_secret/top_secret>
+AuthName Top Secret Area
+AuthMnesiaDB On
+require group group3
+</Directory>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/config.shtml b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/config.shtml
new file mode 100644
index 0000000000..4bfddf4ed5
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/config.shtml
@@ -0,0 +1,60 @@
+<HTML>
+<HEAD>
+<TITLE>/ssi.html (17-Apr-1997)</TITLE>
+</HEAD>
+<BODY>
+<H1>/ssi.html</H1>
+
+<!-- ************* CONFIG ************* -->
+
+<!--#config timefmt="%a %b %e %T %Z %Y" sizefmt="abbrev"-->
+<!--#config errmsg="[an especially ugly error occurred while processing this directive]"-->
+
+<!-- ************* INCLUDE ************* -->
+
+<P>Include /misc/friedrich.html:
+<!--#include virtual="/misc/friedrich.html"-->
+<P>Include /misc/not_defined.html: <!--#include virtual="/misc/not_defined.html"-->
+<P>Include misc/friedrich.html:
+<!--#include file="misc/friedrich.html"-->
+<P>Include not_defined.html: <!--#include file="not_defined.html"-->
+
+<P><HR>
+
+<!-- ************* ECHO ************* -->
+
+<P>DOCUMENT_NAME: <!--#echo var="DOCUMENT_NAME"-->
+<P>DOCUMENT_URI: <!--#echo var="DOCUMENT_URI"-->
+<P>QUERY_STRING_UNESCAPED: <!--#echo var="QUERY_STRING_UNESCAPED"-->
+<P>DATE_LOCAL: <!--#echo var="DATE_LOCAL"-->
+<P>DATE_GMT: <!--#echo var="DATE_GMT"-->
+<P>LAST_MODIFIED: <!--#echo var="LAST_MODIFIED"-->
+<P>NOT_DEFINED: <!--#echo var="NOT_DEFINED"-->
+
+<P><HR>
+
+<!-- ************* FSIZE ************* -->
+
+<P>Size of index.html: <!--#fsize file="index.html"-->
+<P>Size of not_defined.html: <!--#fsize file="not_defined.html"-->
+<!--#config sizefmt="bytes"-->
+<P>Size of /misc/friedrich.html: <!--#fsize virtual="/misc/friedrich.html"-->
+<P>Size of /misc/not_defined.html: <!--#fsize virtual="/misc/not_defined.html"-->
+
+<P><HR>
+
+<!-- ************* FLASTMOD ************* -->
+
+<P>Last modification of index.html: <!--#flastmod file="index.html"-->
+<P>Last modification of not_defined.html: <!--#flastmod file="not_defined.html"-->
+<P>Last modification of /misc/friedrich.html: <!--#flastmod virtual="/misc/friedrich.html"-->
+<P>Last modification of /misc/not_defined.html: <!--#flastmod virtual="/misc/not_defined.html"-->
+
+<!--#exec cmd="ls"-->
+<!--#exec cmd="printenv"-->
+<!--#exec cmd="sunemaja"-->
+
+<!--#exec cgi="/cgi-bin/printenv.sh"-->
+
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_open/dummy.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_open/dummy.html
new file mode 100644
index 0000000000..a6e8a35a04
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_open/dummy.html
@@ -0,0 +1,10 @@
+<HTML>
+<HEAD>
+<TITLE>/open/dummy.html (17-Apr-1997)</TITLE>
+<!-- Created by: Joakim Greben�, 17-Apr-1997 -->
+<!-- Changed by: Joakim Greben�, 17-Apr-1997 -->
+</HEAD>
+<BODY>
+<H1>/open/dummy.html</H1>
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_secret/dummy.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_secret/dummy.html
new file mode 100644
index 0000000000..016b04e540
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_secret/dummy.html
@@ -0,0 +1,10 @@
+<HTML>
+<HEAD>
+<TITLE>/secret/dummy.html (17-Apr-1997)</TITLE>
+<!-- Created by: Joakim Greben�, 17-Apr-1997 -->
+<!-- Changed by: Joakim Greben�, 17-Apr-1997 -->
+</HEAD>
+<BODY>
+<H1>/secret/dummy.html</H1>
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_secret/top_secret/index.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_secret/top_secret/index.html
new file mode 100644
index 0000000000..34db3d5d1a
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/dets_secret/top_secret/index.html
@@ -0,0 +1,9 @@
+<HTML>
+<HEAD>
+<TITLE>/secret/top_secret/index.html (04-Feb-1998)</TITLE>
+<!-- Created by: Mattias Nilsson, 04-Feb-1998 -->
+</HEAD>
+<BODY>
+<H1>/secret/top_secret/index.html</H1>
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/echo.shtml b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/echo.shtml
new file mode 100644
index 0000000000..168ae1c05a
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/echo.shtml
@@ -0,0 +1,25 @@
+<HTML>
+<HEAD>
+<TITLE>/echo.shtml</TITLE>
+</HEAD>
+<BODY>
+<H1>/echo.shtml</H1>
+
+<P>DOCUMENT_NAME: <!--#echo var="DOCUMENT_NAME"-->
+
+<P>DOCUMENT_URI: <!--#echo var="DOCUMENT_URI"-->
+
+<P>QUERY_STRING_UNESCAPED: <!--#echo var="QUERY_STRING_UNESCAPED"-->
+
+<P>DATE_LOCAL: <!--#echo var="DATE_LOCAL"-->
+
+<P>DATE_GMT: <!--#echo var="DATE_GMT"-->
+
+<P>LAST_MODIFIED: <!--#echo var="LAST_MODIFIED"-->
+
+<P>NOT_DEFINED: <!--#echo var="NOT_DEFINED"-->
+
+<P>[<A HREF="ssi.html">Back</A>]
+
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/exec.shtml b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/exec.shtml
new file mode 100644
index 0000000000..b4cb3a7815
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/exec.shtml
@@ -0,0 +1,20 @@
+<HTML>
+<HEAD>
+<TITLE>/exec.shtml</TITLE>
+</HEAD>
+<BODY>
+<H1>/exec.shtml</H1>
+<PRE>
+<!--#exec cmd="ls"-->
+<HR>
+<!--#exec cmd="printenv"-->
+<HR>
+<!--#exec cmd="sunemaja"-->
+<HR>
+<!--#exec cgi="/cgi-bin/printenv.sh"-->
+</PRE>
+
+<P>[<A HREF="ssi.html">Back</A>]
+
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/flastmod.shtml b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/flastmod.shtml
new file mode 100644
index 0000000000..9b02de1338
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/flastmod.shtml
@@ -0,0 +1,19 @@
+<HTML>
+<HEAD>
+<TITLE>/flastmod.shtml</TITLE>
+</HEAD>
+<BODY>
+<H1>/flastmod.shtml</H1>
+
+<P>Last modification of index.html: <!--#flastmod file="index.html"-->
+
+<P>Last modification of not_defined.html: <!--#flastmod file="not_defined.html"-->
+
+<P>Last modification of /misc/friedrich.html: <!--#flastmod virtual="/misc/friedrich.html"-->
+
+<P>Last modification of /misc/not_defined.html: <!--#flastmod virtual="/misc/not_defined.html"-->
+
+<P>[<A HREF="ssi.html">Back</A>]
+
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/fsize.shtml b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/fsize.shtml
new file mode 100644
index 0000000000..aed7384898
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/fsize.shtml
@@ -0,0 +1,19 @@
+<HTML>
+<HEAD>
+<TITLE>/fsize.shtml</TITLE>
+</HEAD>
+<BODY>
+<H1>/fsize.shtml</H1>
+
+<P>Size of index.html: <!--#fsize file="index.html"-->
+
+<P>Size of not_defined.html: <!--#fsize file="not_defined.html"-->
+
+<P>Size of /misc/friedrich.html: <!--#fsize virtual="/misc/friedrich.html"-->
+
+<P>Size of /misc/not_defined.html: <!--#fsize virtual="/misc/not_defined.html"-->
+
+<P>[<A HREF="ssi.html">Back</A>]
+
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/include.shtml b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/include.shtml
new file mode 100644
index 0000000000..71fcc4bce9
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/include.shtml
@@ -0,0 +1,23 @@
+<HTML>
+<HEAD>
+<TITLE>/include.shtml</TITLE>
+</HEAD>
+<BODY>
+<H1>/include.shtml</H1>
+
+<P>Include /misc/friedrich.html:
+<!--#include virtual="/misc/friedrich.html"-->
+
+<P>Include /misc/not_defined.html:
+<!--#include virtual="/misc/not_defined.html"-->
+
+<P>Include misc/friedrich.html:
+<!--#include file="misc/friedrich.html"-->
+
+<P>Include not_defined.html:
+<!--#include file="not_defined.html"-->
+
+<P>[<A HREF="ssi.html">Back</A>]
+
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/index.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/index.html
new file mode 100644
index 0000000000..cfdc9f9ab7
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/index.html
@@ -0,0 +1,25 @@
+<HTML>
+<HEAD>
+<TITLE>/index.html</TITLE>
+</HEAD>
+<BODY>
+<H1>/index.html</H1>
+
+<STRONG>Server-Side Include (SSI) commands:</STRONG><BR>
+<A HREF="config.shtml">config</A><BR>
+<A HREF="echo.shtml">echo</A><BR>
+<A HREF="exec.shtml">exec</A><BR>
+<A HREF="flastmod.shtml">flastmod</A><BR>
+<A HREF="fsize.shtml">fsize</A><BR>
+<A HREF="include.shtml">include</A><BR>
+
+<BR>
+<BR>
+
+<STRONG>ESI callback:</STRING><BR>
+<A HREF="cgi-bin/erl/httpd_example/get">cgi-bin/erl/httpd_example/get</A><BR>
+<A HREF="cgi-bin/erl/httpd_example/yahoo">cgi-bin/erl/httpd_example/yahoo</A><BR>
+<A HREF="cgi-bin/erl/httpd_example/test1">cgi-bin/erl/httpd_example/test1</A><BR>
+
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/last_modified.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/last_modified.html
new file mode 100644
index 0000000000..02c0e698b5
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/last_modified.html
@@ -0,0 +1,12 @@
+<HTML>
+<HEAD>
+<TITLE>/last_modified.html</TITLE>
+</HEAD>
+<BODY>
+<H1>/last_modified.html</H1>
+
+<P>This document is only used for test of illegal last-modified date.</P>
+
+
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/friedrich.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/friedrich.html
new file mode 100644
index 0000000000..d7953d5df4
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/friedrich.html
@@ -0,0 +1,7 @@
+<P><CITE>
+Talking much about oneself can also be a means to conceal oneself.<BR>
+-- Friedrich Nietzsche
+</CITE>
+
+<P>Nested Include:
+<!--#include file="misc/oech.html"-->
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/oech.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/oech.html
new file mode 100644
index 0000000000..506064bf04
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/oech.html
@@ -0,0 +1,4 @@
+<P><CITE>
+What excuses stand in your way?  How can you eliminate them?<BR>
+-- Roger von Oech
+</CITE>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/welcome.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/welcome.html
new file mode 100644
index 0000000000..8c17451f91
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/misc/welcome.html
@@ -0,0 +1 @@
+<HTML></HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_open/dummy.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_open/dummy.html
new file mode 100644
index 0000000000..a6e8a35a04
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_open/dummy.html
@@ -0,0 +1,10 @@
+<HTML>
+<HEAD>
+<TITLE>/open/dummy.html (17-Apr-1997)</TITLE>
+<!-- Created by: Joakim Greben�, 17-Apr-1997 -->
+<!-- Changed by: Joakim Greben�, 17-Apr-1997 -->
+</HEAD>
+<BODY>
+<H1>/open/dummy.html</H1>
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_secret/dummy.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_secret/dummy.html
new file mode 100644
index 0000000000..016b04e540
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_secret/dummy.html
@@ -0,0 +1,10 @@
+<HTML>
+<HEAD>
+<TITLE>/secret/dummy.html (17-Apr-1997)</TITLE>
+<!-- Created by: Joakim Greben�, 17-Apr-1997 -->
+<!-- Changed by: Joakim Greben�, 17-Apr-1997 -->
+</HEAD>
+<BODY>
+<H1>/secret/dummy.html</H1>
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_secret/top_secret/index.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_secret/top_secret/index.html
new file mode 100644
index 0000000000..2d17e8b596
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/mnesia_secret/top_secret/index.html
@@ -0,0 +1,9 @@
+<HTML>
+<HEAD>
+<TITLE>/mnesia_secret/top_secret/index.html (04-Feb-1998)</TITLE>
+<!-- Created by: Mattias Nilsson, 04-Feb-1998 -->
+</HEAD>
+<BODY>
+<H1>/mnesia_secret/top_secret/index.html</H1>
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/open/dummy.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/open/dummy.html
new file mode 100644
index 0000000000..a6e8a35a04
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/open/dummy.html
@@ -0,0 +1,10 @@
+<HTML>
+<HEAD>
+<TITLE>/open/dummy.html (17-Apr-1997)</TITLE>
+<!-- Created by: Joakim Greben�, 17-Apr-1997 -->
+<!-- Changed by: Joakim Greben�, 17-Apr-1997 -->
+</HEAD>
+<BODY>
+<H1>/open/dummy.html</H1>
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/secret/dummy.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/secret/dummy.html
new file mode 100644
index 0000000000..016b04e540
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/secret/dummy.html
@@ -0,0 +1,10 @@
+<HTML>
+<HEAD>
+<TITLE>/secret/dummy.html (17-Apr-1997)</TITLE>
+<!-- Created by: Joakim Greben�, 17-Apr-1997 -->
+<!-- Changed by: Joakim Greben�, 17-Apr-1997 -->
+</HEAD>
+<BODY>
+<H1>/secret/dummy.html</H1>
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/secret/top_secret/index.html b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/secret/top_secret/index.html
new file mode 100644
index 0000000000..34db3d5d1a
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/htdocs/secret/top_secret/index.html
@@ -0,0 +1,9 @@
+<HTML>
+<HEAD>
+<TITLE>/secret/top_secret/index.html (04-Feb-1998)</TITLE>
+<!-- Created by: Mattias Nilsson, 04-Feb-1998 -->
+</HEAD>
+<BODY>
+<H1>/secret/top_secret/index.html</H1>
+</BODY>
+</HTML>
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/README b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/README
new file mode 100644
index 0000000000..a1fc5a5a9c
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/README
@@ -0,0 +1,161 @@
+Public Domain Icons
+
+     These icons were originally made for Mosaic for X and have been
+     included in the NCSA httpd and Apache server distributions in the
+     past. They are in the public domain and may be freely included in any
+     application. The originals were done by Kevin Hughes (kevinh@eit.com).
+
+     Many thanks to Andy Polyakov for tuning the icon colors and adding a
+     few new images. If you'd like to contribute additions or ideas to
+     this set, please let me know.
+
+     The distribution site for these icons is at:
+
+          http://www.eit.com/goodies/www.icons/
+
+     Kevin Hughes
+     September 11, 1995
+
+
+Suggested Uses
+
+The following are a few suggestions, to serve as a starting point for ideas.
+Please feel free to tweak and rename the icons as you like.
+
+     a.gif
+          This might be used to represent PostScript or text layout
+          languages.
+
+     alert.black.gif, alert.red.gif
+          These can be used to highlight any important items, such as a
+          README file in a directory.
+
+     back.gif, forward.gif
+          These can be used as links to go to previous and next areas.
+
+     ball.gray.gif, ball.red.gif
+          These might be used as bullets.
+
+     binary.gif
+          This can be used to represent binary files.
+
+     binhex.gif
+          This can represent BinHex-encoded data.
+
+     blank.gif
+          This can be used as a placeholder or a spacing element.
+
+     bomb.gif
+          This can be used to repreesnt core files.
+
+     box1.gif, box2.gif
+          These icons can be used to represent generic 3D applications and
+          related files.
+
+     broken.gif
+          This can represent corrupted data.
+
+     burst.gif
+          This can call attention to new and important items.
+
+     c.gif
+          This might represent C source code.
+
+     comp.blue.gif, comp.red.gif
+          These little computer icons can stand for telnet or FTP
+          sessions.
+
+     compressed.gif
+          This may represent compressed data.
+
+     continued.gif
+          This can be a link to a continued listing of a directory.
+
+     down.gif, up.gif, left.gif, right.gif
+          These can be used to scroll up, down, left and right in a
+          listing or may be used to denote items in an outline.
+
+     dvi.gif
+          This can represent DVI files.
+
+     f.gif
+          This might represent FORTRAN or Forth source code.
+
+     folder.gif, folder.open.gif, folder.sec.gif
+          The folder can represent directories. There is also a version
+          that can represent secure directories or directories that cannot
+          be viewed.
+
+     generic.gif, generic.sec.gif, generic.red.gif
+          These can represent generic files, secure files, and important
+          files, respectively.
+
+     hand.right.gif, hand.up.gif
+          These can point out important items (pun intended).
+
+     image1.gif, image2.gif, image3.gif
+          These can represent image formats of various types.
+
+     index.gif
+          This might represent a WAIS index or search facility.
+
+     layout.gif
+          This might represent files and formats that contain graphics as
+          well as text layout, such as HTML and PDF files.
+
+     link.gif
+          This might represent files that are symbolic links.
+
+     movie.gif
+          This can represent various movie formats.
+
+     p.gif
+          This may stand for Perl or Python source code.
+
+     pie0.gif ... pie8.gif
+          These icons can be used in applications where a list of
+          documents is returned from a search. The little pie chart images
+          can denote how relevant the documents may be to your search
+          query.
+
+     patch.gif
+          This may stand for patches and diff files.
+
+     portal.gif
+          This might be a link to an online service or a 3D world.
+
+     ps.gif, quill.gif
+          These may represent PostScript files.
+
+     screw1.gif, screw2.gif
+          These may represent CAD or engineering data and formats.
+
+     script.gif
+          This can represent any of various interpreted languages, such as
+          Perl, python, TCL, and shell scripts, as well as server
+          configuration files.
+
+     sound1.gif, sound2.gif
+          These can represent sound files.
+
+     sphere1.gif, sphere2.gif
+          These can represent 3D worlds or rendering applications and
+          formats.
+
+     tex.gif
+          This can represent TeX files.
+
+     text.gif
+          This can represent generic (plain) text files.
+
+     transfer.gif
+          This can represent FTP transfers or uploads/downloads.
+
+     unknown.gif
+          This may represent a file of an unknown type.
+
+     uuencoded.gif
+          This can stand for uuencoded data.
+
+     world1.gif, world2.gif
+          These can represent 3D worlds or other 3D formats.
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/a.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/a.gif
new file mode 100644
index 0000000000..bb23d971f4
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/a.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/alert.black.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/alert.black.gif
new file mode 100644
index 0000000000..eaecd2172a
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/alert.black.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/alert.red.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/alert.red.gif
new file mode 100644
index 0000000000..a423894043
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/alert.red.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/apache_pb.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/apache_pb.gif
new file mode 100644
index 0000000000..3a1c139fc4
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/apache_pb.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/back.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/back.gif
new file mode 100644
index 0000000000..a694ae1ec3
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/back.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/ball.gray.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/ball.gray.gif
new file mode 100644
index 0000000000..eb84268c4c
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/ball.gray.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/ball.red.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/ball.red.gif
new file mode 100644
index 0000000000..a8425cb574
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/ball.red.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/binary.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/binary.gif
new file mode 100644
index 0000000000..9a15cbae04
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/binary.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/binhex.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/binhex.gif
new file mode 100644
index 0000000000..62d0363108
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/binhex.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/blank.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/blank.gif
new file mode 100644
index 0000000000..0ccf01e198
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/blank.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/bomb.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/bomb.gif
new file mode 100644
index 0000000000..270fdb1c06
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/bomb.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/box1.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/box1.gif
new file mode 100644
index 0000000000..65dcd002ea
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/box1.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/box2.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/box2.gif
new file mode 100644
index 0000000000..c43bc4faec
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/box2.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/broken.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/broken.gif
new file mode 100644
index 0000000000..9f8cbe9f76
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/broken.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/burst.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/burst.gif
new file mode 100644
index 0000000000..fbdcf575f7
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/burst.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button1.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button1.gif
new file mode 100644
index 0000000000..eb97cb7333
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button1.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button10.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button10.gif
new file mode 100644
index 0000000000..fe0c97998c
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button10.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button2.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button2.gif
new file mode 100644
index 0000000000..7698455bf9
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button2.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button3.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button3.gif
new file mode 100644
index 0000000000..a8b8319232
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button3.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button4.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button4.gif
new file mode 100644
index 0000000000..0fd15a0d7f
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button4.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button5.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button5.gif
new file mode 100644
index 0000000000..64241e5c5d
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button5.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button6.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button6.gif
new file mode 100644
index 0000000000..867cfd1212
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button6.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button7.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button7.gif
new file mode 100644
index 0000000000..b3f5fb248f
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button7.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button8.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button8.gif
new file mode 100644
index 0000000000..7a308be8f6
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button8.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button9.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button9.gif
new file mode 100644
index 0000000000..9acba576c0
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/button9.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/buttonl.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/buttonl.gif
new file mode 100644
index 0000000000..3883088e7a
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/buttonl.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/buttonr.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/buttonr.gif
new file mode 100644
index 0000000000..c4dc3887db
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/buttonr.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/c.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/c.gif
new file mode 100644
index 0000000000..7555b6c164
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/c.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/comp.blue.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/comp.blue.gif
new file mode 100644
index 0000000000..f8d76a8c23
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/comp.blue.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/comp.gray.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/comp.gray.gif
new file mode 100644
index 0000000000..7664cd0364
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/comp.gray.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/compressed.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/compressed.gif
new file mode 100644
index 0000000000..39e732739f
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/compressed.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/continued.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/continued.gif
new file mode 100644
index 0000000000..b0ffb7e0cc
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/continued.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/dir.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/dir.gif
new file mode 100644
index 0000000000..48264601ae
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/dir.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/down.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/down.gif
new file mode 100644
index 0000000000..a354c871cd
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/down.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/dvi.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/dvi.gif
new file mode 100644
index 0000000000..791be33105
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/dvi.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/f.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/f.gif
new file mode 100644
index 0000000000..fbe353c282
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/f.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.gif
new file mode 100644
index 0000000000..48264601ae
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.open.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.open.gif
new file mode 100644
index 0000000000..30979cb528
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.open.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.sec.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.sec.gif
new file mode 100644
index 0000000000..75332d9e59
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/folder.sec.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/forward.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/forward.gif
new file mode 100644
index 0000000000..b2959b4c85
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/forward.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.gif
new file mode 100644
index 0000000000..de60b2940f
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.red.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.red.gif
new file mode 100644
index 0000000000..94743981d9
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.red.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.sec.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.sec.gif
new file mode 100644
index 0000000000..88d5240c3c
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/generic.sec.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/hand.right.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/hand.right.gif
new file mode 100644
index 0000000000..5cdbc7206d
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/hand.right.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/hand.up.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/hand.up.gif
new file mode 100644
index 0000000000..85a5d68317
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/hand.up.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/htdig.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/htdig.gif
new file mode 100644
index 0000000000..35443fb63a
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/htdig.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/icon.sheet.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/icon.sheet.gif
new file mode 100644
index 0000000000..ad1686e448
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/icon.sheet.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/image1.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/image1.gif
new file mode 100644
index 0000000000..01e442bfa9
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/image1.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/image2.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/image2.gif
new file mode 100644
index 0000000000..751faeea36
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/image2.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/image3.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/image3.gif
new file mode 100644
index 0000000000..4f30484ff6
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/image3.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/index.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/index.gif
new file mode 100644
index 0000000000..162478fb3a
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/index.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/layout.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/layout.gif
new file mode 100644
index 0000000000..c96338a152
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/layout.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/left.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/left.gif
new file mode 100644
index 0000000000..279e6710d4
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/left.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/link.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/link.gif
new file mode 100644
index 0000000000..c5b6889a76
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/link.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/movie.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/movie.gif
new file mode 100644
index 0000000000..0035183774
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/movie.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/p.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/p.gif
new file mode 100644
index 0000000000..7b917b4e91
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/p.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/patch.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/patch.gif
new file mode 100644
index 0000000000..39bc90e795
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/patch.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pdf.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pdf.gif
new file mode 100644
index 0000000000..c88fd777c4
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pdf.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie0.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie0.gif
new file mode 100644
index 0000000000..6f7a0ae7a7
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie0.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie1.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie1.gif
new file mode 100644
index 0000000000..03aa6be71e
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie1.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie2.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie2.gif
new file mode 100644
index 0000000000..b04c5e0908
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie2.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie3.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie3.gif
new file mode 100644
index 0000000000..4db9d023ed
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie3.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie4.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie4.gif
new file mode 100644
index 0000000000..93471fdd88
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie4.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie5.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie5.gif
new file mode 100644
index 0000000000..57aee93f07
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie5.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie6.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie6.gif
new file mode 100644
index 0000000000..0dc327b569
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie6.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie7.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie7.gif
new file mode 100644
index 0000000000..8661337f06
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie7.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie8.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie8.gif
new file mode 100644
index 0000000000..59ddb34ce0
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/pie8.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/portal.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/portal.gif
new file mode 100644
index 0000000000..0e6e506e00
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/portal.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/poweredby.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/poweredby.gif
new file mode 100644
index 0000000000..d324ab80ea
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/poweredby.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/ps.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/ps.gif
new file mode 100644
index 0000000000..0f565bc1db
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/ps.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/quill.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/quill.gif
new file mode 100644
index 0000000000..818a5cdc7e
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/quill.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/right.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/right.gif
new file mode 100644
index 0000000000..b256e5f75f
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/right.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/screw1.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/screw1.gif
new file mode 100644
index 0000000000..af6ba2b097
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/screw1.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/screw2.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/screw2.gif
new file mode 100644
index 0000000000..06dccb3e44
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/screw2.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/script.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/script.gif
new file mode 100644
index 0000000000..d8a853bc58
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/script.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sound1.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sound1.gif
new file mode 100644
index 0000000000..8efb49f55d
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sound1.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sound2.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sound2.gif
new file mode 100644
index 0000000000..48e6a7fb2f
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sound2.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sphere1.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sphere1.gif
new file mode 100644
index 0000000000..7067070da2
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sphere1.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sphere2.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sphere2.gif
new file mode 100644
index 0000000000..a9e462a377
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/sphere2.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/star.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/star.gif
new file mode 100644
index 0000000000..4cfe0a5e0f
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/star.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/star_blank.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/star_blank.gif
new file mode 100644
index 0000000000..a0c83cb85b
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/star_blank.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/tar.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/tar.gif
new file mode 100644
index 0000000000..617e779efa
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/tar.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/tex.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/tex.gif
new file mode 100644
index 0000000000..45e43233b8
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/tex.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/text.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/text.gif
new file mode 100644
index 0000000000..4c623909fb
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/text.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/transfer.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/transfer.gif
new file mode 100644
index 0000000000..33697dbb66
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/transfer.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/unknown.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/unknown.gif
new file mode 100644
index 0000000000..32b1ea23fb
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/unknown.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/up.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/up.gif
new file mode 100644
index 0000000000..6d6d6d1ebf
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/up.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/uu.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/uu.gif
new file mode 100644
index 0000000000..4387d529f6
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/uu.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/uuencoded.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/uuencoded.gif
new file mode 100644
index 0000000000..4387d529f6
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/uuencoded.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/world1.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/world1.gif
new file mode 100644
index 0000000000..05b4ec2058
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/world1.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/icons/world2.gif b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/world2.gif
new file mode 100644
index 0000000000..e3203f7a88
Binary files /dev/null and b/lib/inets/test/old_httpd_SUITE_data/server_root/icons/world2.gif differ
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/logs/Dummy_File_Needed_By_WinZip b/lib/inets/test/old_httpd_SUITE_data/server_root/logs/Dummy_File_Needed_By_WinZip
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/ssl/ssl_client.pem b/lib/inets/test/old_httpd_SUITE_data/server_root/ssl/ssl_client.pem
new file mode 100644
index 0000000000..427447958d
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/ssl/ssl_client.pem
@@ -0,0 +1,31 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCTFBPkOO98fDY3j6MIxIGKp+rampfIay50Lx4+EnCnRSSVwC+n
+0VVmP7V5SGFJpuXJzN0hvqPUWOOjiMTNlNRaGy0pqu2oMXWAPLOxHWL1wT53h2Zr
+3FUNU/N0Rvnkttse1KZJ9uYCLKUiuXXsv2rR62nH3OhRIiBHSAcSv0NRWwIDAQAB
+AoGACdIVYe/LTeydUihtInC8lZ2QuPgJmoBNocRjqJFipEihoL4scHAx25n1bBvB
+I0HZphffzBkGp28oBAtl2LRPWXqu527unc/RWRfLMqSK1xNSq1DxD1a30zkrZPna
+QiV65vEJuNSJTtlDy/Zqc/BVZXCpxWlzYQedZgkmf0Qse8ECQQCmaz02Yur8zC9f
+eSQKU5OSzGw3bSIumEzziCfHdTheK6MEoccf5TCAyLXhZwA7QlKja4tFXfeyVxws
+/LlnUJN9AkEA4j+xnOeYUyGKXL5i+BAbnqpI4MzPiq+IoCYkaRlD/wAws24r5HNI
+ZQmEHWqD/NNzOf/A2XuyLtMiTGJPW/DftwJBAKKpJP6Ytuh6xz8BUCnLwO12Y7vV
+LtjuQiCzD3aUa5EYA9HOMqxJPxxRkf0LyR0i2VUkE8+sZiPpov+R0cJa7p0CQQCj
+40GUiArGRSiF7/+e84QeVfl+pb29F1QftiFv5DZmFEwy3Z572KpbTh5edJbxYHY6
+UDHxGHJFCvnwXNJhpkVXAkBJqfEfiMJ3Q/E5Gpf3sQizacouW92iiN8ojlF1oB80
+t34RysJH7SgI3gdMhTribCo2UUaV0StjR6yodPN+TB2J
+-----END RSA PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIChzCCAfCgAwIBAgIGAIsapa8BMA0GCSqGSIb3DQEBBQUAMHoxDjAMBgNVBAMT
+BW90cENBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0ZXJAZXJsYW5nLm9yZzESMBAGA1UE
+BxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEPMA0GA1UEChMGZXJsYW5nMRQwEgYD
+VQQLEwt0ZXN0aW5nIGRlcDAiGA8yMDEwMDkwMTAwMDAwMFoYDzIwMjUwODI4MDAw
+MDAwWjB7MQ8wDQYDVQQDEwZjbGllbnQxIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBl
+cmxhbmcub3JnMRIwEAYDVQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYD
+VQQKEwZlcmxhbmcxFDASBgNVBAsTC3Rlc3RpbmcgZGVwMIGfMA0GCSqGSIb3DQEB
+AQUAA4GNADCBiQKBgQCTFBPkOO98fDY3j6MIxIGKp+rampfIay50Lx4+EnCnRSSV
+wC+n0VVmP7V5SGFJpuXJzN0hvqPUWOOjiMTNlNRaGy0pqu2oMXWAPLOxHWL1wT53
+h2Zr3FUNU/N0Rvnkttse1KZJ9uYCLKUiuXXsv2rR62nH3OhRIiBHSAcSv0NRWwID
+AQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAG8t6f1A
+PF7xayGxtUpG2r6W5ETylC3ZIKPS2kfJk9aYi7AZNTp7/xTU6SgqvFBN8aBPzxCD
+4jHrSNC8DSb4X1x9uimarb6qdZDHEdij+DRAd2eygJHZxEf7+8B4Fx34thQeU9hZ
+S1Izke5AlsyFMkvB7h0anE4k9BfuU70vl6v5
+-----END CERTIFICATE-----
diff --git a/lib/inets/test/old_httpd_SUITE_data/server_root/ssl/ssl_server.pem b/lib/inets/test/old_httpd_SUITE_data/server_root/ssl/ssl_server.pem
new file mode 100644
index 0000000000..4aac86db49
--- /dev/null
+++ b/lib/inets/test/old_httpd_SUITE_data/server_root/ssl/ssl_server.pem
@@ -0,0 +1,31 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIICXQIBAAKBgQCf4Htxr99lLs5W8QQw7jdakqyAkIjOW4aqH8sr4va4SvZ9Adq6
+7k8jMHefCVZo+F8x4cwsBgB4aWzFIGBnvFTi6YsH27XW7f9O9IPCej8fdhRZ4UAt
+NHa253buOWpDGla2JmIdkmfFvXFJycMIKbG5tYilVXoWKBMKmCwWaXz0nQIDAQAB
+AoGAQIlma0r6W6bcRj4+Wd4fXCFvHuq5Psu1fYEeC5Yvz8761xVjjSfbrDHJZ9pm
+FjOEgedK+s5lbDXqYVyjbdyZSugStBRocSmbG8SQHcAsxR2ZIkNzX2hYzB+lslWo
+T3YJojDyB134O7XJznCu+ZFXP86jyJ1JT6k6a+OIHcwnJ+ECQQDYn57dY4Px3mEd
+VBLStN3YkRF5oFyT+xk7IaKeLLB6n4gCnoVbBoHut7PFbPYPzoNzEwPk3MQKDIHb
+Kig3S5CpAkEAvPA1VmoJWAlN6kUi+F2L8HXEArzE8x7vwdsslrwMKUe4dFS+ZC/7
+5iDOaxcZ7TYkCgwzBt341++DCgP6j3fY1QJBALB6AcOcwi52m6l4B8mu3ZkEPjdX
+BHTuONTqhv/TqoaLlxODL2NDvvDKqeMp7KBd/srt79swW2lQXS4+fvrlTdkCQQCm
+zxj4O1QWkthkfje6ubSkTwUIOatUzrp1F9GNH2dJRtX2dx9FCwxGCC7WY6XzRXqa
+GF0wsedSllbGD+82nWQlAkAicMGqCqRq4hKR/cVmFatOqKVWCVkx6OFF2FhuiI5Z
+h5eIOPGCt8dVRs1P9DNSld/D98Sfm65m85z8BtXovvYV
+-----END RSA PRIVATE KEY-----
+-----BEGIN CERTIFICATE-----
+MIIChzCCAfCgAwIBAgIGANUxXM9BMA0GCSqGSIb3DQEBBQUAMHoxDjAMBgNVBAMT
+BW90cENBMSAwHgYJKoZIhvcNAQkBFhF0ZXN0ZXJAZXJsYW5nLm9yZzESMBAGA1UE
+BxMJU3RvY2tob2xtMQswCQYDVQQGEwJTRTEPMA0GA1UEChMGZXJsYW5nMRQwEgYD
+VQQLEwt0ZXN0aW5nIGRlcDAiGA8yMDEwMDkwMTAwMDAwMFoYDzIwMjUwODI4MDAw
+MDAwWjB7MQ8wDQYDVQQDEwZzZXJ2ZXIxIDAeBgkqhkiG9w0BCQEWEXRlc3RlckBl
+cmxhbmcub3JnMRIwEAYDVQQHEwlTdG9ja2hvbG0xCzAJBgNVBAYTAlNFMQ8wDQYD
+VQQKEwZlcmxhbmcxFDASBgNVBAsTC3Rlc3RpbmcgZGVwMIGfMA0GCSqGSIb3DQEB
+AQUAA4GNADCBiQKBgQCf4Htxr99lLs5W8QQw7jdakqyAkIjOW4aqH8sr4va4SvZ9
+Adq67k8jMHefCVZo+F8x4cwsBgB4aWzFIGBnvFTi6YsH27XW7f9O9IPCej8fdhRZ
+4UAtNHa253buOWpDGla2JmIdkmfFvXFJycMIKbG5tYilVXoWKBMKmCwWaXz0nQID
+AQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4GBAGF5Pfwk
+QDdwJup/mVITPxbBls4Yl7anDooUQsq8066lA1g54H/PRfXscGkyCFGh1ifXvf1L
+psMRoBAdDHL/wSJplk3rRavkC94eBgnTFZmfKL6844g1j53yameiYL8IEVExYMBg
+/XGyc0qwq57WT8B/K4aElrvlBlQ0wF3wN54M
+-----END CERTIFICATE-----
-- 
cgit v1.2.3