Ignore:
Timestamp:
Jun 1, 2009, 10:51:27 AM (16 years ago)
Author:
Herwig Bauernfeind
Message:

Fixes for Tickets #69 and #71 (by diver) in 3.2 branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/samba-3.2.x/source/lib/system.c

    r232 r247  
    124124        do {
    125125                ret = read(fd, buf, count);
    126 #ifndef __OS2__
    127126        } while (ret == -1 && errno == EINTR);
    128 #else
    129 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */
    130         } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));
    131 #endif
    132127        return ret;
    133128}
     
    143138        do {
    144139                ret = write(fd, buf, count);
    145 #ifndef __OS2__
    146140        } while (ret == -1 && errno == EINTR);
    147 #else
    148 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */
    149         } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));
    150 #endif
    151141        return ret;
    152142}
     
    192182                ret = pread(fd, buf, count, off);
    193183#endif
    194 #ifndef __OS2__
    195184        } while (ret == -1 && errno == EINTR);
    196 #else
    197 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */
    198         } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));
    199 #endif
    200         return ret;
    201 }
    202 #endif
    203 
     185        return ret;
     186}
     187#endif
    204188/*******************************************************************
    205189A write wrapper that will deal with EINTR and 64-bit file offsets.
    206190********************************************************************/
    207 
    208191#if defined(HAVE_PWRITE) || defined(HAVE_PWRITE64)
    209192ssize_t sys_pwrite(int fd, const void *buf, size_t count, SMB_OFF_T off)
    210193{
    211194        ssize_t ret;
    212 
    213195        do {
    214196#if defined(HAVE_EXPLICIT_LARGEFILE_SUPPORT) && defined(HAVE_OFF64_T) && defined(HAVE_PWRITE64)
     
    217199                ret = pwrite(fd, buf, count, off);
    218200#endif
    219 #ifndef __OS2__
    220201        } while (ret == -1 && errno == EINTR);
    221 #else
    222 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */
    223         } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));
    224 #endif
    225         return ret;
    226 }
    227 #endif
    228 
     202        return ret;
     203}
     204#endif
    229205/*******************************************************************
    230206A send wrapper that will deal with EINTR.
    231207********************************************************************/
    232 
    233208ssize_t sys_send(int s, const void *msg, size_t len, int flags)
    234209{
    235210        ssize_t ret;
    236 
    237211        do {
    238212                ret = send(s, msg, len, flags);
    239 #ifndef __OS2__
    240213        } while (ret == -1 && errno == EINTR);
    241 #else
    242 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */
    243         } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));
    244 #endif
    245         return ret;
    246 }
    247 
     214        return ret;
     215}
    248216/*******************************************************************
    249217A sendto wrapper that will deal with EINTR.
    250218********************************************************************/
    251 
    252219ssize_t sys_sendto(int s,  const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen)
    253220{
    254221        ssize_t ret;
    255 
    256222        do {
    257223                ret = sendto(s, msg, len, flags, to, tolen);
    258 #ifndef __OS2__
    259224        } while (ret == -1 && errno == EINTR);
    260 #else
    261 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */
    262         } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));
    263 #endif
    264         return ret;
    265 }
    266 
     225        return ret;
     226}
    267227/*******************************************************************
    268228A recv wrapper that will deal with EINTR.
    269229********************************************************************/
    270 
    271230ssize_t sys_recv(int fd, void *buf, size_t count, int flags)
    272231{
    273232        ssize_t ret;
    274 
    275233        do {
    276234                ret = recv(fd, buf, count, flags);
    277 #ifndef __OS2__
    278235        } while (ret == -1 && errno == EINTR);
    279 #else
    280 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */
    281         } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));
    282 #endif
    283236        return ret;
    284237}
     
    294247        do {
    295248                ret = recvfrom(s, buf, len, flags, from, fromlen);
    296 #ifndef __OS2__
    297249        } while (ret == -1 && errno == EINTR);
    298 #else
    299 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */
    300         } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));
    301 #endif
    302250        return ret;
    303251}
     
    313261        do {
    314262                ret = fcntl(fd, cmd, arg);
    315 #ifndef __OS2__
    316263        } while (ret == -1 && errno == EINTR);
    317 #else
    318 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */
    319         } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));
    320 #endif
    321264        return ret;
    322265}
     
    332275        do {
    333276                ret = fcntl(fd, cmd, arg);
    334 #ifndef __OS2__
    335277        } while (ret == -1 && errno == EINTR);
    336 #else
    337 /* On OS/2 - we randomly get 'Resource Temporarily Unavailable' errors - ignore these */
    338         } while (ret == -1 && ((errno == EINTR)||(errno == EAGAIN)));
    339 #endif
    340278        return ret;
    341279}
Note: See TracChangeset for help on using the changeset viewer.