truk 2004/03/05 15:35:52 Modified: jk/native2/common jk_channel_un.c Log: Calculate length for bind() in a portable way that works for sockaddr_un structs with and without sun_len. Revision Changes Path 1.19 +7 -2 jakarta-tomcat-connectors/jk/native2/common/jk_channel_un.c Index: jk_channel_un.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_channel_un.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- jk_channel_un.c 24 Feb 2004 08:44:40 -0000 1.18 +++ jk_channel_un.c 5 Mar 2004 23:35:51 -0000 1.19 @@ -58,6 +58,12 @@ int listenSocket; } jk_channel_un_private_t; +#ifndef SUN_LEN +/* actual length of an initialized sockaddr_un */ +#define SUN_LEN(su) \ + (sizeof(*(su)) - sizeof((su)->sun_path) + strlen((su)->sun_path)) +#endif + static int JK_METHOD jk2_channel_un_close(jk_env_t *env, jk_channel_t *ch, jk_endpoint_t *endpoint); @@ -162,8 +168,7 @@ rc=bind(socketInfo->listenSocket, (struct sockaddr *)& socketInfo->unix_addr, - strlen( socketInfo->unix_addr.sun_path ) + - sizeof( socketInfo->unix_addr.sun_family) ); + SUN_LEN(&(socketInfo->unix_addr)) ); umask(omask); /* can't fail, so can't clobber errno */
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]