| 965 | } |
| 966 | |
| 967 | char * |
| 968 | clone_zero(const char *last_rsc_id) |
| 969 | { |
| 970 | int lpc = 0; |
| 971 | char *zero = NULL; |
| 972 | |
| 973 | CRM_CHECK(last_rsc_id != NULL, return NULL); |
| 974 | if (last_rsc_id != NULL) { |
| 975 | lpc = strlen(last_rsc_id); |
| 976 | } |
| 977 | |
| 978 | while (--lpc > 0) { |
| 979 | switch (last_rsc_id[lpc]) { |
| 980 | case 0: |
| 981 | return NULL; |
| 982 | break; |
| 983 | case '0': |
| 984 | case '1': |
| 985 | case '2': |
| 986 | case '3': |
| 987 | case '4': |
| 988 | case '5': |
| 989 | case '6': |
| 990 | case '7': |
| 991 | case '8': |
| 992 | case '9': |
| 993 | break; |
| 994 | case ':': |
| 995 | zero = calloc(1, lpc + 3); |
| 996 | memcpy(zero, last_rsc_id, lpc); |
| 997 | zero[lpc] = ':'; |
| 998 | zero[lpc + 1] = '0'; |
| 999 | zero[lpc + 2] = 0; |
| 1000 | return zero; |
| 1001 | default: |
| 1002 | goto done; |
| 1003 | } |
| 1004 | } |
| 1005 | done: |
| 1006 | lpc = strlen(last_rsc_id); |
| 1007 | zero = calloc(1, lpc + 3); |
| 1008 | memcpy(zero, last_rsc_id, lpc); |
| 1009 | zero[lpc] = ':'; |
| 1010 | zero[lpc + 1] = '0'; |
| 1011 | zero[lpc + 2] = 0; |
| 1012 | crm_trace("%s -> %s", last_rsc_id, zero); |
| 1013 | return zero; |
| 1014 | } |
| 1015 | |
| 1016 | static resource_t * |
| 1017 | create_fake_resource(const char *rsc_id, xmlNode * rsc_entry, pe_working_set_t * data_set) |
no outgoing calls
no test coverage detected