netatalk  4.5.0
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
uam_auth.h File Reference
#include <sys/types.h>
#include <pwd.h>
#include <atalk/uam.h>
#include "file.h"

Go to the source code of this file.

Data Structures

struct  uam_mod
 
struct  uam_obj
 

Macros

#define uam_attach(a, b)
 
#define uam_detach(a)
 
#define UAM_LIST(type)
 
#define auth_unregister(a)   uam_detach(a)
 

Functions

struct uam_moduam_load (const char *, const char *)
 
void uam_unload (struct uam_mod *)
 unload the module.
 
int auth_load (const char *, const char *)
 
int auth_register (const int, struct uam_obj *)
 
struct uam_objauth_uamfind (const int, const char *, const int)
 
void auth_unload (void)
 
int getuamnames (const int, char *)
 

Detailed Description

interface between uam.c and auth.c

Macro Definition Documentation

◆ auth_unregister

#define auth_unregister (   a)    uam_detach(a)

◆ uam_attach

#define uam_attach (   a,
 
)
Value:
do { \
(a)->uam_prev->uam_next = (b); \
(b)->uam_prev = (a)->uam_prev; \
(b)->uam_next = (a); \
(a)->uam_prev = (b); \
} while (0)

◆ uam_detach

#define uam_detach (   a)
Value:
do { \
(a)->uam_prev->uam_next = (a)->uam_next; \
(a)->uam_next->uam_prev = (a)->uam_prev; \
} while (0)

◆ UAM_LIST

#define UAM_LIST (   type)
Value:
(((type) == UAM_SERVER_PRINTAUTH) ? &uam_printer : NULL)))
static struct uam_obj uam_changepw
Definition afpd/auth.c:66
static struct uam_obj uam_login
Definition afpd/auth.c:63
static enum op type
Definition nad_cp.c:96
static struct uam_obj uam_printer
Definition papd/auth.c:35
#define UAM_SERVER_CHANGEPW
Definition uam.h:28
#define UAM_SERVER_PRINTAUTH
Definition uam.h:29
#define UAM_SERVER_LOGIN
Definition uam.h:27

Function Documentation

◆ auth_load()

int auth_load ( const char *  path,
const char *  list 
)

load all of the modules

◆ auth_register()

int auth_register ( const int  type,
struct uam_obj uam 
)

◆ auth_uamfind()

struct uam_obj * auth_uamfind ( const int  type,
const char *  name,
const int  len 
)

just do a linked list search. this could be sped up with a hashed list, but i doubt anyone's going to have enough uams to matter.

◆ auth_unload()

void auth_unload ( void  )

get rid of all of the uams

◆ getuamnames()

int getuamnames ( const int  type,
char *  uamnames 
)

Return a list of names for loaded uams

◆ uam_load()

struct uam_mod * uam_load ( const char *  path,
const char *  name 
)
extern

◆ uam_unload()

void uam_unload ( struct uam_mod mod)
extern

unload the module.

we check for a cleanup function, but we don't die if one doesn't exist. however, things are likely to leak without one.