From ab59ee04196cb4f8a6f72611a1dfc6b9ec912eac Mon Sep 17 00:00:00 2001 From: Levi Neely <141506390+lneely@users.noreply.github.com> Date: Sat, 29 Jun 2024 12:39:47 +0200 Subject: [PATCH] Reapply "removed P_OS_POSIX conditional checks" This reverts commit 148e32786d7c886e6349ca9d3dd51d191f66a808. --- cmd/pcloudcc/pclsync_lib.cpp | 14 ------ lib/pclsync/pcompat.c | 94 +++-------------------------------- lib/pclsync/pcompat.h | 35 +++---------- lib/pclsync/pdevice_monitor.c | 2 - lib/pclsync/pfs.c | 26 ---------- lib/pclsync/pfs.h | 6 --- lib/pclsync/pp2p.c | 8 --- 7 files changed, 13 insertions(+), 172 deletions(-) diff --git a/cmd/pcloudcc/pclsync_lib.cpp b/cmd/pcloudcc/pclsync_lib.cpp index b189d10..5690465 100644 --- a/cmd/pcloudcc/pclsync_lib.cpp +++ b/cmd/pcloudcc/pclsync_lib.cpp @@ -152,7 +152,6 @@ clib::pclsync_lib::do_get_pass_from_console(std::string &password) { << std::endl; exit(1); } -#ifdef P_OS_POSIX termios oldt; tcgetattr(STDIN_FILENO, &oldt); termios newt = oldt; @@ -161,19 +160,6 @@ clib::pclsync_lib::do_get_pass_from_console(std::string &password) { std::cout << "Please, enter password" << std::endl; getline(std::cin, password); tcsetattr(STDIN_FILENO, TCSANOW, &oldt); -#else - HANDLE hStdin = GetStdHandle(STD_INPUT_HANDLE); - DWORD modeoff; - DWORD modeon; - DWORD mode; - GetConsoleMode(hStdin, &mode); - modeoff = mode & ~ENABLE_ECHO_INPUT; - modeon = mode | ENABLE_ECHO_INPUT; - SetConsoleMode(hStdin, modeoff); - std::cout << "Please, enter password" << std::endl; - getline(std::cin, password); - SetConsoleMode(hStdin, modeon); -#endif } void diff --git a/lib/pclsync/pcompat.c b/lib/pclsync/pcompat.c index 039326d..47b3ca0 100644 --- a/lib/pclsync/pcompat.c +++ b/lib/pclsync/pcompat.c @@ -42,9 +42,7 @@ #if defined(P_OS_LINUX) #include -#endif - -#if defined(P_OS_POSIX) +#endif // P_OS_LINUX #include #include @@ -57,7 +55,6 @@ #include #include #include -#include #include #include #include @@ -75,8 +72,6 @@ extern char **environ; #define PSYNC_MAP_ANONYMOUS MAP_ANON #endif -#endif - #define PROXY_NONE 0 #define PROXY_CONNECT 1 @@ -91,12 +86,10 @@ typedef struct { const char *name; } psync_run_data1; -#if defined(P_OS_POSIX) static uid_t psync_uid; static gid_t psync_gid; static gid_t *psync_gids; static int psync_gids_cnt; -#endif static int proxy_type=PROXY_NONE; static int proxy_detected=0; @@ -137,7 +130,6 @@ psync_user_is_admin(){ void psync_compat_init(){ -#if defined(P_OS_POSIX) struct rlimit limit; limit.rlim_cur=limit.rlim_max=2048; if (setrlimit(RLIMIT_NOFILE, &limit)) @@ -162,16 +154,12 @@ psync_compat_init(){ psync_page_size=PAGESIZE; #else psync_page_size=sysconf(_SC_PAGESIZE); -#endif -#else - psync_page_size=-1; #endif debug(D_NOTICE, "detected page size %d", psync_page_size); } int psync_stat_mode_ok(psync_stat_t *buf, unsigned int bits){ -#if defined(P_OS_POSIX) int i; if (psync_uid==0) return 1; @@ -189,9 +177,6 @@ psync_stat_mode_ok(psync_stat_t *buf, unsigned int bits){ return (buf->st_mode&bits)==bits; } return (buf->st_mode&bits)==bits; -#else - return 1; -#endif } char * @@ -425,7 +410,6 @@ psync_millitime(){ return tm.tv_sec*1000+tm.tv_nsec/1000000; } -#if defined(P_OS_POSIX) static void psync_add_file_to_seed(const char *fn, psync_lhash_ctx *hctx, size_t max){ char buff[4096]; @@ -447,7 +431,6 @@ psync_add_file_to_seed(const char *fn, psync_lhash_ctx *hctx, size_t max){ close(fd); } } -#endif #if defined(P_OS_LINUX) static void @@ -494,20 +477,6 @@ psync_get_random_seed_from_db(psync_lhash_ctx *hctx){ psync_get_random_seed_from_query(hctx, res); res=psync_sql_query_rdlock("SELECT * FROM resolver ORDER BY RANDOM() LIMIT 50"); psync_get_random_seed_from_query(hctx, res); -/* res=psync_sql_query_rdlock("SELECT * FROM filerevision ORDER BY RANDOM() LIMIT 50"); - psync_get_random_seed_from_query(hctx, res); - res=psync_sql_query_rdlock("SELECT * FROM file ORDER BY RANDOM() LIMIT 50"); - psync_get_random_seed_from_query(hctx, res); - res=psync_sql_query_rdlock("SELECT * FROM localfile ORDER BY RANDOM() LIMIT 50"); - psync_get_random_seed_from_query(hctx, res); - res=psync_sql_query_rdlock("SELECT * FROM folder ORDER BY RANDOM() LIMIT 25"); - psync_get_random_seed_from_query(hctx, res); - res=psync_sql_query_rdlock("SELECT * FROM localfolder ORDER BY RANDOM() LIMIT 25"); - psync_get_random_seed_from_query(hctx, res); - res=psync_sql_query_rdlock("SELECT * FROM hashchecksum ORDER BY RANDOM() LIMIT 25"); - psync_get_random_seed_from_query(hctx, res); - res=psync_sql_query_rdlock("SELECT * FROM pagecache WHERE type=1 AND rowid>(ABS(RANDOM())%(SELECT MAX(rowid)+1 FROM pagecache)) ORDER BY rowid LIMIT 50"); - psync_get_random_seed_from_query(hctx, res); */ psync_sql_statement("REPLACE INTO setting (id, value) VALUES ('random', RANDOM())"); psync_nanotime(&tm); psync_lhash_update(hctx, &tm, sizeof(&tm)); @@ -570,7 +539,6 @@ psync_get_random_seed(unsigned char *seed, const void *addent, size_t aelen, int int64_t i64; pthread_t threadid; unsigned char lsc[64][PSYNC_LHASH_DIGEST_LEN]; -#if defined(P_OS_POSIX) debug(D_NOTICE, "in"); struct utsname un; struct statvfs stfs; @@ -596,7 +564,6 @@ psync_get_random_seed(unsigned char *seed, const void *addent, size_t aelen, int #else psync_add_file_to_seed("/dev/random", &hctx, PSYNC_HASH_DIGEST_LEN); #endif -#endif #if defined(P_OS_LINUX) psync_get_random_seed_linux(&hctx); #endif @@ -1252,7 +1219,7 @@ psync_socket_pendingdata(psync_socket *sock){ int psync_socket_pendingdata_buf(psync_socket *sock){ int ret; -#if defined(P_OS_POSIX) && defined(FIONREAD) +#if defined(FIONREAD) if (ioctl(sock->sock, FIONREAD, &ret)) return -1; #else @@ -1910,46 +1877,9 @@ empty: return ret; } -#if !defined(P_OS_POSIX) -static int -psync_compat_socketpair(psync_socket_t sockfd[2]){ - psync_socket_t sock; - struct sockaddr_in addr; - socklen_t addrlen; - sock=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if (sock==INVALID_SOCKET){ - goto err0; - } - memset(&addr, 0, sizeof(addr)); - addr.sin_family=AF_INET; - addr.sin_addr.s_addr=htonl(INADDR_LOOPBACK); - addrlen=sizeof(addr); - if (bind(sock, (struct sockaddr *)&addr, sizeof(addr))==SOCKET_ERROR || - listen(sock, 1)==SOCKET_ERROR || - getsockname(sock, (struct sockaddr *)&addr, &addrlen)==SOCKET_ERROR || - (sockfd[0]=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP))==INVALID_SOCKET) - goto err1; - if (connect(sockfd[0], (struct sockaddr *)&addr, addrlen)==SOCKET_ERROR || - (sockfd[1]=accept(sock, NULL, NULL))==INVALID_SOCKET) - goto err2; - psync_close_socket(sock); - return 0; -err2: - psync_close_socket(sockfd[0]); -err1: - psync_close_socket(sock); -err0: - return SOCKET_ERROR; -} -#endif - int psync_pipe(psync_socket_t pipefd[2]){ -#if defined(P_OS_POSIX) return pipe(pipefd); -#else - return psync_compat_socketpair(pipefd); -#endif } int @@ -1969,11 +1899,7 @@ psync_pipe_write(psync_socket_t pfd, const void *buff, int num){ int psync_socket_pair(psync_socket_t sfd[2]){ -#if defined(P_OS_POSIX) return socketpair(AF_UNIX, SOCK_STREAM, 0, sfd); -#else - return psync_compat_socketpair(sfd); -#endif } int @@ -2183,7 +2109,7 @@ psync_file_close(psync_file_t fd){ int psync_file_sync(psync_file_t fd){ -#if defined(F_FULLFSYNC) && defined(P_OS_POSIX) +#if defined(F_FULLFSYNC) if (unlikely(fcntl(fd, F_FULLFSYNC))){ while (errno==EINTR){ debug(D_NOTICE, "got EINTR while fsyncing file"); @@ -2202,7 +2128,7 @@ psync_file_sync(psync_file_t fd){ } else return 0; -#elif defined(P_OS_POSIX) +#else #if _POSIX_SYNCHRONIZED_IO>0 if (unlikely(fdatasync(fd))){ #else @@ -2225,7 +2151,7 @@ int psync_file_schedulesync(psync_file_t fd){ #if defined(P_OS_LINUX) && defined(SYNC_FILE_RANGE_WRITE) return sync_file_range(fd, 0, 0, SYNC_FILE_RANGE_WRITE); -#elif defined(P_OS_POSIX) && _POSIX_MAPPED_FILES>0 && _POSIX_SYNCHRONIZED_IO>0 +#elif _POSIX_MAPPED_FILES>0 && _POSIX_SYNCHRONIZED_IO>0 struct stat st; void *fmap; int ret; @@ -2278,7 +2204,6 @@ psync_file_set_creation(psync_file_t fd, time_t ctime){ int psync_set_crtime_mtime(const char *path, time_t crtime, time_t mtime){ -#if defined(P_OS_POSIX) if (mtime){ struct timeval tm[2]; tm[0].tv_sec=mtime; @@ -2294,9 +2219,6 @@ psync_set_crtime_mtime(const char *path, time_t crtime, time_t mtime){ } else return 0; -#else - return -1; -#endif } int @@ -2344,15 +2266,13 @@ psync_file_preread(psync_file_t fd, uint64_t offset, size_t count){ int psync_file_readahead(psync_file_t fd, uint64_t offset, size_t count){ -#if defined(P_OS_POSIX) && defined(POSIX_FADV_WILLNEED) +#if defined(POSIX_FADV_WILLNEED) return posix_fadvise(fd, offset, count, POSIX_FADV_WILLNEED); -#elif defined(P_OS_POSIX) && defined(F_RDADVISE) +#elif defined(F_RDADVISE) struct radvisory ra; ra.ra_offset=offset; ra.ra_count=count; return fcntl(fd, F_RDADVISE, &ra); -#else - return psync_file_preread(fd, offset, count); #endif } diff --git a/lib/pclsync/pcompat.h b/lib/pclsync/pcompat.h index 3ae9efe..eeb3f3d 100644 --- a/lib/pclsync/pcompat.h +++ b/lib/pclsync/pcompat.h @@ -37,31 +37,20 @@ // figure out which OS... // XXX: goal is to remove // --- -#if !defined(P_OS_LINUX) || !defined(P_OS_POSIX) -#define P_OS_POSIX #if defined(__linux__) #define P_OS_LINUX #endif -#endif #if defined(P_OS_LINUX) - -#define P_OS_ID 7 - +#define P_OS_ID 7 // linux #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif - #else - -#define P_OS_ID 0 - +#define P_OS_ID 0 // non-linux posix-compliant OS #endif -// "actual" header begins here -// --- - #define _FILE_OFFSET_BITS 64 #include @@ -88,12 +77,6 @@ typedef unsigned long psync_uint_t; #define NTO_STR(s) TO_STR(s) #define TO_STR(s) #s - - - - -#if defined(P_OS_POSIX) // P_OS_POSIX - #include #include #include @@ -118,23 +101,17 @@ typedef unsigned long psync_uint_t; #if defined(st_mtimensec) #define psync_stat_mtime_native(s) ((s)->st_mtime*1000000ULL+(s)->st_mtimensec/1000) #else -#define psync_stat_mtime_native(s) \ - ((s)->st_mtime*1000000ULL+\ - ((struct timespec *)(&(s)->st_mtime))->tv_nsec/1000) +#define psync_stat_mtime_native(s) \ + ((s)->st_mtime*1000000ULL+ \ + ((struct timespec *)(&(s)->st_mtime))->tv_nsec/1000) #endif #define psync_mtime_native_to_mtime(n) ((n)/1000000ULL) - -#else // !P_OS_POSIX - -#define psync_stat_mtime_native(s) ((s)->st_mtime) -#define psync_mtime_native_to_mtime(n) (n) -#endif - #define psync_stat_inode(s) ((s)->st_ino) #define psync_stat_device(s) ((s)->st_dev) #define psync_stat_device_full(s) ((s)->st_dev) + #define psync_deviceid_short(deviceid) (deviceid) typedef struct stat psync_stat_t; diff --git a/lib/pclsync/pdevice_monitor.c b/lib/pclsync/pdevice_monitor.c index 4ae630f..930a464 100644 --- a/lib/pclsync/pdevice_monitor.c +++ b/lib/pclsync/pdevice_monitor.c @@ -44,9 +44,7 @@ #include "plocalscan.h" #include "ptimer.h" -#ifdef P_OS_POSIX #define _strdup strdup -#endif //P_OS_POSIX #define DEV_MONITOR_ACTIVITY_TIMER_INT 20 static pthread_mutex_t devmon_mutex=PTHREAD_MUTEX_INITIALIZER; diff --git a/lib/pclsync/pfs.c b/lib/pclsync/pfs.c index a444fc8..751f979 100644 --- a/lib/pclsync/pfs.c +++ b/lib/pclsync/pfs.c @@ -65,9 +65,7 @@ typedef off_t fuse_off_t; #endif -#if defined(P_OS_POSIX) #include -#endif #if defined(P_OS_LINUX) #include @@ -418,10 +416,8 @@ static void psync_row_to_folder_stat(psync_variant_row row, struct FUSE_STAT *st stbuf->st_mode=S_IFDIR | 0755; stbuf->st_nlink=psync_get_number(row[4])+2; stbuf->st_size=FS_BLOCK_SIZE; -#if defined(P_OS_POSIX) stbuf->st_blocks=1; stbuf->st_blksize=FS_BLOCK_SIZE; -#endif stbuf->st_uid=myuid; stbuf->st_gid=mygid; } @@ -442,10 +438,8 @@ static void psync_row_to_file_stat(psync_variant_row row, struct FUSE_STAT *stbu stbuf->st_mode=S_IFREG | 0644; stbuf->st_nlink=1; stbuf->st_size=size; -#if defined(P_OS_POSIX) stbuf->st_blocks=(size+511)/512; stbuf->st_blksize=FS_BLOCK_SIZE; -#endif stbuf->st_uid=myuid; stbuf->st_gid=mygid; } @@ -472,10 +466,8 @@ static void psync_mkdir_to_folder_stat(psync_fstask_mkdir_t *mk, struct FUSE_STA stbuf->st_mode=S_IFDIR | 0755; stbuf->st_nlink=mk->subdircnt+2; stbuf->st_size=FS_BLOCK_SIZE; -#if defined(P_OS_POSIX) stbuf->st_blocks=1; stbuf->st_blksize=FS_BLOCK_SIZE; -#endif stbuf->st_uid=myuid; stbuf->st_gid=mygid; } @@ -506,10 +498,8 @@ static int psync_creat_stat_fake_file(struct FUSE_STAT *stbuf){ stbuf->st_mode=S_IFREG | 0644; stbuf->st_nlink=1; stbuf->st_size=0; -#if defined(P_OS_POSIX) stbuf->st_blocks=0; stbuf->st_blksize=FS_BLOCK_SIZE; -#endif stbuf->st_uid=myuid; stbuf->st_gid=mygid; return 0; @@ -634,10 +624,8 @@ static int psync_creat_local_to_file_stat(psync_fstask_creat_t *cr, struct FUSE_ size=psync_stat_size(&st); stbuf->st_size=size; } -#if defined(P_OS_POSIX) stbuf->st_blocks=(size+511)/512; stbuf->st_blksize=FS_BLOCK_SIZE; -#endif stbuf->st_uid=myuid; stbuf->st_gid=mygid; return 0; @@ -657,10 +645,8 @@ static int psync_creat_static_to_file_stat(psync_fstask_creat_t *cr, struct FUSE stbuf->st_mode=S_IFREG | 0644; stbuf->st_nlink=1; stbuf->st_size=lc->datalen; -#if defined(P_OS_POSIX) stbuf->st_blocks=(lc->datalen+511)/512; stbuf->st_blksize=FS_BLOCK_SIZE; -#endif stbuf->st_uid=myuid; stbuf->st_gid=mygid; return 0; @@ -2185,11 +2171,7 @@ PSYNC_NOINLINE static int psync_fs_do_check_write_space(psync_openfile_t *of, si if (psync_pagecache_free_from_read_cache(size*2) - -#if defined(P_OS_POSIX) #define psync_fs_need_per_folder_refresh() psync_fs_need_per_folder_refresh_f() #define psync_fs_need_per_folder_refresh_const() 1 -#else -#define psync_fs_need_per_folder_refresh() (psync_invalidate_os_cache_needed() && psync_fs_need_per_folder_refresh_f()) -#define psync_fs_need_per_folder_refresh_const() 1 -#endif extern char *psync_fake_prefix; extern size_t psync_fake_prefix_len; diff --git a/lib/pclsync/pp2p.c b/lib/pclsync/pp2p.c index b72942e..22be04b 100644 --- a/lib/pclsync/pp2p.c +++ b/lib/pclsync/pp2p.c @@ -117,12 +117,8 @@ PSYNC_PURE static const char *p2p_get_address(void *addr){ if (((struct sockaddr_in *)addr)->sin_family==AF_INET) return inet_ntoa(((struct sockaddr_in *)addr)->sin_addr); else{ -#if defined(P_OS_POSIX) static char buff[80]; return inet_ntop(AF_INET6, &((struct sockaddr_in6 *)addr)->sin6_addr, buff, sizeof(buff)); -#else - return "IPv6 address"; /* inet_ntop on Windows is Vista+ */ -#endif } } @@ -130,12 +126,8 @@ PSYNC_PURE static const char *p2p_get_peer_address(){ if (paddr.ss_family==AF_INET) return inet_ntoa(((struct sockaddr_in *)&paddr)->sin_addr); else{ -#if defined(P_OS_POSIX) static char buff[80]; return inet_ntop(AF_INET6, &((struct sockaddr_in6 *)&paddr)->sin6_addr, buff, sizeof(buff)); -#else - return "IPv6 address"; /* inet_ntop on Windows is Vista+ */ -#endif } }