Files
linuxkit/alpine/packages/transfused/transfused.h
David Sheets d605e6df30 transfused: update control protocol (#181)
Add a mount suitability predicate, a pong reply message type, and a log
notice message type. Also, fixes the multi-line mount point printing issue.

Signed-off-by: David Sheets <dsheets@docker.com>
2016-06-07 19:13:52 +01:00

59 lines
1.3 KiB
C

#include <pthread.h>
#include <sys/socket.h>
typedef struct {
char * server;
char * socket;
char * fusermount;
char * pidfile;
char * logfile;
int logfile_fd;
int ctl_sock;
int data_sock;
pthread_mutex_t ctl_lock;
} parameters;
typedef struct {
parameters * params;
char * type_descr;
char * mount_point;
struct sockaddr sa_client;
socklen_t socklen_client;
int sock;
} connection_t;
pthread_attr_t detached;
void * must_malloc(char *const descr, size_t size);
void lock(char *const descr, pthread_mutex_t * mutex);
void unlock(char *const descr, pthread_mutex_t * mutex);
void write_exactly(char * descr, int fd, void * buf, size_t nbyte);
#define IN_BUFSZ ((1 << 20) + 16)
#define OUT_BUFSZ ((1 << 20) + 64)
#define EVENT_BUFSZ 4096
#define CTL_BUFSZ 65536
#define DEFAULT_FUSERMOUNT "/bin/fusermount"
#define DEFAULT_SOCKET "v:_:1525"
#define DEFAULT_SERVER "v:2:1524"
#define PING 128
#define RMDIR_SYSCALL 0
#define UNLINK_SYSCALL 1
#define MKDIR_SYSCALL 2
#define SYMLINK_SYSCALL 3
#define TRUNCATE_SYSCALL 4
#define CHMOD_SYSCALL 5
// these could be turned into an enum probably but... C standard nausea
#define MOUNT_SUITABILITY_REQUEST 1
#define TRANSFUSE_LOG_ERROR 1
#define TRANSFUSE_LOG_NOTICE 2
#define PONG_REPLY 3
#define MOUNT_SUITABILITY_REPLY 4