Beispiel #1
0
int
pdfout_data_cmp (fz_context *ctx, pdfout_data *x, pdfout_data *y)
{
  if (x->type != y->type)
    return 1;
  if (x->type == ARRAY)
    return cmp_array (ctx, x, y);
  else if (x->type == HASH)
    return cmp_hash (ctx, x, y);

  data_scalar *a = to_scalar (ctx, x);
  data_scalar *b = to_scalar (ctx, y); 

  if (a->len == b->len && memcmp (a->value, b->value, a->len) == 0)
    return 0;
  else
    return 1;
}
Beispiel #2
0
/**
 * Recvs next frame from socket
 */
static bool get_frame(int sock, network_data_t * nd) {

	char buffer[FRAME_SIZE+1];

	int r = read_raw(sock,buffer,FRAME_SIZE, 0, &nd->addr);
	if(r != FRAME_SIZE) {
		fprintf(stderr,"Invalid frame size recived\n");
		nd->invalidate();
		return false;
	}
	if(cmp_hash(buffer,buffer+HASH_SIZE,PAYLOAD_SIZE)) {
		memcpy(nd->data,buffer+HASH_SIZE,PAYLOAD_SIZE);
		return true;
	} else {
		fprintf(stderr,"Incorrect hash for frame.\n");
		nd->invalidate();
		return false; 
	}
}