WsSockDereference(Socket);
/* Return Provider Value */
- if (Status == ERROR_SUCCESS) return Status;
+ if (Status == ERROR_SUCCESS)
+ {
+ SetLastError(ErrorCode);
+ return Status;
+ }
/* If everything seemed fine, then the WSP call failed itself */
if (ErrorCode == NO_ERROR) ErrorCode = WSASYSCALLFAILURE;
WsSockDereference(Socket);
/* Return success if everything is OK */
- if (ErrorCode == ERROR_SUCCESS) return ErrorCode;
+ if (ErrorCode == ERROR_SUCCESS)
+ {
+ SetLastError(ErrorCode);
+ return ErrorCode;
+ }
}
}
else
}
/* Return */
+ SetLastError(ErrorCode);
return Status;
}
}
}
/* Return */
+ SetLastError(ErrorCode);
return Status;
}
}
{
/* Add an API reference and return */
WsSockAddApiReference(Status);
+ SetLastError(ErrorCode);
return Status;
}
}