Files
mars-nwe/include/config.h.cmake
Mario Fetka 13737d03c3
Some checks failed
Source release / source-package (push) Failing after 41s
build: add optional Netatalk libatalk backend hook
Add an opt-in CMake hook for Netatalk/libatalk and a small nwconn-side helper
layer for future AFP/Mac namespace work.

NetWare AFP NCP 0x23 calls still have to be decoded and answered by MARS-NWE;
libatalk is not used as an afpd proxy. Instead, expose local helper wrappers
that can read AppleDouble/Finder Info metadata and resource-fork sizes from a
backing Unix path when libatalk is available.

The WebSDK documents the AFP calls as NetWare server entry points for Mac
namespace semantics, and the SDK headers expose probes such as NWAFPSupported()
plus AFP entry-id and file-information calls. Those calls require AFP entry
IDs, Finder Info, resource forks, and per-volume Mac namespace state before
MARS-NWE can return success.

Keep NCP 0x23 returning invalid namespace for now, but record whether the
libatalk metadata backend was compiled in when rejecting AFP calls. Update
TODO.md to track the remaining NetWare AFP implementation work on top of the
new backend hook.

This adds build-time integration and local metadata helpers only; it does not
change AFP protocol behavior.
2026-05-30 01:25:55 +02:00

106 lines
5.9 KiB
CMake

/* config.h: 22-Jun-00 */
/* some of this config is needed by make, others by cc */
#define DO_DEBUG @MARS_NWE_DEBUG@
/* compile in debug code */
#define FUNC_17_02_IS_DEBUG @MARS_NWE_DEBUG_DOSUTILS@
/* allow debugging with mars_dosutils */
#define DO_TESTING 0 /* set this to "1" to test only */
#if DO_TESTING
# define FILENAME_NW_INI "./nw.ini" /* full name of ini (conf) file */
# define PATHNAME_PROGS "." /* where to find the executables */
# define PATHNAME_BINDERY "." /* directory for bindery-files */
#else
# define FILENAME_NW_INI "@MARS_NWE_INSTALL_FULL_CONFDIR@/nwserv.conf"
/* full name of ini (conf) file */
# define PATHNAME_PROGS "@CMAKE_INSTALL_FULL_SBINDIR@"
/* where to find the executables */
# define PATHNAME_BINDERY "@MARS_NWE_DATA_DIR@/bindery"
/* directory for bindery-files */
#endif
#define PATHNAME_PIDFILES "@MARS_NWE_PID_DIR@"
/* directory for 'pidfiles' */
/* <---- logging the logins via "mars_nwe" in utmp/wtmp ----------------> */
#define FILENAME_UTMP UTMP_FILE /* use "NULL" instead of UTMP_FILE */
/* to disable logging via utmp */
#define FILENAME_WTMP WTMP_FILE /* use "NULL" instead of WTMP_FILE */
/* to disable logging via wtmp */
#define NETWORK_SERIAL_NMBR 0x44444444L
/* serial number (4 byte) */
#define NETWORK_APPL_NMBR 0x2222 /* application number (2 byte) */
#define MAX_CONNECTIONS @MAX_CONNECTIONS@
/* max. number of simultaneous */
/* connections handled by mars_nwe */
/* !! NOTE !! */
/* If set > 255 some NCP calls will probably not work, try it with caution */
/* and you should apply examples/kpatch2.0.29 to kernels prior 2.0.32 */
#define IPX_DATA_GR_546 2 /* 0 = max. IPX Packets = 546 +30 Byte ( 512 Byte RWBuff) */
/* 1 = max. IPX packets = 1058 +30 Byte (1024 Byte RWBuff) */
/* 2 = max. IPX packets = 1470 +30 Byte (1444 Byte RWBuff) */
/* 3 = max. IPX packets = 4130 +30 Byte (4096 Byte RWBuff) */
#define ENABLE_BURSTMODE @MARS_NWE_ENABLE_BURSTMODE@ /* 0 = disable burstmode, 1 = enable burstmode */
/* still NOT working correct !!!!! */
/* to get Burstmode really enabled, section '6' in conf-file */
/* must be set to a value > 1 (3.12 Server) */
/* and kernel-patch examples/kpatch2.0.29 should be used for */
/* kernels prior 2.0.32 */
#define USE_MMAP 1 /* use mmap systen call, not always best choice */
#if 0
#define SOCK_EXTERN 0x8005 /* creat socket for external access */
/* i.e. Xmarsmon from H. Buchholz */
#endif
/* <--------------------------------------------------------------------> */
#define MAX_NW_VOLS @MAX_VOLS@
/* max. number of mars_nwe-volumes */
#define MAX_FILE_HANDLES_CONN @MAX_FILES@
/* max. number of open files per */
/* connection */
/* <--------------- new namespace services call -----------------------> */
#define MAX_DIR_BASE_ENTRIES 50 /* max. cached base entries per */
/* connection */
#define WITH_NAME_SPACE_CALLS 1 /* Namespace Calls are only minimal */
/* supported so far. */
/* To enable testing of them this */
/* entry must be changed to '1' and */
/* entry '6' in ini file should be set*/
/* to > '0', too. */
/* <--------------------------------------------------------------------> */
#define HANDLE_ALL_SAP_TYPS 1 /* if set to 0 only SAP-Typ 4 Servers */
/* will be put into routing table and */
/* if set to 1 all SAP Typs will be */
/* used. */
#define PERSISTENT_SYMLINKS 0 /* change to '1' for persistent symlinks */
/* main idea from Victor Khimenko */
/* still NOT working !! */
/* <--------------- next is for linux only ----------------------------> */
#define INTERNAL_RIP_SAP @MARS_NWE_INTERNAL_RIP_SAP@
/* use internal/own rip/sap routines */
#define SHADOW_PWD @MARS_NWE_SHADOW_PWD@
/* change to '1' for shadow passwds */
#define QUOTA_SUPPORT @MARS_NWE_QUOTA_SUPPORT@
/* change to '1' for quota support */
#define XATTR_SUPPORT @MARS_NWE_XATTR_SUPPORT@
/* change to '1' for Linux xattr support */
#define NETATALK_SUPPORT @MARS_NWE_NETATALK_SUPPORT@
/* change to '1' for Netatalk/libatalk AFP metadata backend */
/* for sending 'Request being serviced' replys, /lenz */
#define CALL_NWCONN_OVER_SOCKET 0