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)