chore(ops/posix_mq.rs): Update crate dependencies to recent versions
First bump since 2017! This changes the code to be compatible with newer versions of the `nix` crate, which has shuffled things around a bit.
This commit is contained in:
parent
4bc3196c9a
commit
0b146dc079
5 changed files with 18 additions and 26 deletions
|
@ -1,11 +1,11 @@
|
||||||
[package]
|
[package]
|
||||||
name = "posix_mq"
|
name = "posix_mq"
|
||||||
version = "0.1.3"
|
version = "0.9.0"
|
||||||
authors = ["Vincent Ambo <vincent@aprila.no>"]
|
authors = ["Vincent Ambo <mail@tazj.in>"]
|
||||||
description = "(Higher-level) Rust bindings to POSIX message queues"
|
description = "(Higher-level) Rust bindings to POSIX message queues"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://github.com/aprilabank/posix_mq.rs"
|
repository = "https://git.tazj.in/tree/ops/posix_mq.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
nix = "0.9"
|
nix = "0.16"
|
||||||
libc = "0.2"
|
libc = "0.2"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2017 Vincent Ambo
|
Copyright (c) 2017-2020 Vincent Ambo
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
@ -43,7 +43,7 @@ pub enum Error {
|
||||||
|
|
||||||
// If an unhandled / unknown / unexpected error occurs this error will be used.
|
// If an unhandled / unknown / unexpected error occurs this error will be used.
|
||||||
// In those cases bug reports would be welcome!
|
// In those cases bug reports would be welcome!
|
||||||
UnknownForeignError(nix::Errno),
|
UnknownForeignError(nix::errno::Errno),
|
||||||
|
|
||||||
// Some other unexpected / unknown error occured. This is probably an error from
|
// Some other unexpected / unknown error occured. This is probably an error from
|
||||||
// the nix crate. Bug reports also welcome for this!
|
// the nix crate. Bug reports also welcome for this!
|
||||||
|
@ -112,8 +112,8 @@ impl From<num::ParseIntError> for Error {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fn match_errno(err: nix::Errno) -> Error {
|
fn match_errno(err: nix::errno::Errno) -> Error {
|
||||||
use nix::errno::*;
|
use nix::errno::Errno::*;
|
||||||
|
|
||||||
match err {
|
match err {
|
||||||
EACCES => Error::PermissionDenied(),
|
EACCES => Error::PermissionDenied(),
|
||||||
|
|
|
@ -16,14 +16,6 @@ pub mod error;
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests;
|
mod tests;
|
||||||
|
|
||||||
/*
|
|
||||||
TODO:
|
|
||||||
|
|
||||||
* what happens if permissions change after FD was opened?
|
|
||||||
* drop dependency on nix crate?
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
/// Wrapper type for queue names that performs basic validation of queue names before calling
|
/// Wrapper type for queue names that performs basic validation of queue names before calling
|
||||||
/// out to C code.
|
/// out to C code.
|
||||||
#[derive(Debug, Clone, PartialEq)]
|
#[derive(Debug, Clone, PartialEq)]
|
||||||
|
@ -97,11 +89,11 @@ impl Queue {
|
||||||
let oflags = {
|
let oflags = {
|
||||||
let mut flags = mqueue::MQ_OFlag::empty();
|
let mut flags = mqueue::MQ_OFlag::empty();
|
||||||
// Put queue in r/w mode
|
// Put queue in r/w mode
|
||||||
flags.toggle(mqueue::O_RDWR);
|
flags.toggle(mqueue::MQ_OFlag::O_RDWR);
|
||||||
// Enable queue creation
|
// Enable queue creation
|
||||||
flags.toggle(mqueue::O_CREAT);
|
flags.toggle(mqueue::MQ_OFlag::O_CREAT);
|
||||||
// Fail if queue exists already
|
// Fail if queue exists already
|
||||||
flags.toggle(mqueue::O_EXCL);
|
flags.toggle(mqueue::MQ_OFlag::O_EXCL);
|
||||||
flags
|
flags
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -128,7 +120,7 @@ impl Queue {
|
||||||
pub fn open(name: Name) -> Result<Queue, Error> {
|
pub fn open(name: Name) -> Result<Queue, Error> {
|
||||||
// No extra flags need to be constructed as the default is to open and fail if the
|
// No extra flags need to be constructed as the default is to open and fail if the
|
||||||
// queue does not exist yet - which is what we want here.
|
// queue does not exist yet - which is what we want here.
|
||||||
let oflags = mqueue::O_RDWR;
|
let oflags = mqueue::MQ_OFlag::O_RDWR;
|
||||||
let queue_descriptor = mqueue::mq_open(
|
let queue_descriptor = mqueue::mq_open(
|
||||||
&name.0,
|
&name.0,
|
||||||
oflags,
|
oflags,
|
||||||
|
@ -151,9 +143,9 @@ impl Queue {
|
||||||
let oflags = {
|
let oflags = {
|
||||||
let mut flags = mqueue::MQ_OFlag::empty();
|
let mut flags = mqueue::MQ_OFlag::empty();
|
||||||
// Put queue in r/w mode
|
// Put queue in r/w mode
|
||||||
flags.toggle(mqueue::O_RDWR);
|
flags.toggle(mqueue::MQ_OFlag::O_RDWR);
|
||||||
// Enable queue creation
|
// Enable queue creation
|
||||||
flags.toggle(mqueue::O_CREAT);
|
flags.toggle(mqueue::MQ_OFlag::O_CREAT);
|
||||||
flags
|
flags
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -239,8 +231,8 @@ impl Drop for Queue {
|
||||||
// Creates the default queue mode (0600).
|
// Creates the default queue mode (0600).
|
||||||
fn default_mode() -> stat::Mode {
|
fn default_mode() -> stat::Mode {
|
||||||
let mut mode = stat::Mode::empty();
|
let mut mode = stat::Mode::empty();
|
||||||
mode.toggle(stat::S_IRUSR);
|
mode.toggle(stat::Mode::S_IRUSR);
|
||||||
mode.toggle(stat::S_IWUSR);
|
mode.toggle(stat::Mode::S_IWUSR);
|
||||||
mode
|
mode
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,7 +263,7 @@ fn mq_getattr(mqd: mqd_t) -> Result<libc::mq_attr, Error> {
|
||||||
use std::mem;
|
use std::mem;
|
||||||
let mut attr = unsafe { mem::uninitialized::<libc::mq_attr>() };
|
let mut attr = unsafe { mem::uninitialized::<libc::mq_attr>() };
|
||||||
let res = unsafe { libc::mq_getattr(mqd, &mut attr) };
|
let res = unsafe { libc::mq_getattr(mqd, &mut attr) };
|
||||||
nix::Errno::result(res)
|
nix::errno::Errno::result(res)
|
||||||
.map(|_| attr)
|
.map(|_| attr)
|
||||||
.map_err(|e| e.into())
|
.map_err(|e| e.into())
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,5 +18,5 @@ fn test_open_delete() {
|
||||||
|
|
||||||
assert_eq!(message, result);
|
assert_eq!(message, result);
|
||||||
|
|
||||||
queue.delete();
|
queue.delete().expect("deleting queue failed");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue