Diff for /libaitio/src/Attic/vars.c between versions 1.4.4.3 and 1.4.4.4

version 1.4.4.3, 2012/03/27 22:31:37 version 1.4.4.4, 2012/03/27 23:06:37
Line 60  io_vars2buffer(u_char *buf, int buflen, array_t *vars) Line 60  io_vars2buffer(u_char *buf, int buflen, array_t *vars)
         int Limit = 0;          int Limit = 0;
         register int i;          register int i;
         ait_val_t *v, *val;          ait_val_t *v, *val;
        u_char *data;        u_char *dat;
   
         assert(buf);          assert(buf);
         assert(vars);          assert(vars);
Line 78  io_vars2buffer(u_char *buf, int buflen, array_t *vars) Line 78  io_vars2buffer(u_char *buf, int buflen, array_t *vars)
                 memset(buf, 0, buflen);                  memset(buf, 0, buflen);
   
                 v = (ait_val_t*) buf;                  v = (ait_val_t*) buf;
                data = buf + Limit;                dat = buf + Limit;
         }          }
   
         /* marshaling */          /* marshaling */
Line 103  io_vars2buffer(u_char *buf, int buflen, array_t *vars) Line 103  io_vars2buffer(u_char *buf, int buflen, array_t *vars)
                         case u64:                          case u64:
                                 v[i].val.net = htobe64(val->val.net);                                  v[i].val.net = htobe64(val->val.net);
                                 break;                                  break;
                           case data:
                                   if (AIT_LEN(val) > buflen - Limit) {
                                           io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d "
                                                           "needed min %d ...\n", buflen, Limit + AIT_LEN(val));
                                           return -1;
                                   } else
                                           Limit += AIT_LEN(val);
   
                                   memcpy(dat, val->val_data, AIT_LEN(val));
                                   /* Debug:: data offset in packet, not matter for anything! */
                                   v[i].val.net = dat - buf;
                                   dat += AIT_LEN(val);
                                   break;
                         case buffer:                          case buffer:
                         case string:                          case string:
                                 if (AIT_LEN(val) > buflen - Limit) {                                  if (AIT_LEN(val) > buflen - Limit) {
Line 112  io_vars2buffer(u_char *buf, int buflen, array_t *vars) Line 125  io_vars2buffer(u_char *buf, int buflen, array_t *vars)
                                 } else                                  } else
                                         Limit += AIT_LEN(val);                                          Limit += AIT_LEN(val);
   
                                memcpy(data, val->val.buffer, AIT_LEN(val));                                memcpy(dat, val->val.buffer, AIT_LEN(val));
                                 /* Debug:: data offset in packet, not matter for anything! */                                  /* Debug:: data offset in packet, not matter for anything! */
                                v[i].val.net = data - buf;                                v[i].val.net = dat - buf;
                                data += 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, "Error:: unsupported variable type=%d at element #%d ...\n", 
Line 144  io_buffer2vars(u_char *buf, int buflen, int vnum, int  Line 157  io_buffer2vars(u_char *buf, int buflen, int vnum, int 
         int Limit = 0;          int Limit = 0;
         register int i;          register int i;
         ait_val_t *v, *val;          ait_val_t *v, *val;
        u_char *data;        u_char *dat;
   
         assert(buf);          assert(buf);
         if (!buf || !buflen || !vnum)          if (!buf || !buflen || !vnum)
Line 160  io_buffer2vars(u_char *buf, int buflen, int vnum, int  Line 173  io_buffer2vars(u_char *buf, int buflen, int vnum, int 
                         return NULL;                          return NULL;
   
                 v = (ait_val_t*) buf;                  v = (ait_val_t*) buf;
                data = buf + Limit;                dat = buf + Limit;
         }          }
   
         /* de-marshaling */          /* de-marshaling */
Line 204  io_buffer2vars(u_char *buf, int buflen, int vnum, int  Line 217  io_buffer2vars(u_char *buf, int buflen, int vnum, int 
                                 val->val.net = be64toh(v[i].val.net);                                  val->val.net = be64toh(v[i].val.net);
 #endif  #endif
                                 break;                                  break;
                           case data:
                                   /* WARNING:: remap data type to buffer */
                                   val->val_type = buffer;
                         case buffer:                          case buffer:
                         case string:                          case string:
                                 if (AIT_LEN(val) > buflen - Limit) {                                  if (AIT_LEN(val) > buflen - Limit) {
Line 224  io_buffer2vars(u_char *buf, int buflen, int vnum, int  Line 240  io_buffer2vars(u_char *buf, int buflen, int vnum, int 
                                                 io_arrayDestroy(&vars);                                                  io_arrayDestroy(&vars);
                                                 return NULL;                                                  return NULL;
                                         } else                                          } else
                                                memcpy(val->val.buffer, data, AIT_LEN(val));                                                memcpy(val->val.buffer, dat, AIT_LEN(val));
                                 } else                                  } else
                                        val->val.buffer = data;                                        val->val.buffer = dat;
                                data += 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, "Error:: unsupported variable type=%d at element #%d ...\n", 
Line 258  io_vars2map(u_char *buf, int buflen, array_t *vars) Line 274  io_vars2map(u_char *buf, int buflen, array_t *vars)
         int Limit = 0;          int Limit = 0;
         register int i;          register int i;
         ait_val_t *v, *val;          ait_val_t *v, *val;
        u_char *data;        u_char *dat;
   
         assert(buf);          assert(buf);
         assert(vars);          assert(vars);
Line 276  io_vars2map(u_char *buf, int buflen, array_t *vars) Line 292  io_vars2map(u_char *buf, int buflen, array_t *vars)
                 memset(buf, 0, buflen);                  memset(buf, 0, buflen);
   
                 v = (ait_val_t*) buf;                  v = (ait_val_t*) buf;
                data = buf + Limit;                dat = buf + Limit;
         }          }
   
         /* marshaling */          /* marshaling */
Line 301  io_vars2map(u_char *buf, int buflen, array_t *vars) Line 317  io_vars2map(u_char *buf, int buflen, array_t *vars)
                         case u64:                          case u64:
                                 v[i].val.net = val->val.net;                                  v[i].val.net = val->val.net;
                                 break;                                  break;
                           case data:
                                   if (AIT_LEN(val) > buflen - Limit) {
                                           io_SetErr(EMSGSIZE, "Error:: too short buffer buflen=%d "
                                                           "needed min %d ...\n", buflen, Limit + AIT_LEN(val));
                                           return -1;
                                   } else
                                           Limit += AIT_LEN(val);
   
                                   memcpy(dat, val->val_data, AIT_LEN(val));
                                   /* Debug:: data offset in packet, not matter for anything! */
                                   v[i].val.net = dat - buf;
                                   dat += AIT_LEN(val);
                                   break;
                         case buffer:                          case buffer:
                         case string:                          case string:
                                 if (AIT_LEN(val) > buflen - Limit) {                                  if (AIT_LEN(val) > buflen - Limit) {
Line 310  io_vars2map(u_char *buf, int buflen, array_t *vars) Line 339  io_vars2map(u_char *buf, int buflen, array_t *vars)
                                 } else                                  } else
                                         Limit += AIT_LEN(val);                                          Limit += AIT_LEN(val);
   
                                memcpy(data, val->val.buffer, AIT_LEN(val));                                memcpy(dat, val->val.buffer, AIT_LEN(val));
                                 /* Debug:: data offset in packet, not matter for anything! */                                  /* Debug:: data offset in packet, not matter for anything! */
                                v[i].val.net = data - buf;                                v[i].val.net = dat - buf;
                                data += 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, "Error:: unsupported variable type=%d at element #%d ...\n", 
Line 342  io_map2vars(u_char *buf, int buflen, int vnum, int zcp Line 371  io_map2vars(u_char *buf, int buflen, int vnum, int zcp
         int Limit = 0;          int Limit = 0;
         register int i;          register int i;
         ait_val_t *v, *val;          ait_val_t *v, *val;
        u_char *data;        u_char *dat;
   
         assert(buf);          assert(buf);
         if (!buf || !buflen || !vnum)          if (!buf || !buflen || !vnum)
Line 358  io_map2vars(u_char *buf, int buflen, int vnum, int zcp Line 387  io_map2vars(u_char *buf, int buflen, int vnum, int zcp
                         return NULL;                          return NULL;
   
                 v = (ait_val_t*) buf;                  v = (ait_val_t*) buf;
                data = buf + Limit;                dat = buf + Limit;
         }          }
   
         /* de-marshaling */          /* de-marshaling */
Line 393  io_map2vars(u_char *buf, int buflen, int vnum, int zcp Line 422  io_map2vars(u_char *buf, int buflen, int vnum, int zcp
                         case u64:                          case u64:
                                 val->val.net = v[i].val.net;                                  val->val.net = v[i].val.net;
                                 break;                                  break;
                           case data:
                                   /* WARNING:: remap data type to buffer */
                                   val->val_type = buffer;
                         case buffer:                          case buffer:
                         case string:                          case string:
                                 if (AIT_LEN(val) > buflen - Limit) {                                  if (AIT_LEN(val) > buflen - Limit) {
Line 413  io_map2vars(u_char *buf, int buflen, int vnum, int zcp Line 445  io_map2vars(u_char *buf, int buflen, int vnum, int zcp
                                                 io_arrayDestroy(&vars);                                                  io_arrayDestroy(&vars);
                                                 return NULL;                                                  return NULL;
                                         } else                                          } else
                                                memcpy(val->val.buffer, data, AIT_LEN(val));                                                memcpy(val->val.buffer, dat, AIT_LEN(val));
                                 } else                                  } else
                                        val->val.buffer = data;                                        val->val.buffer = dat;
                                data += 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, "Error:: unsupported variable type=%d at element #%d ...\n", 

Removed from v.1.4.4.3  
changed lines
  Added in v.1.4.4.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>