| 859 | } |
| 860 | |
| 861 | int load_metadata_keys(table_p _tp) |
| 862 | { |
| 863 | int ret,n,ci; |
| 864 | char dbuf[MAX_ROW_SIZE]; |
| 865 | char *tmp; |
| 866 | char *s = NULL; |
| 867 | DB *db = NULL; |
| 868 | DBT key, data; |
| 869 | ret = n = ci = 0; |
| 870 | |
| 871 | if(!_tp || !_tp->db) |
| 872 | return -1; |
| 873 | |
| 874 | db = _tp->db; |
| 875 | memset(&key, 0, sizeof(DBT)); |
| 876 | memset(&data, 0, sizeof(DBT)); |
| 877 | memset(dbuf, 0, MAX_ROW_SIZE); |
| 878 | key.data = METADATA_KEY; |
| 879 | key.size = strlen(METADATA_KEY); |
| 880 | data.data = dbuf; |
| 881 | data.ulen = MAX_ROW_SIZE; |
| 882 | data.flags = DB_DBT_USERMEM; |
| 883 | |
| 884 | if ((ret = db->get(db, NULL, &key, &data, 0)) != 0) |
| 885 | { |
| 886 | db->err(db, ret, "load_metadata_keys DB->get failed"); |
| 887 | LM_ERR("FAILED to find METADATA in table \n"); |
| 888 | return ret; |
| 889 | } |
| 890 | |
| 891 | LM_DBG("Found: [%s]\n",dbuf); |
| 892 | |
| 893 | tmp = dbuf; |
| 894 | s = strsep(&tmp, " "); |
| 895 | while(s!=NULL && strlen(s) && n< _tp->ncols) |
| 896 | { ret = sscanf(s,"%i", &ci); |
| 897 | if(ret != 1) return -1; |
| 898 | if( _tp->colp[ci] ) |
| 899 | { _tp->colp[ci]->flag = 1; |
| 900 | _tp->nkeys++; |
| 901 | } |
| 902 | n++; |
| 903 | s = strsep(&tmp, " "); |
| 904 | } |
| 905 | |
| 906 | return 0; |
| 907 | } |
| 908 | |
| 909 | |
| 910 | int load_metadata_readonly(table_p _tp) |
no outgoing calls
no test coverage detected