42
42
/* read timeout is 60 seconds because looking up stuff may take some time
43
43
write timeout is 10 secods because nslcd could be loaded with requests */
44
#define READ_TIMEOUT 60*1000
45
#define WRITE_TIMEOUT 10*1000
44
#define READ_TIMEOUT 60 * 1000
45
#define WRITE_TIMEOUT 10 * 1000
47
47
/* buffer sizes for I/O */
48
48
#define READBUFFER_MINSIZE 1024
49
#define READBUFFER_MAXSIZE 2*1024*1024
49
#define READBUFFER_MAXSIZE 2 * 1024 * 1024
50
50
#define WRITEBUFFER_MINSIZE 32
51
51
#define WRITEBUFFER_MAXSIZE 32
67
67
/* create a socket */
68
if ( (sock=socket(PF_UNIX,SOCK_STREAM,0))<0 )
68
if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
70
70
/* create socket address structure */
71
memset(&addr,0,sizeof(struct sockaddr_un));
72
addr.sun_family=AF_UNIX;
73
strncpy(addr.sun_path,NSLCD_SOCKET,sizeof(addr.sun_path));
74
addr.sun_path[sizeof(addr.sun_path)-1]='\0';
71
memset(&addr, 0, sizeof(struct sockaddr_un));
72
addr.sun_family = AF_UNIX;
73
strncpy(addr.sun_path, NSLCD_SOCKET, sizeof(addr.sun_path));
74
addr.sun_path[sizeof(addr.sun_path) - 1] = '\0';
75
75
/* close the file descriptor on exec (ignore errors) */
76
flags=fcntl(sock,F_GETFL);
78
(void)fcntl(sock,F_SETFD,flags|FD_CLOEXEC);
76
flags = fcntl(sock, F_GETFL);
78
(void)fcntl(sock, F_SETFD, flags | FD_CLOEXEC);
79
79
/* connect to the socket */
80
if (connect(sock,(struct sockaddr *)&addr,SUN_LEN(&addr))<0)
80
if (connect(sock, (struct sockaddr *)&addr, SUN_LEN(&addr)) < 0)
85
85
/* create a stream object */
86
if ((fp=tio_fdopen(sock,READ_TIMEOUT,WRITE_TIMEOUT,
87
READBUFFER_MINSIZE,READBUFFER_MAXSIZE,
88
WRITEBUFFER_MINSIZE,WRITEBUFFER_MAXSIZE))==NULL)
86
if ((fp = tio_fdopen(sock, READ_TIMEOUT, WRITE_TIMEOUT,
87
READBUFFER_MINSIZE, READBUFFER_MAXSIZE,
88
WRITEBUFFER_MINSIZE, WRITEBUFFER_MAXSIZE)) == NULL)