📄 ssl_rweb_demo.c
字号:
/********************************************************************
SSL_RWEB_LED.C
Z-World, 2004
Description
===========
This program implements a WEB server and a secure Web server and shows
how to password protect a secure page. This program requires both the
SSL and RabbitWeb modules which are separate purchase.
Instructions
============
1. Make changes in the configuration section below ani TCP_CONFIG.LIB
to match your requirements.
2. You must edit the lines:
<A HREF="https://10.10.6.206/admin/index.zhtml">Email Settings</A>
in /SSLmain.zhtml
AND
<A HREF="http://10.10.6.206/index.zhtml">Back to main page</A>
in /pages/SSLsecure.zhtml to the same dotted IP Address you
define in TCP_CONFIG.LIB.
3. Compile and run this program.
4. Open your browser to http://xxx.xxx.xxx.xxx where xxx. is the IP
address defined TCP_CONFIG.LIB. You view LED status in the main
page and change LED status in the secure page.
You may have to refresh the main page for the LED status
for status changes to show, depending on your browser settings.
********************************************************************/
/***********************************
* Configuration Section *
***********************************/
#define TCPCONFIG 1
#define USE_RABBITWEB 1
#define USERNAME "rabbit"
#define PASSWORD "carrot"
/*
* Web server configuration
*
* Define the number of HTTP servers and socket buffers.
* With tcp_reserveport(), fewer HTTP servers are needed.
*/
#define HTTP_MAXSERVERS 2
#define MAX_TCP_SOCKET_BUFFERS 2
#define HTTP_SSL_SOCKETS 1
#define USE_HTTP_SSL
// Import the SSL certificate
#ximport "cert/mycert.dcc" SSL_CERTIFICATE
/********************************
* End of configuration section *
********************************/
#use "dcrtcp.lib"
#use "http.lib"
#ximport "pages/SSLmain.zhtml" index_zhtml
#ximport "pages/SSLsecure.zhtml" mailpage_zhtml
// The default for / must be first
SSPEC_MIMETABLE_START
SSPEC_MIME_FUNC(".zhtml", "text/html", zhtml_handler),
SSPEC_MIME(".html", "text/html")
SSPEC_MIMETABLE_END
SSPEC_RESOURCETABLE_START
SSPEC_RESOURCE_XMEMFILE("/", index_zhtml),
SSPEC_RESOURCE_XMEMFILE("/index.zhtml", index_zhtml),
SSPEC_RESOURCE_XMEMFILE("/admin/index.zhtml", mailpage_zhtml)
SSPEC_RESOURCETABLE_END
// Define web variables
int LED01, LED02;
#web LED01
#web LED02
#web_groups admin
main()
{
auto int value, oldvalue;
static userid;
LED01 = LED02 = 0;
oldvalue = 0;
brdInit(); //initialize board for this demo
sock_init();
http_init();
// Reserve the HTTPS port 80
tcp_reserveport(80);
// Reserve the HTTPS port 443
tcp_reserveport(443);
// Set up password protection
sspec_addrule("/admin", "Admin", admin, admin, SERVER_HTTPS,
SERVER_AUTH_BASIC, NULL);
userid = sauth_adduser(USERNAME, PASSWORD, SERVER_HTTPS);
sauth_setusermask(userid, admin, NULL);
while (1) {
http_handler();
value=PFDRShadow&0x3F; // on state for leds
if(!LED01)
value = value | 0x40;
if(!LED02)
value = value | 0x80;
if(oldvalue!=value){
// so we only write to the port when something changes
oldvalue = value;
WrPortI(PFDR, &PFDRShadow, value);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -