]> PatchyGit - patchyircd.git/log
patchyircd.git
9 months agodb: remove db_read_rhs
Egor [Tue, 20 Jan 2026 19:22:13 +0000 (21:22 +0200)]
db: remove db_read_rhs

9 months agoadmin: add database support
Egor [Tue, 20 Jan 2026 18:58:33 +0000 (20:58 +0200)]
admin: add database support

9 months agojob: use lambdas
Egor [Tue, 20 Jan 2026 17:28:36 +0000 (19:28 +0200)]
job: use lambdas

9 months ago.gitignore: add dbtool
Egor [Fri, 16 Jan 2026 15:09:52 +0000 (17:09 +0200)]
.gitignore: add dbtool

9 months agoadd sqlite database support
Egor [Fri, 16 Jan 2026 15:04:27 +0000 (17:04 +0200)]
add sqlite database support

15 months agospam.lua: yet ANOTHER supernets variation
Egor [Fri, 4 Jul 2025 23:08:13 +0000 (02:08 +0300)]
spam.lua: yet ANOTHER supernets variation

16 months agoirc: use a perfect hash function for command matching
Egor [Sun, 15 Jun 2025 09:39:38 +0000 (12:39 +0300)]
irc: use a perfect hash function for command matching

16 months agoirc: more match macros
Egor [Sun, 15 Jun 2025 09:36:00 +0000 (12:36 +0300)]
irc: more match macros

16 months agoirc: use string_view for command matching
Egor [Sun, 15 Jun 2025 08:26:44 +0000 (11:26 +0300)]
irc: use string_view for command matching

16 months agoirc: use a macro for command matching
Egor [Sun, 15 Jun 2025 07:57:48 +0000 (10:57 +0300)]
irc: use a macro for command matching

16 months agoconfigure.ac: check for a bunch of warning flags
Egor [Sun, 15 Jun 2025 07:35:53 +0000 (10:35 +0300)]
configure.ac: check for a bunch of warning flags

16 months agoMakefile.am: use $() instead of @@
Egor [Sun, 15 Jun 2025 06:45:08 +0000 (09:45 +0300)]
Makefile.am: use $() instead of @@

16 months agonet: add gnu::format attribute for log_client
Egor [Sun, 15 Jun 2025 06:39:28 +0000 (09:39 +0300)]
net: add gnu::format attribute for log_client

16 months agonetpoll: use uv_poll_t.data for downcasting
Egor [Sun, 15 Jun 2025 06:26:57 +0000 (09:26 +0300)]
netpoll: use uv_poll_t.data for downcasting

16 months agofix a bunch of extra warnings
Egor [Sun, 15 Jun 2025 06:21:54 +0000 (09:21 +0300)]
fix a bunch of extra warnings

16 months agosetpass: add error messages
Egor [Sun, 15 Jun 2025 05:04:08 +0000 (08:04 +0300)]
setpass: add error messages

16 months agoadd pch.mk to .gitignore
Egor [Fri, 13 Jun 2025 08:38:17 +0000 (11:38 +0300)]
add pch.mk to .gitignore

16 months agofix AC_CONFIG_SRCDIR
Egor [Fri, 13 Jun 2025 06:42:30 +0000 (09:42 +0300)]
fix AC_CONFIG_SRCDIR

16 months agosplit data structures out of common.hpp
Egor [Fri, 13 Jun 2025 06:26:59 +0000 (09:26 +0300)]
split data structures out of common.hpp

16 months agos/client_data/Client/g;s/channel/Channel/g
Egor [Fri, 13 Jun 2025 06:19:58 +0000 (09:19 +0300)]
s/client_data/Client/g;s/channel/Channel/g

capitalization to avoid shadowing issues

16 months agos/.h/.hpp/g
Egor [Fri, 13 Jun 2025 06:11:44 +0000 (09:11 +0300)]
s/.h/.hpp/g

16 months agoactually include common.h at the top of every file
Egor [Fri, 13 Jun 2025 06:05:25 +0000 (09:05 +0300)]
actually include common.h at the top of every file

just to be consistent with pch stuff, even though setpass stuff ideally
should be separate

16 months agoclient_data: remove type field
Egor [Fri, 13 Jun 2025 05:59:35 +0000 (08:59 +0300)]
client_data: remove type field

this went entirely unused

16 months agonicer make output for pch
Egor [Fri, 13 Jun 2025 05:51:12 +0000 (08:51 +0300)]
nicer make output for pch

16 months agoautomatically rebuild pch
Egor [Fri, 13 Jun 2025 05:47:38 +0000 (08:47 +0300)]
automatically rebuild pch

16 months agoadd precompiled header build option
Egor [Fri, 13 Jun 2025 05:17:58 +0000 (08:17 +0300)]
add precompiled header build option

16 months agopasswd: don't use strcpy
Egor [Fri, 13 Jun 2025 04:49:16 +0000 (07:49 +0300)]
passwd: don't use strcpy

16 months agomore header reorg
Egor [Fri, 13 Jun 2025 04:27:23 +0000 (07:27 +0300)]
more header reorg

16 months agoconsolidate standard headers inclusions
Egor [Fri, 13 Jun 2025 03:35:01 +0000 (06:35 +0300)]
consolidate standard headers inclusions

16 months agonet: recvProc clean up
Egor [Fri, 13 Jun 2025 03:08:19 +0000 (06:08 +0300)]
net: recvProc clean up

make it more in line with the original version of the code I wrote back
in 2022

16 months agonet: use rbuf/rlen/wbuf/wlen names as originally intended
Egor [Fri, 13 Jun 2025 02:26:20 +0000 (05:26 +0300)]
net: use rbuf/rlen/wbuf/wlen names as originally intended

16 months agoremove allocClient
Egor [Fri, 13 Jun 2025 01:38:21 +0000 (04:38 +0300)]
remove allocClient

16 months agoreplace dynarr with a vector<char>
Egor [Fri, 13 Jun 2025 01:10:45 +0000 (04:10 +0300)]
replace dynarr with a vector<char>

16 months agocheck EAGAIN/EWOULDBLOCK directly
Egor [Fri, 13 Jun 2025 00:40:42 +0000 (03:40 +0300)]
check EAGAIN/EWOULDBLOCK directly

16 months agocentralize all client-related logging
Egor [Fri, 13 Jun 2025 00:37:02 +0000 (03:37 +0300)]
centralize all client-related logging

and get rid of PRISocket

16 months agojust use perror and close
Egor [Fri, 13 Jun 2025 00:15:00 +0000 (03:15 +0300)]
just use perror and close

16 months agodon't redefine FD_SETSIZE and don't include poll.h
Egor [Fri, 13 Jun 2025 00:07:58 +0000 (03:07 +0300)]
don't redefine FD_SETSIZE and don't include poll.h

we no longer use select or poll

16 months agoconsistently use uv_os_sock_t and -1
Egor [Fri, 13 Jun 2025 00:07:00 +0000 (03:07 +0300)]
consistently use uv_os_sock_t and -1

16 months agoassume FOPEN_CLOEXEC exists
Egor [Thu, 12 Jun 2025 23:49:47 +0000 (02:49 +0300)]
assume FOPEN_CLOEXEC exists

16 months agonetsock: getaddrinfo abstraction deux
Egor [Thu, 12 Jun 2025 23:42:25 +0000 (02:42 +0300)]
netsock: getaddrinfo abstraction deux

we just need one result, so simply copy it out

also move setsockint back to main, to get rid of netsock.cpp

16 months agonet: set NONBLOCK at socket creation time
Egor [Thu, 12 Jun 2025 23:18:56 +0000 (02:18 +0300)]
net: set NONBLOCK at socket creation time

works on all relevant unices

16 months agonet: remove old windows stuff
Egor [Thu, 12 Jun 2025 23:13:09 +0000 (02:13 +0300)]
net: remove old windows stuff

16 months agomain: move getaddrinfo stuff into a separate function
Egor [Thu, 12 Jun 2025 23:05:59 +0000 (02:05 +0300)]
main: move getaddrinfo stuff into a separate function

16 months agobetter perror messages
Egor [Thu, 12 Jun 2025 22:14:48 +0000 (01:14 +0300)]
better perror messages

16 months agomain: fix listeners on clang 14
Egor [Thu, 12 Jun 2025 22:10:00 +0000 (01:10 +0300)]
main: fix listeners on clang 14

16 months agosetpass: replace getpass with my own impl
Egor [Thu, 12 Jun 2025 05:53:46 +0000 (08:53 +0300)]
setpass: replace getpass with my own impl

16 months agouse vector for listeners
Egor [Thu, 12 Jun 2025 03:18:31 +0000 (06:18 +0300)]
use vector for listeners

16 months agouse PACKAGE_* defines
Egor [Wed, 11 Jun 2025 09:59:42 +0000 (12:59 +0300)]
use PACKAGE_* defines

16 months agoMake IRCDDATADIR and IRCDLUADIR configurable
Egor [Wed, 11 Jun 2025 09:04:42 +0000 (12:04 +0300)]
Make IRCDDATADIR and IRCDLUADIR configurable

16 months agoMakefile.am: distribute all files in the source control
Egor [Wed, 11 Jun 2025 07:00:05 +0000 (10:00 +0300)]
Makefile.am: distribute all files in the source control

16 months agomove the valgrind command into the makefile
Egor [Wed, 11 Jun 2025 04:45:25 +0000 (07:45 +0300)]
move the valgrind command into the makefile

16 months agouse automake
Egor [Wed, 11 Jun 2025 04:37:26 +0000 (07:37 +0300)]
use automake

16 months agomap: use algorithms
Egor [Thu, 5 Jun 2025 17:58:25 +0000 (20:58 +0300)]
map: use algorithms

16 months agonetpoll: merge pollfd and polldata structures
Egor [Thu, 5 Jun 2025 17:34:14 +0000 (20:34 +0300)]
netpoll: merge pollfd and polldata structures

16 months agonetpoll: store pollfds in a vector
Egor [Thu, 5 Jun 2025 16:54:34 +0000 (19:54 +0300)]
netpoll: store pollfds in a vector

16 months agopoll: change the net_pollfd public interface
Egor [Thu, 5 Jun 2025 16:33:33 +0000 (19:33 +0300)]
poll: change the net_pollfd public interface

Since we're copying the structure out in ::get we might as well keep it
separate from the internal structure (which really should be combined
with polldata).

Also rename it to just pollfd since we no longer have name conflict with
poll.h.

16 months agonetpoll: flatten add_impl/del_impl
Egor [Thu, 5 Jun 2025 15:01:10 +0000 (18:01 +0300)]
netpoll: flatten add_impl/del_impl

16 months agonetpoll: use UV_READABLE constants directly
Egor [Thu, 5 Jun 2025 14:57:57 +0000 (17:57 +0300)]
netpoll: use UV_READABLE constants directly

16 months agonetpoll: factor out a bunch of search checks
Egor [Thu, 5 Jun 2025 14:52:17 +0000 (17:52 +0300)]
netpoll: factor out a bunch of search checks

16 months agojob: use a deuque to store jobents
Egor [Thu, 5 Jun 2025 14:12:03 +0000 (17:12 +0300)]
job: use a deuque to store jobents

16 months agojob/netpoll: clean up remnants of the old SIGCHLD handling
Egor [Thu, 5 Jun 2025 13:38:35 +0000 (16:38 +0300)]
job/netpoll: clean up remnants of the old SIGCHLD handling

16 months agomake libuv required dependency
Egor [Wed, 4 Jun 2025 23:22:20 +0000 (02:22 +0300)]
make libuv required dependency

16 months agoMakefile: rework to use object files
Egor [Wed, 4 Jun 2025 21:45:54 +0000 (00:45 +0300)]
Makefile: rework to use object files

16 months agoREUSE compliance
Egor [Wed, 4 Jun 2025 19:33:38 +0000 (22:33 +0300)]
REUSE compliance

16 months agoCOPYING: update FSF address
Egor [Wed, 4 Jun 2025 13:51:03 +0000 (16:51 +0300)]
COPYING: update FSF address

16 months agoadd copyright information to all source files
Egor [Wed, 4 Jun 2025 12:42:46 +0000 (15:42 +0300)]
add copyright information to all source files

16 months agoadd admin.txt to .gitignore
Egor [Wed, 4 Jun 2025 12:33:19 +0000 (15:33 +0300)]
add admin.txt to .gitignore

16 months agonetpoll: report shutdown sockets as POLLIN|POLLOUT
Egor [Wed, 28 May 2025 23:58:16 +0000 (02:58 +0300)]
netpoll: report shutdown sockets as POLLIN|POLLOUT

16 months agooutput something on every abort()
Egor [Wed, 28 May 2025 21:20:35 +0000 (00:20 +0300)]
output something on every abort()

16 months agonetpoll: move include uv.h out of namespace
Egor [Wed, 28 May 2025 20:15:55 +0000 (23:15 +0300)]
netpoll: move include uv.h out of namespace

18 months agoactually remove config.h
Egor [Thu, 27 Mar 2025 08:10:11 +0000 (10:10 +0200)]
actually remove config.h

18 months agonetpoll: automatically choose implementation
Egor [Thu, 27 Mar 2025 08:04:15 +0000 (10:04 +0200)]
netpoll: automatically choose implementation

18 months agoconfig.example.mk: default USE_UV=1
Egor [Thu, 27 Mar 2025 07:59:02 +0000 (09:59 +0200)]
config.example.mk: default USE_UV=1

18 months ago.gitignore: remove outdated entries
Egor [Thu, 27 Mar 2025 07:57:32 +0000 (09:57 +0200)]
.gitignore: remove outdated entries

18 months agoirc: make ADMIN info configurable
Egor [Thu, 27 Mar 2025 07:56:58 +0000 (09:56 +0200)]
irc: make ADMIN info configurable

18 months agouse system hostname by default
Egor [Thu, 27 Mar 2025 07:35:32 +0000 (09:35 +0200)]
use system hostname by default

18 months agolua: don't hardcode the lua path
Egor [Thu, 27 Mar 2025 07:22:46 +0000 (09:22 +0200)]
lua: don't hardcode the lua path

18 months agocreate_listen_sock: make sure we get a TCP socket
Egor [Thu, 27 Mar 2025 06:48:32 +0000 (08:48 +0200)]
create_listen_sock: make sure we get a TCP socket

on netbsd, getaddrinfo returns SOCK_DGRAM first

18 months agomake IRCDDATADIR configurable at runtime
Egor [Thu, 27 Mar 2025 06:34:53 +0000 (08:34 +0200)]
make IRCDDATADIR configurable at runtime

18 months agoREADME: update with latest improvements
Egor [Thu, 27 Mar 2025 05:39:37 +0000 (07:39 +0200)]
README: update with latest improvements

18 months agoircfmt: move SASL replies into functions
Egor [Thu, 27 Mar 2025 05:10:16 +0000 (07:10 +0200)]
ircfmt: move SASL replies into functions

18 months agoirc: turn channel length limit into a define
Egor [Thu, 27 Mar 2025 04:54:13 +0000 (06:54 +0200)]
irc: turn channel length limit into a define

Also add 476 response.

Also move that stuff out of config.h. This isn't something that should
be configured at compile time.

18 months agoadmin: include lua.hpp
Egor [Thu, 27 Mar 2025 04:36:21 +0000 (06:36 +0200)]
admin: include lua.hpp

fixes ABI problems on systems using upstream lua

Co-authored-by: Izuru Yakumo <eternal-servant@yakumo.dev>
19 months agowrap setsockopt
Egor [Tue, 18 Mar 2025 23:56:48 +0000 (01:56 +0200)]
wrap setsockopt

19 months agoadd tcp keepalive
Egor [Tue, 18 Mar 2025 23:55:05 +0000 (01:55 +0200)]
add tcp keepalive

19 months agoirc: don't send error when changing nick to itself
Egor [Tue, 18 Mar 2025 19:24:03 +0000 (21:24 +0200)]
irc: don't send error when changing nick to itself

19 months agonetpoll: move into namespace
Egor [Mon, 17 Mar 2025 18:39:05 +0000 (20:39 +0200)]
netpoll: move into namespace

19 months agonetpoll: remove select/epoll implementations
Egor [Mon, 17 Mar 2025 18:23:13 +0000 (20:23 +0200)]
netpoll: remove select/epoll implementations

19 months agonetpoll: log when EBADF happens
Egor [Mon, 17 Mar 2025 18:19:35 +0000 (20:19 +0200)]
netpoll: log when EBADF happens

19 months agonetpoll: close sockets in the uv_close callback
Egor [Mon, 17 Mar 2025 17:33:53 +0000 (19:33 +0200)]
netpoll: close sockets in the uv_close callback

19 months agonetpoll: wait for uv_close before reusing polldata
Egor [Sun, 2 Mar 2025 20:26:20 +0000 (22:26 +0200)]
netpoll: wait for uv_close before reusing polldata

19 months agonetpoll: add ability to change type without readding
Egor [Sun, 2 Mar 2025 20:05:25 +0000 (22:05 +0200)]
netpoll: add ability to change type without readding

kinda fixes an assert in libuv, but not really

19 months agomap: move map_value into the class
Egor [Sun, 2 Mar 2025 18:05:00 +0000 (20:05 +0200)]
map: move map_value into the class

19 months agomap: move base functions into the class
Egor [Sun, 2 Mar 2025 17:32:12 +0000 (19:32 +0200)]
map: move base functions into the class

19 months agomap: more c++ification
Egor [Sun, 2 Mar 2025 16:26:33 +0000 (18:26 +0200)]
map: more c++ification

19 months agomap: start c++ifying
Egor [Sun, 2 Mar 2025 12:36:51 +0000 (14:36 +0200)]
map: start c++ifying

19 months agomap: specify types
Egor [Sat, 1 Mar 2025 21:37:19 +0000 (23:37 +0200)]
map: specify types

19 months agonetpoll: fix memory leaks
Egor [Sat, 1 Mar 2025 21:19:59 +0000 (23:19 +0200)]
netpoll: fix memory leaks

19 months agomove signal handling to job, add libuv support
Egor [Sat, 1 Mar 2025 20:01:02 +0000 (22:01 +0200)]
move signal handling to job, add libuv support

19 months agonetpoll: add libuv implementation
Egor [Sat, 1 Mar 2025 19:47:03 +0000 (21:47 +0200)]
netpoll: add libuv implementation