Example #1
0
enum {
    HTTP_STR_GET  = MULTICHAR_CONSTANT('G','E','T',' '),
    HTTP_STR_HEAD = MULTICHAR_CONSTANT('H','E','A','D'),
    HTTP_STR_POST = MULTICHAR_CONSTANT('P','O','S','T')
} lwan_http_method_str_t;

typedef enum {
    FINALIZER_DONE,
    FINALIZER_TRY_AGAIN,
    FINALIZER_YIELD_TRY_AGAIN,
    FINALIZER_ERROR_TOO_LARGE
} lwan_read_finalizer_t;

enum {
    HTTP_HDR_CONNECTION        = MULTICHAR_CONSTANT_L('C','o','n','n'),
    HTTP_HDR_RANGE             = MULTICHAR_CONSTANT_L('R','a','n','g'),
    HTTP_HDR_IF_MODIFIED_SINCE = MULTICHAR_CONSTANT_L('I','f','-','M'),
    HTTP_HDR_ACCEPT            = MULTICHAR_CONSTANT_L('A','c','c','e'),
    HTTP_HDR_CONTENT           = MULTICHAR_CONSTANT_L('C','o','n','t'),
    HTTP_HDR_ENCODING          = MULTICHAR_CONSTANT_L('-','E','n','c'),
    HTTP_HDR_LENGTH            = MULTICHAR_CONSTANT_L('-','L','e','n'),
    HTTP_HDR_TYPE              = MULTICHAR_CONSTANT_L('-','T','y','p'),
    HTTP_HDR_AUTHORIZATION     = MULTICHAR_CONSTANT_L('A','u','t','h'),
} lwan_http_header_str_t;

typedef struct lwan_request_parse_t_	lwan_request_parse_t;

struct lwan_request_parse_t_ {
    lwan_value_t buffer;
    lwan_value_t query_string;
Example #2
0
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

#include <string.h>

#include "lwan.h"
#include "hash.h"
#include "mime-types.h"

enum {
    EXT_JPG = MULTICHAR_CONSTANT_L('.','j','p','g'),
    EXT_PNG = MULTICHAR_CONSTANT_L('.','p','n','g'),
    EXT_HTM = MULTICHAR_CONSTANT_L('.','h','t','m'),
    EXT_CSS = MULTICHAR_CONSTANT_L('.','c','s','s'),
    EXT_TXT = MULTICHAR_CONSTANT_L('.','t','x','t'),
    EXT_JS  = MULTICHAR_CONSTANT_L('.','j','s',0),
} lwan_mime_ext_t;

static struct hash *mime_types;

void
lwan_tables_init(void)
{
    lwan_status_debug("Initializing tables");
    if (mime_types)
        return;