Add ringbuffer to start adding sockets

This commit is contained in:
2024-11-15 15:29:03 +03:00
parent e77fddc3b8
commit 54e88cfd92
12 changed files with 518 additions and 55 deletions

View File

@@ -191,12 +191,10 @@ long sl_random_seed(){
int fd = open("/dev/random", O_RDONLY);
do{
if(-1 == fd){
/// îÅ ÍÏÇÕ ÏÔËÒÙÔØ /dev/random
WARN(_("Can't open /dev/random"));
fail = 1; break;
}
if(sizeof(long) != read(fd, &r_ini, sizeof(long))){
/// îÅ ÍÏÇÕ ÐÒÏÞÅÓÔØ /dev/random
WARN(_("Can't read /dev/random"));
fail = 1;
}
@@ -247,29 +245,24 @@ sl_mmapbuf_t *sl_mmap(char *filename){
size_t Mlen;
struct stat statbuf;
if(!filename){
/// îÅ ÚÁÄÁÎÏ ÉÍÑ ÆÁÊÌÁ!
WARNX(_("No filename given!"));
return NULL;
}
if((fd = open(filename, O_RDONLY)) < 0){
/// îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s ÄÌÑ ÞÔÅÎÉÑ
WARN(_("Can't open %s for reading"), filename);
return NULL;
}
if(fstat (fd, &statbuf) < 0){
/// îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ stat %s
WARN(_("Can't stat %s"), filename);
close(fd);
return NULL;
}
Mlen = statbuf.st_size;
if((ptr = mmap (0, Mlen, PROT_READ, MAP_PRIVATE, fd, 0)) == MAP_FAILED){
/// ïÛÉÂËÁ mmap
WARN(_("Mmap error for input"));
close(fd);
return NULL;
}
/// îÅ ÍÏÇÕ ÚÁËÒÙÔØ mmap'ÎÕÔÙÊ ÆÁÊÌ
if(close(fd)) WARN(_("Can't close mmap'ed file"));
sl_mmapbuf_t *ret = MALLOC(sl_mmapbuf_t, 1);
ret->data = ptr;
@@ -283,7 +276,6 @@ sl_mmapbuf_t *sl_mmap(char *filename){
*/
void sl_munmap(sl_mmapbuf_t *b){
if(munmap(b->data, b->len)){
/// îÅ ÍÏÇÕ munmap
ERR(_("Can't munmap"));
}
FREE(b);
@@ -352,7 +344,6 @@ void sl_setup_con(){
#else
if(tcsetattr(STDIN_FILENO, TCSANOW, &newt) < 0){
#endif
/// îÅ ÍÏÇÕ ÎÁÓÔÒÏÉÔØ ËÏÎÓÏÌØ
WARN(_("Can't setup console"));
#ifndef SL_USE_OLD_TTY
ioctl(STDIN_FILENO, TCSETS2, &oldt);
@@ -409,7 +400,6 @@ int sl_str2d(double *num, const char *str){
if(!str) return FALSE;
res = strtod(str, &endptr);
if(endptr == str || *str == '\0' || *endptr != '\0'){
/// "îÅÐÒÁ×ÉÌØÎÙÊ ÆÏÒÍÁÔ ÞÉÓÌÁ double '%s'"
WARNX(_("Wrong double number format '%s'"), str);
return FALSE;
}
@@ -423,8 +413,7 @@ int sl_str2ll(long long *num, const char *str){
if(!str) return FALSE;
res = strtoll(str, &endptr, 0);
if(endptr == str || *str == '\0' || *endptr != '\0'){
/// "îÅÐÒÁ×ÉÌØÎÙÊ ÆÏÒÍÁÔ ÞÉÓÌÁ double!"
WARNX(_("Wrong number format!"));
WARNX(_("Wrong integer number format '%s'"));
return FALSE;
}
if(num) *num = res;