- num = unpack_Address( & addr, buf->buf, buf->size );
- if( num > 0 ) {
- addrEnt = addr.entry;
- attrib = buf->attrib;
- unique_id = buf->unique_id;
- cat_id = attrib & 0x0F;
+#if (PILOT_LINK_MAJOR < 12)
+ num = unpack_Address(&addr, buf->buf, buf->size);
+ if (num <= 0) {
+ return;
+ }
+#else /* PILOT_LINK_0_12 */
+ RecordBuffer = pi_buffer_new(buf->size);
+ memcpy(RecordBuffer->data, buf->buf, buf->size);
+ RecordBuffer->used = buf->size;
+ if (unpack_Address(&addr, RecordBuffer, address_v1) == -1) {
+ pi_buffer_free(RecordBuffer);
+ return;
+ }
+ pi_buffer_free(RecordBuffer);
+#endif
+ addrEnt = addr.entry;
+ attrib = buf->attrib;
+ unique_id = buf->unique_id;
+ cat_id = attrib & 0x0F;