78     event = gw_malloc_trace(
sizeof(
WAPEvent), 
file, line, func);
    81     switch (event->
type) {
    82     #define WAPEVENT(name, prettyname, fields) \    84             { struct name *p = &event->u.name; fields } \    86     #define OCTSTR(name) p->name = NULL;    87     #define OPTIONAL_OCTSTR(name) p->name = NULL;    88     #define INTEGER(name) p->name = 0;    89     #define WTLSPDUS(name) p->name = NULL;    90     #define HTTPHEADER(name) p->name = NULL;    91     #define ADDRTUPLE(name) p->name = NULL;    92     #define CAPABILITIES(name) p->name = NULL;    95         panic(0, 
"Unknown WAP event type %d", event->
type);
   108     switch (event->
type) {
   109     #define WAPEVENT(name, prettyname, fields) \   111             { struct name *p = &event->u.name; fields; } \   113     #define OCTSTR(name) octstr_destroy(p->name);   114     #define OPTIONAL_OCTSTR(name) octstr_destroy(p->name);   115     #define INTEGER(name) p->name = 0;   116 #ifdef HAVE_WTLS_OPENSSL   117     #define WTLSPDUS(name) wtls_pldList_destroy(p->name);   119     #define HTTPHEADER(name) http_destroy_headers(p->name);   120     #define ADDRTUPLE(name) wap_addr_tuple_destroy(p->name);   121     #define CAPABILITIES(name) wsp_cap_destroy_list(p->name);   124         panic(0, 
"Unknown WAPEvent type %d", (
int) event->
type);
   144     new->type = 
event->type;
   146     switch (event->
type) {
   147     #define WAPEVENT(name, prettyname, fields) \   149             { struct name *p = &new->u.name; \   150               struct name *q = &event->u.name; \   153     #define OCTSTR(name) p->name = octstr_duplicate(q->name);   154     #define OPTIONAL_OCTSTR(name) p->name = octstr_duplicate(q->name);   155     #define INTEGER(name) p->name = q->name;   156     #define WTLSPDUS(name) debug("wap.events",0,"You need to implement wtls_pdulist_duplicate!");   157     #define HTTPHEADER(name) p->name = http_header_duplicate(q->name);   158     #define ADDRTUPLE(name) p->name = wap_addr_tuple_duplicate(q->name);   159     #define CAPABILITIES(name) p->name = wsp_cap_duplicate_list(q->name);   162         panic(0, 
"Unknown WAP event type %d", event->
type);
   171     #define WAPEVENT(name, prettyname, fields) \   172         case name: return prettyname;   175         panic(0, 
"Unknown WAPEvent type %d", (
int) 
type);
   176         return "unknown WAPEventName";
   182     debug(
"wap.event", 0, 
"Dumping WAPEvent %p", (
void *) event);
   184         debug(
"wap.event", 0, 
"  type = %s", 
   186         switch (event->type) {
   187         #define WAPEVENT(name, prettyname, fields) \   189             { struct name *p = &event->u.name; fields; break; }   190         #define OCTSTR(name) \   191             debug("wap.event", 0, "%s =", #name); \   192             octstr_dump(p->name, 1);   193         #define OPTIONAL_OCTSTR(name) \   194             if (p->name == NULL) \   195                 debug("wap.event", 0, "%s = NULL", #name); \   197                 debug("wap.event", 0, "%s =", #name); \   198                 octstr_dump(p->name, 1); \   200         #define INTEGER(name) \   201             debug("wap.event", 0, "  %s = %ld", #name, p->name);   202         #define WTLSPDUS(name) \   203             debug("wap.event",0,"You need to implement wtls_payloadlist_dump!");   204         #define HTTPHEADER(name) \   205             if (p->name == NULL) \   206                 debug("wap.event", 0, "%s = NULL", #name); \   208                 http_header_dump(p->name);   209         #define ADDRTUPLE(name)     wap_addr_tuple_dump(p->name);   210         #define CAPABILITIES(name)  wsp_cap_dump_list(p->name);   213             debug(
"wap.event", 0, 
"Unknown type");
   216     debug(
"wap.event", 0, 
"WAPEvent dump ends.");
   225     switch (event->
type) {
   226 #define WAPEVENT(name, prettyname, fields) \   228     { struct name *p = &event->u.name; fields; p = NULL; break; }   229 #define OCTSTR(name) \   230     gw_assert(p->name != NULL); \   232     gw_assert(octstr_len(p->name) >= 0);   233 #define OPTIONAL_OCTSTR(name) \   234     gw_assert(p->name == NULL || octstr_len(p->name) >= 0);   235 #define INTEGER(name)   236 #define WTLSPDUS(name)   237 #define HTTPHEADER(name)   238 #define ADDRTUPLE(name) \   239     gw_assert(p->name != NULL);   240 #define CAPABILITIES(name)   243         debug(
"wap.event", 0, 
"Unknown type");
 
gw_assert(wtls_machine->packet_to_send !=NULL)
 
void wap_event_dump(WAPEvent *event)
 
void wap_event_assert(WAPEvent *event)
 
void wap_event_destroy_item(void *event)
 
const char * wap_event_name(WAPEventName type)
 
WAPEvent * wap_event_duplicate(WAPEvent *event)
 
WAPEvent * wap_event_create_real(WAPEventName type, const char *file, long line, const char *func)
 
void debug(const char *place, int err, const char *fmt,...)
 
void wap_event_destroy(WAPEvent *event)