afd: report EPERM+ERROR_DEVICE_FEATURE_NOT_SUPPORTED for non-afd sockets

This commit is contained in:
Bert Belder 2017-12-07 18:01:49 +01:00
parent 5b7ebc3b93
commit b5864f3a0f
2 changed files with 99 additions and 98 deletions

View File

@ -130,7 +130,7 @@ static ssize_t _afd_get_protocol_info(SOCKET socket,
/* Check if the protocol uses an msafd socket. */ /* Check if the protocol uses an msafd socket. */
if (id < 0) if (id < 0)
return_error(-1, ERROR_NOT_SUPPORTED); return_error(-1, ERROR_DEVICE_FEATURE_NOT_SUPPORTED);
return id; return id;
} }
@ -152,7 +152,7 @@ WEPOLL_INTERNAL ssize_t afd_get_protocol(SOCKET socket,
* not being an AFD socket. If so, attempt to fetch the underlying base * not being an AFD socket. If so, attempt to fetch the underlying base
* socket, then try again to obtain protocol information. */ * socket, then try again to obtain protocol information. */
DWORD error = GetLastError(); DWORD error = GetLastError();
if (error != ERROR_NOT_SUPPORTED) if (error != ERROR_DEVICE_FEATURE_NOT_SUPPORTED)
return -1; return -1;
afd_socket = _afd_get_base_socket(socket); afd_socket = _afd_get_base_socket(socket);

View File

@ -20,6 +20,7 @@
X(ERROR_CONNECTION_ACTIVE, EISCONN) \ X(ERROR_CONNECTION_ACTIVE, EISCONN) \
X(ERROR_CONNECTION_REFUSED, ECONNREFUSED) \ X(ERROR_CONNECTION_REFUSED, ECONNREFUSED) \
X(ERROR_CRC, EACCES) \ X(ERROR_CRC, EACCES) \
X(ERROR_DEVICE_FEATURE_NOT_SUPPORTED, EPERM) \
X(ERROR_DIR_NOT_EMPTY, ENOTEMPTY) \ X(ERROR_DIR_NOT_EMPTY, ENOTEMPTY) \
X(ERROR_DISK_FULL, ENOSPC) \ X(ERROR_DISK_FULL, ENOSPC) \
X(ERROR_DUP_NAME, EADDRINUSE) \ X(ERROR_DUP_NAME, EADDRINUSE) \
@ -51,7 +52,7 @@
X(ERROR_NOT_LOCKED, EACCES) \ X(ERROR_NOT_LOCKED, EACCES) \
X(ERROR_NOT_READY, EACCES) \ X(ERROR_NOT_READY, EACCES) \
X(ERROR_NOT_SAME_DEVICE, EXDEV) \ X(ERROR_NOT_SAME_DEVICE, EXDEV) \
X(ERROR_NOT_SUPPORTED, EPERM) \ X(ERROR_NOT_SUPPORTED, ENOTSUP) \
X(ERROR_NO_MORE_FILES, ENOENT) \ X(ERROR_NO_MORE_FILES, ENOENT) \
X(ERROR_NO_SYSTEM_RESOURCES, ENOMEM) \ X(ERROR_NO_SYSTEM_RESOURCES, ENOMEM) \
X(ERROR_OPERATION_ABORTED, EINTR) \ X(ERROR_OPERATION_ABORTED, EINTR) \