Navigation


Changeset 1085:7d7266115a34 in freeDiameter for libfdproto/fdproto-internal.h


Ignore:
Timestamp:
May 3, 2013, 8:20:56 PM (11 years ago)
Author:
Sebastien Decugis <sdecugis@freediameter.net>
Branch:
default
Phase:
public
Message:

Cleaning of the traces in progress

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libfdproto/fdproto-internal.h

    r1052 r1085  
    5151extern FILE * fd_g_debug_fstr;
    5252
    53 /* Special message dump function */
    54 void fd_msg_dump_fstr_one ( struct msg * msg, FILE * fstr );
    55 void fd_msg_dump_fstr ( struct msg * msg, FILE * fstr );
    56 
    5753/* Iterator on the rules of a parent object */
    5854int fd_dict_iterate_rules ( struct dict_object *parent, void * data, int (*cb)(void *, struct dict_rule_data *) );
     
    6056/* Dispatch / messages / dictionary API */
    6157int fd_dict_disp_cb(enum dict_object_type type, struct dict_object *obj, struct fd_list ** cb_list);
    62 int fd_dict_dump_avp_value(union avp_value *avp_value, struct dict_object * model, int indent, char **outstr, size_t *offset, size_t *outlen, int header);
     58DECLARE_FD_DUMP_PROTOTYPE(fd_dict_dump_avp_value, union avp_value *avp_value, struct dict_object * model, int indent, int header);
    6359int fd_disp_call_cb_int( struct fd_list * cb_list, struct msg ** msg, struct avp *avp, struct session *sess, enum disp_action *action,
    6460                        struct dict_object * obj_app, struct dict_object * obj_cmd, struct dict_object * obj_avp, struct dict_object * obj_enu);
     
    6965
    7066
    71 /* For dump routines into string buffers */
    72 #include <stdarg.h>
    73 static __inline__ int dump_init_str(char **outstr, size_t *offset, size_t *outlen)
    74 {
    75         *outlen = 1<<12;
    76         CHECK_MALLOC( *outstr = malloc(*outlen) );
    77         *offset = 0;
    78         (*outstr)[0] = 0;
    79         return 0;
    80 }
    81 static __inline__ int dump_add_str(char **outstr, size_t *offset, size_t *outlen, char * fmt, ...)
    82 {
    83         va_list argp;
    84         int len;
    85         va_start(argp, fmt);
    86         len = vsnprintf(*outstr + *offset, *outlen - *offset, fmt, argp);
    87         va_end(argp);
    88         if ((len + *offset) >= *outlen) {
    89                 char * newstr;
    90                 /* buffer was too short, extend */
    91                 size_t newsize = ((len + *offset) + (1<<12)) & ~((1<<12) - 1); /* next multiple of 4k */
    92                 CHECK_MALLOC( newstr = realloc(*outstr, newsize) );
    93                
    94                 /* redo */
    95                 *outstr = newstr;
    96                 *outlen = newsize;
    97                 va_start(argp, fmt);
    98                 len = vsnprintf(*outstr + *offset, *outlen - *offset, fmt, argp);
    99                 va_end(argp);
    100         }
    101         *offset += len;
    102         return 0;
    103 }
    104 
    105 
    106 
    10767#endif /* _LIBFDPROTO_INTERNAL_H */
Note: See TracChangeset for help on using the changeset viewer.