* This form sets up a callback that returns new handles as
* they are received. It takes an input and output file descriptor.
*/
- void (*accept)(const struct security_driver *, int, int,
- void (*)(struct security_handle *, pkt_t *));
+ void (*accept)(const struct security_driver *,
+ char *(*)(char *, void *),
+ int, int,
+ void (*)(struct security_handle *, pkt_t *),
+ void *);
/*
* Frees up handles allocated by the previous
void (*close_connection)(void *, char *);
+ int (*data_encrypt)(void *, void *, ssize_t, void **, ssize_t *);
+ int (*data_decrypt)(void *, void *, ssize_t, void **, ssize_t *);
} security_driver_t;
/*
/* const char *security_geterror(security_handle_t *); */
#define security_geterror(handle) ((handle)->error)
void security_seterror(security_handle_t *, const char *, ...)
- __attribute__ ((format (printf, 2, 3)));
+ G_GNUC_PRINTF(2,3);
-/* void security_connect(const security_driver_t *, const char *,
- void (*)(void *, security_handle_t *, security_status_t), void *, void *); */
+/* void security_connect(const security_driver_t *, const char *,
+ char *(*)(char *, void *),
+ void (*)(void *, security_handle_t *, security_status_t),
+ void *,
+ void *); */
#define security_connect(driver, hostname, conf_fn, fn, arg, datap) \
(*(driver)->connect)(hostname, conf_fn, fn, arg, datap)
-/* void security_accept(const security_driver_t *, int, int,
- void (*)(security_handle_t *, pkt_t *)); */
-#define security_accept(driver, in, out, fn) \
- (*(driver)->accept)(driver, in, out, fn)
+
+/* void security_accept(const security_driver_t *,
+ char *(*)(char *, void *), int, int,
+ void (*)(security_handle_t *, pkt_t *), void *); */
+#define security_accept(driver, conf_fn, in, out, fn, datap) \
+ (*(driver)->accept)(driver, conf_fn, in, out, fn, datap)
void security_close(security_handle_t *);
-/* int security_sendpkt(security_handle_t *, const pkt_t *); */
+/* ssize_t security_sendpkt(security_handle_t *, const pkt_t *); */
#define security_sendpkt(handle, pkt) \
(*(handle)->driver->sendpkt)(handle, pkt)
/* const char *security_stream_geterror(security_stream_t *); */
#define security_stream_geterror(stream) ((stream)->error)
void security_stream_seterror(security_stream_t *, const char *, ...)
- __attribute__ ((format (printf, 2, 3)));
+ G_GNUC_PRINTF(2,3);
/* security_stream_t *security_stream_server(security_handle_t *); */
#define security_stream_server(handle) \