From bcda9e18109fbf9f73d41e983b1b07a0f9cbbd30 Mon Sep 17 00:00:00 2001 From: Alexander Vdolainen Date: Fri, 4 Mar 2016 01:15:45 +0200 Subject: [PATCH] [examples] Added initial stub for advanced example smpf; --- examples/smpf.h | 48 +++++++++++++++++++++++++++++++++++++ examples/smpfd_defs.h | 56 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 examples/smpf.h create mode 100644 examples/smpfd_defs.h diff --git a/examples/smpf.h b/examples/smpf.h new file mode 100644 index 0000000..c5be2b8 --- /dev/null +++ b/examples/smpf.h @@ -0,0 +1,48 @@ +/* + * Secure X Message Passing Library v2 examples. + * + * (c) Alexander Vdolainen 2013-2015 + * + * libsxmp is free software: you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * libsxmp is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see ."; + * + */ + +#ifndef __SXMP_EXAMPLES_SMPF_H__ +#define __SXMP_EXAMPLES_SMPF_H__ + +#define DEFAULT_PORT 9090 + +#define PUBLIC_CHANNEL 1 +#define READONLY_CHANNEL 8 +#define WRITEONLY_CHANNEL 12 + +#define DIRLIST_ID 20 +#define FILERO_ID 22 +#define FILERW_ID 23 +#define DIRSTATLIST_ID 26 + +#define PING_CMD "ping" +#define CWD_CMD "cwd" +#define GETCWD_CMD "getcwd" +#define CREAT_CMD "creat" +#define MKDIR_CMD "mkdir" +#define STAT_CMD "stat" +#define RMDIR_CMD "rmdir" +#define UNLINK_CMD "remove" + +#define DEFAULT_ROOT_DIR "/" + +#define MAX_CWDLEN 4096 + +#endif /* __SXMP_EXAMPLES_SMPF_H__ */ diff --git a/examples/smpfd_defs.h b/examples/smpfd_defs.h new file mode 100644 index 0000000..ffc8bc6 --- /dev/null +++ b/examples/smpfd_defs.h @@ -0,0 +1,56 @@ +/* + * Secure X Message Passing Library v2 examples. + * + * (c) Alexander Vdolainen 2013-2015 + * + * libsxmp is free software: you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published + * by the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * libsxmp is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see ."; + * + */ + +#ifndef __SXMP_EXAMPLES_SMPFD_DEFS_H__ +#define __SXMP_EXAMPLES_SMPFD_DEFS_H__ + +struct smpfd_ctx { + char *hostname; + char *root_dir; +}; + +struct mp_session { + sxlink_t *link; + char cwd[MAX_CWDLEN]; +}; + +typedef enum { + REGULAR = 1, + DIRECTORY, +} fnode_type_t; + +struct mp_fnode { + int fd; + uid_t uid; + gid_t gid; + mode_t mode; + size_t size; + uint32_t ref_count; + uint64_t hash; + fnode_type_t type; + struct mp_fnode *parent; + union { + mp_pcache_t *bcache; + list_head_t *dcache; + }; +}; + + +#endif /* __SXMP_EXAMPLES_SMPFD_DEFS_H__ */