| /* |
| This file is part of libmicrohttpd |
| Copyright (C) 2007-2018 Daniel Pittman and Christian Grothoff |
| |
| This library is free software; you can redistribute it and/or |
| modify it under the terms of the GNU Lesser General Public |
| License as published by the Free Software Foundation; either |
| version 2.1 of the License, or (at your option) any later version. |
| |
| This library is distributed in the hope that it will be useful, |
| but WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| Lesser General Public License for more details. |
| |
| You should have received a copy of the GNU Lesser General Public |
| License along with this library; if not, write to the Free Software |
| Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
| */ |
| |
| /** |
| * @file lib/action_process_upload.c |
| * @brief implementation of MHD_action_process_upload() |
| * @author Christian Grothoff |
| */ |
| #include "internal.h" |
| |
| |
| /** |
| * Internal details about an upload action. |
| */ |
| struct UploadAction |
| { |
| /** |
| * An upload action is an action. This field |
| * must come first! |
| */ |
| struct MHD_Action action; |
| |
| MHD_UploadCallback uc; |
| |
| void *uc_cls; |
| |
| }; |
| |
| |
| /** |
| * The application wants to process uploaded data for |
| * the given request. Do it! |
| * |
| * @param cls the `struct UploadAction` with the |
| * function we are to call for upload data |
| * @param request the request for which we are to process |
| * upload data |
| * @return #MHD_SC_OK on success |
| */ |
| static enum MHD_StatusCode |
| upload_action (void *cls, |
| struct MHD_Request *request) |
| { |
| struct UploadAction *ua = cls; |
| |
| (void) ua; |
| // FIXME: implement! |
| return -1; |
| } |
| |
| |
| /** |
| * Create an action that handles an upload. |
| * |
| * @param uc function to call with uploaded data |
| * @param uc_cls closure for @a uc |
| * @return NULL on error (out of memory) |
| * @ingroup action |
| */ |
| const struct MHD_Action * |
| MHD_action_process_upload (MHD_UploadCallback uc, |
| void *uc_cls) |
| { |
| struct UploadAction *ua; |
| |
| if (NULL == (ua = malloc (sizeof (struct UploadAction)))) |
| return NULL; |
| ua->action.action = &upload_action; |
| ua->action.action_cls = ua; |
| ua->uc = uc; |
| ua->uc_cls = uc_cls; |
| return &ua->action; |
| } |
| |
| |
| /* end of action_process_upload.c */ |