increase buffer size for kernel reads
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index e2e25d4..59bb023 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -872,6 +872,13 @@
int nbytes;
struct rt_msghdr *rtm;
+ /*
+ * This must be big enough for any message the kernel might send.
+ * The code previously used RTAX_MAX struct sockaddrs in all cases,
+ * but now that sockaddrs are variable size, this doesn't work
+ * (Solaris has 244 bytes of sdl_data!). For now, add a struct
+ * sockaddr_dl to the case where it is used.
+ */
union
{
/* Routing information. */
@@ -885,7 +892,8 @@
struct
{
struct if_msghdr ifm;
- struct sockaddr addr[RTAX_MAX];
+ struct sockaddr_dl;
+ struct sockaddr addr[RTAX_MAX-1];
} im;
/* Interface address information. */