#define _CANL_H
#include <sys/time.h>
#include <sys/socket.h>
+#include <gssapi.h> /* for the OID structs */
#ifdef __cplusplus
extern "C" {
typedef void *canl_io_handler;
typedef void *canl_ctx;
+typedef void *canl_principal;
canl_ctx canl_create_ctx();
void canl_free_ctx(canl_ctx cc);
int canl_io_connect(canl_ctx cc, canl_io_handler io, char * host,
int port, int flags, struct timeval *timeout);
int canl_io_accept(canl_ctx cc, canl_io_handler io, int fd,
- struct sockaddr s_addr, int flags,
+ struct sockaddr s_addr, int flags, canl_principal *peer,
struct timeval *timeout);
size_t canl_io_read(canl_ctx cc, canl_io_handler io, void *buffer, size_t size, struct timeval *timeout);
size_t canl_io_write(canl_ctx cc, canl_io_handler io, void *buffer, size_t size, struct timeval *timeout);
int canl_io_close(canl_ctx cc, canl_io_handler io);
int canl_io_destroy(canl_ctx cc, canl_io_handler io);
+int canl_princ_name(canl_ctx, const canl_principal, char **);
+int canl_princ_mech(canl_ctx, const canl_principal, gss_OID *);
+char * canl_mech2str(canl_ctx, gss_OID);
+const gss_OID canl_str2mech(canl_ctx, const char mech);
+
#ifdef __cplusplus
}
#endif