netatalk  4.4.0dev
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
auth.c File Reference
#include <arpa/inet.h>
#include <ctype.h>
#include <errno.h>
#include <grp.h>
#include <limits.h>
#include <pwd.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/param.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <time.h>
#include <unistd.h>
#include <atalk/afp.h>
#include <atalk/compat.h>
#include <atalk/fce_api.h>
#include <atalk/globals.h>
#include <atalk/logger.h>
#include <atalk/server_ipc.h>
#include <atalk/unix.h>
#include <atalk/util.h>
#include <atalk/uuid.h>
#include "auth.h"
#include "extattrs.h"
#include "fork.h"
#include "status.h"
#include "switch.h"
#include "uam_auth.h"

Macros

#define UAM_LIST(type)

Functions

void status_versions (char *data, const ASP asp, const DSI *dsi)
void status_uams (char *data, const char *authlist)
static int send_reply (const AFPObj *obj, const int err)
static int afp_errpwdexpired (AFPObj *obj _U_, char *ibuf _U_, size_t ibuflen _U_, char *rbuf _U_, size_t *rbuflen)
static int afp_null_nolog (AFPObj *obj _U_, char *ibuf _U_, size_t ibuflen _U_, char *rbuf _U_, size_t *rbuflen)
static int set_auth_switch (const AFPObj *obj, int expired)
static int login (AFPObj *obj, struct passwd *pwd, void(*logout)(void), int expired)
int afp_zzz (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
static int create_session_token (AFPObj *obj)
static int create_session_key (AFPObj *obj)
int afp_getsession (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
int afp_disconnect (AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf _U_, size_t *rbuflen)
static int get_version (AFPObj *obj, char *ibuf, size_t ibuflen, size_t len)
int afp_login (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
int afp_login_ext (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
int afp_logincont (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
int afp_logout (AFPObj *obj, char *ibuf _U_, size_t ibuflen _U_, char *rbuf _U_, size_t *rbuflen)
int afp_changepw (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
int afp_getuserinfo (AFPObj *obj _U_, char *ibuf, size_t ibuflen _U_, char *rbuf, size_t *rbuflen)
struct uam_objauth_uamfind (const int type, const char *name, const int len)
int auth_register (const int type, struct uam_obj *uam)
int auth_load (AFPObj *obj, const char *path, const char *list)
void auth_unload (void)

Variables

static int afp_version_index
static struct uam_mod uam_modules = {NULL, NULL, &uam_modules, &uam_modules}
static struct uam_obj uam_login
static struct uam_obj uam_changepw
static struct uam_objafp_uam = NULL

Macro Definition Documentation

◆ UAM_LIST

#define UAM_LIST ( type)
Value:
&uam_changepw : NULL))
static struct uam_obj uam_changepw
Definition afpd/auth.c:56
static struct uam_obj uam_login
Definition afpd/auth.c:53
static enum op type
Definition nad_cp.c:95
#define UAM_SERVER_LOGIN_EXT
Definition uam.h:30
#define UAM_SERVER_CHANGEPW
Definition uam.h:28
#define UAM_SERVER_LOGIN
Definition uam.h:27

Function Documentation

◆ afp_changepw()

int afp_changepw ( AFPObj * obj,
char * ibuf,
size_t ibuflen,
char * rbuf,
size_t * rbuflen )

◆ afp_disconnect()

int afp_disconnect ( AFPObj * obj,
char * ibuf,
size_t ibuflen _U_,
char *rbuf _U_,
size_t * rbuflen )

◆ afp_errpwdexpired()

int afp_errpwdexpired ( AFPObj *obj _U_,
char *ibuf _U_,
size_t ibuflen _U_,
char *rbuf _U_,
size_t * rbuflen )
static

◆ afp_getsession()

int afp_getsession ( AFPObj * obj,
char * ibuf,
size_t ibuflen,
char * rbuf,
size_t * rbuflen )

◆ afp_getuserinfo()

int afp_getuserinfo ( AFPObj *obj _U_,
char * ibuf,
size_t ibuflen _U_,
char * rbuf,
size_t * rbuflen )

◆ afp_login()

int afp_login ( AFPObj * obj,
char * ibuf,
size_t ibuflen,
char * rbuf,
size_t * rbuflen )

◆ afp_login_ext()

int afp_login_ext ( AFPObj * obj,
char * ibuf,
size_t ibuflen,
char * rbuf,
size_t * rbuflen )

◆ afp_logincont()

int afp_logincont ( AFPObj * obj,
char * ibuf,
size_t ibuflen,
char * rbuf,
size_t * rbuflen )

◆ afp_logout()

int afp_logout ( AFPObj * obj,
char *ibuf _U_,
size_t ibuflen _U_,
char *rbuf _U_,
size_t * rbuflen )

◆ afp_null_nolog()

int afp_null_nolog ( AFPObj *obj _U_,
char *ibuf _U_,
size_t ibuflen _U_,
char *rbuf _U_,
size_t * rbuflen )
static

◆ afp_zzz()

int afp_zzz ( AFPObj * obj,
char * ibuf,
size_t ibuflen,
char * rbuf,
size_t * rbuflen )

◆ auth_load()

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

◆ 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 )

◆ auth_unload()

void auth_unload ( void )

◆ create_session_key()

int create_session_key ( AFPObj * obj)
static

◆ create_session_token()

int create_session_token ( AFPObj * obj)
static

◆ get_version()

int get_version ( AFPObj * obj,
char * ibuf,
size_t ibuflen,
size_t len )
static

◆ login()

int login ( AFPObj * obj,
struct passwd * pwd,
void(* logout )(void),
int expired )
static

◆ send_reply()

int send_reply ( const AFPObj * obj,
const int err )
static

◆ set_auth_switch()

int set_auth_switch ( const AFPObj * obj,
int expired )
static

◆ status_uams()

void status_uams ( char * data,
const char * authlist )

◆ status_versions()

void status_versions ( char * data,
const ASP asp,
const DSI * dsi )

Variable Documentation

◆ afp_uam

struct uam_obj* afp_uam = NULL
static

◆ afp_version_index

int afp_version_index
static

◆ uam_changepw

struct uam_obj uam_changepw
static
Initial value:
= {"", "", 0, {{NULL, NULL, NULL, NULL}}, &uam_changepw,
}

◆ uam_login

struct uam_obj uam_login
static
Initial value:
= {"", "", 0, {{NULL, NULL, NULL, NULL }}, &uam_login,
}

◆ uam_modules

struct uam_mod uam_modules = {NULL, NULL, &uam_modules, &uam_modules}
static