/*
- * Copyright (c) 1995-2004, Index Data
+ * Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
- * $Id: unix.c,v 1.6 2004-10-15 00:19:01 adam Exp $
+ * $Id: unix.c,v 1.12 2005-02-04 13:28:47 adam Exp $
* UNIX socket COMSTACK. By Morten Bøgeskov.
*/
/**
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#include <unistd.h>
#include <errno.h>
+#if HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#if HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
#include <fcntl.h>
#include <signal.h>
#include <grp.h>
+#if HAVE_PWD_H
#include <pwd.h>
-#include <sys/types.h>
+#endif
-#include <sys/socket.h>
+#if HAVE_SYS_STAT_H
#include <sys/stat.h>
+#endif
+#if HAVE_SYS_UN_H
#include <sys/un.h>
+#endif
-#include <yaz/comstack.h>
#include <yaz/unix.h>
-#include <yaz/log.h>
#include <yaz/nmem.h>
#ifndef YAZ_SOCKLEN_T
p->event = CS_NONE;
p->cerrno = 0;
p->stackerr = 0;
+ p->user = 0;
state->altbuf = 0;
state->altsize = state->altlen = 0;
r = connect(h->iofile, (struct sockaddr *) add, SUN_LEN(add));
if (r < 0)
{
- if (yaz_errno() == EINPROGRESS)
+ if (yaz_errno() == EINPROGRESS || yaz_errno() == EAGAIN)
{
h->event = CS_CONNECT;
h->state = CS_ST_CONNECTING;
- h->io_pending = CS_WANT_WRITE|CS_WANT_READ;
+ h->io_pending = CS_WANT_WRITE;
return 1;
}
h->cerrno = CSYSERR;
p->blocking = blocking;
return 1;
}
-#endif
+#endif /* WIN32 */