Kannel: Open Source WAP and SMS gateway  $Revision: 5037 $
wml_compiler.h
Go to the documentation of this file.
1 /* ====================================================================
2  * The Kannel Software License, Version 1.0
3  *
4  * Copyright (c) 2001-2016 Kannel Group
5  * Copyright (c) 1998-2001 WapIT Ltd.
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by the
23  * Kannel Group (http://www.kannel.org/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "Kannel" and "Kannel Group" must not be used to
28  * endorse or promote products derived from this software without
29  * prior written permission. For written permission, please
30  * contact org@kannel.org.
31  *
32  * 5. Products derived from this software may not be called "Kannel",
33  * nor may "Kannel" appear in their name, without prior written
34  * permission of the Kannel Group.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS
40  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
41  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
42  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
43  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
44  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
45  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
46  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
47  * ====================================================================
48  *
49  * This software consists of voluntary contributions made by many
50  * individuals on behalf of the Kannel Group. For more information on
51  * the Kannel Group, please see <http://www.kannel.org/>.
52  *
53  * Portions of this software are based upon software originally written at
54  * WapIT Ltd., Helsinki, Finland for the Kannel project.
55  */
56 
57 /*
58  * wml_compiler.h - compiling WML to WML binary
59  *
60  * This is a header for WML compiler for compiling the WML text
61  * format to WML binary format, which is used for transmitting the
62  * decks to the mobile terminal to decrease the use of the bandwidth.
63  *
64  * See comments below for explanations on individual functions.
65  *
66  * Tuomas Luttinen for Wapit Ltd.
67  */
68 
69 
70 #ifndef WML_COMPILER_H
71 #define WML_COMPILER_H
72 
73 /*
74  * wml_compile - the interface to wml_compiler
75  *
76  * This function compiles the WML to WML binary. The arguments are
77  * the following:
78  * wml_text: the WML text to be compiled
79  * charset: the character set as HTTP headers declare it
80  * wml_binary: buffer for the compiled WML binary
81  * version: max wbxml version supported by device, or NULL for default
82  *
83  * The wml_text and charset are allocated by the caller and should also be
84  * freed by the caller. The function takes care for memory allocation for
85  * the wml_binary. The caller is responsible for freeing this space.
86  *
87  * Return: 0 for ok, -1 for an error
88  *
89  * Errors are logged with a little explanation and error number.
90  */
91 int wml_compile(Octstr *wml_text,
92  Octstr *charset,
93  Octstr **wml_binary,
94  Octstr *version);
95 
96 /*
97  * A function to initialize the wml compiler for use. Allocates memory
98  * for the tables wml compiler uses.
99  *
100  * The passed boolean defines if our internal wml_compiler will be forcing
101  * libxml2 parser to be strict, hence not to recover from XML parsing
102  * errors, or if we let the parset be relax and recover from errors.
103  *
104  * Beware that a related XML parsing mode is considered to be a vulnerability
105  * to your wapbox if huge WML/XML bogus is injected and the wml_compiler
106  * runs all his string sorting/matching things on this.
107  */
108 void wml_init(int wml_xml_strict);
109 
110 /*
111  * A function for shutting down the wml_compiler. Frees the memory used
112  * by the wml compiler.
113  */
114 void wml_shutdown(void);
115 
116 
117 #endif
Octstr * charset
Definition: test_ota.c:68
void wml_shutdown(void)
Definition: wml_compiler.c:479
void wml_init(int wml_xml_strict)
Definition: wml_compiler.c:429
Definition: octstr.c:118
int wml_compile(Octstr *wml_text, Octstr *charset, Octstr **wml_binary, Octstr *version)
Definition: wml_compiler.c:360
static int wml_xml_strict
Definition: wapbox.c:108
See file LICENSE for details about the license agreement for using, modifying, copying or deriving work from this software.