From patchwork Mon Mar 5 11:26:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Babic X-Patchwork-Id: 881409 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:4010:c07::23b; helo=mail-lf0-x23b.google.com; envelope-from=swupdate+bncbcxploxj6ikrbbwt6tkakgqeqbr5epi@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="S+dDPGOJ"; dkim-atps=neutral Received: from mail-lf0-x23b.google.com (mail-lf0-x23b.google.com [IPv6:2a00:1450:4010:c07::23b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zvyL22Mmlz9sZg for ; Mon, 5 Mar 2018 22:27:05 +1100 (AEDT) Received: by mail-lf0-x23b.google.com with SMTP id 102sf5099146lft.15 for ; Mon, 05 Mar 2018 03:27:05 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1520249222; cv=pass; d=google.com; s=arc-20160816; b=kNKJOLfSGdTxsFTe1n12B6FTS+abWysaYkHefrnuKsfZgsyC4wV4mQzmRtoKTzIOVZ HTp5Uo3MbQkRW1dLpcN5UaXfQLVIfRAuIZ73+xIwN/E+Af7QNbGnpP+G7mr+v882uVRr CKSi7xrszG6+lLIRm+RLf6wdMyL/TTQ5A5MAxTB4MI4zAjHS1edDgfbUu+QXlqp5Uqdt i7wtFH29S/uZXE/ceCLW77ovpCeor5b9YqzsmyVW6vnXUhxN6S4dMwB+ytmcXccV7s+J hEetGZCwhioU+diD1LmCCRcxND98KSY3qP/gte9PLe6VagacUcErzscP0kGPrBQGB1Sl zezw== 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=v6rgukwVzHHvCE/m3OEZlZCNTBLrw/7T4OZU9PEbwVA=; b=yqYHVLQvqD0NwKu1JlT7h7JApnsZ7eAskrxKx/KB8fiNXFVboV+P2sxFLB4OsWcOWR okYrQnbJNywIhCoZ6Xy9I3rtzTbvkKBuoE2ozeCGo+Zb+Pns1TnLJga61WTia0cAnbiw 95dPlPgH4EEqVBWa3GtL6NqRkOkSuUvLXLsVLwyX6GuaPWu3365MudBWVD4ns0bGHS96 YlOSAMT0YplCC6Xb8md/KPxEoMZNxCy4+BhDqsKG3QOWWN0/5F8KYUQFTYFTpJKGexqv fJLhbzt5kqxkW7644PtJSeDDR5SH+QQKvX6fAMyZJOXMVzsoIK2QPWOlJSkDcDKaNlAs /2bw== 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=v6rgukwVzHHvCE/m3OEZlZCNTBLrw/7T4OZU9PEbwVA=; b=S+dDPGOJRqYcbmS0Ab+DIWq7wgU5Q3BAUBEttJu/FrnM/SAvmQc68Tof4SsPAIQMaO cl3zBlyvU2CDxg4k9RTi803KJa2YY0vdfAukgVYxSvgSQNrsazOFon89cjP2JacQFsoY bMdEyR+nZ399A2v0D5lcrwRJ4yFkGUFoKPWdeuhfZYbXETWENtc3pTVPu7BgrIdlkmZ4 WpYw6o2kXQrQKYaOvubYSU7XlOS0qZwu4YmqQe3qrRdGyWrsw1PGLyV46SktdvcCeNev 5HEgR7Rj3kn3s/qkfKw6RlY7JWaqcZ13x5kXm1glNBCbp8TucX9+SbPpb3g727DDN4OR /5pg== 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=v6rgukwVzHHvCE/m3OEZlZCNTBLrw/7T4OZU9PEbwVA=; b=lsjLIpzL7bDjlWRw4gEa3dkaQONU58O3y+EPuqIUKOhiIX/1ck23rnOq/iG7HLYgVe fOuyqGMzbsz6nEMD00a67cJYZNhjfujEsibdtL6BWON6aKZVFBiJqHbpkb9ZjoU+B5II VOci+oOpbDXMhHObFE2FuYM8Oo5NHUXBDLdxL+WLVrdRzDlNAkuwAaBx2LJQ0P9wFSBM 9+wtdlAlIcz3RRdF0zs+LeMRu7tRJ/bI5TxgKTT4+jSOX3PTjDnHCR9XsADkazciW9/H dUq+GnP0xgqAoedu7iRned+cjb7WBt5AcSbkoxV8uxfcNQn/R/pVjW/SqGGSGTU1dCIb pKnA== Sender: swupdate@googlegroups.com X-Gm-Message-State: AElRT7GJeaNIwiVxn5BoTyzOX33erYHLMdz0CtljMEq3B7us1LtH7xGl I6hiVyR6MJpwPTx+9gK4+Pg= X-Google-Smtp-Source: AG47ELv6hMHHgWUbdvwfghlKPUx3kM8d3EULfUASexMIfn5jtsqxjAyYLAA1O+zeQnJhXKW3/Uq1wA== X-Received: by 10.25.31.211 with SMTP id f202mr49035lff.14.1520249222825; Mon, 05 Mar 2018 03:27:02 -0800 (PST) MIME-Version: 1.0 X-BeenThere: swupdate@googlegroups.com Received: by 10.25.80.82 with SMTP id z18ls1643988lfj.15.gmail; Mon, 05 Mar 2018 03:27:02 -0800 (PST) X-Received: by 10.25.149.20 with SMTP id x20mr1014615lfd.5.1520249222209; Mon, 05 Mar 2018 03:27:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520249222; cv=none; d=google.com; s=arc-20160816; b=0ZD3m/aZqdL2YIqLXH6DgIQ6Lz4Tg4K93sSlqdA6VZvQuy2n/5P/0mpS5+YAyTuRaG VGD+Q6U4iesMd0eS2GeQ9xm5d2avO3ePkdrJRUTxxoF08TltojcwznV1gxvGMUhJS5Y1 ywrhLu4Dn84+01XhfISrwGjTVGlprA1qGb/ptuefHwDEEzscx1tdbOwnmX/jhL7DiOyc 5ANhwMPgf6TwPIi3HQEHz66eJjsd/6NHjVO6j8ZVYOd2BQaZRxWMnevti7iY+O80cvlB We7lCCCSLwrUqN3lC24JoVyEUW12d7vBnfc5vYHNsyQdhGxbvXi7Do4rIas+oZNBct1t Fapg== 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=ePYLxqLtoCH5aZXF72sU5qjcmKU/WUC4IWa5BmqEHVQ=; b=fqBpGLG7Yl1H6yNxZSqrs/7ekjACsEVGJvs4wRAYJhG0TkNI7L6aHr30D+hoNIXo8T X9ePTT0X044IKRYqpA5bhmTDFRA2WhNV+/GA42R6ujfJNqDlO3ST7acAysYeHZpHOTCN zfcRybSVXgUjPIqY2xbDPOr/0I5uySsBYTmUq0syq3ELRm0Tz15kWjY/t/aeD4mJ0D1T k8M9BpGzlsZksWcy4YXeTEqjFDqoNlHIVt3bcdtwZtlo1YwZLRwQxOtWQ62KU2cYjwuP nzrDCXfK7Llg5Oy4kZL+0hS5vAMAgYpHNtPJOM9xIJZkAKspKiUB+aGoTaAykqwTLG7a s3uA== 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 z25si473164lfg.5.2018.03.05.03.27.02 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 05 Mar 2018 03:27:02 -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 3zvyKx516sz1qwCP; Mon, 5 Mar 2018 12:27:01 +0100 (CET) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 3zvyKx4mWGz1sQwq; Mon, 5 Mar 2018 12:27:01 +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 UIaAzYfw7diS; Mon, 5 Mar 2018 12:27:00 +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; Mon, 5 Mar 2018 12:27:00 +0100 (CET) Received: from localhost (mail.babic.homelinux.org [127.0.0.1]) by babic.homelinux.org (Postfix) with ESMTP id 15ECB4540580; Mon, 5 Mar 2018 12:27:00 +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 U62nIzb4KYAJ; Mon, 5 Mar 2018 12:26:57 +0100 (CET) Received: from papero.fritz.box (papero.fritz.box [192.168.178.132]) by babic.homelinux.org (Postfix) with ESMTP id B92EA4540378; Mon, 5 Mar 2018 12:26:57 +0100 (CET) From: Stefano Babic To: swupdate@googlegroups.com Cc: Stefano Babic , Sami Hartikainen Subject: [swupdate] [PATCH V2 1/2] mongoose: split upload_handler Date: Mon, 5 Mar 2018 12:26:54 +0100 Message-Id: <1520249215-31082-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: - move prototype for upload_handler to this patch 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