Changeset 232 for branches/samba-3.2.x/source/libsmb/clientgen.c
- Timestamp:
- May 27, 2009, 9:09:42 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.2.x/source/libsmb/clientgen.c
r141 r232 316 316 size_t len = SVAL(cli->outbuf,smb_vwv11) + 4; 317 317 size_t nwritten=0; 318 s size_t ret;318 struct iovec iov[2]; 319 319 320 320 /* fd == -1 causes segfaults -- Tom (tom@ninja.nl) */ … … 328 328 } 329 329 330 while (nwritten < len) { 331 ret = write_socket(cli->fd,cli->outbuf+nwritten,len - nwritten); 332 if (ret <= 0) { 333 close(cli->fd); 334 cli->fd = -1; 335 cli->smb_rw_error = SMB_WRITE_ERROR; 336 DEBUG(0,("Error writing %d bytes to client. %d (%s)\n", 337 (int)len,(int)ret, strerror(errno) )); 338 return false; 339 } 340 nwritten += ret; 341 } 342 343 /* Now write the extra data. */ 344 nwritten=0; 345 while (nwritten < extradata) { 346 ret = write_socket(cli->fd,p+nwritten,extradata - nwritten); 347 if (ret <= 0) { 348 close(cli->fd); 349 cli->fd = -1; 350 cli->smb_rw_error = SMB_WRITE_ERROR; 351 DEBUG(0,("Error writing %d extradata " 352 "bytes to client. %d (%s)\n", 353 (int)extradata,(int)ret, strerror(errno) )); 354 return false; 355 } 356 nwritten += ret; 330 iov[0].iov_base = cli->outbuf; 331 iov[0].iov_len = len; 332 iov[1].iov_base = CONST_DISCARD(char *, p); 333 iov[1].iov_len = extradata; 334 335 nwritten = write_data_iov(cli->fd, iov, 2); 336 if (nwritten < (len + extradata)) { 337 close(cli->fd); 338 cli->fd = -1; 339 cli->smb_rw_error = SMB_WRITE_ERROR; 340 DEBUG(0,("Error writing %d bytes to client. (%s)\n", 341 (int)(len+extradata), strerror(errno))); 342 return false; 357 343 } 358 344
Note:
See TracChangeset
for help on using the changeset viewer.