def malformed_method(host, host_index, fingerprint):
    malformed_methods = get_malformed_methods()

    for index, method in enumerate(malformed_methods):
        request = Request(host, host_index, logger)
        request.method_line = method
        response = request.submit
        get_characteristics('MALFORMED_' + ('000' + str(index))[-3:], response, fingerprint, host, host_index)
    def malformed_method(host, host_index, logger):
        requests = []

        activities = 'GET', 'HEAD', 'POST', 'PUT'

        malformed_methods_list = []

        for activity in activities:
            malformed_methods = (
                activity,
                activity + '/',
                activity + '/1.0',
                activity + ' / HTTP/123.45',
                activity + ' / HTTP/999.99',
                activity + ' / HTP/1.0',
                activity + ' / HTT/1.0',
                activity + ' / HTTP/7.Q',
                activity + ' / HTTP/1.0X',
                activity + ' /abcdefghijklmnopqrstuvwxyz/.. HTTP/1.0',
                activity + ' /./././././././././././././././ HTTP/1.0',
                activity + ' /.. HTTP/1.0',
                activity + '\t/\tHTTP/1.0',
                activity + '\t/\tHTTP/1.0',
                activity + ' / H',
                activity + ' / ' + 'HTTP/' + '1' * 1000 + '.0',
                activity + ' FTP://abcdefghi HTTP/1.0',
                activity + ' C:\ HTTP/1.0',
                ' ' * 1000 + activity + ' / HTTP/1.0',
                '\n' + activity + ' / HTTP/1.0',
            )

            malformed_methods_list += malformed_methods

        malformed_activity_independent = ('GET GET GET', 'HELLO',
                                          '%47%45%54 / HTTP/1.0',
                                          'GEX\bT / HTTP/1.0')

        malformed_methods_list += malformed_activity_independent

        for index, method in enumerate(malformed_methods_list):
            request = Request(host,
                              host_index,
                              logger,
                              name='malformed/malformed_' + str(index))
            request.method_line = method
            requests.append(request)

        return requests
 def empty_uri(host, host_index, logger):
     return [
         Request(host,
                 host_index,
                 logger,
                 local_uri='/ABCDEFG',
                 name='empty_uri')
     ]
 def unknown_method(host, host_index, logger):
     return [
         Request(host,
                 host_index,
                 logger,
                 method='ABCDEFG',
                 name='unknown_method')
     ]
 def default_options(host, host_index, logger):
     return [
         Request(host,
                 host_index,
                 logger,
                 method='OPTIONS',
                 name='default_options')
     ]
def default_get(host, host_index, fingerprint):
    request = Request(host, host_index, logger)
    response = request.submit

    if response.response_code == NO_RESPONSE_CODE:
        raise ValueError('default_get failed')
    else:
        get_characteristics('default_get', response, fingerprint, host, host_index)
def unauthorized_activity(host, host_index, fingerprint):
    activities = ('OPTIONS', 'TRACE', 'GET', 'HEAD', 'DELETE',
                  'PUT', 'POST', 'COPY', 'MOVE', 'MKCOL',
                  'PROPFIND', 'PROPPATCH', 'LOCK', 'UNLOCK',
                  'SEARCH')

    for activity in activities:
        request = Request(host, host_index, logger, method=activity)
        response = request.submit
        get_characteristics('unauthorized_activity_' + activity, response, fingerprint, host, host_index)
    def unauthorized_activity(host, host_index, logger):
        requests = []
        activities = ('OPTIONS', 'TRACE', 'GET', 'HEAD', 'DELETE', 'PUT',
                      'POST', 'COPY', 'MOVE', 'MKCOL', 'PROPFIND', 'PROPPATCH',
                      'LOCK', 'UNLOCK', 'SEARCH')

        for activity in activities:
            requests.append(
                Request(host,
                        host_index,
                        logger,
                        method=activity,
                        name='unauthorized_activity/unauthorized_activity_' +
                        activity))

        return requests
 def default_get(host, host_index, logger):
     return [Request(host, host_index, logger, name='default_get')]
 def long_content_length(host, host_index, logger):
     request = Request(host, host_index, logger, name='long_content_length')
     request.add_header('Content-Length', str(sys.maxint))
     request.body = 'abcdefgh'
     return [request]
 def unavailable_accept(host, host_index, logger):
     request = Request(host, host_index, logger, name='unavailable_request')
     request.add_header('Accept', 'abcd/efgh')
     return [request]
def unknown_method(host, host_index, fingerprint):
    request = Request(host, host_index, logger, method='ABCDEFG')
    response = request.submit
    get_characteristics('unknown_method', response, fingerprint, host, host_index)
def default_options(host, host_index, fingerprint):
    request = Request(host, host_index, logger, method='OPTIONS')
    response = request.submit
    get_characteristics('default_options', response, fingerprint, host, host_index)
def long_content_length(host, host_index, fingerprint):
    request = Request(host, host_index, logger)
    request.add_header('Content-Length', str(sys.maxint))
    request.body = 'abcdefgh'
    response = request.submit
    get_characteristics('long_content_length', response, fingerprint, host, host_index)
def unavailable_accept(host, host_index, fingerprint):
    request = Request(host, host_index, logger)
    request.add_header('Accept', 'abcd/efgh')
    response = request.submit
    get_characteristics('unavailable_accept', response, fingerprint, host, host_index)
def empty_uri(host, host_index, fingerprint):
    request = Request(host, host_index, logger, local_uri='/ABCDEFG')
    response = request.submit
    get_characteristics('empty_uri', response, fingerprint, host, host_index)