Todo List

Group cds_dstring

Function with sprintf syntax which will help with readibility of code using dynamic strings.

Group cds_msg_queue

To meaningfully use reference counters it is needed to add function for adding new reference to message queue.

Introduce message types because it is often needed.

Group cds_ref_cnt
use atomic operations instead of locking

Global check_types (db_cmd_t *cmd)
Store oid and length as part of pg_fld, instead of the arrays used as parameters to PQ functions

Global conf_str2id (char *id_str)
check if we can use the functions from ut.h params: id_str: ID as string to be converted to int. returns: >=0 on success -1 otherwise

Global conf_str2int (char *s)
check if we can use the functions from ut.h params: s: The string to be converted to int. returns: >=0 on success -1 otherwise

Global db_time2str (time_t _v, char *_s, int *_l)
This functions add quotes to the time value. This should be done in the val2str function, as some databases like db_berkeley don't need or like this at all.

Global dstr_buff_t
'len' and 'used' can be replaced by 'unused' member but it doesn't save too much

Global km_bdb_time2str (time_t _v, char *_s, int *_l)
This functions add quotes to the time value. This should be done in the val2str function, as some databases like db_berkeley don't need or like this at all.

Global MD5Final (char digest[16], MD5_CTX *context)
review and fix all wrong usage

Global MD5Update (MD5_CTX *context, char *input, unsigned int inputLen)
review and fix all wrong usage

File modules_k/siputils/contact_ops.h
:decode2format unpleasant

Class multiparam_t

replace this with gparam_t

replace this with gparam_t

Global pg_fld2pg (struct pg_params *dst, int off, pg_type_t *types, db_fld_t *src, unsigned int flags)

Implement support for bit fields with size bigger than 32

Implement support for varbit properly to remove leading zeroes

Check if timezones are handled properly

Support for DB_NONE in pg_pg2fld and pg_check_pg2fld

local->UTC conversion (also check the SQL command in ser-oob)

Global pg_pg2fld (db_fld_t *dst, PGresult *src, int row, pg_type_t *types, unsigned int flags)
UTC->local conversion

Global print_fifo_err (void)
this is currently not evaluated for errors during update_route_data

Global pv_set_mcd_value (struct sip_msg *msg, pv_param_t *param, int op, pv_value_t *val)
Replacement of already existing values is not done atomically at the moment.

Global remove_spaces (char *s)
check if we can use the functions from ut.h Removes white spaces and new lines from s, the contents of s are modified.

Global xmpp_send_pipe_cmd (enum xmpp_pipe_cmd_type type, str *from, str *to, str *body, str *id)
: make shm allocation for one big chunk to include all fields

Global xmpp_send_sip_msg (char *from, char *to, char *msg)
This assumes that a message is text/plain, which is not always the case with XMPP messages.