Go to the source code of this file.
 | 
| #define  | PDU(name,  docstring,  fields,  is_valid)   name, | 
|   | 
| #define  | PDU(name,  docstring,  fields,  is_valid)   struct name { fields } name; | 
|   | 
| #define  | UINT(field,  docstring,  bits)   unsigned long field; | 
|   | 
| #define  | UINTVAR(field,  docstring)   unsigned long field; | 
|   | 
| #define  | OCTSTR(field,  docstring,  lengthfield)   Octstr *field; | 
|   | 
| #define  | REST(field,  docstring)   Octstr *field; | 
|   | 
| #define  | TYPE(bits,  value) | 
|   | 
| #define  | RESERVED(bits) | 
|   | 
| #define  | TPI(confield) | 
|   | 
◆ OCTSTR
      
        
          | #define OCTSTR | 
          ( | 
            | 
          field,  | 
        
        
           | 
           | 
            | 
          docstring,  | 
        
        
           | 
           | 
            | 
          lengthfield  | 
        
        
           | 
          ) | 
           |    Octstr *field; | 
        
      
 
 
◆ PDU [1/2]
      
        
          | #define PDU | 
          ( | 
            | 
          name,  | 
        
        
           | 
           | 
            | 
          docstring,  | 
        
        
           | 
           | 
            | 
          fields,  | 
        
        
           | 
           | 
            | 
          is_valid  | 
        
        
           | 
          ) | 
           |    name, | 
        
      
 
 
◆ PDU [2/2]
      
        
          | #define PDU | 
          ( | 
            | 
          name,  | 
        
        
           | 
           | 
            | 
          docstring,  | 
        
        
           | 
           | 
            | 
          fields,  | 
        
        
           | 
           | 
            | 
          is_valid  | 
        
        
           | 
          ) | 
           |    struct name { fields } name; | 
        
      
 
 
◆ RESERVED
◆ REST
      
        
          | #define REST | 
          ( | 
            | 
          field,  | 
        
        
           | 
           | 
            | 
          docstring  | 
        
        
           | 
          ) | 
           |    Octstr *field; | 
        
      
 
 
◆ TPI
◆ TYPE
      
        
          | #define TYPE | 
          ( | 
            | 
          bits,  | 
        
        
           | 
           | 
            | 
          value  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
 
◆ UINT
      
        
          | #define UINT | 
          ( | 
            | 
          field,  | 
        
        
           | 
           | 
            | 
          docstring,  | 
        
        
           | 
           | 
            | 
          bits  | 
        
        
           | 
          ) | 
           |    unsigned long field; | 
        
      
 
 
◆ UINTVAR
      
        
          | #define UINTVAR | 
          ( | 
            | 
          field,  | 
        
        
           | 
           | 
            | 
          docstring  | 
        
        
           | 
          ) | 
           |    unsigned long field; | 
        
      
 
 
◆ WSP_PDU
◆ anonymous enum
| Enumerator | 
|---|
| GET_METHODS  |  | 
| POST_METHODS  |  | 
Definition at line 74 of file wsp_pdu.h.
 
 
◆ wsp_pdu_types
Definition at line 80 of file wsp_pdu.h.
   81 #define PDU(name, docstring, fields, is_valid) name, 
 
 
 
◆ wsp_pdu_create()
      
        
          | WSP_PDU* wsp_pdu_create  | 
          ( | 
          int  | 
          type | ) | 
           | 
        
      
 
Definition at line 68 of file wsp_pdu.c.
References panic, wsp_pdu::type, and type.
Referenced by make_confirmedpush_pdu(), make_connectreply_pdu(), make_push_pdu(), make_resume_reply_pdu(), pack_into_push_datagram(), pack_into_result_datagram(), and pack_sia().
   71     pdu = gw_malloc(
sizeof(*pdu));
    75 #define PDU(name, docstring, fields, is_valid) \    77     struct name *p; p = &pdu->u.name; \    80 #define UINT(field, docstring, bits) p->field = 0;    81 #define UINTVAR(field, docstring) p->field = 0;    82 #define OCTSTR(field, docstring, lengthfield) p->field = NULL;    83 #define REST(field, docstring) p->field = NULL;    84 #define TYPE(bits, value)    85 #define RESERVED(bits)    95         panic(0, 
"Internal error: Unknown PDU type %d", pdu->
type);
 
 
 
 
◆ wsp_pdu_destroy()
      
        
          | void wsp_pdu_destroy  | 
          ( | 
          WSP_PDU *  | 
          pdu | ) | 
           | 
        
      
 
Definition at line 102 of file wsp_pdu.c.
References panic, and wsp_pdu::type.
Referenced by main(), main_thread(), make_connectreply_pdu(), make_resume_reply_pdu(), pack_into_push_datagram(), pack_into_result_datagram(), pack_sia(), push_client_event_handle(), send_invoke(), and unpack_datagram().
  107 #define PDU(name, docstring, fields, is_valid) \   109     struct name *p; p = &pdu->u.name; \   112 #define UINT(field, docstring, bits)   113 #define UINTVAR(field, docstring)   114 #define OCTSTR(field, docstring, lengthfield) octstr_destroy(p->field);   115 #define REST(field, docstring) octstr_destroy(p->field);   116 #define TYPE(bits, value)   117 #define RESERVED(bits)   127         panic(0, 
"Cannot destroy unknown WSP PDU type %d", pdu->
type);
 
 
 
 
◆ wsp_pdu_dump()
      
        
          | void wsp_pdu_dump  | 
          ( | 
          WSP_PDU *  | 
          pdu,  | 
        
        
           | 
           | 
          int  | 
          level  | 
        
        
           | 
          ) | 
           |  | 
        
      
 
Definition at line 324 of file wsp_pdu.c.
References debug(), and wsp_pdu::type.
Referenced by main(), and pack_into_push_datagram().
  325     char *dbg = 
"wap.wsp";
   328 #define PDU(name, docstring, fields, is_valid) \   330         struct name *p = &pdu->u.name; \   331         debug(dbg, 0, "%*sWSP %s PDU at %p:", \   332             level, "", #name, (void *)pdu); \   335 #define UINT(field, docstring, bits) \   336     debug(dbg, 0, "%*s %s: %lu", level, "", docstring, p->field);   337 #define UINTVAR(field, docstring) \   338     debug(dbg, 0, "%*s %s: %lu", level, "", docstring, p->field);   339 #define OCTSTR(field, docstring, lengthfield) \   340     debug(dbg, 0, "%*s %s:", level, "", docstring); \   341     octstr_dump(p->field, level + 1);   342 #define REST(field, docstring) \   343     debug(dbg, 0, "%*s %s:", level, "", docstring); \   344     octstr_dump(p->field, level + 1);   345 #define TYPE(bits, value)   346 #define RESERVED(bits)   356         debug(dbg, 0, 
"%*sWSP PDU at %p:", level, 
"", (
void *)pdu);
   357         debug(dbg, 0, 
"%*s unknown type %u", level, 
"", pdu->
type);
   360     debug(
"wap.wsp", 0, 
"%*sWSP PDU dump ends.", level, 
"");
 
void debug(const char *place, int err, const char *fmt,...)
 
 
 
 
◆ wsp_pdu_pack()
Definition at line 271 of file wsp_pdu.c.
References fixup_length_fields(), octstr_create, panic, and wsp_pdu::type.
Referenced by main(), make_connectreply_pdu(), make_resume_reply_pdu(), pack_into_push_datagram(), pack_into_result_datagram(), pack_sia(), and send_invoke().
  282 #define PDU(name, docstring, fields, is_valid) \   284         struct name *p = &pdu->u.name; \   286         gw_assert(bitpos % 8 == 0); \   288 #define UINT(field, docstring, bits) \   289     octstr_set_bits(data, bitpos, (bits), p->field); \   291 #define UINTVAR(field, docstring) \   292     gw_assert(bitpos % 8 == 0); \   293     octstr_append_uintvar(data, p->field); \   294     bitpos = 8 * octstr_len(data);   295 #define OCTSTR(field, docstring, lengthfield) \   296     gw_assert(bitpos % 8 == 0); \   297     if (p->field != NULL) \   298         octstr_append(data, p->field); \   299     bitpos += 8 * octstr_len(p->field);   300 #define REST(field, docstring) \   301     gw_assert(bitpos % 8 == 0); \   302     if (p->field != NULL) \   303         octstr_append(data, p->field); \   304     bitpos += 8 * octstr_len(p->field);   305 #define TYPE(bits, value) \   306     octstr_set_bits(data, bitpos, (bits), (value)); \   308 #define RESERVED(bits) bitpos += (bits);   318         panic(0, 
"Packing unknown WSP PDU type %ld", (
long) pdu->
type);
 
static void fixup_length_fields(WSP_PDU *pdu)
 
#define octstr_create(cstr)
 
 
 
 
◆ wsp_pdu_unpack()
Definition at line 178 of file wsp_pdu.c.
References gw_assert(), wsp_pdu::type, warning(), and wsp_pdu_type().
Referenced by client_session(), main(), main_thread(), push_client_event_handle(), and unpack_datagram().
  184     pdu = gw_malloc(
sizeof(*pdu));
   189 #define PDU(name, docstring, fields, is_valid) \   191         struct name *p = &pdu->u.name; \   193         gw_assert(bitpos % 8 == 0); \   194         if (bitpos / 8 != octstr_len(data)) { \   195             warning(0, "Bad length for " #name " PDU, " \   196                 "expected %ld", bitpos / 8); \   199             warning(0, #name " PDU failed %s", #is_valid); \   202 #define UINT(field, docstring, bits) \   203     p->field = octstr_get_bits(data, bitpos, (bits)); \   205 #define UINTVAR(field, docstring) \   206     gw_assert(bitpos % 8 == 0); \   207     p->field = octstr_get_bits(data, bitpos + 1, 7); \   208     while (octstr_get_bits(data, bitpos, 1)) { \   211         p->field |= octstr_get_bits(data, bitpos + 1, 7); \   214 #define OCTSTR(field, docstring, lengthfield) \   215     gw_assert(bitpos % 8 == 0); \   216     p->field = octstr_copy(data, bitpos / 8, p->lengthfield); \   217     bitpos += 8 * p->lengthfield;   218 #define REST(field, docstring) \   219     gw_assert(bitpos % 8 == 0); \   220     if (bitpos / 8 <= octstr_len(data)) { \   221         p->field = octstr_copy(data, bitpos / 8, \   222                 octstr_len(data) - bitpos / 8); \   223         bitpos = octstr_len(data) * 8; \   225         p->field = octstr_create(""); \   227 #define TYPE(bits, value) bitpos += (bits);   228 #define RESERVED(bits) bitpos += (bits);   238         warning(0, 
"WSP PDU with unknown type %d", pdu->
type);
 
gw_assert(wtls_machine->packet_to_send !=NULL)
 
void warning(int err, const char *fmt,...)
 
static int wsp_pdu_type(Octstr *data)