* Fix htonl call to say htonll instead (lesson: test network-using software on
at least one little endian architecture :-)
bin_PROGRAMS = nbd-server
EXTRA_PROGRAMS = nbd-client
bin_PROGRAMS = nbd-server
EXTRA_PROGRAMS = nbd-client
+noinst_PROGRAMS = nbd-tester-client
nbd_client_SOURCES = nbd-client.c cliserv.h
nbd_server_SOURCES = nbd-server.c cliserv.h
nbd_client_SOURCES = nbd-client.c cliserv.h
nbd_server_SOURCES = nbd-server.c cliserv.h
+nbd_tester_client_SOURCES = nbd-tester-client.c cliserv.h
nbd_server_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@
nbd_server_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@
-nbd_server_LDADD = @GLIB_LIBS@
+nbd_tester_client_CFLAGS = @CFLAGS@ @GLIB_CFLAGS@
+nbd_tester_client_LDADD = @GLIB_LIBS@
man_MANS = nbd-server.1 nbd-client.8
EXTRA_DIST = nbd-client.8.sgml nbd-server.1.sgml gznbd winnbd lfs.h nbd-client.8 nbd-server.1
MAINTAINERCLEANFILES = nbd-client.8 nbd-server.1
man_MANS = nbd-server.1 nbd-client.8
EXTRA_DIST = nbd-client.8.sgml nbd-server.1.sgml gznbd winnbd lfs.h nbd-client.8 nbd-server.1
MAINTAINERCLEANFILES = nbd-client.8 nbd-server.1
inline int read_all(int f, void *buf, size_t len) {
ssize_t res;
inline int read_all(int f, void *buf, size_t len) {
ssize_t res;
while(len>0) {
if((res=read(f, buf, len)) <=0) {
snprintf(errstr, errstr_len, "Read failed: %s", strerror(errno));
while(len>0) {
if((res=read(f, buf, len)) <=0) {
snprintf(errstr, errstr_len, "Read failed: %s", strerror(errno));
}
int setup_connection(gchar *hostname, int port, CONNECTION_TYPE ctype) {
}
int setup_connection(gchar *hostname, int port, CONNECTION_TYPE ctype) {
snprintf(errstr, errstr_len, "Could not read from socket: %s", strerror(errno));
goto err_open;
}
snprintf(errstr, errstr_len, "Could not read from socket: %s", strerror(errno));
goto err_open;
}
- read_all(sock,&buf,128);
if(tmp==0) {
retval=-1;
snprintf(errstr, errstr_len, "Server closed connection unexpectedly when trying to read size of device in throughput test");
goto err;
}
if(tmp==0) {
retval=-1;
snprintf(errstr, errstr_len, "Server closed connection unexpectedly when trying to read size of device in throughput test");
goto err;
}
+ read_all(sock,&buf,128);
size=ntohll(size);
req.magic=htonl(NBD_REQUEST_MAGIC);
req.type=htonl(NBD_CMD_READ);
size=ntohll(size);
req.magic=htonl(NBD_REQUEST_MAGIC);
req.type=htonl(NBD_CMD_READ);
for(i=0;i+1024<=size;i+=1024) {
if(do_write) {
*((u64*)req.handle)=i;
for(i=0;i+1024<=size;i+=1024) {
if(do_write) {
*((u64*)req.handle)=i;
write(sock, &req, sizeof(req));
printf("Requests(+): %d\n", ++requests);
}
write(sock, &req, sizeof(req));
printf("Requests(+): %d\n", ++requests);
}
if(FD_ISSET(sock, &set)) {
/* Okay, there's something ready for
* reading here */
if(FD_ISSET(sock, &set)) {
/* Okay, there's something ready for
* reading here */
- read_packet_check_header(sock, 1024, i);
+ if(read_packet_check_header(sock, 1024, i)<0) {
+ retval=-1;
+ goto err_open;
+ }
printf("Requests(-): %d\n", --requests);
}
} while FD_ISSET(sock, &set);
printf("Requests(-): %d\n", --requests);
}
} while FD_ISSET(sock, &set);