From patchwork Wed Mar 7 10:59:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Babic X-Patchwork-Id: 882523 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:400c:c0c::23a; helo=mail-wr0-x23a.google.com; envelope-from=swupdate+bncbcxploxj6ikrbfem77kakgqetxaxzry@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.b="ka94AzgE"; dkim-atps=neutral Received: from mail-wr0-x23a.google.com (mail-wr0-x23a.google.com [IPv6:2a00:1450:400c:c0c::23a]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zx9dM6dS8z9sf8 for ; Wed, 7 Mar 2018 21:59:35 +1100 (AEDT) Received: by mail-wr0-x23a.google.com with SMTP id u65sf1034758wrc.8 for ; Wed, 07 Mar 2018 02:59:35 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1520420372; cv=pass; d=google.com; s=arc-20160816; b=Y8fNeBeNDG+/cBPWn3ttaw7HpMRT9IsaUqinLSvQhg9fF9e0unyeqv1+x6+GdbE/wJ oY84f25mnnHQzyQGOloMe4mTkGes2od00Vr6ozynPGm7O/a9dYbaGiT5AjAa27QgjrZl +B+OMpJfHj6AOqmezEJeQJvjoSB3WwpqC+HzHgu7vx0HDVNjV4FVDh+NC3weAar8c3td XW8eoQIX0ixcrZFqtY4OZdketW5aGoEKNlVWcWvqkn2kQTxTRKm6jriJZJS0PfIiu2MD G917tGQPd3mKEe+v88PQUFWW/IxnwcWZa3aU96/Oupf21iGZLhuUt6dKDzuo3+Wm3RWs tgwA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:message-id:date:subject:cc:to:from :arc-authentication-results:arc-message-signature:mime-version :sender:dkim-signature:arc-authentication-results; bh=o++d83sc5SP9ockaOW+5WuB8MTdHMAMwY+4T8xZCcnk=; b=M8o4yaig4aT4lGd4VUQlBMQgbnZyPPZ3Z3+gItRVVWewNX0ScNnIrrWRdhnv5huhOk X9PB473u38xJMOpBC9hPlXwXWDwMu3K6cJRWs4BMYOqa7gmH0kVEae0fV3tQ7PtAkQJX ovxXkHnND/Z7rrd2C34+I13q34JnigDAZuViN64jRVLI8sKosN9lrpPhXBD1xgG3Mxsf sn17ImCWKcQEJtjPYn0LFIKm2O/YwRhp0H+0DDbE3yCOkQTyycfEiFXZX1DqQ2CP/x+r Lhb7mjb8bDrHgZlBNTjnm/ubnkCSJnR5IUHv3daHj8SjVA80QusFdth3i4jcmoR9ulUx 7aAA== ARC-Authentication-Results: i=2; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:mime-version:from:to:cc:subject:date:message-id :x-original-sender:x-original-authentication-results:precedence :mailing-list:list-id:list-post:list-help:list-archive :list-subscribe:list-unsubscribe; bh=o++d83sc5SP9ockaOW+5WuB8MTdHMAMwY+4T8xZCcnk=; b=ka94AzgEQU5RqDIibfXHLpRVbixtc2DSwb57aS2hUBqQuUTx+hRx2OsaMJ1psVtGkF 0Q/OVm17k50bOEQLoOipM2oHYrQbvTh2mYZHBZrgN460FFvCd/oAroeZ9paVUTnj84Lx i62E6kHQbSaGIOKFE+fjqHJVeUBVFXtf9XAV+PzOCzSq6ZT72WshP6AOfGX0j75c9fNd BEn8rc0mCEtG+c3/P4vpR5okaIvF7rLg/+NdLNLTcvaVLzCe3nR+oP0DHKflHos3RPcD W09vl7S6WvDLd5Ojx7VMPbUw3+Ooduh7ljhGfoUDUxcEF8nQydXf65/sBbgKkMVdQoFA fKAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:mime-version:from:to:cc:subject:date :message-id:x-original-sender:x-original-authentication-results :precedence:mailing-list:list-id:x-spam-checked-in-group:list-post :list-help:list-archive:list-subscribe:list-unsubscribe; bh=o++d83sc5SP9ockaOW+5WuB8MTdHMAMwY+4T8xZCcnk=; b=agLyzC7yAlIlw2qVxopBAuzBVLxhPIsKI86iltiqEGpG0lpwJQU6RiJPw81rOpU41o i6meEGFaHbzDlXryyv0yzK9SRav+5qOMApr+snma9yQ9fTcztKoZZq7ixmA181VfWAWe OO9pkj9zMzfMdXF/4igH5SoU9trd6i4uYHHYAQhHiJO/7qMV5okiWyEwqRcV/RFwFdSg 5Iay7BZQmya0wbKc5TD8AiGt4HXmqZDdrqTGy4Vv8s1IlAoZypRbNbby2pxQVNLBLGu8 SjLfJqckshm17vFVQMaq6tdAIUXmgyChIAXnkVTgHl2LqTSv5gm0CcG2nkjQVdTX4Afv XUmQ== Sender: swupdate@googlegroups.com X-Gm-Message-State: AElRT7H34GuRHbPUsrF7zfl1JsunKfam357Cv905ggMH8Ui9p3ZnrXpK OwZZROnq7jaiW3e40vIra+4= X-Google-Smtp-Source: AG47ELtcTniiR23QqkxcZW868u2Fwtp5F5yR7ogqchDcdIqFI336Rlu6lNCRABmN5RSJ4yoAQ9FPww== X-Received: by 10.28.63.139 with SMTP id m133mr236214wma.3.1520420372785; Wed, 07 Mar 2018 02:59:32 -0800 (PST) MIME-Version: 1.0 X-BeenThere: swupdate@googlegroups.com Received: by 10.80.241.1 with SMTP id w1ls495440edl.2.gmail; Wed, 07 Mar 2018 02:59:32 -0800 (PST) X-Received: by 10.80.189.195 with SMTP id z3mr6415267edh.8.1520420372254; Wed, 07 Mar 2018 02:59:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520420372; cv=none; d=google.com; s=arc-20160816; b=R3V2VokVKerzqjqpmi1HvoIcdd5RK5AS4qTovOoPEf3X7Pa5e4XiaQhBSFPhkMx2E0 A6A/bgGuEMamBCEuqOuxWfoHNvdjxr5FWkEZ37Nn+2qQ4n5vKu8lYheK3dFF8ZBy05Qd ygUbPyQdPBMOmfiCGThMe7eNNsZZBaT8NSzKqELDZc/H4le1LhWE4yQTK4jp5Hg+xPJZ g/y+/yjDHykx4aZRRYvjYQbmQEvAHIBavqkXKrwFOcQEhwAs8Rd/FRLaD9wPXAO70Jx4 PJ4ElZzA/KRixOfa6gYzK6CJdroX4+Q40dd87DpMiHXBbi7rOim5eW4ISNYD7l36ihUI IgzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=message-id:date:subject:cc:to:from:arc-authentication-results; bh=zBlpyobUxXEmv7i1fTiaMKKYuv/0JADpVdjcYGfAUQ0=; b=CCGPdR9ow1B6JZ1kaK/D6cGBcLLR0IYBwk4WjQ2XE7ESgjXFLNLfbgH78XmzBQ7QUF W2Dw+an6B3MufgtoOS9P10WMNRfpn0ftOY+wP46XaKEDLzknJDVphEEPJviZ8XHjvqIF XF+z0V5fDrxCdeZCkO1PTMn7eq19PGC3dHCdosHh1fynGQEqvtq36nDBNww1CRSYkR4d PFGMNPY3hQ3NrJ/eH8KCWBWDDqniywJR1GAV9EuJzdbLMdKRGd2qdF1DN1sykzPgUQQx 05FRCv+FwyfwdKoFkH6HapV54rdK+aPPDMbp2wZEjbbQWR8t43ShlKnNOl7EYlx4w1bC Sfmw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Received: from mail-out.m-online.net (mail-out.m-online.net. [212.18.0.9]) by gmr-mx.google.com with ESMTPS id h9si597432edi.4.2018.03.07.02.59.32 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 07 Mar 2018 02:59:32 -0800 (PST) Received-SPF: neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) client-ip=212.18.0.9; Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 3zx9dH6k6Kz1qvTT; Wed, 7 Mar 2018 11:59:31 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 3zx9dH6QyFz1qwkg; Wed, 7 Mar 2018 11:59:31 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id v2Y3VWLe0lLy; Wed, 7 Mar 2018 11:59:31 +0100 (CET) Received: from babic.homelinux.org (host-88-217-136-221.customer.m-online.net [88.217.136.221]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPS; Wed, 7 Mar 2018 11:59:31 +0100 (CET) Received: from localhost (mail.babic.homelinux.org [127.0.0.1]) by babic.homelinux.org (Postfix) with ESMTP id 9754B4540571; Wed, 7 Mar 2018 11:59:30 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at babic.homelinux.org Received: from babic.homelinux.org ([127.0.0.1]) by localhost (mail.babic.homelinux.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id xR6x4wJNgpw4; Wed, 7 Mar 2018 11:59:28 +0100 (CET) Received: from papero.fritz.box (papero.fritz.box [192.168.178.132]) by babic.homelinux.org (Postfix) with ESMTP id 2F6584540471; Wed, 7 Mar 2018 11:59:28 +0100 (CET) From: Stefano Babic To: swupdate@googlegroups.com Cc: Stefano Babic , Sami Hartikainen Subject: [swupdate] [PATCH V3 1/2] mongoose: split upload_handler Date: Wed, 7 Mar 2018 11:59:25 +0100 Message-Id: <1520420366-6564-1-git-send-email-sbabic@denx.de> X-Mailer: git-send-email 2.7.4 X-Original-Sender: sbabic@denx.de X-Original-Authentication-Results: gmr-mx.google.com; spf=neutral (google.com: 212.18.0.9 is neither permitted nor denied by best guess record for domain of sbabic@denx.de) smtp.mailfrom=sbabic@denx.de Precedence: list Mailing-list: list swupdate@googlegroups.com; contact swupdate+owners@googlegroups.com List-ID: X-Spam-Checked-In-Group: swupdate@googlegroups.com X-Google-Group-Id: 605343134186 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , To make code more readable, split upload_handler into two function for v1 and v2 API. Signed-off-by: Stefano Babic CC: Sami Hartikainen --- Changes since V1: - no changes mongoose/mongoose_interface.c | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/mongoose/mongoose_interface.c b/mongoose/mongoose_interface.c index 60914d3..0e22671 100644 --- a/mongoose/mongoose_interface.c +++ b/mongoose/mongoose_interface.c @@ -48,6 +48,7 @@ struct file_upload_state { }; static struct mg_serve_http_opts s_http_server_opts; +static void upload_handler(struct mg_connection *nc, int ev, void *p); #if defined(CONFIG_MONGOOSE_WEB_API_V2) #define enum_string(x) [x] = #x @@ -112,20 +113,16 @@ static size_t snescape(char *dst, size_t n, const char *src) } #endif -static void upload_handler(struct mg_connection *nc, int ev, void *p) -{ - struct mg_http_multipart_part *mp; - struct file_upload_state *fus; #if defined(CONFIG_MONGOOSE_WEB_API_V1) +static void upload_handler_v1(struct mg_connection *nc, int ev, void *p) +{ struct mg_str *filename, *data; struct http_message *hm; size_t length; char buf[16]; int fd; -#endif switch (ev) { -#if defined(CONFIG_MONGOOSE_WEB_API_V1) case MG_EV_HTTP_REQUEST: hm = (struct http_message *) p; @@ -159,9 +156,20 @@ static void upload_handler(struct mg_connection *nc, int ev, void *p) mg_send(nc, "\r\n", 2); mg_printf(nc, "Ok, %.*s - %d bytes.\r\n", (int) filename->len, filename->p, (int) length); nc->flags |= MG_F_SEND_AND_CLOSE; - break; + default: + upload_handler(nc, ev, p); + break; + } +} #endif + +static void upload_handler(struct mg_connection *nc, int ev, void *p) +{ + struct mg_http_multipart_part *mp; + struct file_upload_state *fus; + + switch (ev) { case MG_EV_HTTP_PART_BEGIN: mp = (struct mg_http_multipart_part *) p; @@ -610,18 +618,16 @@ int start_mongoose(const char *cfgfname, int argc, char *argv[]) exit(EXIT_FAILURE); } + mg_set_protocol_http_websocket(nc); + mg_register_http_endpoint(nc, "/upload", MG_CB(upload_handler, NULL)); #if defined(CONFIG_MONGOOSE_WEB_API_V1) - mg_register_http_endpoint(nc, "/handle_post_request", MG_CB(upload_handler, NULL)); + mg_register_http_endpoint(nc, "/handle_post_request", MG_CB(upload_handler_v1, NULL)); mg_register_http_endpoint(nc, "/getstatus.json", MG_CB(recovery_status, NULL)); mg_register_http_endpoint(nc, "/rebootTarget", MG_CB(reboot_target, NULL)); mg_register_http_endpoint(nc, "/postUpdateCommand", MG_CB(post_update_cmd, NULL)); -#elif defined(CONFIG_MONGOOSE_WEB_API_V2) - mg_register_http_endpoint(nc, "/restart", restart_handler); #endif - mg_register_http_endpoint(nc, "/upload", MG_CB(upload_handler, NULL)); - mg_set_protocol_http_websocket(nc); - #if defined(CONFIG_MONGOOSE_WEB_API_V2) + mg_register_http_endpoint(nc, "/restart", restart_handler); mg_start_thread(broadcast_message_thread, &mgr); mg_start_thread(broadcast_progress_thread, &mgr); #endif