X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-hsrv.c;h=91dff296a4bf8918c6d5bc9514c7212d00433514;hb=b8bcf15d19e77a6b255c11e8d95fa655a3f7c3eb;hp=4577948350f3dccc8b1868061ddf0339fac99886;hpb=540ece2baf7de59565b42d427e206769ec4da56a;p=src%2Fapp-framework-binder.git diff --git a/src/afb-hsrv.c b/src/afb-hsrv.c index 45779483..91dff296 100644 --- a/src/afb-hsrv.c +++ b/src/afb-hsrv.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 "IoT.bzh" + * Copyright (C) 2016, 2017 "IoT.bzh" * Author: José Bollo * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -118,6 +118,7 @@ static int access_handler( method = get_method(methodstr); method &= afb_method_get | afb_method_post; if (method == afb_method_none) { + WARNING("Unsupported HTTP operation %s", methodstr); reply_error(connection, MHD_HTTP_BAD_REQUEST); return MHD_YES; } @@ -125,6 +126,7 @@ static int access_handler( /* create the request */ hreq = calloc(1, sizeof *hreq); if (hreq == NULL) { + ERROR("Can't allocate 'hreq'"); reply_error(connection, MHD_HTTP_INTERNAL_SERVER_ERROR); return MHD_YES; } @@ -153,12 +155,15 @@ static int access_handler( hreq->method = afb_method_get; } else if (strcasestr(type, FORM_CONTENT) != NULL) { hreq->postform = MHD_create_post_processor (connection, 65500, postproc, hreq); - if (hreq->postform == NULL) + if (hreq->postform == NULL) { + ERROR("Can't create POST processor"); afb_hreq_reply_error(hreq, MHD_HTTP_INTERNAL_SERVER_ERROR); + } return MHD_YES; } else if (strcasestr(type, JSON_CONTENT) != NULL) { return MHD_YES; } else { + WARNING("Unsupported media type %s", type); afb_hreq_reply_error(hreq, MHD_HTTP_UNSUPPORTED_MEDIA_TYPE); return MHD_YES; } @@ -169,6 +174,7 @@ static int access_handler( if (*upload_data_size) { if (hreq->postform != NULL) { if (!MHD_post_process (hreq->postform, upload_data, *upload_data_size)) { + ERROR("error in POST processor"); afb_hreq_reply_error(hreq, MHD_HTTP_INTERNAL_SERVER_ERROR); return MHD_YES; } @@ -187,6 +193,7 @@ static int access_handler( rc = MHD_destroy_post_processor(hreq->postform); hreq->postform = NULL; if (rc == MHD_NO) { + ERROR("error detected in POST processing"); afb_hreq_reply_error(hreq, MHD_HTTP_BAD_REQUEST); return MHD_YES; } @@ -219,6 +226,7 @@ static int access_handler( } /* no handler */ + WARNING("Unhandled request to %s", hreq->url); afb_hreq_reply_error(hreq, MHD_HTTP_NOT_FOUND); return MHD_YES; } @@ -359,14 +367,14 @@ int afb_hsrv_add_alias_root(struct afb_hsrv *hsrv, const char *prefix, struct lo return 0; } -int afb_hsrv_add_alias(struct afb_hsrv *hsrv, const char *prefix, const char *alias, int priority, int relax) +int afb_hsrv_add_alias(struct afb_hsrv *hsrv, const char *prefix, int dirfd, const char *alias, int priority, int relax) { struct locale_root *root; int rc; - root = locale_root_create(AT_FDCWD, alias); + root = locale_root_create_at(dirfd, alias); if (root == NULL) { - /* TODO message */ + ERROR("can't connect to directory %s: %m", alias); rc = 0; } else { rc = afb_hsrv_add_alias_root(hsrv, prefix, root, priority, relax);