GithubHelp home page GithubHelp logo

Comments (4)

mvy avatar mvy commented on September 26, 2024

The file is prefix/etc/ban.db. For some reason, +w is also required on the parent directory for the server to start correctly (at least the first time?)

from charybdis.

aaronmdjones avatar aaronmdjones commented on September 26, 2024

Charybdis' bandb (specifically, the SQLite library), much like Atheme IRC Services, uses atomic database saving. This means it first creates a new file in the directory, and then moves it into place over the old one when it's completely written. Naturally, this requires +w on the directory. If this concerns you, you can also set +t on the directory:

# ls -ahl /usr/local/charybdis/etc/
total 60K
drwxrws--T 2 root      charybdis 4.0K May 25 21:32 .
drwxr-x--- 8 root      charybdis 4.0K May 25 21:21 ..
-rw------- 1 charybdis charybdis 5.0K Apr 20 04:55 ban.db
-rw-r----- 1 root      charybdis 4.8K Jun 28 09:47 clients.conf
-rw-r----- 1 root      charybdis  595 May 25 21:36 dh3k.pem
-rw-r----- 1 root      charybdis 3.0K Apr  4 00:04 general.conf
-rw-r----- 1 root      charybdis 2.8K May 25 21:21 ircd.conf
-rw-r----- 1 root      charybdis 5.3K May 25 21:29 ircd.crt
-rw-r----- 1 root      charybdis 3.2K May 25 21:24 ircd.key
-rw-r----- 1 root      charybdis 3.0K Jun 10 20:08 ircd.motd
-rw-r----- 1 root      charybdis 2.0K Jun 11 13:25 opers.conf
-rw-r----- 1 root      charybdis 1.1K Apr 20 03:13 servers.conf

from charybdis.

grawity avatar grawity commented on September 26, 2024

Does SQLite really do this? Wouldn't scale well, I imagine.

Though it does need write rights to the directory, but for stuff like ban.db-journal instead.

from charybdis.

aaronmdjones avatar aaronmdjones commented on September 26, 2024

Ah yes, SQLite does not do atomic commits by the method I described. It does still need to create a separate file in the directory for every transaction though, and it is by that name, as described in https://www.sqlite.org/atomiccommit.html

from charybdis.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.