pub trait PamData {
    fn cleanup(&self, _pam: Pam, _flags: PamFlags, _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, PamFlags};
use std::fs::write;

struct Token([u8; 32]);

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

Provided Methods

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

Implementors

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