[fork] static webserver
git clone git://hhvn.uk/quark
Log | Files | Refs | LICENSE

DateCommit messageAuthorFiles+-
2020-08-27 20:52mailHayden Hamilton7+1-1
2020-06-13 20:54emailHayden Hamilton4+5-405
2020-02-12 16:14CGI added, but not fully workingHayden Hamilton8+184-16
2020-02-02 16:50Allow hidden targetsHayden Hamilton3+4-1
2020-01-18 19:15Initial commitHayden Hamilton6+0-0
2020-01-18 19:14Initial commitHayden Hamilton9+2-1
2019-09-23 14:56Use pledge(2) and unveil(2) on OpenBSDLaslo Hunhold3+52-0
2019-05-30 21:15Use compound literals and explicit initializationLaslo Hunhold2+16-18
2019-02-24 20:50Improve tokenization for m- and v-flag parsingLaslo Hunhold2+88-24
2019-02-23 23:40Change target prefix mapping argument orderLaslo Hunhold3+16-13
2019-02-23 12:50Sort flag-switch alphabeticallyLaslo Hunhold1+33-33
2019-02-18 22:44Add a space after the number in the Xr mandoc macroLaslo Hunhold1+2-2
2019-01-10 21:02Don't replace '+' with ' ' when decoding URLsLaslo Hunhold1+1-3
2019-01-02 16:04Specify UTF-8 for non-binary content-typesLaslo Hunhold3+12-12
2018-07-16 20:46Fix one byte NULL stack overflowAaron Burrow2+2-1
2018-07-16 09:47Correct arg.h licenseLaslo Hunhold1+2-1
2018-07-02 16:43Send a relative redirection header wherever possibleLaslo Hunhold1+48-28
2018-07-02 16:41Use sizeof() - 1 rather than strlen()Laslo Hunhold1+1-1
2018-07-02 05:15Add Dominik Schmidt to licenseLaslo Hunhold1+1-0
2018-07-02 02:08Open a new process group before setting up signal handlerDominik Schmidt1+3-0
2018-04-02 23:23Give an indication of the time zone in the logLaslo Hunhold1+2-2
2018-04-02 22:55Clean up request host properlyLaslo Hunhold1+38-0
2018-04-02 00:55permit prefix to be empty in -v format stringJosuah Demangeon2+6-4
2018-04-02 00:54fix segfault on parsing of -v and -mJosuah Demangeon1+2-2
2018-03-05 09:24Add netinet/in.h to sock.cLaslo Hunhold1+1-0
2018-03-05 08:51Update the documentation to reflect the new flag-centric usageLaslo Hunhold4+96-41
2018-03-05 00:12http_send_response: fix undefined behaviour for copying the target stringHiltjo Posthuma1+2-1
2018-03-05 00:04Fix a logic errorLaslo Hunhold1+2-2
2018-03-04 23:56util: don't initialize server, it's already done in main()Hiltjo Posthuma2+2-2
2018-03-04 23:59Add esnprintf() and refactor some codeLaslo Hunhold3+20-6
2018-03-04 23:30Be extra pedantic again and remove all warningsLaslo Hunhold4+11-9
2018-03-01 14:18Add some missing headers and interface visibility macroQuentin Rameau3+4-2
2018-03-04 23:14Introduce flag-centric usageLaslo Hunhold6+169-95
2018-02-27 12:00Fix the regex in the exampleLaslo Hunhold1+1-1
2018-02-27 11:43Add target prefix mappingLaslo Hunhold2+28-0
2018-02-27 10:36Add support for adding a prefix to a target when matching vhostsLaslo Hunhold2+16-4
2018-02-27 02:38Use scheme-relative (aka protocol-relative) URLs for redirectsLaslo Hunhold1+1-1
2018-02-23 21:40If fork fails, close the incoming socketLaslo Hunhold1+3-3
2018-02-23 21:29Actually exit the child process once finished servingLaslo Hunhold1+1-0
2018-02-12 19:29add headers to make it compile under OpenBSDJosuah Demangeon2+3-0
2018-02-05 16:15Remove server-architecture specifics from serve() and add them to main()Laslo Hunhold1+52-56
2018-02-05 16:15Refine manpage concerning the UNIX-domain socket fileLaslo Hunhold1+5-4
2018-02-04 20:40Refine error messagesLaslo Hunhold1+6-4
2018-02-04 20:33Update LICENSELaslo Hunhold1+1-1
2018-02-04 20:27Refactor the single source file into multiple modulesLaslo Hunhold13+1345-1171
2017-08-30 21:33Homogenize license statementLaslo Hunhold1+1-1
2017-08-30 12:27config.mk: improve feature test macros and compatibilityHiltjo Posthuma2+4-3
2017-08-13 22:06Don't default to clangLaslo Hunhold1+1-1
2017-08-13 21:30Update MANPREFIX according to FHSLaslo Hunhold1+2-2
2017-08-08 20:06Make sure we flush the buffers before leavingLaslo Hunhold1+2-2
2017-08-04 15:53Rename _i,_argused to i_,argused_Laslo Hunhold1+8-8
2017-08-04 15:14Change the license formatting a bit to be in line with the OSILaslo Hunhold1+4-3
2017-08-04 15:12Import updated arg.h from farbfeldLaslo Hunhold1+17-23
2017-08-02 11:54Import fixed arg.h from farbfeldLaslo Hunhold1+1-1
2017-08-02 06:50Improve vhost handling and fix an uninitialized variable useLaslo Hunhold1+8-6
2017-08-02 06:38Import rewritten arg.h from farbfeldLaslo Hunhold1+48-58
2017-07-24 15:43Do not remove existing socket fileQuentin Rameau1+6-3
2017-07-23 23:02Forward catched signals to childrenQuentin Rameau1+1-0
2017-07-23 22:59Re-localize insock, don't manually close the socketQuentin Rameau1+1-3
2017-07-23 22:56Don't warn on cleanup unlink errorQuentin Rameau1+2-3
2017-07-23 22:53Restore default handlers in childrenQuentin Rameau1+3-0
2017-07-23 22:51Handle more signals, replace signal() with sigaction()Quentin Rameau1+10-1
2017-07-23 22:48Register signal handlers in handlesignals()Quentin Rameau1+24-23
2017-07-23 22:38Get rid of atexit()Quentin Rameau1+3-1
2017-07-23 22:31Use die() instead of fprintf+exitQuentin Rameau1+3-6
2017-07-22 23:49Don't ignore SIGCHLD in the main threadQuentin Rameau1+0-7
2017-07-22 23:45Fix typo in signal handler, SIGINT -> SIGCHLDQuentin Rameau1+2-2
2017-07-21 23:36Fix sending of zero-size filesQuentin Rameau1+3-3
2017-07-21 22:07Adjust last-byte-pos greater than filesQuentin Rameau1+5-2
2017-07-21 22:07Fix Content-Length calculationQuentin Rameau1+1-1
2017-07-22 10:32use extended regex and fix example regex for realsiesHiltjo Posthuma2+2-2
2017-07-22 10:30don't allow named service->port translationHiltjo Posthuma1+1-0
2017-07-22 10:30if there is no matching vhost return 404 Not FoundHiltjo Posthuma1+3-0
2017-07-22 10:29encode(): fix buffer-overflow and NUL terminate itHiltjo Posthuma1+2-1
2017-07-21 16:37Properly escape backslash in regexLaslo Hunhold1+1-1
2017-07-21 16:36Fix example regex in vhostsLaslo Hunhold1+2-2
2017-07-13 21:17Fix syntax errorLaslo Hunhold1+3-3
2017-07-13 17:05Fix logic error in vhost chrooting (from e592bbc)Quentin Rameau1+6-3
2017-07-11 13:02Fix the style a bit and prevent out-of-bounds index access for vhost[]Laslo Hunhold1+3-4
2017-07-11 13:02Allow switching vhosts using flags and rework the usageLaslo Hunhold2+18-18
2017-07-09 12:36Cleanup socket file at exit.Quentin Rameau2+74-29
2017-07-09 10:09Make the socketfile accessible by clientsQuentin Rameau1+12-3
2017-07-09 09:28Split synopsis to reflect the dual usage.Quentin Rameau2+12-8
2017-07-11 11:58Change -U udsname to -U sockfile for clarification.Quentin Rameau2+5-5
2017-07-11 11:52Reorder config.def.h a bitLaslo Hunhold1+5-3
2017-07-11 11:46Add Quentin to LICENSELaslo Hunhold1+1-0
2017-07-11 11:36Integrate compiled regex into vhost arrayQuentin Rameau2+10-16
2017-07-11 11:03Style fixLaslo Hunhold1+4-4
2017-07-11 10:34Add vhost supportLaslo Hunhold2+62-13
2017-07-11 10:33Properly serve empty filesLaslo Hunhold1+2-1
2017-07-08 22:11Check inet_pton() for system errorLaslo Hunhold1+4-2
2017-07-07 11:33Send absolute path when redirectingLaslo Hunhold1+19-2
2017-07-05 17:06memcpy regions may not overlap, use memmoveHiltjo Posthuma1+1-1
2017-07-04 20:44Check for UNIX-doman socket name truncationLaslo Hunhold1+6-1
2017-07-04 20:26Small style fixLaslo Hunhold1+2-1
2017-07-04 20:21Import strtonum() and get rid of atoi()Laslo Hunhold1+68-3
2017-07-04 19:47Improve timestamp() semanticsLaslo Hunhold1+7-10
2017-07-04 19:27improve byte-range supportHiltjo Posthuma1+20-6
2017-07-04 16:18byte-range: fix range check for upper limitHiltjo Posthuma1+1-1
2017-06-28 17:07the result of encode() and decode() is unusedHiltjo Posthuma1+2-6
2017-06-28 16:40config.mk: fix warning about strptime on glibcHiltjo Posthuma1+1-1
2017-06-28 16:39initialize request fields used as output in logHiltjo Posthuma1+3-5
2017-06-28 06:40Rename filetype() to suffix()Laslo Hunhold1+2-2
2017-06-28 06:29Fix dir-check in direntLaslo Hunhold1+1-1
2017-06-27 21:17make directory listing a run-time flagHiltjo Posthuma3+14-2
2017-06-27 21:15config.def.h: add jpeg alias, ogg audio mimetypeHiltjo Posthuma1+2-1
2017-06-27 20:49minor code-style consistency fixesHiltjo Posthuma1+12-6
2017-06-27 20:35add myself to the license (contributor)Hiltjo Posthuma1+1-0
2017-06-27 20:34in the directory listing add / as suffix to save a redirect checkHiltjo Posthuma1+5-2
2017-06-27 20:24fix memleak in scandir()Hiltjo Posthuma1+16-6
2017-06-27 20:19header parsing: allow tabs are whitespace, compare case-insensitiveHiltjo Posthuma1+2-2
2017-06-27 19:40send binary Content-Type by default (octet-stream)Hiltjo Posthuma1+1-1
2017-06-27 19:39fix memory leak in sendfile()Hiltjo Posthuma1+13-5
2017-06-27 19:37scandir: sort directories and show filetypeHiltjo Posthuma1+27-3
2017-06-27 19:37send status code for method not allowed if not GET or HEADHiltjo Posthuma1+1-1
2017-06-27 19:36add newline after </html>Hiltjo Posthuma1+2-2
2017-06-27 19:36remove unused fields and redundant check for HTTP methodHiltjo Posthuma1+2-23
2017-06-27 19:33config.mk: fix compiler warning, just use DEFAULT_SOURCEHiltjo Posthuma1+1-1
2017-06-21 09:02Fix normabspath() to handle consecutive '..'s properlyLaslo Hunhold1+22-10
2017-06-21 08:37Fix wording a little bitLaslo Hunhold1+1-1
2017-06-21 08:27Add normabspath() to replace realpath(), making quark work with muslLaslo Hunhold1+44-2
2017-06-21 05:41Use dprintf() instead of snprintf()+sendbuffer()Laslo Hunhold1+74-100
2017-06-20 19:40Rewrite quark from the ground up againLaslo Hunhold5+497-368
2016-09-05 18:10Support encoding UTF-8 charactersFRIGN1+2-2
2016-09-04 22:08Use sizeof() instead of magic constantsFRIGN1+15-16
2016-09-04 21:58Use enum for HTTP stati and improve data structuresFRIGN1+90-67
2016-09-04 21:09Use die() in usage()FRIGN1+2-3
2016-09-04 18:16Add missing newlineFRIGN1+1-1
2016-09-02 09:08Add a few more mime typesFRIGN1+12-7
2016-09-02 08:49Stop hiding what we're doing in the MakefileFRIGN1+13-16
2016-09-02 08:43Simplify Makefile and package properlyFRIGN1+7-18
2016-09-02 07:59Initial commit of quark rewriteFRIGN7+988-0
2016-09-02 07:46Prepare repository for rewriteFRIGN8+0-1049
2015-05-24 14:49Fix syntax error in config.def.hFRIGN1+1-1
2014-12-01 17:14Simplify config.mksin1+2-7
2014-12-01 16:32Undef MIN() because it screams on OpenBSDsin1+1-0
2014-12-01 16:31Only set SO_REUSEADDR on the listening fdsin1+8-7
2014-11-30 13:47bind: re-use address, setsockopt SO_REUSEADDRHiltjo Posthuma1+6-1
2014-11-30 13:44config: add some more common mime-typesHiltjo Posthuma1+24-5
2014-11-30 13:42code-style fixesHiltjo Posthuma1+49-29
2014-11-30 13:37change the behavior of docrootIvan Delalande3+36-15
2014-08-24 22:59Revert "request: ignore empty request in log"FRIGN1+1-4
2014-08-24 22:53Revert "always null-terminate reqbuf buffer"FRIGN1+1-2
2014-08-24 23:02request: ignore empty request in logHiltjo Posthuma1+4-1
2014-08-24 22:33always null-terminate reqbuf bufferFRIGN1+2-1
2014-08-21 22:11Rename fd to listenfd for readabilitysin1+9-9
2014-08-21 22:09Set up process limits and socket timeoutssin1+19-0
2014-08-21 21:48No need to do a socket release heresin1+1-3
2014-08-21 21:46Fix off-by-onesin1+2-2
2014-08-20 18:47Allow dir-listing to be a configurable optionFRIGN2+1-1
2014-08-20 18:44Remove whitespace from manualFRIGN1+1-1
2014-08-20 14:25quark.1: add manpageHiltjo Posthuma3+72-3
2014-08-20 14:10update READMEHiltjo Posthuma1+6-5
2014-08-20 13:48read header until \r\n\r\n or \n\nHiltjo Posthuma1+1-1
2014-08-20 13:45add option -l to enable dirlisting, now disabled by default...Hiltjo Posthuma1+28-14
2014-08-20 12:41cgi: parse Status: headerHiltjo Posthuma2+20-5
2014-08-16 20:05Remove "@strip $@" from the MakefileFRIGN1+0-1
2014-08-16 00:53Fix potentially uninitialized varssin1+3-3
2014-08-15 13:54Do not indent switch casessin1+8-8
2014-08-14 17:10improve CGI supportHiltjo Posthuma1+21-2
2014-08-14 17:07small style and CGI message fixHiltjo Posthuma1+8-6
2014-08-14 15:48Fortify the sanity-checksFRIGN1+2-2
2014-08-14 16:56config: allow to set options as application argumentsHiltjo Posthuma2+48-14
2014-08-14 12:18Increase clarity of the len-checkFRIGN1+1-1
2014-08-14 11:58check for len(reqbuf) = 0FRIGN1+1-1
2014-08-14 11:14Ignore EPIPE while writing file to socketFRIGN1+1-1
2014-08-13 22:26Ignore SIGPIPEsin1+1-0
2014-08-13 22:20No need for MAXBUFLEN+1sin1+3-3
2014-08-13 22:19Ensure mod is properly initializedsin1+2-1
2014-08-14 07:47Fix streaming errorsFRIGN1+5-4
2014-08-13 19:05Don't let r be uninitializedFRIGN1+7-5
2014-08-13 17:37set host[0] = 0 at the beginning for more safetyFRIGN1+1-2
2014-08-12 17:17Fortify error-casesFRIGN1+3-3
2014-08-12 08:34Streamline the codeFRIGN1+18-8
2014-08-11 14:59HTTP 401 -> 403FRIGN1+9-9
2014-08-11 14:16Get rid of getnameinfo and use inet_ntop insteadFRIGN1+16-2
2014-08-11 13:37Change tstamp() to allow passing time_tFRIGN1+13-15
2014-08-11 13:23Rectify error-handlingFRIGN1+44-26
2014-08-11 11:40Change HTTP-status-codes to definesFRIGN1+11-11
2014-08-11 11:29Reordering function-prototypes and functions and size_t-correctnessFRIGN1+28-29
2014-08-11 11:12Add strftime to modified-date-checkFRIGN1+2-3
2014-08-09 20:33Use gmtime() instead of localtime()FRIGN1+1-1
2014-08-09 20:29Fix mime-handling with default mimeFRIGN2+3-5
2014-08-09 19:42Fix mime-checkFRIGN1+3-1
2014-08-09 19:14Change default mimetype to application/octet-streamFRIGN2+2-1
2014-08-09 19:03Switch to strftimeFRIGN1+2-3
2014-08-09 16:32Simplify loggingFRIGN1+37-29
2014-08-08 14:46Coding styleFRIGN1+109-118
2014-08-08 13:37Refactor responsefile()FRIGN1+8-6
2014-08-08 12:23Use ssize_t for read- and write-return-valuesFRIGN1+2-2
2014-08-07 15:24Refactor sighandlerFRIGN1+3-12
2014-08-07 15:02Refactor loop inside writedata()FRIGN1+2-3
2014-08-07 14:56Unify return valuesFRIGN1+23-23
2014-08-07 14:34Use named indices for the response-entry-arrayFRIGN1+6-5
2014-08-07 14:28Use strsignal() for signal-loggingFRIGN1+1-9
2014-08-07 00:11Fixed buffer overflow when p-res==targetlen in function getreqentryAdria Garriga1+1-1
2014-08-06 15:47Refactor response-constructorsFRIGN1+40-86
2014-07-28 13:30Refactor request()FRIGN1+35-29
2014-07-28 11:42Add arg-parser and move copyright-info to LICENSEFRIGN2+8-6
2014-07-28 11:33Add arg.hFRIGN2+66-0
2014-02-15 14:36implement http not modifiedHiltjo Posthuma1+57-18
2014-02-15 14:09remove unused codeHiltjo Posthuma1+0-16
2014-04-10 18:43correct information in READMEJakob Kramer1+3-2
2014-02-15 13:31http status moved permanently is code 301Hiltjo Posthuma1+1-1
2011-06-26 09:57applied cls' follow up fixgarbeam@gmail.com1+13-12
2011-06-26 09:51applied rransom's quark patch for FreeBSD compliance, thanksgarbeam@gmail.com2+21-17
2011-02-16 20:29preparing Request abstraction, ongoingAnselm R Garbe2+44-21
2011-02-13 12:46applied Szabolcs patch, added him to LICENSEAnselm R Garbe3+48-28
2010-04-10 20:34removed non-existent man page installAnselm R Garbe1+0-3
2010-03-28 11:31made simple CGI working, quark can be used to run wercAnselm R Garbe2+76-90
2010-03-28 02:18some minor fixAnselm R Garbe1+1-1
2010-03-28 02:14added command line interfaceAnselm R Garbe2+43-11
2010-03-28 01:57added basic HEAD support, some bug fixesAnselm R Garbe2+84-40
2010-03-28 01:09implemented very basic cgi supportAnselm R Garbe4+91-41
2009-08-16 12:33moved signal handlers before port bindingAnselm R Garbe1+8-8
2009-08-16 10:51superflous, stderr is unbufferedAnselm R Garbe1+0-1
2009-08-15 21:59sanity checkAnselm R Garbe1+8-9
2009-08-15 21:37forget to close cfd in parent ;)Anselm R Garbe1+1-0
2009-08-15 21:25another version, behaves better under stressAnselm R Garbe1+2-4
2009-08-15 21:11some el cheapo handle releaseAnselm R Garbe2+21-5
2009-08-15 19:01updateAnselm R Garbe1+1-1
2009-08-15 18:57changed some docsAnselm R Garbe1+3-2
2009-08-15 18:56initial commitAnselm R Garbe6+568-0