This prepare further use of locale_root
here and ther in the code.
Change-Id: I473e8de79db1cbd69b507f6e0e70733f0f02badc
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-int afb_hsrv_add_alias(struct afb_hsrv *hsrv, const char *prefix, const char *alias, int priority, int relax)
+int afb_hsrv_add_alias_root(struct afb_hsrv *hsrv, const char *prefix, struct locale_root *root, int priority, int relax)
- struct locale_root *root;
- root = locale_root_create(AT_FDCWD, alias);
- if (root == NULL) {
- /* TODO message */
- return 0;
- }
da = malloc(sizeof *da);
if (da != NULL) {
da->root = root;
da->relax = relax;
da = malloc(sizeof *da);
if (da != NULL) {
da->root = root;
da->relax = relax;
- if (afb_hsrv_add_handler(hsrv, prefix, handle_alias, da, priority))
+ if (afb_hsrv_add_handler(hsrv, prefix, handle_alias, da, priority)) {
+ locale_root_addref(root);
- locale_root_unref(root);
+int afb_hsrv_add_alias(struct afb_hsrv *hsrv, const char *prefix, const char *alias, int priority, int relax)
+{
+ struct locale_root *root;
+ int rc;
+
+ root = locale_root_create(AT_FDCWD, alias);
+ if (root == NULL) {
+ /* TODO message */
+ rc = 0;
+ } else {
+ rc = afb_hsrv_add_alias_root(hsrv, prefix, root, priority, relax);
+ locale_root_unref(root);
+ }
+ return rc;
+}
+
int afb_hsrv_set_cache_timeout(struct afb_hsrv *hsrv, int duration)
{
int rc;
int afb_hsrv_set_cache_timeout(struct afb_hsrv *hsrv, int duration)
{
int rc;
struct afb_hsrv;
struct afb_hreq;
struct afb_hsrv;
struct afb_hreq;
extern struct afb_hsrv *afb_hsrv_create();
extern void afb_hsrv_put(struct afb_hsrv *hsrv);
extern struct afb_hsrv *afb_hsrv_create();
extern void afb_hsrv_put(struct afb_hsrv *hsrv);
extern int afb_hsrv_start(struct afb_hsrv *hsrv, uint16_t port, unsigned int connection_timeout);
extern int afb_hsrv_set_cache_timeout(struct afb_hsrv *hsrv, int duration);
extern int afb_hsrv_add_alias(struct afb_hsrv *hsrv, const char *prefix, const char *alias, int priority, int relax);
extern int afb_hsrv_start(struct afb_hsrv *hsrv, uint16_t port, unsigned int connection_timeout);
extern int afb_hsrv_set_cache_timeout(struct afb_hsrv *hsrv, int duration);
extern int afb_hsrv_add_alias(struct afb_hsrv *hsrv, const char *prefix, const char *alias, int priority, int relax);
+extern int afb_hsrv_add_alias_root(struct afb_hsrv *hsrv, const char *prefix, struct locale_root *root, int priority, int relax);
extern int afb_hsrv_add_handler(struct afb_hsrv *hsrv, const char *prefix, int (*handler) (struct afb_hreq *, void *), void *data, int priority);
extern int afb_hsrv_add_handler(struct afb_hsrv *hsrv, const char *prefix, int (*handler) (struct afb_hreq *, void *), void *data, int priority);