示例#1
0
static int
on_headers_complete(http_parser* parser)
{
    if(PARSER->field_start) {
        _set_header_free_both(
            wsgi_http_header(PARSER->field_start, PARSER->field_len),
            PyString_FromStringAndSize(PARSER->value_start, PARSER->value_len)
        );
    }
    return 0;
}
示例#2
0
文件: request.c 项目: RaNaN/bjoern
static int on_header_field(http_parser* parser, const char* field, size_t len)
{
  if(PARSER->value.data) {
    /* Store previous header and start a new one */
    _set_header_free_both(
      wsgi_http_header(PARSER->field),
      PyString_FromStringAndSize(PARSER->value.data, PARSER->value.len)
    );
  } else if(PARSER->field.data) {
    UPDATE_LENGTH(field);
    return 0;
  }
  PARSER->field = (string){(char*)field, len};
  PARSER->value = (string){NULL, 0};
  return 0;
}
示例#3
0
static int on_header_field(http_parser* parser,
                           const char* field_start,
                           const size_t field_len) {
    if(PARSER->value_start) {
        /* Store previous header and start a new one */
        _set_header_free_both(
            wsgi_http_header(PARSER->field_start, PARSER->field_len),
            PyString_FromStringAndSize(PARSER->value_start, PARSER->value_len)
        );

    } else if(PARSER->field_start) {
        _update_length(field);
        return 0;
    }

    PARSER->field_start = field_start;
    PARSER->field_len = field_len;
    PARSER->value_start = NULL;
    PARSER->value_len = 0;

    return 0;
}