Changeset 1002 for branches/client-3.0/src/ndpsmb.c
- Timestamp:
- Dec 30, 2016, 5:22:31 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/client-3.0/src/ndpsmb.c
r1000 r1002 2218 2218 } 2219 2219 2220 #define NDPSMB_READ_MAX_SIZE (65536 - 4096)2221 //TODO simplify this code2222 2220 int APIENTRY NdpFileRead (HCONNECTION conn, NDFILEHANDLE handle, void *pBuffer, ULONG ulRead, ULONG *pulActual) 2223 2221 { … … 2225 2223 Resource *pRes = pConn->pRes; 2226 2224 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) 2264 2234 { 2265 2235 rc = NO_ERROR; /* Still were able to read some data. */ … … 2268 2238 if (rc == NO_ERROR) 2269 2239 { 2270 *pulActual = ul ReadCompleted;2240 *pulActual = ulActual; 2271 2241 } 2272 2242
Note:
See TracChangeset
for help on using the changeset viewer.