From c110aa422b3e03233b23e5d4ec42ba071b6f7007 Mon Sep 17 00:00:00 2001 From: Philippe Houdoin Date: Sat, 3 Jan 2004 18:18:06 +0000 Subject: [PATCH] Add a work-in-progress document about R5 binary compatibility issue(s). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5887 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- docs/develop/net/r5_compatibility.html | 98 ++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 docs/develop/net/r5_compatibility.html diff --git a/docs/develop/net/r5_compatibility.html b/docs/develop/net/r5_compatibility.html new file mode 100644 index 0000000000..db3fd70758 --- /dev/null +++ b/docs/develop/net/r5_compatibility.html @@ -0,0 +1,98 @@ + + + + +OpenBeOS Network Kit + + + + + +

OpenBeOS Network Kit: R5 compatibility

+ +

Unfortunatly, R5 and sooner (net_server based) network stack development header file (/develop/headers/be/net/socket.h) definition of +network structures and constantes are not BSD standard ones.
+BONE, otherwise, try to follow at best these standards definitions which, +in turn, break binary compatibility with R5 network apps compiled for R5 network stack.
+Hence why you needs to link against libsocket.so, libbind.so and libbnetapi.so BONE apps instead of +R5 libnet.so and libnetapi.so libraries... +

+

So, here we are. By design, we must: +

+

+ +

Network definitions differences: +

+

+ + + +
ItemR5 stackBONE stackOpenBeOS stack + +
socket.h header file +be/net/socket.h +be/bone/sys/socket.h +posix/sys/socket.h + +
SOCK_DGRAM12idem as BONE +
SOCK_STREAM21idem as BONE +
SOCK_RAWnot defined3idem as BONE +
SOCK_MISCnot defined255idem as BONE + +
SOL_SOCKET10xffffffffidem as BONE +
SO_DEBUG10x00000004idem as BONE +
SO_REUSEADDR20x00000040idem as BONE +
SO_NONBLOCK3SO_NONBLOCKidem as BONE + +
sockaddr +struct sockaddr {
+  unsigned short sa_family;
+  char sa_data[10];
+};
+
struct sockaddr {
+  uint8 sa_len;
+  uint8 sa_family;
+  uint8 sa_data[30];
+};
+
idem as BONE + +
shutdown() +not defineddefinedidem as BONE + + +
in.h header file +be/net/netinet/in.h, which in turn include
+be/net/socket.h +
be/bone/netinet/in.h +posix/netinet/in.h + +
+

+ +
+ +
Philippe Houdoin, January 2nd, 2004
+ + +