netatalk  4.4.0dev
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
nad.h
Go to the documentation of this file.
1/*
2 Copyright (c) 2009,2011 Frank Lahm <[email protected]>
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13*/
14
15#ifndef AD_H
16#define AD_H
17
18#include <arpa/inet.h>
19#include <signal.h>
20#include <sys/stat.h>
21#include <sys/types.h>
22
23#include <atalk/globals.h>
24#include <atalk/cnid.h>
25#include <atalk/compat.h>
26#include <atalk/volume.h>
27
28#define DIR_DOT_OR_DOTDOT(a) \
29 ((strcmp(a, ".") == 0) || (strcmp(a, "..") == 0))
30
31#ifndef TIMESPEC_TO_TIMEVAL
32#define TIMESPEC_TO_TIMEVAL(tv, ts) { \
33 (tv)->tv_sec = (ts)->tv_sec; \
34 (tv)->tv_usec = (ts)->tv_nsec / 1000; \
35 }
36#endif
37
38#define ADVOL_V2_OR_EA(ad) ((ad) == AD_VERSION2 || (ad) == AD_VERSION_EA)
39
40enum logtype {STD, DBG};
41
42#define SLOG(...) \
43 _log(STD, __VA_ARGS__)
44
45#define ERROR(...) \
46 do { \
47 _log(STD, __VA_ARGS__); \
48 exit(1); \
49 } while (0)
50
51typedef struct {
52 struct vol *vol;
54} afpvol_t;
55
56extern int log_verbose; /* Logging flag */
57extern void _log(enum logtype lt, char *fmt, ...);
58
59extern int ad_ls(int argc, char **argv, AFPObj *obj);
60extern int ad_cp(int argc, char **argv, AFPObj *obj);
61extern int ad_rm(int argc, char **argv, AFPObj *obj);
62extern int ad_mv(int argc, char **argv, AFPObj *obj);
63extern int ad_set(int argc, char **argv, AFPObj *obj);
64extern int ad_find(int argc, char **argv, AFPObj *obj);
65
66/* ad_util.c */
67extern int openvol(AFPObj *obj, const char *path, afpvol_t *vol);
68extern void closevol(afpvol_t *vol);
69extern cnid_t cnid_for_paths_parent(const afpvol_t *vol, const char *path,
70 cnid_t *did);
71extern char *utompath(const struct vol *, const char *);
72extern int convert_dots_encoding(const afpvol_t *svol, const afpvol_t *dvol,
73 char *path);
74
75typedef struct {
76 char *p_end;/* pointer to NULL at end of path */
77 char *target_end;/* pointer to end of target base */
78 char p_path[MAXPATHLEN + 2];/* pointer to the start of a path */
79} PATH_T;
80
81extern int fflag, iflag, lflag, nflag, pflag, vflag;
82
83#endif /* AD_H */
#define ADEDLEN_PRIVSYN
Definition adouble.h:112
uint32_t cnid_t
Definition adouble.h:156
int log_verbose
Definition nad_util.c:77
int vflag
Definition nad.h:81
void _log(enum logtype lt, char *fmt,...)
Definition nad_util.c:79
int openvol(AFPObj *obj, const char *path, afpvol_t *vol)
Definition nad_util.c:103
int convert_dots_encoding(const afpvol_t *svol, const afpvol_t *dvol, char *path)
Definition nad_util.c:207
char * utompath(const struct vol *, const char *)
Definition nad_util.c:153
logtype
Definition nad.h:40
@ DBG
Definition nad.h:40
@ STD
Definition nad.h:40
int pflag
Definition nad.h:81
int nflag
Definition nad.h:81
int lflag
Definition nad.h:81
int ad_mv(int argc, char **argv, AFPObj *obj)
void closevol(afpvol_t *vol)
Definition nad_util.c:140
int ad_set(int argc, char **argv, AFPObj *obj)
Definition nad_set.c:312
cnid_t cnid_for_paths_parent(const afpvol_t *vol, const char *path, cnid_t *did)
Definition nad_util.c:263
int fflag
Definition nad_cp.c:89
int ad_cp(int argc, char **argv, AFPObj *obj)
int iflag
Definition nad.h:81
int ad_rm(int argc, char **argv, AFPObj *obj)
int ad_ls(int argc, char **argv, AFPObj *obj)
Definition nad_ls.c:671
int ad_find(int argc, char **argv, AFPObj *obj)
Definition nad_find.c:191
cnid_t did
Definition nad_cp.c:92
static AFPObj obj
Definition netatalk.c:62
Definition globals.h:154
Definition nad.h:75
char * p_end
Definition nad.h:76
char * target_end
Definition nad.h:77
char p_path[MAXPATHLEN+2]
Definition nad.h:78
Definition nad.h:51
char db_stamp[ADEDLEN_PRIVSYN]
Definition nad.h:53
struct vol * vol
Definition nad.h:52
Definition include/atalk/directory.h:97
Definition include/atalk/volume.h:32