A clone of btpd with my configuration changes.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

btpd_if.h 2.0 KiB

il y a 18 ans
il y a 18 ans
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #ifndef BTPD_IPC_H
  2. #define BTPD_IPC_H
  3. enum ipc_err {
  4. #define ERRDEF(name, msg) IPC_##name,
  5. #include "ipcdefs.h"
  6. #undef ERRDEF
  7. IPC_ERRCOUNT
  8. };
  9. enum ipc_type {
  10. IPC_TYPE_ERR,
  11. IPC_TYPE_BIN,
  12. IPC_TYPE_NUM,
  13. IPC_TYPE_STR
  14. };
  15. enum ipc_tval {
  16. #define TVDEF(val, type, name) IPC_TVAL_##val,
  17. #include "ipcdefs.h"
  18. #undef TVDEF
  19. IPC_TVALCOUNT
  20. };
  21. enum ipc_dval {
  22. IPC_DVAL_MIN,
  23. IPC_DVAL_MAX
  24. };
  25. enum ipc_twc {
  26. IPC_TWC_ALL,
  27. IPC_TWC_ACTIVE,
  28. IPC_TWC_INACTIVE
  29. };
  30. enum ipc_tstate {
  31. IPC_TSTATE_INACTIVE,
  32. IPC_TSTATE_START,
  33. IPC_TSTATE_STOP,
  34. IPC_TSTATE_LEECH,
  35. IPC_TSTATE_SEED
  36. };
  37. #ifndef DAEMON
  38. struct ipc;
  39. struct ipc_get_res {
  40. enum ipc_type type;
  41. union {
  42. struct {
  43. const char *p;
  44. size_t l;
  45. } str;
  46. long long num;
  47. } v;
  48. };
  49. struct ipc_torrent {
  50. int by_hash;
  51. union {
  52. unsigned num;
  53. uint8_t hash[20];
  54. } u;
  55. };
  56. typedef void (*tget_cb_t)(int obji, enum ipc_err objerr,
  57. struct ipc_get_res *res, void *arg);
  58. //typedef void (*dget_cb_t)(struct ipc_get_res *res, size_t nres, void *arg);
  59. int ipc_open(const char *dir, struct ipc **out);
  60. void ipc_close(struct ipc *ipc);
  61. const char *ipc_strerror(enum ipc_err err);
  62. enum ipc_err btpd_add(struct ipc *ipc, const char *mi, size_t mi_size,
  63. const char *content, const char *name);
  64. enum ipc_err btpd_del(struct ipc *ipc, struct ipc_torrent *tp);
  65. enum ipc_err btpd_start(struct ipc *ipc, struct ipc_torrent *tp);
  66. enum ipc_err btpd_stop(struct ipc *ipc, struct ipc_torrent *tp);
  67. enum ipc_err btpd_stop_all(struct ipc *ipc);
  68. enum ipc_err btpd_die(struct ipc *ipc, int seconds);
  69. enum ipc_err btpd_get(struct ipc *ipc, enum ipc_dval *keys, size_t nkeys,
  70. tget_cb_t cb, void *arg);
  71. enum ipc_err btpd_tget(struct ipc *ipc, struct ipc_torrent *tps, size_t ntps,
  72. enum ipc_tval *keys, size_t nkeys, tget_cb_t cb, void *arg);
  73. enum ipc_err btpd_tget_wc(struct ipc *ipc, enum ipc_twc, enum ipc_tval *keys,
  74. size_t nkeys, tget_cb_t cb, void *arg);
  75. #endif
  76. #endif