From patchwork Wed Feb 19 18:47:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Amisha Jain X-Patchwork-Id: 866884 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 39EF0214A73 for ; Wed, 19 Feb 2025 18:48:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739990899; cv=none; b=qhqpD7Su/2EbOwb6uKQaXgqsHcIBaAvXJcI1kVpNvWXIQ6P9rZPVpbf7WY58l4qeuppNV7M3pYfhyzIOOOy8iDanT7BGFNmmIFG2Nfklg2uPlVyP32q0/tcUrPHwXLym/uHn0yATXaKK5640Rv/9xWXQ6prtjIS8nSvrW8StyrU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739990899; c=relaxed/simple; bh=fCr3pdiMZWMD3xPTG1WN/fQn0w9SVg0TG4fRoFqqUnw=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=hx6c8/f6+quxBmqxrOSYZz/ylBwgXzrWNaTZiY+5WFG5lFew+itdOmNdPZQxDeKRxAsvCNEDxAY+9Zbl+HWT2NVFgD+U8G5yv+8scoMt3NmU7X+KUQkC2QkDvp/LOXg/D0kcbcCKCm9xqfSSHSxqHDOnecGAl9r5mtGvLvXHXaY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=FUyE10n7; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="FUyE10n7" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 51JH2MrC008355 for ; Wed, 19 Feb 2025 18:48:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=9oChOyzL+q+Y3SyZKpcMpy ORYuaWrXJdTYacBihUEyU=; b=FUyE10n74CWpjmSV9NOVPcyldzANiUJo3VWrBG rWUZKoNYDYJLm6LqrnkLMA+E19uLFjY9ki7KRNo2qU1oZDhuL13Au7K5Ljy6Tk1F d/aZn/kV7PuT8jRBNlHp0gmOKFIDL7loAfEevxVduAMyKrQLi9+1+LmRxn/oLV7R iud5XFUchMiV/u8ll5VNM1zZm9Ld72FMiaaokXvGRGx0CUnkijYUJ5borF8ggv0f 26ZnFxzd5aYfAsuHr1EDBKgBq6kb+NmIDJjXwKhbORLpp+xqnyehAvmODO0dBIXq 9c/4yv/Cr/yW+48qRgWd2Sir746yXQkF0zTFOKmJ6ZbQva/g== Received: from nasanppmta03.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 44vyy3bnvv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 19 Feb 2025 18:48:14 +0000 (GMT) Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA03.qualcomm.com (8.18.1.2/8.18.1.2) with ESMTPS id 51JImDbN013786 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 19 Feb 2025 18:48:13 GMT Received: from hu-amisjain-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.9; Wed, 19 Feb 2025 10:48:12 -0800 From: Amisha Jain To: CC: , , Subject: [PATCH v1] obex: Add messages_get_message() implementation for MAP plugin Date: Thu, 20 Feb 2025 00:17:58 +0530 Message-ID: <20250219184758.115316-1-quic_amisjain@quicinc.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-ORIG-GUID: VDDDRq8_Eprwm8USDAY3tilIRpOg5fpZ X-Proofpoint-GUID: VDDDRq8_Eprwm8USDAY3tilIRpOg5fpZ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-02-19_08,2025-02-19_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 clxscore=1015 phishscore=0 adultscore=0 lowpriorityscore=0 bulkscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 spamscore=0 mlxlogscore=940 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2502100000 definitions=main-2502190146 GET Message() operation should be supported for passing below PTS testcases - 1.MAP/MSE/MMB/BV-12-C Verify that the MSE can return an email message to the MCE. 2.MAP/MSE/MMB/BV-13-C Verify that the MSE can return a SMS message in native format to the MCE. 3.MAP/MSE/MMB/BV-14-C Verify that the MSE can return a SMS message with text trans-coded to UTF-8 to the MCE. Currently get message operation is not implemented, hence above testcases are failing. Added code to send the complete bmessage in response to the get request for the requested message handle. --- obexd/plugins/mas.c | 4 ++-- obexd/plugins/messages-dummy.c | 32 +++++++++++++++++++++++++++++++- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/obexd/plugins/mas.c b/obexd/plugins/mas.c index 10b972d65..f63fcf6c6 100644 --- a/obexd/plugins/mas.c +++ b/obexd/plugins/mas.c @@ -612,11 +612,11 @@ static void *message_open(const char *name, int oflag, mode_t mode, return NULL; } + mas->buffer = g_string_new(""); + *err = messages_get_message(mas->backend_data, name, 0, get_message_cb, mas); - mas->buffer = g_string_new(""); - if (*err < 0) return NULL; else diff --git a/obexd/plugins/messages-dummy.c b/obexd/plugins/messages-dummy.c index e313c6163..93648831a 100644 --- a/obexd/plugins/messages-dummy.c +++ b/obexd/plugins/messages-dummy.c @@ -516,7 +516,37 @@ int messages_get_message(void *session, const char *handle, messages_get_message_cb callback, void *user_data) { - return -ENOSYS; + struct session *s = session; + FILE *fp; + char *path; + char buffer[1024]; + + DBG(" "); + path = g_build_filename(s->cwd_absolute, handle, NULL); + fp = fopen(path, "r"); + if (fp == NULL) + { + DBG("fopen() failed"); + return -EBADR; + } + + /* 1024 is the maximum size of the line which is calculated to be more + * sufficient*/ + while (fgets(buffer, 1024, fp)) { + if (callback) + { + callback(session, 0, 0, (const char*)buffer, user_data); + } + } + + if (callback) + { + callback(session, 0, 0, NULL, user_data); + } + + g_free(path); + fclose(fp); + return 0; } int messages_update_inbox(void *session, messages_status_cb callback,