#include "stream.h"
#include "dgram.h"
-#include "queue.h"
#include "conffile.h"
#include "security.h"
#include "event.h"
} while (0)
+/*
+ * Magic values for sec_conn->handle
+ */
+#define H_TAKEN -1 /* sec_conn->tok was already read */
+#define H_EOF -2 /* this connection has been shut down */
+
#ifdef KRB5_SECURITY
# define KRB5_DEPRECATED 1
# ifndef KRB5_HEIMDAL_INCLUDES
int event_id; /* event ID fired when token read */
void (*accept_fn)(security_handle_t *, pkt_t *);
sockaddr_union peer;
- TAILQ_ENTRY(tcp_conn) tq; /* queue handle */
int (*recv_security_ok)(struct sec_handle *, pkt_t *);
char * (*prefix_packet)(void *, pkt_t *);
int toclose;
int auth;
char * (*conf_fn)(char *, void *);
void * datap;
+ time_t logstamp;
#ifdef KRB5_SECURITY
gss_ctx_id_t gss_context;
#endif
+ unsigned int netint[2];
+ char * buffer;
+ ssize_t size_header_read;
+ ssize_t size_buffer_read;
};
int closed_by_network;
};
-struct connq_s {
- TAILQ_HEAD(, tcp_conn) tailq;
- int qlength;
-};
-extern struct connq_s connq;
-
-#define connq_first() TAILQ_FIRST(&connq.tailq)
-#define connq_next(rc) TAILQ_NEXT(rc, tq)
-#define connq_append(rc) do { \
- TAILQ_INSERT_TAIL(&connq.tailq, rc, tq); \
- connq.qlength++; \
-} while (0)
-#define connq_remove(rc) do { \
- assert(connq.qlength > 0); \
- TAILQ_REMOVE(&connq.tailq, rc, tq); \
- connq.qlength--; \
-} while (0)
-
/*
* This is data local to the datagram socket. We have one datagram
* per process per auth.
ssize_t tcpm_stream_read_sync(void *, void **);
void tcpm_stream_read_cancel(void *);
ssize_t tcpm_send_token(struct tcp_conn *, int, int, char **, const void *, size_t);
-ssize_t tcpm_recv_token(struct tcp_conn *, int, int *, char **, char **, ssize_t *, int);
+ssize_t tcpm_recv_token_timeout(struct tcp_conn *, int, int *, char **, char **, ssize_t *, int);
+ssize_t tcpm_recv_token(struct tcp_conn *, int, int *, char **, char **, ssize_t *);
void tcpm_close_connection(void *, char *);
int tcpma_stream_accept(void *);
void show_stat_info(char *a, char *b);
int check_name_give_sockaddr(const char *hostname, struct sockaddr *addr,
char **errstr);
+in_port_t find_port_for_service(char *service, char *proto);
+char *sec_get_authenticated_peer_name_localhost(security_handle_t *);
+char *sec_get_authenticated_peer_name_hostname(security_handle_t *);
#endif /* _SECURITY_INFO_H */