+ if(name) {
+ uint32_t opt;
+ uint64_t namesize;
+ uint64_t reserved = 0;
+
+ if(read(sock, &tmp, sizeof(uint16_t)) < 0) {
+ err("Failed reading flags: %m");
+ }
+ *flags = ((u32)ntohs(tmp)) << 16;
+
+ /* reserved for future use*/
+ write(sock, &reserved, sizeof(reserved));
+
+ /* Write the export name that we're after */
+ magic = ntohll(cliserv_magic);
+ write(sock, &magic, sizeof(magic));
+ opt = ntohl(NBD_OPT_EXPORT_NAME);
+ write(sock, &opt, sizeof(opt));
+ namesize = (u64)strlen(name);
+ namesize = ntohll(namesize);
+ write(sock, &namesize, sizeof(namesize));
+ write(sock, name, strlen(name));
+ }