Ignore:
Timestamp:
Dec 30, 2016, 5:22:31 AM (9 years ago)
Author:
Paul Smedley
Message:

Simplify NdpFileRead code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/client-3.0/src/ndpsmb.c

    r1000 r1002  
    22182218}
    22192219
    2220 #define NDPSMB_READ_MAX_SIZE (65536 - 4096)
    2221 //TODO simplify this code
    22222220int APIENTRY NdpFileRead (HCONNECTION conn, NDFILEHANDLE handle, void *pBuffer, ULONG ulRead, ULONG *pulActual)
    22232221{
     
    22252223        Resource *pRes = pConn->pRes;
    22262224        int rc = 0;
    2227         unsigned long done = 0;
    2228         unsigned long onedone;
    2229         unsigned long action;
    2230         ULONG ulReadCompleted = 0;
    2231 
    2232         ENTER();
    2233 
    2234         debuglocal(9,"NdpFileRead in [%p]\n", pConn);
    2235 
    2236         do {
    2237                 if (pConn->file.fd < 0)
    2238                 {
    2239                         rc = ERROR_INVALID_HANDLE;
    2240                         break;
    2241                 }
    2242                 while (ulReadCompleted < ulRead)
    2243                 {
    2244                         ULONG ulActual;
    2245                         ULONG ulToRead = ulRead - ulReadCompleted;
    2246                         debuglocal(9,"NdpFileRead completed %d, to read %d\n", ulReadCompleted, ulToRead);
    2247                         if (ulToRead > NDPSMB_READ_MAX_SIZE)
    2248                         {
    2249                                 ulToRead = NDPSMB_READ_MAX_SIZE;
    2250                         }
    2251                         rc = smbwrp_read(pConn->cli, &pConn->file, (char *)pBuffer + ulReadCompleted, ulToRead, &ulActual);
    2252                         if (ulActual == 0 || rc != NO_ERROR)
    2253                         {
    2254                                 break;
    2255                         }
    2256                         ulReadCompleted += ulActual;
    2257                 }
    2258                 //*pulActual = ulRead;
    2259                 //DosSleep(0);
    2260 
    2261         } while (0);
    2262 
    2263         if (ulReadCompleted > 0)
     2225
     2226        ENTER();
     2227
     2228        debuglocal(9,"NdpFileRead in [%p], ulRead = %d\n", pConn, ulRead);
     2229
     2230        ULONG ulActual;
     2231        rc = smbwrp_read(pConn->cli, &pConn->file, (char *)pBuffer, ulRead, &ulActual);
     2232
     2233        if (ulActual > 0)
    22642234        {
    22652235                rc = NO_ERROR; /* Still were able to read some data. */
     
    22682238        if (rc == NO_ERROR)
    22692239        {
    2270                 *pulActual = ulReadCompleted;
     2240                *pulActual = ulActual;
    22712241        }
    22722242
Note: See TracChangeset for help on using the changeset viewer.