version 1.1.2.11, 2010/07/08 07:32:53
|
version 1.1.2.12, 2010/07/08 08:02:02
|
Line 71 inline int
|
Line 71 inline int
|
rpc_srv_blobMap(rpc_srv_t * __restrict srv, rpc_blob_t * __restrict blob) |
rpc_srv_blobMap(rpc_srv_t * __restrict srv, rpc_blob_t * __restrict blob) |
{ |
{ |
int f; |
int f; |
struct stat sb; |
|
char szFName[MAXPATHLEN]; |
char szFName[MAXPATHLEN]; |
|
|
if (!blob) { |
if (!blob) { |
Line 86 rpc_srv_blobMap(rpc_srv_t * __restrict srv, rpc_blob_t
|
Line 85 rpc_srv_blobMap(rpc_srv_t * __restrict srv, rpc_blob_t
|
LOGERR; |
LOGERR; |
return -1; |
return -1; |
} |
} |
if (fstat(f, &sb) == -1) { |
|
LOGERR; |
|
close(f); |
|
return -1; |
|
} |
|
|
|
blob->blob_data = mmap(NULL, sb.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, f, 0); | blob->blob_data = mmap(NULL, blob->blob_len, PROT_READ | PROT_WRITE, MAP_SHARED, f, 0); |
if (blob->blob_data == MAP_FAILED) { |
if (blob->blob_data == MAP_FAILED) { |
LOGERR; |
LOGERR; |
close(f); |
close(f); |
blob->blob_data = NULL; |
blob->blob_data = NULL; |
return -1; |
return -1; |
} else { |
} else { |
blob->blob_len = sb.st_size; |
|
close(f); |
close(f); |
|
|
madvise(blob->blob_data, sb.st_size, MADV_SEQUENTIAL); | madvise(blob->blob_data, blob->blob_len, MADV_SEQUENTIAL); |
} |
} |
|
|
return 0; |
return 0; |
Line 121 rpc_srv_blobUnmap(rpc_blob_t * __restrict blob)
|
Line 114 rpc_srv_blobUnmap(rpc_blob_t * __restrict blob)
|
else { |
else { |
munmap(blob->blob_data, blob->blob_len); |
munmap(blob->blob_data, blob->blob_len); |
blob->blob_data = NULL; |
blob->blob_data = NULL; |
blob->blob_len = 0; |
|
} |
} |
} |
} |
|
|
Line 342 rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
Line 334 rpc_cli_recvBLOB(rpc_cli_t * __restrict cli, rpc_val_t
|
return -1; |
return -1; |
} |
} |
} |
} |
printf("get all bytes ret=%d *data=%s", ret, *data); |
|
|
|
FD_ZERO(&fds); |
FD_ZERO(&fds); |
FD_SET(cli->cli_sock, &fds); |
FD_SET(cli->cli_sock, &fds); |