if (mif == 0)
return;
- vlib_log_debug (mm->log_class, "disconnect %u (%v)", mif->dev_instance,
- err ? err->what : 0);
+ memif_log_debug (mif, "disconnect %u (%v)", mif->dev_instance,
+ err ? err->what : 0);
if (err)
{
err = clib_socket_close (mif->sock);
if (err)
{
- vlib_log_err (mm->log_class, "%U", format_clib_error, err);
+ memif_log_err (mif, "%U", format_clib_error, err);
clib_error_free (err);
}
clib_mem_free (mif->sock);
int rv;
rv = vnet_hw_interface_unassign_rx_thread (vnm, mif->hw_if_index, i);
if (rv)
- vlib_log_warn (mm->log_class,
+ memif_log_warn (mif,
"Unable to unassign interface %d, queue %d: rc=%d",
mif->hw_if_index, i, rv);
mq->ring = 0;
if (mr->is_external)
continue;
if ((rv = munmap (mr->shm, mr->region_size)))
- clib_warning ("munmap failed, rv = %d", rv);
+ memif_log_err (mif, "munmap failed, rv = %d", rv);
if (mr->fd > -1)
close (mr->fd);
}
size = read (uf->file_descriptor, &b, sizeof (b));
if (size < 0)
{
- vlib_log_debug (mm->log_class, "Failed to read form socket");
+ memif_log_debug (mif, "Failed to read form socket");
return 0;
}
clib_error_t *
memif_connect (memif_if_t * mif)
{
- memif_main_t *mm = &memif_main;
vnet_main_t *vnm = vnet_get_main ();
clib_file_t template = { 0 };
memif_region_t *mr;
int i;
clib_error_t *err = NULL;
- vlib_log_debug (mm->log_class, "connect %u", mif->dev_instance);
+ memif_log_debug (mif, "connect %u", mif->dev_instance);
vec_free (mif->local_disc_string);
vec_free (mif->remote_disc_string);
rv = vnet_hw_interface_set_rx_mode (vnm, mif->hw_if_index, i,
VNET_HW_INTERFACE_RX_MODE_DEFAULT);
if (rv)
- clib_warning
- ("Warning: unable to set rx mode for interface %d queue %d: "
+ memif_log_err
+ (mif, "Warning: unable to set rx mode for interface %d queue %d: "
"rc=%d", mif->hw_if_index, i, rv);
else
{
return 0;
error:
- vlib_log_err (mm->log_class, "%U", format_clib_error, err);
+ memif_log_err (mif, "%U", format_clib_error, err);
return err;
}
memif_init_regions_and_queues (memif_if_t * mif)
{
vlib_main_t *vm = vlib_get_main ();
- memif_main_t *mm = &memif_main;
memif_ring_t *ring = NULL;
int i, j;
u64 buffer_offset;
return 0;
error:
- vlib_log_err (mm->log_class, "%U", format_clib_error, err);
+ memif_log_err (mif, "%U", format_clib_error, err);
return err;
}
int
memif_socket_filename_add_del (u8 is_add, u32 sock_id, u8 * sock_filename)
{
- struct stat file_stat;
char *dir = 0, *tmp;
u32 idx = 0;
vec_add1 (dir, '\0');
}
- if (((stat (dir, &file_stat) == -1) || (!S_ISDIR (file_stat.st_mode)))
- && (idx != 0))
+ /* check dir existance and access rights for effective user/group IDs */
+ if (faccessat ( /* ignored */ -1, dir, F_OK | R_OK | W_OK, AT_EACCESS) <
+ 0)
{
vec_free (dir);
return VNET_API_ERROR_INVALID_ARGUMENT;
err = clib_socket_close (msf->sock);
if (err)
{
- vlib_log_err (mm->log_class, "%U", format_clib_error, err);
+ memif_log_err (mif, "%U", format_clib_error, err);
clib_error_free (err);
}
clib_mem_free (msf->sock);
msf->dev_instance_by_fd = hash_create (0, sizeof (uword));
msf->is_listener = (args->is_master != 0);
- vlib_log_debug (mm->log_class, "initializing socket file %s",
- msf->filename);
+ memif_log_debug (0, "initializing socket file %s", msf->filename);
}
if (mm->per_thread_data == 0)
memif_delete_if (vm, mif);
if (error)
{
- vlib_log_err (mm->log_class, "%U", format_clib_error, error);
+ memif_log_err (mif, "%U", format_clib_error, error);
clib_error_free (error);
}
return ret;
memset (mm, 0, sizeof (memif_main_t));
mm->log_class = vlib_log_register_class ("memif_plugin", 0);
- vlib_log_debug (mm->log_class, "initialized");
+ memif_log_debug (0, "initialized");
/* initialize binary API */
memif_plugin_api_hookup (vm);