MINOR: fd: add fd_want_recv_safe()

This does the same as fd_want_recv() except that it does check for
fd_updt[] to be allocated, as this may be called during early listener
initialization. Previously we used to check fd_updt[] before calling
fd_want_recv() but this is not correct since it does not update the
FD flags. This method will be safer.
diff --git a/include/haproxy/fd.h b/include/haproxy/fd.h
index 5300fd4..9492c3e 100644
--- a/include/haproxy/fd.h
+++ b/include/haproxy/fd.h
@@ -288,6 +288,18 @@
 	updt_fd_polling(fd);
 }
 
+/* Prepare FD <fd> to try to receive, and only create update if fd_updt exists
+ * (essentially for receivers during early boot).
+ */
+static inline void fd_want_recv_safe(int fd)
+{
+	if ((fdtab[fd].state & FD_EV_ACTIVE_R) ||
+	    HA_ATOMIC_BTS(&fdtab[fd].state, FD_EV_ACTIVE_R_BIT))
+		return;
+	if (fd_updt)
+		updt_fd_polling(fd);
+}
+
 /* Prepare FD <fd> to try to send */
 static inline void fd_want_send(int fd)
 {