469e3d1322f6509ae598367c99a60e0f90b2343b
[olsrd.git] / lib / httpinfo / src / olsrd_httpinfo.h
1 /*
2  * The olsr.org Optimized Link-State Routing daemon(olsrd)
3  * Copyright (c) 2004, Andreas T√łnnesen(andreto@olsr.org)
4  *                     includes code by Bruno Randolf
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without 
8  * modification, are permitted provided that the following conditions 
9  * are met:
10  *
11  * * Redistributions of source code must retain the above copyright 
12  *   notice, this list of conditions and the following disclaimer.
13  * * Redistributions in binary form must reproduce the above copyright 
14  *   notice, this list of conditions and the following disclaimer in 
15  *   the documentation and/or other materials provided with the 
16  *   distribution.
17  * * Neither the name of olsr.org, olsrd nor the names of its 
18  *   contributors may be used to endorse or promote products derived 
19  *   from this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
22  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
23  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
24  * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
25  * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
26  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
27  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
28  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
29  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
30  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
31  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
32  * POSSIBILITY OF SUCH DAMAGE.
33  *
34  * Visit http://www.olsr.org for more information.
35  *
36  * If you find this software useful feel free to make a donation
37  * to the project. For more information see the website or contact
38  * the copyright holders.
39  *
40  * $Id: olsrd_httpinfo.h,v 1.14 2004/12/19 17:03:15 kattemat Exp $
41  */
42
43 /*
44  * Dynamic linked library for the olsr.org olsr daemon
45  */
46
47 #ifndef _OLSRD_HTTP_INFO
48 #define _OLSRD_HTTP_INFO
49
50 #include "olsrd_plugin.h"
51
52
53 #define HTTP_VERSION "HTTP/1.1"
54
55 /**Response types */
56 #define HTTP_200 HTTP_VERSION " 200 OK\r\n"
57 #define HTTP_400 HTTP_VERSION " 400 Bad Request\r\n"
58 #define HTTP_404 HTTP_VERSION " 404 Not Found\r\n"
59
60
61 #define HTTP_400_MSG "<html><h1>400 - ERROR</h1><hr><i>" PLUGIN_NAME " version " PLUGIN_VERSION  "</i></html>"
62 #define HTTP_404_MSG "<html><h1>404 - ERROR, no such file</h1><hr>This server does not support file requests!<br><br><i>" PLUGIN_NAME " version " PLUGIN_VERSION  "</i></html>"
63
64
65 static const char *http_ok_head[] =
66 {
67   "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n",
68   "<HEAD>\n",
69   "<META http-equiv=\"Content-type\" content=\"text/html; charset=ISO-8859-1\">\n",
70   "<TITLE>olsr.org httpinfo plugin</TITLE>\n",
71   "<STYLE type=\"text/css\">\n",
72   "<!--\n",
73   "A {text-decoration: none}\n",
74   "TH{text-align: left}\n",
75   "H1, H2, H3, TD, TH {font-family: Helvetica; font-size: 80%}\n",
76   "-->\n",
77   "</STYLE>\n\n",
78   "</HEAD>\n",
79   "<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#0000000\">\n",
80   "<TABLE WIDTH=800 BORDER=0 CELLSPACING=0 CELLPADDING=0 ALIGN=center>\n",
81   "<TR BGCOLOR=\"#000044\">\n",
82   "<TD HEIGHT=\"69\" WIDTH=\"100%\" VALIGN=middle ALIGN=left>\n",
83   "<FONT COLOR=white SIZE=\"6\" FACE=\"timesroman\">&nbsp;&nbsp;&nbsp;olsr.org OLSR daemon</font></TD>\n",
84   "</TR>\n<TR BGCOLOR=\"#8888cc\">\n",
85   "<TD HEIGHT=\"25\" ALIGN=right VALIGN=middle>\n",
86   "<FONT COLOR=\"#FFFFFF\">\n",
87   "<A HREF=\"#status\"><B>Status</B></A>&nbsp;|&nbsp;\n",
88   "<A HREF=\"#routes\"><B>Routes</B></A>&nbsp;|&nbsp;\n",
89   "<A HREF=\"#neighbors\"><B>Neighbors</B></A>&nbsp;|&nbsp;\n",
90   "<A HREF=\"#topology\"><B>Topology</B></A>&nbsp;|&nbsp;\n",
91   "<A HREF=\"#hna\"><B>HNA</B></A>&nbsp;|&nbsp;\n",
92   "<A HREF=\"#mid\"><B>MID</B></A>&nbsp;|&nbsp;\n",
93   "<A HREF=\"/\"><B>Refresh</B></A>&nbsp;&nbsp;\n",
94   "</FONT>\n",
95   "</TD>\n",
96   "</TR>\n",
97   "</TABLE>\n",
98   "<!-- END HEAD -->\n\n",
99   NULL
100 };
101
102
103
104
105
106 static const char *http_ok_tail[] =
107 {
108     "\n<!-- START TAIL -->\n\n",
109     "<P>\n",
110     "<P>\n",
111     "<HR ALIGN=center WIDTH=800>\n",
112     "<P>\n",
113     "<P>\n",
114     "<TABLE WIDTH=800 BGCOLOR=\"#E0E0FF\" BORDER=0 CELLPADDING=2 ALIGN=center>\n",
115     "<TR>    \n",
116     "<TD ALIGN=center VALIGN=middle>\n",
117     "<TABLE BORDER=0 CELLSPACING=3 CELLPADDING=2>\n",
118     "<TR>\n",
119     "<TD WIDTH=\"50\%\" ALIGN=\"center\" VALIGN=middle>\n",
120     "<CENTER>Plugin by Andreas T&oslash;nnesen.<br> Send questions or comments to<br>\n",
121     "<A HREF=\"mailto:olsr-users@olsr.org\">olsr-users@olsr.org</A> or \n",
122     "<A HREF=\"mailto:andreto-at-olsr.org\">andreto-at-olsr.org</A></CENTER></TD>\n",
123     "<TD WIDTH=\"50\%\" ALIGN=\"center\" VALIGN=middle>\n",
124     "<CENTER>Official olsrd homepage:<br><A HREF=\"http://www.olsr.org/\">http://www.olsr.org</A>\n",
125     "</CENTER>\n",
126     "</TD>\n",
127     "</TR>\n",
128     "</TABLE>\n",
129     "</TD>\n",
130     "</TR>\n",
131     "</TABLE>\n",
132     "</BODY></HTML>\n",
133     NULL
134 };
135
136
137
138 static const char *http_frame[] =
139 {
140   "<P>\n<TABLE WIDTH=%d CELLSPACING=0 CELLPADDING=3 BORDER=1 ALIGN=center>\n",
141   "<TR BGCOLOR=\"#E0E0FF\">\n<TH ALIGN=left><a name=\"%s\">%s</a></TH>\n",
142   "</TR><TR BGCOLOR=\"#ECECEC\">\n",
143   "<TD>\n",
144   "<P>\n",
145   "<!-- BODY -->",
146   "</TD>\n",
147   "</TR>\n",
148   "</TABLE>\n",
149   NULL
150 };
151
152
153
154 typedef enum
155   {
156     HTTP_BAD_REQ,
157     HTTP_BAD_FILE,
158     HTTP_OK
159   }http_header_type;
160
161 char *
162 olsr_ip_to_string(union olsr_ip_addr *);
163
164 char *
165 olsr_netmask_to_string(union hna_netmask *);
166
167
168 #endif