projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added member user for COMSTACK that is an opaque pointer for
[yaz-moved-to-github.git]
/
src
/
unix.c
diff --git
a/src/unix.c
b/src/unix.c
index
c38c205
..
c67b724
100644
(file)
--- a/
src/unix.c
+++ b/
src/unix.c
@@
-1,31
+1,46
@@
/*
/*
- * Copyright (c) 1995-2003, Index Data
+ * Copyright (C) 1995-2005, Index Data ApS
* See the file LICENSE for details.
*
* See the file LICENSE for details.
*
- * $Id: unix.c,v 1.2 2003-10-29 13:26:34 adam Exp $
+ * $Id: unix.c,v 1.11 2005-02-01 14:37:47 adam Exp $
* UNIX socket COMSTACK. By Morten Bøgeskov.
*/
* UNIX socket COMSTACK. By Morten Bøgeskov.
*/
+/**
+ * \file unix.c
+ * \brief Implements UNIX domain socket COMSTACK
+ */
+
#ifndef WIN32
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#ifndef WIN32
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
-#include <unistd.h>
#include <errno.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>
#include <fcntl.h>
#include <signal.h>
#include <grp.h>
+#if HAVE_PWD_H
#include <pwd.h>
#include <pwd.h>
-#include <sys/types.h>
+#endif
-#include <sys/socket.h>
+#if HAVE_SYS_STAT_H
#include <sys/stat.h>
#include <sys/stat.h>
+#endif
+#if HAVE_SYS_UN_H
#include <sys/un.h>
#include <sys/un.h>
+#endif
-#include <yaz/comstack.h>
#include <yaz/unix.h>
#include <yaz/unix.h>
-#include <yaz/log.h>
#include <yaz/nmem.h>
#ifndef YAZ_SOCKLEN_T
#include <yaz/nmem.h>
#ifndef YAZ_SOCKLEN_T
@@
-137,6
+152,7
@@
COMSTACK unix_type(int s, int blocking, int protocol, void *vp)
p->event = CS_NONE;
p->cerrno = 0;
p->stackerr = 0;
p->event = CS_NONE;
p->cerrno = 0;
p->stackerr = 0;
+ p->user = 0;
state->altbuf = 0;
state->altsize = state->altlen = 0;
state->altbuf = 0;
state->altsize = state->altlen = 0;
@@
-177,11
+193,11
@@
static void *unix_straddr(COMSTACK h, const char *str)
sp->uid = sp->gid = sp->umask = -1;
sp->uid = sp->gid = sp->umask = -1;
- if (eol = strchr(s, ','))
+ if ((eol = strchr(s, ',')))
{
do
{
{
do
{
- if (eol = strchr(s, ','))
+ if ((eol = strchr(s, ',')))
*eol++ = '\0';
if (sp->uid == -1 && strncmp(s, "user=", 5) == 0)
{
*eol++ = '\0';
if (sp->uid == -1 && strncmp(s, "user=", 5) == 0)
{
@@
-197,7
+213,7
@@
static void *unix_straddr(COMSTACK h, const char *str)
{
printf("No such user\n");
free(f);
{
printf("No such user\n");
free(f);
- return;
+ return 0;
}
sp->uid = pw->pw_uid;
}
}
sp->uid = pw->pw_uid;
}
@@
-216,7
+232,7
@@
static void *unix_straddr(COMSTACK h, const char *str)
{
printf("No such group\n");
free(f);
{
printf("No such group\n");
free(f);
- return;
+ return 0;
}
sp->gid = gr->gr_gid;
}
}
sp->gid = gr->gr_gid;
}
@@
-232,7
+248,7
@@
static void *unix_straddr(COMSTACK h, const char *str)
{
printf("Invalid umask\n");
free(f);
{
printf("Invalid umask\n");
free(f);
- return;
+ return 0;
}
}
else if (file == NULL && strncmp(s, "file=", 5) == 0)
}
}
else if (file == NULL && strncmp(s, "file=", 5) == 0)
@@
-244,9
+260,9
@@
static void *unix_straddr(COMSTACK h, const char *str)
{
printf("invalid or double argument: %s\n", s);
free(f);
{
printf("invalid or double argument: %s\n", s);
free(f);
- return;
+ return 0;
}
}
- } while(s = eol);
+ } while((s = eol));
}
else
{
}
else
{
@@
-343,9
+359,6
@@
static int unix_rcvconnect(COMSTACK h)
return 0;
}
return 0;
}
-#define CERTF "ztest.pem"
-#define KEYF "ztest.pem"
-
static int unix_bind(COMSTACK h, void *address, int mode)
{
unix_state *sp = (unix_state *)h->cprivate;
static int unix_bind(COMSTACK h, void *address, int mode)
{
unix_state *sp = (unix_state *)h->cprivate;
@@
-568,7
+581,7
@@
static int unix_get(COMSTACK h, char **buf, int *bufsize)
return -1;
}
else if (!res)
return -1;
}
else if (!res)
- return 0;
+ return hasread;
hasread += res;
}
TRC (fprintf (stderr, " Out of read loop with hasread=%d, berlen=%d\n",
hasread += res;
}
TRC (fprintf (stderr, " Out of read loop with hasread=%d, berlen=%d\n",
@@
-698,4
+711,4
@@
static int unix_set_blocking(COMSTACK p, int blocking)
p->blocking = blocking;
return 1;
}
p->blocking = blocking;
return 1;
}
-#endif
+#endif /* WIN32 */