#ifdef HAVE_CONFIG_H
#include "config.h"
-#endif
+#endif /* HAVE_CONFIG_H */
#include <stdio.h> /* to pick up NULL */
#include <sys/stat.h> /* works around a bug */
-#include <syslog.h>
+#include <atalk/logger.h>
#include <atalk/afp.h>
#include <atalk/uam.h>
#include "filedir.h"
#include "status.h"
#include "misc.h"
+#ifdef HAVE_ACLS
+#include "acls.h"
+#endif
-static int afp_null(obj, ibuf, ibuflen, rbuf, rbuflen )
- AFPObj *obj;
- char *ibuf, *rbuf;
- int ibuflen, *rbuflen;
+static int afp_null(AFPObj *obj _U_, char *ibuf, size_t ibuflen _U_, char *rbuf _U_, size_t *rbuflen)
{
- syslog( LOG_INFO, "afp_null handle %d", *ibuf );
+ LOG(log_info, logtype_afpd, "afp_null handle %d", *ibuf );
*rbuflen = 0;
return( AFPERR_NOOP );
}
* Routines marked "afp_null" are AFP functions
* which are not yet implemented. A fine line...
*/
-int (*preauth_switch[])() = {
+static AFPCmd preauth_switch[] = {
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, /* 0 - 7 */
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, /* 24 - 31 */
NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, /* 32 - 39 */
+ NULL, NULL, NULL, NULL, /* 32 - 39 */
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, /* 40 - 47 */
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, /* 48 - 55 */
NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, /* 56 - 63 */
+ NULL, NULL, NULL, afp_login_ext, /* 56 - 63 */
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, /* 64 - 71 */
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, /* 248 - 255 */
};
-int (**afp_switch)() = preauth_switch;
+AFPCmd *afp_switch = preauth_switch;
-int (*postauth_switch[])() = {
+AFPCmd postauth_switch[] = {
NULL, afp_bytelock, afp_closevol, afp_closedir,
afp_closefork, afp_copyfile, afp_createdir, afp_createfile, /* 0 - 7 */
afp_delete, afp_enumerate, afp_flush, afp_flushfork,
afp_logout, afp_mapid, afp_mapname, afp_moveandrename, /* 16 - 23 */
afp_openvol, afp_opendir, afp_openfork, afp_read,
afp_rename, afp_setdirparams, afp_setfilparams, afp_setforkparams,
- /* 24 - 31 */
+ /* 24 - 31 */
afp_setvolparams, afp_write, afp_getfildirparams, afp_setfildirparams,
afp_changepw, afp_getuserinfo, afp_getsrvrmesg, afp_createid, /* 32 - 39 */
- afp_deleteid, afp_resolveid, afp_exchangefiles, afp_null /*afp_catsearch*/,
+ afp_deleteid, afp_resolveid, afp_exchangefiles, afp_catsearch,
afp_null, afp_null, afp_null, afp_null, /* 40 - 47 */
afp_opendt, afp_closedt, afp_null, afp_geticon,
afp_geticoninfo, afp_addappl, afp_rmvappl, afp_getappl, /* 48 - 55 */
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, /* 64 - 71 */
NULL, NULL, NULL, NULL,
- NULL, NULL, NULL, NULL, /* 72 - 79 */
+ NULL, NULL, afp_syncdir, afp_syncfork, /* 72 - 79 */
NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, /* 80 - 87 */
NULL, NULL, NULL, NULL,
/* add a new function if it's specified. return the old function in
* "old" if there's a pointer there. */
int uam_afpserver_action(const int id, const int which,
- int (**new)(), int (**old)())
+ AFPCmd new_table, AFPCmd *old)
{
- switch (which) {
- case UAM_AFPSERVER_PREAUTH:
- if (old)
- *old = preauth_switch[id];
- if (new)
- preauth_switch[id] = *new;
- break;
- case UAM_AFPSERVER_POSTAUTH:
- if (old)
- *old = postauth_switch[id];
- if (new)
- postauth_switch[id] = *new;
- break;
- default:
- syslog(LOG_DEBUG, "uam_afpserver_action: unknown switch %d[%d]",
- which, id);
- return -1;
- }
+ switch (which) {
+ case UAM_AFPSERVER_PREAUTH:
+ if (old)
+ *old = preauth_switch[id];
+ if (new_table)
+ preauth_switch[id] = new_table;
+ break;
+ case UAM_AFPSERVER_POSTAUTH:
+ if (old)
+ *old = postauth_switch[id];
+ if (new_table)
+ postauth_switch[id] = new_table;
+ break;
+ default:
+ LOG(log_debug, logtype_afpd, "uam_afpserver_action: unknown switch %d[%d]",
+ which, id);
+ return -1;
+ }
- return 0;
+ return 0;
}