+ if ((ret = accept (socket->priv->fd, NULL, 0)) < 0)
+ {
+ if (errno == EAGAIN)
+ return TRUE;
+
+ result = g_simple_async_result_new_error (G_OBJECT (socket), data->callback, data->user_data, G_IO_ERROR, g_io_error_from_errno (errno), "error accepting connection");
+ }
+ else
+ {
+ result = g_simple_async_result_new (G_OBJECT (socket), data->callback, data->user_data, g_socket_accept_async);
+
+ g_simple_async_result_set_op_res_gpointer (result, g_socket_new_from_fd (ret), g_object_unref);
+ }
+ g_simple_async_result_complete (result);
+
+ g_object_unref (result);