mesh: Move local basename into utility file

Defining an override via a missing.h can prove difficult when a file
needs to use basename and dirname both the APIs and needs to include
libgen.h for them, in such situations there will be signature clash
for basename function.
This commit is contained in:
Khem Raj 2024-09-16 20:17:45 -07:00 committed by Luiz Augusto von Dentz
parent 44a1930479
commit 7104f37735
6 changed files with 18 additions and 26 deletions

View File

@ -38,7 +38,7 @@ mesh_sources = mesh/mesh.h mesh/mesh.c \
mesh/keyring.h mesh/keyring.c \
mesh/rpl.h mesh/rpl.c \
mesh/prv-beacon.h mesh/prvbeac-server.c \
mesh/mesh-defs.h mesh/missing.h
mesh/mesh-defs.h
pkglibexec_PROGRAMS += mesh/bluetooth-meshd
mesh/mesh.$(OBJEXT): ell/internal

View File

@ -28,7 +28,6 @@
#include <ell/ell.h>
#include <json-c/json.h>
#include "mesh/missing.h"
#include "mesh/mesh-defs.h"
#include "mesh/util.h"
#include "mesh/mesh-config.h"
@ -2708,7 +2707,7 @@ void mesh_config_destroy_nvm(struct mesh_config *cfg)
if (!hex2str(cfg->uuid, 16, uuid, sizeof(uuid)))
return;
node_name = basename(node_dir);
node_name = mesh_basename(node_dir);
/* Make sure path name of node follows expected guidelines */
if (strcmp(node_name, uuid))

View File

@ -1,21 +0,0 @@
// SPDX-License-Identifier: LGPL-2.1-or-later
/*
*
* BlueZ - Bluetooth protocol stack for Linux
*
* Copyright (C) 2024 Khem Raj <raj.khem@gmail.com>
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#if !HAVE_DECL_BASENAME
#include <string.h>
static inline const char *basename(const char *path)
{
const char *base = strrchr(path, '/');
return base ? base + 1 : path;
}
#endif

View File

@ -24,7 +24,6 @@
#include <ell/ell.h>
#include "mesh/missing.h"
#include "mesh/mesh-defs.h"
#include "mesh/node.h"
@ -147,7 +146,7 @@ static void get_entries(const char *iv_path, struct l_queue *rpl_list)
if (!dir)
return;
iv_txt = basename(iv_path);
iv_txt = mesh_basename(iv_path);
if (sscanf(iv_txt, "%08x", &iv_index) != 1) {
closedir(dir);
return;

View File

@ -161,3 +161,13 @@ void enable_debug(void)
debug_enabled = true;
l_debug_enable("*");
}
#if !HAVE_DECL_BASENAME
#include <string.h>
const char *mesh_basename(const char *path)
{
const char *base = strrchr(path, '/');
return base ? base + 1 : path;
}
#endif

View File

@ -16,3 +16,8 @@ void print_packet(const char *label, const void *data, uint16_t size);
int create_dir(const char *dir_name);
void del_path(const char *path);
void enable_debug(void);
#if !HAVE_DECL_BASENAME
const char *mesh_basename(const char *path);
#else
#define mesh_basename basename
#endif