Changeset 1085:7d7266115a34 in freeDiameter for libfdproto/fdproto-internal.h
- Timestamp:
- May 3, 2013, 8:20:56 PM (11 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libfdproto/fdproto-internal.h
r1052 r1085 51 51 extern FILE * fd_g_debug_fstr; 52 52 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 57 53 /* Iterator on the rules of a parent object */ 58 54 int fd_dict_iterate_rules ( struct dict_object *parent, void * data, int (*cb)(void *, struct dict_rule_data *) ); … … 60 56 /* Dispatch / messages / dictionary API */ 61 57 int 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);58 DECLARE_FD_DUMP_PROTOTYPE(fd_dict_dump_avp_value, union avp_value *avp_value, struct dict_object * model, int indent, int header); 63 59 int fd_disp_call_cb_int( struct fd_list * cb_list, struct msg ** msg, struct avp *avp, struct session *sess, enum disp_action *action, 64 60 struct dict_object * obj_app, struct dict_object * obj_cmd, struct dict_object * obj_avp, struct dict_object * obj_enu); … … 69 65 70 66 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 107 67 #endif /* _LIBFDPROTO_INTERNAL_H */
Note: See TracChangeset
for help on using the changeset viewer.