X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=etc%2Fafpd%2Fglobals.h;h=ef77470a99b4939476cec125e7ece7e1b1d56235;hb=ad220cd96d55445846d30b951a188ec5f9b849b2;hp=48b161e5d57a3211370fc3f81d46e2fb83084b21;hpb=6c1f3cff882955229cb9e0b94eca5e725817633b;p=netatalk.git diff --git a/etc/afpd/globals.h b/etc/afpd/globals.h index 48b161e5..ef77470a 100644 --- a/etc/afpd/globals.h +++ b/etc/afpd/globals.h @@ -1,6 +1,4 @@ /* - * $Id: globals.h,v 1.5 2001-06-20 18:33:04 rufustfirefly Exp $ - * * Copyright (c) 1990,1993 Regents of The University of Michigan. * All Rights Reserved. See COPYRIGHT. */ @@ -9,7 +7,6 @@ #define AFPD_GLOBALS_H 1 #include -#include #ifdef ADMIN_GRP #include @@ -23,75 +20,139 @@ #include #include #include - -/* test for inline */ -#ifndef __inline__ -#define __inline__ -#endif +#include +#include #define MACFILELEN 31 +#define MAXUSERLEN 256 #define OPTION_DEBUG (1 << 0) #define OPTION_USERVOLFIRST (1 << 1) #define OPTION_NOUSERVOL (1 << 2) #define OPTION_PROXY (1 << 3) #define OPTION_CUSTOMICON (1 << 4) +#define OPTION_NOSLP (1 << 5) +#define OPTION_ANNOUNCESSH (1 << 6) +#define OPTION_UUID (1 << 7) +#define OPTION_ACL2MACCESS (1 << 8) +#define OPTION_NOZEROCONF (1 << 9) + +#ifdef FORCE_UIDGID +/* set up a structure for this */ +typedef struct uidgidset_t { + uid_t uid; + gid_t gid; +} uidgidset; +#endif /* FORCE_UIDGID */ /* a couple of these options could get stuck in unions to save * space. */ +struct afp_volume_name { + time_t mtime; + char *name; + char *full_name; + int loaded; +}; + struct afp_options { - int connections, port, transports, tickleval, flags; - unsigned char passwdbits, passwdminlen, loginmaxfail; - u_int32_t server_quantum; - char hostname[MAXHOSTNAMELEN + 1], *server, *ipaddr, *configfile; - struct at_addr ddpaddr; - char *uampath, *nlspath, *fqdn; - char *pidfile, *defaultvol, *systemvol; - char *guest, *loginmesg, *keyfile, *passwdfile; - char *uamlist; - char *authprintdir; + int connections, transports, tickleval, timeout, server_notif, flags, dircachesize; + int sleep; /* Maximum time allowed to sleep (in tickles) */ + int disconnected; /* Maximum time in disconnected state (in tickles) */ + unsigned char passwdbits, passwdminlen, loginmaxfail; + u_int32_t server_quantum; + char hostname[MAXHOSTNAMELEN + 1], *server, *ipaddr, *port, *configfile; + struct at_addr ddpaddr; + char *uampath, *fqdn; + char *pidfile; + char *sigconffile; + char *uuidconf; + struct afp_volume_name defaultvol, systemvol, uservol; + int closevol; + + char *guest, *loginmesg, *keyfile, *passwdfile; + char *uamlist; + char *authprintdir; + char *signatureopt; + unsigned char signature[16]; + char *k5service, *k5realm, *k5keytab; + char *unixcodepage,*maccodepage; + charset_t maccharset, unixcharset; + mode_t umask; + mode_t save_mask; #ifdef ADMIN_GRP - gid_t admingid; + gid_t admingid; #endif /* ADMIN_GRP */ + int volnamelen; + + /* default value for winbind authentication */ + char *ntdomain, *ntseparator; + char *logconfig; }; #define AFPOBJ_TMPSIZ (MAXPATHLEN) -typedef struct AFPObj { - int proto; - unsigned long servernum; - void *handle, *config; - struct afp_options options; - char *Obj, *Type, *Zone; - char username[MACFILELEN + 1]; - void (*logout)(void), (*exit)(int); - int (*reply)(void *, int); - int (*attention)(void *, AFPUserBytes); - /* to prevent confusion, only use these in afp_* calls */ - char oldtmp[AFPOBJ_TMPSIZ + 1], newtmp[AFPOBJ_TMPSIZ + 1]; - void *uam_cookie; /* cookie for uams */ +typedef struct _AFPObj { + int proto; + unsigned long servernum; + void *handle; /* either (DSI *) or (ASP *) */ + void *config; + struct afp_options options; + char *Obj, *Type, *Zone; + char username[MAXUSERLEN]; + void (*logout)(void), (*exit)(int); + int (*reply)(void *, int); + int (*attention)(void *, AFPUserBytes); + void (*sleep)(void); + /* to prevent confusion, only use these in afp_* calls */ + char oldtmp[AFPOBJ_TMPSIZ + 1], newtmp[AFPOBJ_TMPSIZ + 1]; + void *uam_cookie; /* cookie for uams */ + struct session_info sinfo; + uid_t uid; /* client running user id */ + int ipc_fd; /* anonymous PF_UNIX socket for IPC with afpd parent */ +#ifdef FORCE_UIDGID + int force_uid; + uidgidset uidgid; +#endif } AFPObj; +/* typedef for AFP functions handlers */ +typedef int (*AFPCmd)(AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen); + +/* afp_dsi.c */ +extern AFPObj *AFPobj; + extern int afp_version; +extern int afp_errno; extern unsigned char nologin; -extern struct vol *volumes; extern struct dir *curdir; extern char getwdbuf[]; -extern void afp_options_init __P((struct afp_options *)); -extern int afp_options_parse __P((int, char **, struct afp_options *)); -extern int afp_options_parseline __P((char *, struct afp_options *)); -extern void afp_options_free __P((struct afp_options *, - const struct afp_options *)); -extern void setmessage __P((const char *)); -extern void readmessage __P((void)); +/* FIXME CNID */ +extern const char *Cnid_srv; +extern const char *Cnid_port; + +extern int get_afp_errno (const int param); +extern void afp_options_init (struct afp_options *); +extern int afp_options_parse (int, char **, struct afp_options *); +extern int afp_options_parseline (char *, struct afp_options *); +extern void afp_options_free (struct afp_options *, + const struct afp_options *); +extern void setmessage (const char *); +extern void readmessage (AFPObj *); /* gettok.c */ -extern void initline __P((int, char *)); -extern int parseline __P((int, char *)); +extern void initline (int, char *); +extern int parseline (int, char *); + +/* afp_util.c */ +extern const char *AfpNum2name (int ); +extern const char *AfpErr2name(int err); + +/* directory.c */ +extern struct dir rootParent; #ifndef NO_DDP -extern void afp_over_asp __P((AFPObj *)); +extern void afp_over_asp (AFPObj *); #endif /* NO_DDP */ -extern void afp_over_dsi __P((AFPObj *)); +extern void afp_over_dsi (AFPObj *); #endif /* globals.h */