hs_pirprocess.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. /**
  2. * \file hs_cache.h
  3. * \brief Header file for hs_cache.c
  4. **/
  5. #ifndef TOR_HS_PIRPROCESS_H
  6. #define TOR_HS_PIRPROCESS_H
  7. #define PIRPROCESS_HDR_SIZE 13
  8. #include "lib/container/buffers.h"
  9. typedef void (*pir_process_msghandler_t)(const unsigned char *hdrbuf,
  10. const char *bodybuf, size_t bodylen);
  11. typedef struct pir_process_st *pir_process_t;
  12. typedef void (*pir_process_abort_fn)(dir_connection_t *);
  13. void hs_pirprocess_poke(const char *path, const char *loglabel,
  14. pir_process_msghandler_t msghandler, pir_process_t *handlep);
  15. void hs_pirprocess_close(pir_process_t *handlep);
  16. int hs_pirprocess_send(pir_process_t handle, const unsigned char *buf,
  17. size_t len);
  18. void hs_pirprocess_init(void);
  19. void hs_pirprocess_abort_all(void);
  20. void hs_pirprocess_free_all(void);
  21. uint64_t hs_pirprocess_alloc_reqid(dir_connection_t *dir_conn,
  22. pir_process_abort_fn abort_fn);
  23. void hs_pirprocess_dealloc_reqid(dir_connection_t *dir_conn);
  24. dir_connection_t *hs_pirprocess_lookup_reqid(uint64_t reqid);
  25. #endif /* !defined(TOR_HS_PIRPROCESS_H) */