On 04/18/2012 02:25 PM, Paolo Bonzini wrote: > Il 18/04/2012 08:51, Orit Wasserman ha scritto: >> On 04/17/2012 05:54 PM, Amos Kong wrote: >>> Add five new qerror strings, they are about socket: >>> QERR_SOCKET_CONNECT_IN_PROGRESS >>> QERR_SOCKET_CONNECT_FAILED >>> QERR_SOCKET_LISTEN_FAILED >>> QERR_SOCKET_BIND_FAILED >>> QERR_SOCKET_CREATE_FAILED >>> >>> Signed-off-by: Amos Kong <ak...@redhat.com> >>> --- >>> qerror.c | 20 ++++++++++++++++++++ >>> qerror.h | 15 +++++++++++++++ >>> 2 files changed, 35 insertions(+), 0 deletions(-) >>> >>> diff --git a/qerror.c b/qerror.c >>> index 96fbe71..7afe1ac 100644 >>> --- a/qerror.c >>> +++ b/qerror.c >>> @@ -304,6 +304,26 @@ static const QErrorStringTable qerror_table[] = { >>> .error_fmt = QERR_VNC_SERVER_FAILED, >>> .desc = "Could not start VNC server on %(target)", >>> }, >>> + { >>> + .error_fmt = QERR_SOCKET_CONNECT_IN_PROGRESS, >>> + .desc = "Connection cannot be completed immediately", >>> + }, >>> + { >>> + .error_fmt = QERR_SOCKET_CONNECT_FAILED, >>> + .desc = "Fail to connect socket", >>> + }, >>> + { >>> + .error_fmt = QERR_SOCKET_LISTEN_FAILED, >>> + .desc = "Fail to listen socket", >>> + }, >>> + { >>> + .error_fmt = QERR_SOCKET_BIND_FAILED, >>> + .desc = "Fail to bind socket", >>> + }, >>> + { >>> + .error_fmt = QERR_SOCKET_CREATE_FAILED, >>> + .desc = "Fail to create socket", >>> + }, >>> {} >>> }; >>> >>> diff --git a/qerror.h b/qerror.h >>> index 5c23c1f..4cbba48 100644 >>> --- a/qerror.h >>> +++ b/qerror.h >>> @@ -248,4 +248,19 @@ QError *qobject_to_qerror(const QObject *obj); >>> #define QERR_VNC_SERVER_FAILED \ >>> "{ 'class': 'VNCServerFailed', 'data': { 'target': %s } }" >>> >>> +#define QERR_SOCKET_CONNECT_IN_PROGRESS \ >>> + "{ 'class': 'SockConnectInprogress', 'data': {} }" >>> + >>> +#define QERR_SOCKET_CONNECT_FAILED \ >>> + "{ 'class': 'SockConnectFailed', 'data': {} }" >>> + >>> +#define QERR_SOCKET_LISTEN_FAILED \ >>> + "{ 'class': 'SockListenFailed', 'data': {} }" >>> + >>> +#define QERR_SOCKET_BIND_FAILED \ >>> + "{ 'class': 'SockBindFailed', 'data': {} }" >>> + >>> +#define QERR_SOCKET_CREATE_FAILED \ >>> + "{ 'class': 'SockCreateFailed', 'data': {} }" >> >> For the FAILED error we will probably need more data , how about adding a >> string >> that can contain the strerror string ? > > This was nack-ed in the past, and the numeric errno values are not > portable. However, as a follow up we could add a QAPI-specific enum > (QEMU_ERRNO_EACCES, QEMU_ERRNO_ECONNREFUSED, etc.) and convert errno > values to it. >
I agree, it can be handled later. Migration error messages are very cryptic and we need to make them more user friendly in general.