Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

wsp.h

Go to the documentation of this file.
00001 /* ==================================================================== 
00002  * The Kannel Software License, Version 1.0 
00003  * 
00004  * Copyright (c) 2001-2008 Kannel Group  
00005  * Copyright (c) 1998-2001 WapIT Ltd.   
00006  * All rights reserved. 
00007  * 
00008  * Redistribution and use in source and binary forms, with or without 
00009  * modification, are permitted provided that the following conditions 
00010  * are met: 
00011  * 
00012  * 1. Redistributions of source code must retain the above copyright 
00013  *    notice, this list of conditions and the following disclaimer. 
00014  * 
00015  * 2. Redistributions in binary form must reproduce the above copyright 
00016  *    notice, this list of conditions and the following disclaimer in 
00017  *    the documentation and/or other materials provided with the 
00018  *    distribution. 
00019  * 
00020  * 3. The end-user documentation included with the redistribution, 
00021  *    if any, must include the following acknowledgment: 
00022  *       "This product includes software developed by the 
00023  *        Kannel Group (http://www.kannel.org/)." 
00024  *    Alternately, this acknowledgment may appear in the software itself, 
00025  *    if and wherever such third-party acknowledgments normally appear. 
00026  * 
00027  * 4. The names "Kannel" and "Kannel Group" must not be used to 
00028  *    endorse or promote products derived from this software without 
00029  *    prior written permission. For written permission, please  
00030  *    contact org@kannel.org. 
00031  * 
00032  * 5. Products derived from this software may not be called "Kannel", 
00033  *    nor may "Kannel" appear in their name, without prior written 
00034  *    permission of the Kannel Group. 
00035  * 
00036  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 
00037  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 
00038  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
00039  * DISCLAIMED.  IN NO EVENT SHALL THE KANNEL GROUP OR ITS CONTRIBUTORS 
00040  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,  
00041  * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT  
00042  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR  
00043  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,  
00044  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE  
00045  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,  
00046  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
00047  * ==================================================================== 
00048  * 
00049  * This software consists of voluntary contributions made by many 
00050  * individuals on behalf of the Kannel Group.  For more information on  
00051  * the Kannel Group, please see <http://www.kannel.org/>. 
00052  * 
00053  * Portions of this software are based upon software originally written at  
00054  * WapIT Ltd., Helsinki, Finland for the Kannel project.  
00055  */ 
00056 
00057 /*
00058  * wsp.h - WSP implementation header
00059  */
00060 
00061 #ifndef WSP_H
00062 #define WSP_H
00063 
00064 /*
00065  * int WSP_accepted_extended_methods[] = { -1 };
00066  * int WSP_accepted_header_code_pages[] = { -1 };
00067  */
00068 
00069 typedef enum {
00070     WSP_1_1 = 1, 
00071     WSP_1_2 = 2, 
00072     WSP_1_3 = 3, 
00073     WSP_1_4 = 4,
00074     WSP_1_5 = 5,
00075     WSP_1_6 = 6,
00076 } wsp_encoding;
00077 
00078 /* See Table 35 of the WSP standard */
00079 enum wsp_abort_values {
00080     WSP_ABORT_PROTOERR = 0xe0,
00081     WSP_ABORT_DISCONNECT = 0xe1,
00082     WSP_ABORT_SUSPEND = 0xe2,
00083     WSP_ABORT_RESUME = 0xe3,
00084     WSP_ABORT_CONGESTION = 0xe4,
00085     WSP_ABORT_CONNECTERR = 0xe5,
00086     WSP_ABORT_MRUEXCEEDED = 0xe6,
00087     WSP_ABORT_MOREXCEEDED = 0xe7,
00088     WSP_ABORT_PEERREQ = 0xe8,
00089     WSP_ABORT_NETERR = 0xe9,
00090     WSP_ABORT_USERREQ = 0xea,
00091     WSP_ABORT_USERRFS = 0xeb,
00092     WSP_ABORT_USERPND = 0xec,
00093     WSP_ABORT_USERDCR = 0xed,
00094     WSP_ABORT_USERDCU = 0xee
00095 };
00096 
00097 
00098 typedef struct WSPMachine WSPMachine;
00099 typedef struct WSPMethodMachine WSPMethodMachine;
00100 typedef struct WSPPushMachine WSPPushMachine;
00101 
00102 #include "gwlib/gwlib.h"
00103 #include "wap_addr.h"
00104 #include "wap_events.h"
00105 
00106 struct WSPMachine {
00107     #define INTEGER(name) long name;
00108     #define OCTSTR(name) Octstr *name;
00109     #define HTTPHEADERS(name) List *name;
00110     #define ADDRTUPLE(name) WAPAddrTuple *name;
00111     #define COOKIES(name) List *name;
00112     #define REFERER(name) Octstr *name;
00113     #define MACHINESLIST(name) List *name;
00114     #define CAPABILITIES(name) List *name;
00115     #define MACHINE(fields) fields
00116     #include "wsp_server_session_machine.def"
00117 };
00118 
00119 
00120 struct WSPMethodMachine {
00121     #define INTEGER(name) long name;
00122     #define ADDRTUPLE(name) WAPAddrTuple *name;
00123     #define EVENT(name) WAPEvent *name;
00124     #define MACHINE(fields) fields
00125     #include "wsp_server_method_machine.def"
00126 };
00127 
00128 struct WSPPushMachine {
00129        #define INTEGER(name) long name;
00130        #define ADDRTUPLE(name) WAPAddrTuple *name;
00131        #define HTTPHEADER(name) List *name;
00132        #define MACHINE(fields) fields
00133        #include "wsp_server_push_machine.def"
00134 };
00135 
00136 /*
00137  * Shared stuff.
00138  */
00139 long wsp_convert_http_status_to_wsp_status(long http_status);
00140 WSPMachine *find_session_machine_by_id(int);
00141 
00142 #endif
00143 
00144 
00145 
See file LICENSE for details about the license agreement for using, modifying, copying or deriving work from this software.