Trait pamsm::PamData[][src]

pub trait PamData {
    fn cleanup(&self, _pam: Pam, _flags: i32, _status: PamError) { ... }
}
Expand description

Trait to implement for data stored with pam using PamLibExt::send_data in order to provide a cleanup callback.

Example

extern crate pamsm;
use pamsm::{Pam, PamData, PamError, PamFlag};
use std::fs::write;

struct Token([u8; 32]);

impl PamData for Token {
    fn cleanup(&self, _pam: Pam, flags: i32, status: PamError) {
        if PamFlag::DATA_REPLACE as i32 & flags == 0 && status == PamError::SUCCESS {
            match write(".token.bin", self.0) {
                Ok(_) => (),
                Err(err) => {
                    if PamFlag::SILENT as i32 & flags == 0 {
                        println!("Error persisting token : {:?}", err);
                    }
                }
            };
        }
    }
}

Provided methods

fn cleanup(&self, _pam: Pam, _flags: i32, _status: PamError)[src]

The cleanup method will be called before the data is dropped by pam. See pam_set_data (3)

Implementors

impl<T: PamData, U> PamData for U where
    U: Deref<Target = T>, 
[src]

Blanket implementation for types that implement Deref<T> when T implements PamData.

fn cleanup(&self, pam: Pam, flags: i32, status: PamError)[src]