148         warning(0, 
"WSP UNIT: Empty datagram.");
   159     if (pdu->
type != Get && pdu->
type != Post) {
   160         warning(0, 
"WSP UNIT: Unsupported PDU type %d", pdu->
type);
   166             datagram->
u.T_DUnitdata_Ind.addr_tuple);
   167     event->u.S_Unit_MethodInvoke_Ind.transaction_id = tid_byte;
   171         debug(
"wap.wsp", 0, 
"Connectionless Get request received.");
   173         event->
u.S_Unit_MethodInvoke_Ind.request_uri = 
   175         event->u.S_Unit_MethodInvoke_Ind.request_headers =
   177         event->u.S_Unit_MethodInvoke_Ind.request_body = NULL;
   181         debug(
"wap.wsp", 0, 
"Connectionless Post request received.");
   183         event->
u.S_Unit_MethodInvoke_Ind.request_uri = 
   185         event->u.S_Unit_MethodInvoke_Ind.request_headers = 
   187         event->u.S_Unit_MethodInvoke_Ind.request_body = 
   192         warning(0, 
"WSP UNIT: Unsupported PDU type %d", pdu->
type);
   199     event->u.S_Unit_MethodInvoke_Ind.method = 
method_name;
   223         debug(
"wap.wsp.unit", 0, 
"WSP (UNIT): event arrived");
   226         case T_DUnitdata_Ind:
   228             if (newevent != NULL)
   232         case S_Unit_MethodResult_Req:
   234             if (newevent != NULL)
   238         case S_Unit_Push_Req:
   240             if (newevent != NULL)
   242             debug(
"wsp.unit", 0, 
"WSP (UNIT): delivering to wdp");
   246             warning(0, 
"WSP UNIT: Unknown event type %d", e->
type);
   264     struct S_Unit_MethodResult_Req *p;
   270     p = &
event->u.S_Unit_MethodResult_Req;
   283     tid = p->transaction_id;
   287     datagram->
u.T_DUnitdata_Req.addr_tuple =
   289     datagram->
u.T_DUnitdata_Req.user_data = ospdu;
   303     unsigned char push_id;
   306     debug(
"wap.wsp.unit", 0, 
"WSP_UNIT: Connectionless push accepted");
   309             "Encoding-Version", 
"1.3");
   313             event->
u.S_Unit_Push_Req.push_headers, 1, 
WSP_1_3);
   315             event->
u.S_Unit_Push_Req.push_body);
   322     push_id = 
event->u.S_Unit_Push_Req.push_id;
   327     datagram->
u.T_DUnitdata_Req.addr_tuple =
   329     datagram->
u.T_DUnitdata_Req.address_type =
   330             event->
u.S_Unit_Push_Req.address_type;
   331     if (event->
u.S_Unit_Push_Req.smsc_id != NULL)
   332         datagram->
u.T_DUnitdata_Req.smsc_id =
   335         datagram->
u.T_DUnitdata_Req.smsc_id = NULL;
   336     if (event->
u.S_Unit_Push_Req.dlr_url != NULL)
   337         datagram->
u.T_DUnitdata_Req.dlr_url =
   340         datagram->
u.T_DUnitdata_Req.dlr_url = NULL;
   341     datagram->
u.T_DUnitdata_Req.dlr_mask = 
event->
u.S_Unit_Push_Req.dlr_mask;
   342     if (event->
u.S_Unit_Push_Req.smsbox_id != NULL)
   343         datagram->
u.T_DUnitdata_Req.smsbox_id =
   346         datagram->
u.T_DUnitdata_Req.smsbox_id = NULL;
   347     datagram->
u.T_DUnitdata_Req.service_name =
   350     datagram->
u.T_DUnitdata_Req.user_data = ospdu;
 
long wsp_convert_http_status_to_wsp_status(long http_status)
 
void error(int err, const char *fmt,...)
 
void http_header_add(List *headers, char *name, char *contents)
 
static Octstr * method_name
 
gw_assert(wtls_machine->packet_to_send !=NULL)
 
void gwlist_produce(List *list, void *item)
 
Octstr * wsp_pdu_pack(WSP_PDU *pdu)
 
void octstr_insert_data(Octstr *ostr, long pos, const char *data, long len)
 
static void main_thread(void *)
 
void gwthread_join_every(gwthread_func_t *func)
 
WAPAddrTuple * wap_addr_tuple_duplicate(WAPAddrTuple *tuple)
 
WSP_PDU * wsp_pdu_create(int type)
 
void wap_event_assert(WAPEvent *event)
 
void octstr_delete(Octstr *ostr1, long pos, long len)
 
void gwlist_remove_producer(List *list)
 
void wap_event_destroy_item(void *event)
 
#define octstr_duplicate(ostr)
 
static WAPEvent * unpack_datagram(WAPEvent *datagram)
 
static wap_dispatch_func_t * dispatch_to_appl
 
#define wap_event_create(type)
 
void warning(int err, const char *fmt,...)
 
Octstr * octstr_format(const char *fmt,...)
 
void octstr_destroy(Octstr *ostr)
 
#define gwthread_create(func, arg)
 
void wsp_pdu_destroy(WSP_PDU *pdu)
 
static wap_dispatch_func_t * dispatch_to_wdp
 
long octstr_len(const Octstr *ostr)
 
void wsp_strings_shutdown(void)
 
void wsp_unit_init(wap_dispatch_func_t *datagram_dispatch, wap_dispatch_func_t *application_dispatch)
 
void * gwlist_consume(List *list)
 
void wsp_strings_init(void)
 
void debug(const char *place, int err, const char *fmt,...)
 
static WAPEvent * pack_into_push_datagram(WAPEvent *event)
 
void wsp_pdu_dump(WSP_PDU *pdu, int level)
 
static enum @92 run_status
 
static WAPEvent * pack_into_result_datagram(WAPEvent *event)
 
void gwlist_add_producer(List *list)
 
int octstr_get_char(const Octstr *ostr, long pos)
 
void wsp_unit_dispatch_event(WAPEvent *event)
 
WSP_PDU * wsp_pdu_unpack(Octstr *data)
 
void wsp_unit_shutdown(void)
 
void wap_event_destroy(WAPEvent *event)
 
void wap_dispatch_func_t(WAPEvent *event)
 
void gwlist_destroy(List *list, gwlist_item_destructor_t *destructor)