1 /**
2   @file
3   Exit response page
4 
5   Copyright (c) 2011-2012, Intel Corporation
6   All rights reserved. This program and the accompanying materials
7   are licensed and made available under the terms and conditions of the BSD License
8   which accompanies this distribution.  The full text of the license may be found at
9   http://opensource.org/licenses/bsd-license.php
10 
11   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 
14 **/
15 
16 #include <WebServer.h>
17 
18 
19 /**
20   Respond with the Exit page
21 
22   @param [in] SocketFD      The socket's file descriptor to add to the list.
23   @param [in] pPort         The WSDT_PORT structure address
24   @param [out] pbDone       Address to receive the request completion status
25 
26   @retval EFI_SUCCESS       The request was successfully processed
27 
28 **/
29 EFI_STATUS
ExitPage(IN int SocketFD,IN WSDT_PORT * pPort,OUT BOOLEAN * pbDone)30 ExitPage (
31   IN int SocketFD,
32   IN WSDT_PORT * pPort,
33   OUT BOOLEAN * pbDone
34   )
35 {
36   EFI_STATUS Status;
37 
38   DBG_ENTER ( );
39 
40   //
41   //  Send the Hello World page
42   //
43   for ( ; ; ) {
44     //
45     //  Tell the web-server to exit
46     //
47     mWebServer.bRunning = FALSE;
48 
49     //
50     //  Send the page header
51     //
52     Status = HttpPageHeader ( SocketFD, pPort, L"Exit" );
53     if ( EFI_ERROR ( Status )) {
54       break;
55     }
56 
57     //
58     //  Send the page body
59     //
60     Status = HttpSendAnsiString ( SocketFD,
61                                   pPort,
62                                   "<h1>Exit</h1>\r\n"
63                                   "<p>\r\n"
64                                   "  Exiting the web-server application.\r\n"
65                                   "</p>\r\n" );
66     if ( EFI_ERROR ( Status )) {
67       break;
68     }
69 
70     //
71     //  Send the page trailer
72     //
73     Status = HttpPageTrailer ( SocketFD, pPort, pbDone );
74     break;
75   }
76 
77   //
78   //  Return the operation status
79   //
80   DBG_EXIT_STATUS ( Status );
81   return Status;
82 }
83