enclink.h 944 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* enclink.h
  2. *
  3. */
  4. #ifndef _ENCLINK_H
  5. #define _ENCLINK_H
  6. #include <sys/types.h>
  7. /* must leave old ones in here */
  8. enum {
  9. LINK_GHOST = 0, /* attic */
  10. LINK_GHOSTNAT,
  11. LINK_GHOSTSHA1,
  12. LINK_GHOSTMD5,
  13. LINK_CLEARTEXT,
  14. LINK_GHOSTCASE
  15. };
  16. enum direction_t {
  17. FROM,
  18. TO
  19. };
  20. struct enc_link {
  21. const char *name;
  22. int type;
  23. void (*link) (int, direction_t);
  24. char *(*write) (int, char *, size_t *);
  25. int (*read) (int, char *, size_t *);
  26. void (*parse) (int, int, char *);
  27. };
  28. extern struct enc_link enclink[];
  29. extern int link_find_by_type(int);
  30. extern void link_link(int, int, int, direction_t);
  31. extern char *link_write(int, char *, size_t *);
  32. extern int link_read(int, char *, size_t *);
  33. extern void link_hash(int, char *);
  34. extern void link_send(int, char *, ...) __attribute__((format(printf, 2, 3)));
  35. extern void link_done(int);
  36. extern void link_parse(int, char *);
  37. #endif /* !_ENCLINK_H */