| version 1.5.2.4, 2012/04/02 09:10:31 | version 1.5.2.5, 2012/05/14 12:48:21 | 
| Line 71  io_vars2buffer(u_char *buf, int buflen, array_t *vars) | Line 71  io_vars2buffer(u_char *buf, int buflen, array_t *vars) | 
 |  |  | 
 | Limit = sizeof(ait_val_t) * io_arraySize(vars); | Limit = sizeof(ait_val_t) * io_arraySize(vars); | 
 | if (Limit > buflen) { | if (Limit > buflen) { | 
| io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d needed min %d ...\n", | io_SetErr(EMSGSIZE, "Short buffer buflen=%d needed min %d", | 
 | buflen, Limit); | buflen, Limit); | 
 | return -1; | return -1; | 
 | } else { | } else { | 
| Line 105  io_vars2buffer(u_char *buf, int buflen, array_t *vars) | Line 105  io_vars2buffer(u_char *buf, int buflen, array_t *vars) | 
 | break; | break; | 
 | case data: | case data: | 
 | if (AIT_LEN(val) > buflen - Limit) { | if (AIT_LEN(val) > buflen - Limit) { | 
| io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d " | io_SetErr(EMSGSIZE, "Short buffer buflen=%d " | 
| "needed min %d ...\n", buflen, Limit + AIT_LEN(val)); | "needed min %d", buflen, Limit + AIT_LEN(val)); | 
 | return -1; | return -1; | 
 | } else | } else | 
 | Limit += AIT_LEN(val); | Limit += AIT_LEN(val); | 
| Line 119  io_vars2buffer(u_char *buf, int buflen, array_t *vars) | Line 119  io_vars2buffer(u_char *buf, int buflen, array_t *vars) | 
 | case buffer: | case buffer: | 
 | case string: | case string: | 
 | if (AIT_LEN(val) > buflen - Limit) { | if (AIT_LEN(val) > buflen - Limit) { | 
| io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d " | io_SetErr(EMSGSIZE, "Short buffer buflen=%d " | 
| "needed min %d ...\n", buflen, Limit + AIT_LEN(val)); | "needed min %d", buflen, Limit + AIT_LEN(val)); | 
 | return -1; | return -1; | 
 | } else | } else | 
 | Limit += AIT_LEN(val); | Limit += AIT_LEN(val); | 
| Line 131  io_vars2buffer(u_char *buf, int buflen, array_t *vars) | Line 131  io_vars2buffer(u_char *buf, int buflen, array_t *vars) | 
 | dat += AIT_LEN(val); | dat += AIT_LEN(val); | 
 | break; | break; | 
 | default: | default: | 
| io_SetErr(EINVAL, "Error:: unsupported variable type=%d at element #%d ...\n", | io_SetErr(EINVAL, "Unsupported variable type=%d at element #%d", | 
 | AIT_TYPE(val), i); | AIT_TYPE(val), i); | 
 | return -1; | return -1; | 
 | } | } | 
| Line 165  io_buffer2vars(u_char *buf, int buflen, int vnum, int | Line 165  io_buffer2vars(u_char *buf, int buflen, int vnum, int | 
 |  |  | 
 | Limit = sizeof(ait_val_t) * vnum; | Limit = sizeof(ait_val_t) * vnum; | 
 | if (Limit > buflen) { | if (Limit > buflen) { | 
| io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d needed min %d ...\n", | io_SetErr(EMSGSIZE, "Short buffer buflen=%d needed min %d", | 
 | buflen, Limit); | buflen, Limit); | 
 | return NULL; | return NULL; | 
 | } else { | } else { | 
| Line 223  io_buffer2vars(u_char *buf, int buflen, int vnum, int | Line 223  io_buffer2vars(u_char *buf, int buflen, int vnum, int | 
 | case buffer: | case buffer: | 
 | case string: | case string: | 
 | if (AIT_LEN(val) > buflen - Limit) { | if (AIT_LEN(val) > buflen - Limit) { | 
| io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d " | io_SetErr(EMSGSIZE, "Short buffer buflen=%d " | 
| "needed min %d ...\n", buflen, Limit + AIT_LEN(val)); | "needed min %d", buflen, Limit + AIT_LEN(val)); | 
 | if (!zcpy) | if (!zcpy) | 
 | io_arrayFree(vars); | io_arrayFree(vars); | 
 | io_arrayDestroy(&vars); | io_arrayDestroy(&vars); | 
| Line 246  io_buffer2vars(u_char *buf, int buflen, int vnum, int | Line 246  io_buffer2vars(u_char *buf, int buflen, int vnum, int | 
 | dat += AIT_LEN(val); | dat += AIT_LEN(val); | 
 | break; | break; | 
 | default: | default: | 
| io_SetErr(EINVAL, "Error:: unsupported variable type=%d at element #%d ...\n", | io_SetErr(EINVAL, "Unsupported variable type=%d at element #%d", | 
 | AIT_TYPE(val), i); | AIT_TYPE(val), i); | 
 | if (!zcpy) | if (!zcpy) | 
 | io_arrayFree(vars); | io_arrayFree(vars); | 
| Line 285  io_vars2map(u_char *buf, int buflen, array_t *vars) | Line 285  io_vars2map(u_char *buf, int buflen, array_t *vars) | 
 |  |  | 
 | Limit = sizeof(ait_val_t) * io_arraySize(vars); | Limit = sizeof(ait_val_t) * io_arraySize(vars); | 
 | if (Limit > buflen) { | if (Limit > buflen) { | 
| io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d needed min %d ...\n", | io_SetErr(EMSGSIZE, "Short buffer buflen=%d needed min %d", | 
 | buflen, Limit); | buflen, Limit); | 
 | return -1; | return -1; | 
 | } else { | } else { | 
| Line 319  io_vars2map(u_char *buf, int buflen, array_t *vars) | Line 319  io_vars2map(u_char *buf, int buflen, array_t *vars) | 
 | break; | break; | 
 | case data: | case data: | 
 | if (AIT_LEN(val) > buflen - Limit) { | if (AIT_LEN(val) > buflen - Limit) { | 
| io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d " | io_SetErr(EMSGSIZE, "Short buffer buflen=%d " | 
| "needed min %d ...\n", buflen, Limit + AIT_LEN(val)); | "needed min %d", buflen, Limit + AIT_LEN(val)); | 
 | return -1; | return -1; | 
 | } else | } else | 
 | Limit += AIT_LEN(val); | Limit += AIT_LEN(val); | 
| Line 333  io_vars2map(u_char *buf, int buflen, array_t *vars) | Line 333  io_vars2map(u_char *buf, int buflen, array_t *vars) | 
 | case buffer: | case buffer: | 
 | case string: | case string: | 
 | if (AIT_LEN(val) > buflen - Limit) { | if (AIT_LEN(val) > buflen - Limit) { | 
| io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d " | io_SetErr(EMSGSIZE, "Short buffer buflen=%d " | 
| "needed min %d ...\n", buflen, Limit + AIT_LEN(val)); | "needed min %d", buflen, Limit + AIT_LEN(val)); | 
 | return -1; | return -1; | 
 | } else | } else | 
 | Limit += AIT_LEN(val); | Limit += AIT_LEN(val); | 
| Line 345  io_vars2map(u_char *buf, int buflen, array_t *vars) | Line 345  io_vars2map(u_char *buf, int buflen, array_t *vars) | 
 | dat += AIT_LEN(val); | dat += AIT_LEN(val); | 
 | break; | break; | 
 | default: | default: | 
| io_SetErr(EINVAL, "Error:: unsupported variable type=%d at element #%d ...\n", | io_SetErr(EINVAL, "Unsupported variable type=%d at element #%d", | 
 | AIT_TYPE(val), i); | AIT_TYPE(val), i); | 
 | return -1; | return -1; | 
 | } | } | 
| Line 379  io_map2vars(u_char *buf, int buflen, int vnum, int zcp | Line 379  io_map2vars(u_char *buf, int buflen, int vnum, int zcp | 
 |  |  | 
 | Limit = sizeof(ait_val_t) * vnum; | Limit = sizeof(ait_val_t) * vnum; | 
 | if (Limit > buflen) { | if (Limit > buflen) { | 
| io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d needed min %d ...\n", | io_SetErr(EMSGSIZE, "Short buffer buflen=%d needed min %d", | 
 | buflen, Limit); | buflen, Limit); | 
 | return NULL; | return NULL; | 
 | } else { | } else { | 
| Line 428  io_map2vars(u_char *buf, int buflen, int vnum, int zcp | Line 428  io_map2vars(u_char *buf, int buflen, int vnum, int zcp | 
 | case buffer: | case buffer: | 
 | case string: | case string: | 
 | if (AIT_LEN(val) > buflen - Limit) { | if (AIT_LEN(val) > buflen - Limit) { | 
| io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d " | io_SetErr(EMSGSIZE, "short buffer buflen=%d " | 
| "needed min %d ...\n", buflen, Limit + AIT_LEN(val)); | "needed min %d", buflen, Limit + AIT_LEN(val)); | 
 | if (!zcpy) | if (!zcpy) | 
 | io_arrayFree(vars); | io_arrayFree(vars); | 
 | io_arrayDestroy(&vars); | io_arrayDestroy(&vars); | 
| Line 451  io_map2vars(u_char *buf, int buflen, int vnum, int zcp | Line 451  io_map2vars(u_char *buf, int buflen, int vnum, int zcp | 
 | dat += AIT_LEN(val); | dat += AIT_LEN(val); | 
 | break; | break; | 
 | default: | default: | 
| io_SetErr(EINVAL, "Error:: unsupported variable type=%d at element #%d ...\n", | io_SetErr(EINVAL, "Unsupported variable type=%d at element #%d", | 
 | AIT_TYPE(val), i); | AIT_TYPE(val), i); | 
 | if (!zcpy) | if (!zcpy) | 
 | io_arrayFree(vars); | io_arrayFree(vars); | 
| Line 481  io_allocVars(int varnum) | Line 481  io_allocVars(int varnum) | 
 | return NULL; | return NULL; | 
 |  |  | 
 | for (i = 0; i < io_arraySize(arr); i++) { | for (i = 0; i < io_arraySize(arr); i++) { | 
| v = malloc(sizeof(ait_val_t)); | if (!(v = io_allocVar())) { | 
| if (!v) { |  | 
| LOGERR; |  | 
 | io_freeVars(&arr); | io_freeVars(&arr); | 
 | return NULL; | return NULL; | 
| } else { | } else | 
| memset(v, 0, sizeof(ait_val_t)); |  | 
 | io_arraySet(arr, i, v); | io_arraySet(arr, i, v); | 
 | } |  | 
 | } | } | 
 |  |  | 
 | return arr; | return arr; | 
| Line 505  inline int | Line 501  inline int | 
 | io_clrVars(array_t * __restrict vars) | io_clrVars(array_t * __restrict vars) | 
 | { | { | 
 | register int i; | register int i; | 
 | ait_val_t *v; |  | 
 |  |  | 
 | if (!vars) | if (!vars) | 
 | return -1; | return -1; | 
 |  |  | 
 | for (i = 0; i < io_arraySize(vars); i++) | for (i = 0; i < io_arraySize(vars); i++) | 
| if ((v = io_array(vars, i, ait_val_t*))) | io_freeVar((ait_val_t**) io_arrayGet2(vars, i)); | 
| AIT_FREE_VAL(v); |  | 
 |  |  | 
 | return io_arraySize(vars); | return io_arraySize(vars); | 
 | } | } | 
| Line 530  io_freeVars(array_t ** __restrict vars) | Line 524  io_freeVars(array_t ** __restrict vars) | 
 | return; | return; | 
 |  |  | 
 | io_clrVars(*vars); | io_clrVars(*vars); | 
 | io_arrayFree(*vars); |  | 
 | io_arrayDestroy(vars); | io_arrayDestroy(vars); | 
 | } | } | 
 |  |  | 
| Line 562  io_allocVar(void) | Line 555  io_allocVar(void) | 
 | * return: none | * return: none | 
 | */ | */ | 
 | inline void | inline void | 
| io_freeVar(ait_val_t * __restrict val) | io_freeVar(ait_val_t ** __restrict val) | 
 | { | { | 
| if (val) { | if (val && *val) { | 
| AIT_FREE_VAL(val); | AIT_FREE_VAL(*val); | 
| free(val); | free(*val); | 
| val = NULL; | *val = NULL; | 
 | } | } | 
 | } | } | 
 |  |  |