You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

upstream.h 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef UPSTREAM_H
  2. #define UPSTREAM_H
  3. #include <sys/types.h>
  4. #include <stdint.h>
  5. struct upstream {
  6. unsigned int errors;
  7. time_t time;
  8. unsigned char dead;
  9. unsigned char priority;
  10. int16_t weight;
  11. uint32_t *ketama_points;
  12. size_t ketama_points_size;
  13. };
  14. void upstream_fail (struct upstream *up, time_t now);
  15. void upstream_ok (struct upstream *up, time_t now);
  16. void revive_all_upstreams (void *ups, size_t members, size_t msize);
  17. int upstream_ketama_add (struct upstream *up, char *up_key, size_t keylen, size_t keypoints);
  18. struct upstream* get_random_upstream (void *ups, size_t members, size_t msize,
  19. time_t now, time_t error_timeout,
  20. time_t revive_timeout, size_t max_errors);
  21. struct upstream* get_upstream_by_hash (void *ups, size_t members, size_t msize,
  22. time_t now, time_t error_timeout,
  23. time_t revive_timeout, size_t max_errors,
  24. char *key, size_t keylen);
  25. struct upstream* get_upstream_round_robin (void *ups, size_t members, size_t msize,
  26. time_t now, time_t error_timeout,
  27. time_t revive_timeout, size_t max_errors);
  28. struct upstream* get_upstream_by_hash_ketama (void *ups, size_t members, size_t msize, time_t now,
  29. time_t error_timeout, time_t revive_timeout, size_t max_errors,
  30. char *key, size_t keylen);
  31. #endif /* UPSTREAM_H */
  32. /*
  33. * vi:ts=4
  34. */