Reapply "removed P_OS_POSIX conditional checks"

This reverts commit 148e32786d.
This commit is contained in:
Levi Neely 2024-06-29 12:39:47 +02:00
parent 148e32786d
commit ab59ee0419
7 changed files with 13 additions and 172 deletions

View File

@ -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

View File

@ -42,9 +42,7 @@
#if defined(P_OS_LINUX)
#include <sys/sysinfo.h>
#endif
#if defined(P_OS_POSIX)
#endif // P_OS_LINUX
#include <sys/types.h>
#include <sys/stat.h>
@ -57,7 +55,6 @@
#include <netinet/tcp.h>
#include <net/if.h>
#include <utime.h>
#include <limits.h>
#include <unistd.h>
#include <ifaddrs.h>
#include <dirent.h>
@ -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
}

View File

@ -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 <sys/types.h>
@ -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 <sys/socket.h>
#include <sys/select.h>
#include <sys/time.h>
@ -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;

View File

@ -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;

View File

@ -65,9 +65,7 @@
typedef off_t fuse_off_t;
#endif
#if defined(P_OS_POSIX)
#include <signal.h>
#endif
#if defined(P_OS_LINUX)
#include <sys/mount.h>
@ -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)<size*2){
debug(D_WARNING, "free space is %lu, less than half of minimum %lu+%lu, returning error", (unsigned long)freespc, (unsigned long)minlocal, (unsigned long)size);
psync_milisleep(5000);
#if defined(P_OS_POSIX)
return -EINTR;
#else
return 0;
#endif
}
else{
debug(D_NOTICE, "free space is %lu, less than half of minimum %lu+%lu, but we managed to free from read cache",
@ -3236,8 +3218,6 @@ void psync_fs_stop(){
psync_fs_do_stop();
}
#if defined(P_OS_POSIX)
static void psync_signal_handler(int sig){
debug(D_NOTICE, "got signal %d", sig);
psync_fs_do_stop();
@ -3275,8 +3255,6 @@ static void psync_setup_signals(){
#endif
}
#endif
static void psync_fs_init_once(){
#if psync_fs_need_per_folder_refresh_const()
unsigned char rndbuff[16];
@ -3290,9 +3268,7 @@ static void psync_fs_init_once(){
psync_fstask_init();
psync_pagecache_init();
atexit(psync_fs_do_stop);
#if defined(P_OS_POSIX)
psync_setup_signals();
#endif
psync_fsstatic_add_files();
psync_fstask_add_banned_folders();
}
@ -3398,10 +3374,8 @@ static int psync_fs_do_start(){
psync_oper.setcrtime=psync_fs_setcrtime;
#endif
#if defined(P_OS_POSIX)
myuid=getuid();
mygid=getgid();
#endif
pthread_mutex_lock(&start_mutex);
if (started)
goto err00;

View File

@ -46,14 +46,8 @@
#include "plibs.h"
#include <pthread.h>
#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;

View File

@ -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
}
}