X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=include%2Fatalk%2Fglobals.h;h=aa08f01469ba5679dd0a1643e199fef1b2c5a43c;hp=b65eeba1e069cd2743c2969ceec5bd5876a8e453;hb=4e7c44b51d025b4a068eeec8a5fc9f80e2f20f9e;hpb=30bdec7c3396de87144d5f6d45f11ffa6dad116b diff --git a/include/atalk/globals.h b/include/atalk/globals.h index b65eeba1..aa08f014 100644 --- a/include/atalk/globals.h +++ b/include/atalk/globals.h @@ -7,21 +7,31 @@ #define AFPD_GLOBALS_H 1 #include - -#ifdef ADMIN_GRP #include #include -#endif /* ADMIN_GRP */ #ifdef HAVE_NETDB_H #include /* this isn't header-protected under ultrix */ #endif /* HAVE_NETDB_H */ -#include #include #include #include #include +#include +#ifdef WITH_DTRACE +#include +#else +/* List of empty dtrace macros */ +#define AFP_AFPFUNC_START(a,b) +#define AFP_AFPFUNC_DONE(a, b) +#define AFP_CNID_START(a) +#define AFP_CNID_DONE() +#define AFP_READ_START(a) +#define AFP_READ_DONE() +#define AFP_WRITE_START(a) +#define AFP_WRITE_DONE() +#endif /* #define DOSFILELEN 12 */ /* Type1, DOS-compat*/ #define MACFILELEN 31 /* Type2, HFS-compat */ @@ -32,85 +42,109 @@ #define MAXUSERLEN 256 +#define DEFAULT_MAX_DIRCACHE_SIZE 8192 + #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_CLOSEVOL (1 << 1) +#define OPTION_SERVERNOTIF (1 << 2) +#define OPTION_NOSENDFILE (1 << 3) +/* #define OPTION_CUSTOMICON (1 << 4) */ +#define OPTION_AFP_READ_LOCK (1 << 5) /* whether to do AFP spec conforming read locks (default: no) */ #define OPTION_ANNOUNCESSH (1 << 6) #define OPTION_UUID (1 << 7) #define OPTION_ACL2MACCESS (1 << 8) #define OPTION_NOZEROCONF (1 << 9) -#define OPTION_KEEPSESSIONS (1 << 10) /* preserve sessions across master afpd restart with SIGQUIT */ +#define OPTION_ACL2MODE (1 << 10) +#define OPTION_SHARE_RESERV (1 << 11) /* whether to use Solaris fcntl F_SHARE locks */ +#define OPTION_DBUS_AFPSTATS (1 << 12) /* whether to run dbus thread for afpstats */ +#define OPTION_SPOTLIGHT (1 << 13) /* whether to enable Spotlight support */ + +#define PASSWD_NONE 0 +#define PASSWD_SET (1 << 0) +#define PASSWD_NOSAVE (1 << 1) +#define PASSWD_ALL (PASSWD_SET | PASSWD_NOSAVE) + +#define IS_AFP_SESSION(obj) ((obj)->dsi && (obj)->dsi->serversock == -1) + +/********************************************************************************************** + * Ini config sections + **********************************************************************************************/ + +#define INISEC_GLOBAL "Global" +#define INISEC_HOMES "Homes" + +struct DSI; +#define AFPOBJ_TMPSIZ (MAXPATHLEN) -/* 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, transports, tickleval, timeout, server_notif, flags, dircachesize; + int connections; /* Maximum number of possible AFP connections */ + int tickleval; + int timeout; + int flags; + int dircachesize; int sleep; /* Maximum time allowed to sleep (in tickles) */ int disconnected; /* Maximum time in disconnected state (in tickles) */ int fce_fmodwait; /* number of seconds FCE file mod events are put on hold */ unsigned int tcp_sndbuf, tcp_rcvbuf; - unsigned char passwdbits, passwdminlen, loginmaxfail; + unsigned char passwdbits, passwdminlen; uint32_t server_quantum; int dsireadbuf; /* scale factor for sizefof(dsi->buffer) = server_quantum * dsireadbuf */ - char hostname[MAXHOSTNAMELEN + 1], *server, *ipaddr, *port, *configfile; + char *hostname; + char *listen, *interfaces, *port; + char *Cnid_srv, *Cnid_port; + char *configfile; char *uampath, *fqdn; - char *pidfile; char *sigconffile; char *uuidconf; - struct afp_volume_name defaultvol, systemvol, uservol; - int closevol; - - char *guest, *loginmesg, *keyfile, *passwdfile; + char *guest, *loginmesg, *keyfile, *passwdfile, *extmapfile; char *uamlist; - char *authprintdir; char *signatureopt; unsigned char signature[16]; char *k5service, *k5realm, *k5keytab; - char *unixcodepage,*maccodepage; + char *unixcodepage, *maccodepage, *volcodepage; charset_t maccharset, unixcharset; mode_t umask; mode_t save_mask; -#ifdef ADMIN_GRP gid_t admingid; -#endif /* ADMIN_GRP */ int volnamelen; - /* default value for winbind authentication */ - char *ntdomain, *ntseparator; + char *ntdomain, *ntseparator, *addomain; char *logconfig; - + char *logfile; char *mimicmodel; char *adminauthuser; + char *slmod_path; + int tracker_loglevel; + struct afp_volume_name volfile; }; -#define AFPOBJ_TMPSIZ (MAXPATHLEN) -typedef struct _AFPObj { - int proto; - unsigned long servernum; - void *handle; /* either (DSI *) or (ASP *) */ - void *config; +typedef struct AFPObj { + const char *cmdlineconfigfile; + int cmdlineflags; + const void *signature; + struct DSI *dsi; struct afp_options options; - char *Obj, *Type, *Zone; + dictionary *iniconfig; char username[MAXUSERLEN]; - 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 */ struct session_info sinfo; uid_t uid; /* client running user id */ int ipc_fd; /* anonymous PF_UNIX socket for IPC with afpd parent */ + gid_t *groups; + int ngroups; + int afp_version; + /* Functions */ + void (*logout)(void); + void (*exit)(int); + int (*reply)(void *, int); + int (*attention)(void *, AFPUserBytes); } AFPObj; /* typedef for AFP functions handlers */ @@ -129,17 +163,10 @@ 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 afp_options_parse_cmdline(AFPObj *obj, int ac, char **av); extern void setmessage (const char *); extern void readmessage (AFPObj *); -/* gettok.c */ -extern void initline (int, char *); -extern int parseline (int, char *); - /* afp_util.c */ extern const char *AfpNum2name (int ); extern const char *AfpErr2name(int err); @@ -148,5 +175,5 @@ extern const char *AfpErr2name(int err); extern struct dir rootParent; extern void afp_over_dsi (AFPObj *); - +extern void afp_over_dsi_sighandlers(AFPObj *obj); #endif /* globals.h */