- Oct 31, 2015
-
-
Andrew Price authored
!folder name was not working because strlen("name") was expected to be 5. Expect it to be 4 instead.
-
Andrew Price authored
This moves the folder index, text, moderation and tmp files into directories corresponding to the file name suffixes currently in use. Old New --- --- STATEDIR/foo.i STATEDIR/index/foo STATEDIR/foo.i.m STATEDIR/index/mod/foo STATEDIR/foo.i.t STATEDIR/index/new/foo STATEDIR/foo.t STATEDIR/text/foo STATEDIR/foo.t.m STATEDIR/text/mod/foo STATEDIR/foo.t.t STATEDIR/text/new/foo This has the following advantages: 1. No more ugly folder path building all over the place 2. STATEDIR and PATHSIZE used in far fewer places 3. No longer assumes paths to folder files will fit in 256 chars 4. A tidier STATEDIR 5. Better separation of concerns (more folder stuff hidden in folders.c) 6. Should make it easier to move the folder stuff into the server 7. Improved error checking/reporting This makes use of the *at family of syscalls so, instead of building paths, we now use file descriptors.
-
- Oct 29, 2015
-
-
Dom Rushbrook authored
-
Dom Rushbrook authored
-
- Oct 24, 2015
-
-
Andrew Price authored
-
- Oct 23, 2015
-
-
Andrew Price authored
An earlier patch accidentally left a zero userposn in ipc_connect but we don't have a userposn now so ipc_connect now accepts a struct user to identify as. This makes reconnecting in ipc_check() a little trickier so pass the stored target in from outside instead of checking for NULL. Also add some error checking.
-
Andrew Price authored
Also switch to pread.
-
Andrew Price authored
-
Andrew Price authored
We're using user->posn now.
-
Andrew Price authored
-
Andrew Price authored
-
Andrew Price authored
-
Andrew Price authored
Wrap the userposn and struct person in a new user structure which can be used to pass around all of the date related to the user, not just the on-disk bits. This should make things easier down the line when replacing the users.bb format with a more flexible one.
-
Andrew Price authored
-
Andrew Price authored
-
Imran Hussain authored
The control file needed to include more build deps on a ssytem with a base netinstall and build-essential.
-
Andrew Price authored
-
- Oct 22, 2015
-
-
Andrew Price authored
-
Andrew Price authored
"There is a limit to the time assigned you, and if you don't use it to free yourself it will be gone and never return." -- Marcus Aurelius
-
- Oct 21, 2015
-
-
Dom Rushbrook authored
Unreturnable gag See merge request !3
-
Laurence Sebastian Bowes authored
-
Laurence Sebastian Bowes authored
-
Imran Hussain authored
Ignore the database being busy. This fixes issue https://projects.sucs.org/arthur/mw/issues/3 by just ignoring busy messages when the DB get overloaded by spamming messages with a hashtag. See merge request !1
-
Imran Hussain authored
-
Andrew Price authored
-
Imran Hussain authored
Not checking against a variable.
-
Imran Hussain authored
This fixes issue https://projects.sucs.org/arthur/mw/issues/3 by just ignoring busy messages when the DB get overloaded by spamming messages with a hashtag.
-
Andrew Price authored
-
Andrew Price authored
Now the client can use it too if necessary.
-
Andrew Price authored
Move the bits which specified the default server options and config file paths out of the config system. Add some bits to simplify constructing an array of default config options.
-
Andrew Price authored
-
Andrew Price authored
-
Andrew Price authored
Dedupe it into src/user.c where it fits and rewrite it in terms of a new user_find_name function which will be used more later.
-
Andrew Price authored
Move it from src/{web,}client/user.[ch] into src/user.c and simplify with pwrite(2).
-
- Oct 19, 2015
-
-
Andrew Price authored
-
Andrew Price authored
-
- Oct 18, 2015
-
-
Andrew Price authored
Until now configuring mwserv has been limited to command line options and build configuration. This config system should make things a bit more flexible by adding the ability to load bits and pieces from a json config file (or many json config files). This is how it works: 1. A json object 'cfg' is built containing the build-time defaults for each config option recognised by mwserv. This will be used to validate the options in config files later. 2. A json config file in the user's home directory is loaded if it exists. It does not have to be complete: its contents will be merged into the defaults. Unrecognised options are ignored. 3. Otherwise, a config file in /etc is loaded and used similarly. 4. Command line options are parsed and the cfg object is updated with cfg_set_* in the order in which the options are found. 4a. If the [--config|-c <file>] option is encountered, the file is loaded and merged into the cfg object as before. 5. Once all of the config information is gathered and merged into the cfg object, if the [--print-config|-P] option was given, the final merged config is printed in json format (mwserv then exits). 6. Config options are then accessed using the cfg_get_* type-specific functions. This should allow the build system to be simplified in future, e.g. 'make test' could go away in favour of using ~/.mwserv.conf to store the test environment configuration. For now, the place to add new config options and their default values is in cfg_init_defaults() in servercfg.c.
-
- Oct 17, 2015
-
-
Andrew Price authored
Tip: this can be avoided by adding this to your .vimrc: match ErrorMsg '\s\+$'
-
- Oct 12, 2015
-
-
Andrew Price authored
Adding tags to the root .gitignore will make git ignore tags files in any subdirectory so there's no need for a second .gitignore.
-
Andrew Price authored
-