Submitted By: Alexander E. Patrakov (semzx at newmail dot ru)
Origin: Alexander E. Patrakov
Date: 2003-11-27
Initial Package Version: 2.4.7-now-ss020116-try
Description: Fixes compilation problem with newer kernels (>=2.4.22)
The inserted declarations and definitions match those in linux 2.4.22.
Before using this patch with other kernel versions, please view
/usr/src/linux/include/linux/socket.h
and make sure that structures and definitions in this patch
match those in that header.

diff -ur iproute2/include-glibc/glibc-bugs.h iproute2-fixed/include-glibc/glibc-bugs.h
--- iproute2/include-glibc/glibc-bugs.h	2000-10-11 00:12:59.000000000 +0600
+++ iproute2-fixed/include-glibc/glibc-bugs.h	2003-11-27 19:17:32.000000000 +0500
@@ -14,6 +14,22 @@
 
 typedef __u16 in_port_t;
 typedef __u32 in_addr_t;
+typedef unsigned short  sa_family_t;
+#define _SS_MAXSIZE     128     /* Implementation specific max size */
+#define _SS_ALIGNSIZE   (__alignof__ (struct sockaddr *))
+                                /* Implementation specific desired alignment */
+
+
+struct sockaddr_storage {
+        sa_family_t     ss_family;              /* address family */
+        /* Following field(s) are implementation specific */
+        char            __data[_SS_MAXSIZE - sizeof(sa_family_t)];
+                                /* space to achieve desired size, */
+                                /* _SS_MAXSIZE value minus size of ss_family */
+} __attribute__ ((aligned(_SS_ALIGNSIZE)));     /* force desired alignment */
+
+
+
 
 #endif
 
