| 942 | } |
| 943 | |
| 944 | int ph_getCols(ph_mod_t *module, ph_cmd_t *cmd, |
| 945 | db_op_t **mod_cmd_ops, db_key_t **mod_cmd_keys, |
| 946 | db_type_t **mod_cmd_types, ph_vals_t **mod_cmd_vals, str **mod_cmd_linkCmd, |
| 947 | int *key_size, xmlNodePtr cmd_node) |
| 948 | { |
| 949 | xmlNodePtr node; |
| 950 | str *key; |
| 951 | str field; |
| 952 | db_key_t *keys; |
| 953 | db_key_t *cmd_keys = NULL; |
| 954 | int op_len; |
| 955 | char *operator; |
| 956 | char *_operator; |
| 957 | db_op_t *ops; |
| 958 | db_op_t *cmd_ops = NULL; |
| 959 | db_type_t *types; |
| 960 | db_type_t *cmd_types = NULL; |
| 961 | ph_vals_t *vals; |
| 962 | ph_vals_t *cmd_vals = NULL; |
| 963 | str link_cmd; |
| 964 | str *linkCmd; |
| 965 | str *cmd_linkCmd = NULL; |
| 966 | int i; |
| 967 | int size = 0; |
| 968 | int table_size; |
| 969 | ph_table_col_t *table_cols; |
| 970 | |
| 971 | for(node=cmd_node->children;node;node=node->next){ |
| 972 | if (xmlStrcasecmp(node->name, |
| 973 | (const xmlChar*)PI_HTTP_XML_COL_NODE) == 0) { |
| 974 | if(size) |
| 975 | keys = (db_key_t*)shm_realloc(cmd_keys, |
| 976 | (size+1)*sizeof(db_key_t)); |
| 977 | else |
| 978 | keys = (db_key_t*)shm_malloc(sizeof(db_key_t)); |
| 979 | if (keys==NULL) {LM_ERR("oom\n");return -1;} |
| 980 | cmd_keys = keys; |
| 981 | keys = &cmd_keys[size]; |
| 982 | memset(keys, 0, sizeof(db_key_t)); |
| 983 | key = (str*)shm_malloc(sizeof(str)); |
| 984 | if (key==NULL) {LM_ERR("oom\n");return -1;} |
| 985 | /* get the col field */ |
| 986 | field.s = ph_xmlNodeGetNodeContentByName(node->children, |
| 987 | PI_HTTP_XML_FIELD_NODE); |
| 988 | if(field.s==NULL){ |
| 989 | LM_ERR("no %s in %s [%.*s] %s [%.*s] %s %s\n", |
| 990 | PI_HTTP_XML_FIELD_NODE, |
| 991 | cmd_node->parent->parent->name, |
| 992 | module->module.len, module->module.s, |
| 993 | cmd_node->parent->name, |
| 994 | cmd->name.len, cmd->name.s, |
| 995 | cmd_node->name, node->name); |
| 996 | return -1; |
| 997 | } |
| 998 | field.len = strlen(field.s); |
| 999 | if(field.len==0){ |
| 1000 | LM_ERR("empty %s in %s [%.*s] %s [%.*s] %s %s\n", |
| 1001 | PI_HTTP_XML_FIELD_NODE, |
no test coverage detected