BUG/MEDIUM: lua/socket: Notification error

Each time the send function yields, a notification must be registered.
Without this notification, the task is never wakeup when data arrives.

Today, the notification is registered only if the buffer is not available.
Other cases like the buffer is too small for all data are not processed.

This patch must be backported in 1.6, 1.7 and 1.8
diff --git a/src/hlua.c b/src/hlua.c
index 48de5cb..5d49d3c 100644
--- a/src/hlua.c
+++ b/src/hlua.c
@@ -1956,10 +1956,6 @@
 	/* Check for avalaible space. */
 	len = buffer_total_space(s->req.buf);
 	if (len <= 0) {
-		if (!notification_new(&hlua->com, &appctx->ctx.hlua_cosocket.wake_on_write, hlua->task)) {
-			xref_unlock(&socket->xref, peer);
-			WILL_LJMP(luaL_error(L, "out of memory"));
-		}
 		goto hlua_socket_write_yield_return;
 	}
 
@@ -2002,6 +1998,10 @@
 	}
 
 hlua_socket_write_yield_return:
+	if (!notification_new(&hlua->com, &appctx->ctx.hlua_cosocket.wake_on_write, hlua->task)) {
+		xref_unlock(&socket->xref, peer);
+		WILL_LJMP(luaL_error(L, "out of memory"));
+	}
 	xref_unlock(&socket->xref, peer);
 	WILL_LJMP(hlua_yieldk(L, 0, 0, hlua_socket_write_yield, TICK_ETERNITY, 0));
 	return 0;