/*
- * Copyright (c) 1995, Index Data.
+ * Copyright (c) 1995-1998, Index Data.
*
* Permission to use, copy, modify, distribute, and sell this software and
* its documentation, in whole or in part, for any purpose, is hereby granted,
* OF THIS SOFTWARE.
*
* $Log: comstack.h,v $
- * Revision 1.19 1997-09-29 07:16:14 adam
+ * Revision 1.22 1998-06-22 11:32:37 adam
+ * Added 'conditional cs_listen' feature.
+ *
+ * Revision 1.21 1998/05/20 09:52:39 adam
+ * Removed 'dead' definition.
+ *
+ * Revision 1.20 1998/05/18 13:06:55 adam
+ * Changed the way attribute sets are handled by the retriaval module.
+ * Extended Explain conversion / schema.
+ * Modified server and client to work with ASN.1 compiled protocol handlers.
+ *
+ * Revision 1.19 1997/09/29 07:16:14 adam
* Array cs_errlist no longer global.
*
* Revision 1.18 1997/09/17 12:10:31 adam
#define CS_LISTEN 3
#define CS_DATA 4
enum oid_proto protocol; /* what application protocol are we talking? */
- int (*f_look)(COMSTACK handle);
int (*f_put)(COMSTACK handle, char *buf, int size);
int (*f_get)(COMSTACK handle, char **buf, int *bufsize);
int (*f_more)(COMSTACK handle);
int (*f_bind)(COMSTACK handle, void *address, int mode);
#define CS_CLIENT 0
#define CS_SERVER 1
- int (*f_listen)(COMSTACK handle, char *addrp, int *addrlen);
+ int (*f_listen)(COMSTACK h, char *raddr, int *addrlen,
+ int (*check_ip)(void *cd, const char *a, int len, int type),
+ void *cd);
COMSTACK (*f_accept)(COMSTACK handle);
int (*f_close)(COMSTACK handle);
char *(*f_addrstr)(COMSTACK handle);
#define cs_connect(handle, address) ((*(handle)->f_connect)(handle, address))
#define cs_rcvconnect(handle) ((*(handle)->f_rcvconnect)(handle))
#define cs_bind(handle, ad, mo) ((*(handle)->f_bind)(handle, ad, mo))
-#define cs_listen(handle, ap, al) ((*(handle)->f_listen)(handle, ap, al))
+#define cs_listen(handle, ap, al) ((*(handle)->f_listen)(handle, ap, al, 0, 0))
+#define cs_listen_check(handle, ap, al, cf, cd) ((*(handle)->f_listen)(handle, ap, al, cf, cd))
#define cs_accept(handle) ((*(handle)->f_accept)(handle))
#define cs_close(handle) ((*(handle)->f_close)(handle))
#define cs_create(type, blocking, proto) ((*type)(-1, blocking, proto))
#define CSOUTSTATE 2
#define CSNODATA 3
#define CSWRONGBUF 4
+#define CSDENY 5
/* backwards compatibility */
#define CS_SR PROTO_SR