- We don't need 64 bit size_t for a name
- We don't need 64 reserved bits client to server; if we ever need more
than 31, we'll just add another field and use the last bit as a marker
to say that the other field is available.
magic = ntohll(magic);
if(name) {
uint32_t opt;
magic = ntohll(magic);
if(name) {
uint32_t opt;
- uint64_t namesize;
- uint64_t reserved = 0;
+ uint32_t namesize;
+ uint32_t reserved = 0;
if (magic != opts_magic)
err("Not enough opts_magic");
if (magic != opts_magic)
err("Not enough opts_magic");
write(sock, &reserved, sizeof(reserved));
/* Write the export name that we're after */
write(sock, &reserved, sizeof(reserved));
/* Write the export name that we're after */
- magic = ntohll(cliserv_magic);
+ magic = ntohll(opts_magic);
write(sock, &magic, sizeof(magic));
opt = ntohl(NBD_OPT_EXPORT_NAME);
write(sock, &opt, sizeof(opt));
write(sock, &magic, sizeof(magic));
opt = ntohl(NBD_OPT_EXPORT_NAME);
write(sock, &opt, sizeof(opt));
- namesize = (u64)strlen(name);
- namesize = ntohll(namesize);
+ namesize = (u32)strlen(name);
+ namesize = ntohl(namesize);
write(sock, &namesize, sizeof(namesize));
write(sock, name, strlen(name));
} else {
write(sock, &namesize, sizeof(namesize));
write(sock, name, strlen(name));
} else {
read(net, &reserved, sizeof(reserved));
read(net, &magic, sizeof(magic));
magic = ntohll(magic);
read(net, &reserved, sizeof(reserved));
read(net, &magic, sizeof(magic));
magic = ntohll(magic);
- if(magic != cliserv_magic) {
+ if(magic != opts_magic) {
close(net);
return NULL;
}
close(net);
return NULL;
}
return NULL;
}
read(net, &namelen, sizeof(namelen));
return NULL;
}
read(net, &namelen, sizeof(namelen));
- namelen = ntohll(namelen);
+ namelen = ntohl(namelen);
name = malloc(namelen+1);
name[namelen+1]=0;
read(net, name, namelen);
name = malloc(namelen+1);
name[namelen+1]=0;
read(net, name, namelen);