[Pcsclite-cvs-commit] r6043 - /trunk/PCSC/src/winscard_msg_srv.c
rousseau at users.alioth.debian.org
rousseau at users.alioth.debian.org
Sat Oct 15 16:44:09 UTC 2011
Author: rousseau
Date: Sat Oct 15 16:44:08 2011
New Revision: 6043
URL: http://svn.debian.org/wsvn/pcsclite/?sc=1&rev=6043
Log:
InitializeSocket(): use a union for sockaddr structsas suggested by
systemd sample code at
http://0pointer.de/blog/projects/socket-activation.html
Modified:
trunk/PCSC/src/winscard_msg_srv.c
Modified: trunk/PCSC/src/winscard_msg_srv.c
URL: http://svn.debian.org/wsvn/pcsclite/trunk/PCSC/src/winscard_msg_srv.c?rev=6043&op=diff
==============================================================================
--- trunk/PCSC/src/winscard_msg_srv.c (original)
+++ trunk/PCSC/src/winscard_msg_srv.c Sat Oct 15 16:44:08 2011
@@ -98,7 +98,11 @@
*/
INTERNAL int32_t InitializeSocket(void)
{
- struct sockaddr_un serv_adr;
+ union
+ {
+ struct sockaddr sa;
+ struct sockaddr_un un;
+ } sa;
/*
* Create the common shared connection socket
@@ -110,13 +114,12 @@
return -1;
}
- serv_adr.sun_family = AF_UNIX;
- strncpy(serv_adr.sun_path, PCSCLITE_CSOCK_NAME,
- sizeof(serv_adr.sun_path));
+ memset(&sa, 0, sizeof sa);
+ sa.un.sun_family = AF_UNIX;
+ strncpy(sa.un.sun_path, PCSCLITE_CSOCK_NAME, sizeof sa.un.sun_path);
(void)remove(PCSCLITE_CSOCK_NAME);
- if (bind(commonSocket, (struct sockaddr *) &serv_adr,
- sizeof(serv_adr.sun_family) + strlen(serv_adr.sun_path) + 1) < 0)
+ if (bind(commonSocket, &sa.sa, sizeof sa) < 0)
{
Log2(PCSC_LOG_CRITICAL, "Unable to bind common socket: %s",
strerror(errno));
More information about the Pcsclite-cvs-commit
mailing list