From patchwork Mon Feb 17 08:50:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luca Pesce X-Patchwork-Id: 1239050 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=googlegroups.com (client-ip=2a00:1450:4864:20::53e; helo=mail-ed1-x53e.google.com; envelope-from=swupdate+bncbaabbrnhvhzakgqelw64pdi@googlegroups.com; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=vimar.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=googlegroups.com header.i=@googlegroups.com header.a=rsa-sha256 header.s=20161025 header.b=Is255QAe; dkim-atps=neutral Received: from mail-ed1-x53e.google.com (mail-ed1-x53e.google.com [IPv6:2a00:1450:4864:20::53e]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48Ld3Y6jkqz9sPJ for ; Mon, 17 Feb 2020 19:50:17 +1100 (AEDT) Received: by mail-ed1-x53e.google.com with SMTP id f25sf12402342eds.22 for ; Mon, 17 Feb 2020 00:50:17 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1581929414; cv=pass; d=google.com; s=arc-20160816; b=Uexst9bjVeUZs0qCs66TujIUUxl42QRiKOlA81liZeqmNogSkrZCPWN7p/FHMPQsSH 7MXqD34s3eaon9wBOa0D92KJL64F9qNQGxDumRffTWe+FsVHfKJ1oc+VqVoi8iXm6AFT XdvTCz/r9Ih/Wqj8PRGaobwM/vFdzgKSgL2I/Synv+jHOgAGBL1sztMa4Vm0EX3m7RzD P4L8MhiYrYIdMRMozLdX6sMzqRhVy3JynAPWyvPXyFlgXvtLg/Inycp1fYQqmk1YG0cr EKh46AKVTTQZSezCAyrHBZtRkaNW0nvAhN+eWl/ccdWUpVqeZi3CcXZq37t4GVeLCjoo Gjgw== ARC-Message-Signature: i=3; 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:mime-version :content-transfer-encoding:content-language:accept-language :in-reply-to:references:message-id:date:thread-index:thread-topic :subject:cc:to:from:sender:dkim-signature; bh=59TumYkixiMA3XLtbUMlh8s6aNL5qHscua9rUcYLbhY=; b=LX7yqjs/xGp6JIJ5EscsF1faAiwmM8redMPdI/P0ZYkKNjewFk74l0Nke0hBEcaT16 CLJmLFMDjmYZ4c8qDszl0NSq/FZtf7MzEhA1gjPGjb9dJNwgaqdT8+pymkWwkMpCTmhq ozCGZD3t3iyYrntXkprpE2x9AjBWa0ZZOvhjZz7+XRKTCATA3V7ODVdpR9cHQB9zLHS6 Nfrtv8xBt/PZC0VAk/gwu5h1hgICZtw9whC4pAB18XQm+4DpUYOAOr4A7cbNTPLp+biR yjOPPRp6I+pk8+OqWxooODzBPqGa0hVN+fexaqBx4DjBLzRHTK/3pS5NykpwxBsJQWai y/oQ== ARC-Authentication-Results: i=3; gmr-mx.google.com; dkim=pass header.i=@Vimargroup.onmicrosoft.com header.s=selector2-Vimargroup-onmicrosoft-com header.b=Rr5L3SKt; arc=pass (i=1 spf=pass spfdomain=vimar.com dkim=pass dkdomain=vimar.com dmarc=pass fromdomain=vimar.com); spf=pass (google.com: domain of luca.pesce@vimar.com designates 2a01:111:f400:fe02::627 as permitted sender) smtp.mailfrom=Luca.Pesce@vimar.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20161025; h=sender:from:to:cc:subject:thread-topic:thread-index:date:message-id :references:in-reply-to:accept-language:content-language :content-transfer-encoding:mime-version:x-original-sender :x-original-authentication-results:precedence:mailing-list:list-id :list-post:list-help:list-archive:list-subscribe:list-unsubscribe; bh=59TumYkixiMA3XLtbUMlh8s6aNL5qHscua9rUcYLbhY=; b=Is255QAe2coAI3iXorfk3A2V3e4VezooK6ju8AnX+BX18+jVcR6BpsXZyzS8VTSQCE G9FpMNBBzBOqOQk3RBTVDMkjfoPlNJXid/6HB6CT8UtWeaBvOK+gvEUR3sKlRw0ajx1X Pd9fagdBDK6LF9AKwxNNKyETvZKOR4MjqUU/1JhdKu+GkLNXmHUPCOsMAb4yx0VGr8J3 2gusuyOOv8dazzdks7J9g2RfIw2iGXnwLR2v/feF1vKmWiq84B0TuUEgPFl5ZIdR5swW FfFqUO84IUfVOnLEQx/OITgciTnnHMePwi6Q4EBDH+gojDnnxe748KelCWKMXcN5NKVV ceJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=sender:x-gm-message-state:from:to:cc:subject:thread-topic :thread-index:date:message-id:references:in-reply-to:accept-language :content-language:content-transfer-encoding:mime-version :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=59TumYkixiMA3XLtbUMlh8s6aNL5qHscua9rUcYLbhY=; b=XLTERFt5WMD6JNa9EOjScz1eiOnEHtykV9KByFl1Oj/Y71UhziGo1URGJQtFDzpHR+ YAK3kr7OV7T+13pJJalC2zFTXWEt0L96oC5UJEyd+tnd1hw2fjXXittlZl0HMZiEw5sq fOD4uFqqLlbwny7KR64XXoq5k6QIxHhXVfMGSMyVDnTJvLEjW9p2KpoS4T6BZJpAA0K2 6im3RIjU1EE/K/5aB3Tb8Z/9wouB+FYprB4RN4GRiokagFXf9g7nmj7/lZKk/+RnZVl9 B2qPZB9pxMmu+MTTCOV1o35YxuvvaV4L56M3nLLF0taBXggQtecsOKwEJfb3xu3xXl1z sf8A== Sender: swupdate@googlegroups.com X-Gm-Message-State: APjAAAVIn5qElziprdwT2QDq+A4DPOv7z8h97WDQGVK3qQrfH7whLp/l A81BtVGQh6SOoO1MGhAmJaE= X-Google-Smtp-Source: APXvYqyzoJB7R6NzIkkt7yEyuVv/SMFbzI9iDow4QmQnghfZLyltB5mjfvk6FoaNJBmS8LPYUsEIxQ== X-Received: by 2002:a17:906:aec7:: with SMTP id me7mr13475685ejb.81.1581929413922; Mon, 17 Feb 2020 00:50:13 -0800 (PST) X-BeenThere: swupdate@googlegroups.com Received: by 2002:a17:907:385:: with SMTP id ss5ls3353761ejb.7.gmail; Mon, 17 Feb 2020 00:50:13 -0800 (PST) X-Received: by 2002:a17:906:4089:: with SMTP id u9mr13958758ejj.184.1581929413346; Mon, 17 Feb 2020 00:50:13 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1581929413; cv=pass; d=google.com; s=arc-20160816; b=Rp8pzpuZTqhaIljo2g68cVOCR2dlZa+BANzefJRdJXHux8HUxgo2RAV98CTPsQuTdy +nVUoYAJXN2BqVqbsYpvGHeoNQcKpBavWg4p70I7TcVxSLDJ6rCmPMyBR9XzEpNaQtM9 XFJlaK4jbNm/mIe4MKkR9xKJG98S+fl+ONhopnpllY+RlB7HghpWgY+0TQdR1hPw7v5h or07Gn4yLbHzMltWY2gAU82d4+z9ZUgR1+WbodSCIHX0qimnMO6iPNfBEXqcRlOnPgvn 7WXSDapGKM4rG0vTmzev9L7FWw78QQtb0YRz9nWAt6d2eTCr73WA3qo39azcxzD0s70C HK8A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature; bh=7sZtgcookQclPdzt/S/Tzl9pxQAn70jpUqXY1ZpSDkw=; b=h+bbfXq4gPod1rTMNnY0iDvE+usk4S94SZ6iBA4Uz0uwRUNHT9VzSTXDR8YBTJqgmT 069fKizgu6t02j8l0KwCoU9N0G9ivEHWX9+0ph3mWLeLRY7dP9MoCg53rlRFIhuDC8qY TJke+JEBCcmspkaaSmxNRMvT55qhEUtpEKBjK41e6XQooIE7dRxyjXQ3VbtNXZHktUQT 28r85SgdJdQgz44oPTNxzqy5+oILXl1DHeYavnc7h9zEOlCz66fcwtpJ8KoJdNb7OiPO isCq3+HDiWc3aJxTT5EwIlhuHxn45lhAqY/njFRx5rRXVp9PW8Xk/kCvZt9oo9nl7kKR ZQBw== ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@Vimargroup.onmicrosoft.com header.s=selector2-Vimargroup-onmicrosoft-com header.b=Rr5L3SKt; arc=pass (i=1 spf=pass spfdomain=vimar.com dkim=pass dkdomain=vimar.com dmarc=pass fromdomain=vimar.com); spf=pass (google.com: domain of luca.pesce@vimar.com designates 2a01:111:f400:fe02::627 as permitted sender) smtp.mailfrom=Luca.Pesce@vimar.com Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0627.outbound.protection.outlook.com. [2a01:111:f400:fe02::627]) by gmr-mx.google.com with ESMTPS id df10si798598edb.1.2020.02.17.00.50.13 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 17 Feb 2020 00:50:13 -0800 (PST) Received-SPF: pass (google.com: domain of luca.pesce@vimar.com designates 2a01:111:f400:fe02::627 as permitted sender) client-ip=2a01:111:f400:fe02::627; ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SBDXFx7Y2FJVou5F1fIBk6ymWhUdp+9OKz0LxCsIMwUZ9XbGDy4PguojnIKQAUGWNdpwIrXUH9wyzswx5TCxVh703YL/ZoAiG6+Ok/1bn/RYE8dv2eVxmg1l1NjtIlRYEj4bMvRC27fkLR2fsXYWslTppMi8GnHk6AeWBvK1ZVGsoJukL7HxBrFJlFM/1d7RFX8ZcuFwQCRmzeBI0jYpNfNRyWE4qXVZAEo8HSj9sZEXY1lhC7z+O1DjlCPn4Rtm6fV8tAeR6vXHu14N2raNm3x2YSsJEfOQ2qcUzbtG/zUHiQJ/21gvPhBcZAkaAOUjGady/6eSrQCtfh+trcm/mw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7sZtgcookQclPdzt/S/Tzl9pxQAn70jpUqXY1ZpSDkw=; b=hVCaNg+HU59ekIfyzLY17kk+tXv4TTCyx5wmfN5JwVocad3zrZD8KhBThddoJrYqBl1BmGAueGeU4CrQFsGcgpUUrSb02QqlLNUEd5KZIGloF8GD8bMmqUS+0Ni7zFcwS+Mo9kgr1ELx6+TneqYlUYfutGG3i4gXahcZRON+1V06as0g8lPAolAxkKQV/1kahXfX1pVp2KYE/Z7GcgZvfaRzrtphiLNJX7TfmnRPLyl9Dp6Hx0HsM7AloYu3m3+0y8Q8EdoSBn7BwwlKnFoU9R+vuGGvDAIw0yconmxqvDwcxp7oz6THKrXgE/8NWwEj5feYx586LxBuzPCYPEjYOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vimar.com; dmarc=pass action=none header.from=vimar.com; dkim=pass header.d=vimar.com; arc=none Received: from AM6PR08MB3160.eurprd08.prod.outlook.com (52.135.163.161) by AM6PR08MB3414.eurprd08.prod.outlook.com (20.177.114.74) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2707.29; Mon, 17 Feb 2020 08:50:12 +0000 Received: from AM6PR08MB3160.eurprd08.prod.outlook.com ([fe80::252d:a3bc:2697:d8f1]) by AM6PR08MB3160.eurprd08.prod.outlook.com ([fe80::252d:a3bc:2697:d8f1%6]) with mapi id 15.20.2729.032; Mon, 17 Feb 2020 08:50:12 +0000 From: Pesce Luca To: "swupdate@googlegroups.com" CC: Aguilar Pedro Subject: [swupdate] R: [PATCH] suricatta: added option to bind to interface/IP address. Thread-Topic: [PATCH] suricatta: added option to bind to interface/IP address. Thread-Index: AQHV4kQl3nyaxPmyn0CmSdTJStXhZKgfGRaAgAAAIxI= Date: Mon, 17 Feb 2020 08:50:12 +0000 Message-ID: References: <1581581030-29912-1-git-send-email-luca.pesce@vimar.com>, <1581929217-7084-1-git-send-email-luca.pesce@vimar.com> In-Reply-To: <1581929217-7084-1-git-send-email-luca.pesce@vimar.com> Accept-Language: it-IT, en-US Content-Language: it-IT X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [93.62.232.162] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: bb85f5ab-b430-4748-8c1a-08d7b3866689 x-ms-traffictypediagnostic: AM6PR08MB3414:|AM6PR08MB3414: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:989; x-forefront-prvs: 0316567485 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(376002)(396003)(366004)(346002)(39850400004)(189003)(199004)(9686003)(76116006)(26005)(8936002)(71200400001)(107886003)(966005)(52536014)(66556008)(6506007)(66476007)(66946007)(81166006)(81156014)(64756008)(4326008)(33656002)(66446008)(8676002)(5660300002)(186003)(7696005)(6916009)(2906002)(316002)(86362001)(55016002)(478600001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR08MB3414; H:AM6PR08MB3160.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: vimar.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OlGH84T2sFMt/HyMFXlJpiLvl/pDLnLbvYZcUru1zYx9zmaPzplaLS+Tx6uaZR6IHkfrl1r50XtHJjrT40gDJ8gSpkspcm4PTzfVD85mN5xD1rkRECTm+3AjMyKp9+6WdciPXaxwo6CZKFcPmXu5rNgmGYe730nkm3NmTzcBjHGbsJOFmRfahPh3FkfCF02BLtg8AaFq49bExSdXq4/7KpnxV8u8gif4YqxlLfaFy0ruD8m4mL44sawqKO+kg9upPiohbtRMLp33jqA6esULgpLvWiLQklGS37dkByN190BRYnjR+nhI44IJZOxHFI7Cej7thy2/85AolpNMMmIqTAQcHTFc6JNlgTX/+2ToElt5zEsxUJ6SsjiQkP7WvUddfgLaoAC1J9Zl5lVnpv0O92K8DmXbXTuc/w/Y8+fI6ZDyr8IAJpMrtaHw328BPmrvo5jRt6HXbLbmWqQJPDVc8cd0dBtW8lRN0zkkuw/Jjd2rRRofeZN8mpl2cYkpzFD37NeCX5lRZQ4pDrZrr1eMrg== x-ms-exchange-antispam-messagedata: +SPsL8NFI+jyH7N92gWTS7WbueV5+zZW6ukoNzfyBdOErJvq+ltE19bCw6tgYcLmTEh8IzKos7I8/cb1/jpL/CqZrc5UdOZNhzt+c/JMiYnhh1801uv/PPe1XTn8R2XW61oqPWG30vz0Zq0ouoH0vA== MIME-Version: 1.0 X-OriginatorOrg: vimar.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb85f5ab-b430-4748-8c1a-08d7b3866689 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Feb 2020 08:50:12.2814 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a1f008bc-d59b-4c66-8f87-60fd9af15c7f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: oMMeioxR4sSpUN+qydAbZoOEppvCQ46935qhQ2dvm0ETUgwAId7Dv0hqv2Fvv0U9OPJoZSm+Srey6HVnHCAZVQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3414 X-Original-Sender: luca.pesce@vimar.com X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@Vimargroup.onmicrosoft.com header.s=selector2-Vimargroup-onmicrosoft-com header.b=Rr5L3SKt; arc=pass (i=1 spf=pass spfdomain=vimar.com dkim=pass dkdomain=vimar.com dmarc=pass fromdomain=vimar.com); spf=pass (google.com: domain of luca.pesce@vimar.com designates 2a01:111:f400:fe02::627 as permitted sender) smtp.mailfrom=Luca.Pesce@vimar.com 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: , Hi Stefano, rebased to current master's head (86f273c2b2258c06321ef30138c81e2d7e73b2ea), embedding patch 1 (suricatta code mods) and patch 2 (new parameter in example file) together in one patch. Pedro's patch on swupdate.rst is here: http://patchwork.ozlabs.org/patch/1237581/ Regards, Luca diff --git a/corelib/channel_curl.c b/corelib/channel_curl.c index 9062a73..c00e994 100644 --- a/corelib/channel_curl.c +++ b/corelib/channel_curl.c @@ -600,6 +600,18 @@ channel_op_res_t channel_set_options(channel_t *this, } } + /* + * If requested, use a specific interface/IP address + */ + if (channel_data->iface != NULL) { + if (curl_easy_setopt(channel_curl->handle, + CURLOPT_INTERFACE, + channel_data->iface) != CURLE_OK) { + result = CHANNEL_EINIT; + goto cleanup; + } + } + switch (method) { case CHANNEL_GET: if (curl_easy_setopt(channel_curl->handle, CURLOPT_CUSTOMREQUEST, diff --git a/examples/configuration/swupdate.cfg b/examples/configuration/swupdate.cfg index 6631436..39dda88 100644 --- a/examples/configuration/swupdate.cfg +++ b/examples/configuration/swupdate.cfg @@ -127,6 +127,9 @@ identify : ( # ciphers : string in the format used by CURL to set the allowed ciphers suite # This allows to disable some ciphers, for example # ciphers = "!eNULL:!aNULL:!EXP:!LOW:!MEDIUM:!ADH:!AECDH:!IDEA:!SEED:!MD5:!SHA:!RC4:HIGH+EECDH:HIGH+EDH"; +# interface : string +# interface name (e.g. "eth0") or IP address to bind communication channel to. +# This allows to select source interface/address for outgoing traffic, if needed. suricatta : { diff --git a/include/channel_curl.h b/include/channel_curl.h index 0e499c6..2904712 100644 --- a/include/channel_curl.h +++ b/include/channel_curl.h @@ -37,6 +37,7 @@ typedef struct { char *url; char *auth; char *request_body; + char *iface; #ifdef CONFIG_JSON json_object *json_reply; #endif diff --git a/suricatta/common.c b/suricatta/common.c index 51b7be8..bf2bcd2 100644 --- a/suricatta/common.c +++ b/suricatta/common.c @@ -42,6 +42,9 @@ void suricatta_channel_settings(void *elem, channel_data_t *chan) GET_FIELD_STRING_RESET(LIBCFG_PARSER, elem, "proxy", tmp); if (strlen(tmp)) SETSTRING(chan->proxy, tmp); + GET_FIELD_STRING_RESET(LIBCFG_PARSER, elem, "interface", tmp); + if (strlen(tmp)) + SETSTRING(chan->iface, tmp); } server_op_res_t map_channel_retcode(channel_op_res_t response) diff --git a/suricatta/server_hawkbit.c b/suricatta/server_hawkbit.c index fc5d932..55f1431 100644 --- a/suricatta/server_hawkbit.c +++ b/suricatta/server_hawkbit.c @@ -46,6 +46,7 @@ static struct option long_options[] = { {"proxy", optional_argument, NULL, 'y'}, {"targettoken", required_argument, NULL, 'k'}, {"gatewaytoken", required_argument, NULL, 'g'}, + {"interface", required_argument, NULL, 'f'}, {NULL, 0, NULL, 0}}; static unsigned short mandatory_argument_count = 0; @@ -1443,7 +1444,8 @@ void server_print_help(void) "\t -y, --proxy Use proxy. Either give proxy URL, else " "{http,all}_proxy env is tried.\n" "\t -k, --targettoken Set target token.\n" - "\t -g, --gatewaytoken Set gateway token.\n", + "\t -g, --gatewaytoken Set gateway token.\n" + "\t -f, --interface Set the network interface to connect to Hawkbit.\n", CHANNEL_DEFAULT_POLLING_INTERVAL, CHANNEL_DEFAULT_RESUME_TRIES, CHANNEL_DEFAULT_RESUME_DELAY); } @@ -1519,7 +1521,7 @@ server_op_res_t server_start(char *fname, int argc, char *argv[]) /* reset to optind=1 to parse suricatta's argument vector */ optind = 1; opterr = 0; - while ((choice = getopt_long(argc, argv, "t:i:c:u:p:xr:y::w:k:g:", + while ((choice = getopt_long(argc, argv, "t:i:c:u:p:xr:y::w:k:g:f:", long_options, NULL)) != -1) { switch (choice) { case 't': @@ -1595,6 +1597,9 @@ server_op_res_t server_start(char *fname, int argc, char *argv[]) channel_data_defaults.retry_sleep = (unsigned int)strtoul(optarg, NULL, 10); break; + case 'f': + SETSTRING(channel_data_defaults.iface, optarg); + break; /* Ignore not recognized options, they can be already parsed by the caller */ case '?': break;