-/*
- * $Id: util.h,v 1.21 2010-02-28 22:29:16 didg Exp $
- */
-
/*!
* @file
* Netatalk utility functions
#define EXITERR_CONF 2 /* error in config files/cmd line parameters */
#define EXITERR_SYS 3 /* local system error */
+/* Print a SBT and exit */
+#define AFP_PANIC(why) \
+ do { \
+ netatalk_panic(why); \
+ abort(); \
+ } while(0);
+
+/* LOG assert errors */
+#ifndef NDEBUG
+#define AFP_ASSERT(b) \
+ do { \
+ if (!(b)) { \
+ AFP_PANIC(#b); \
+ } \
+ } while(0);
+#else
+#define AFP_ASSERT(b)
+#endif /* NDEBUG */
+
+#define STRCMP(a,b,c) (strcmp(a,c) b 0)
#ifdef WITH_SENDFILE
extern ssize_t sys_sendfile (int __out_fd, int __in_fd, off_t *__offset,size_t __count);
extern void bprint (char *, int);
extern int strdiacasecmp (const char *, const char *);
extern int strndiacasecmp (const char *, const char *, size_t);
-extern pid_t server_lock (char * /*program*/, char * /*file*/,
- int /*debug*/);
+extern pid_t server_lock (char * /*program*/, char * /*file*/, int /*debug*/);
extern void fault_setup (void (*fn)(void *));
+extern void netatalk_panic(const char *why);
#define server_unlock(x) (unlink(x))
/* strlcpy and strlcat are used by pam modules */
******************************************************************/
extern int setnonblock(int fd, int cmd);
+extern ssize_t readt(int socket, void *data, const size_t length, int setnonblocking, int timeout);
extern const char *getip_string(const struct sockaddr *sa);
extern unsigned int getip_port(const struct sockaddr *sa);
extern void apply_ip_mask(struct sockaddr *ai, int maskbits);
*****************************************************************/
extern const char *getcwdpath(void);
+extern char *stripped_slashes_basename(char *p);
extern int lchdir(const char *dir);
#endif /* _ATALK_UTIL_H */