Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions lib/utils/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -637,7 +637,7 @@ def download(taskid, target, filename):
return jsonize({"success": False, "message": "File does not exist"})


def server(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT):
def server(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT, adapter='wsgiref'):
"""
REST-JSON API server
"""
Expand All @@ -655,7 +655,14 @@ def server(host=RESTAPI_DEFAULT_ADDRESS, port=RESTAPI_DEFAULT_PORT):

# Run RESTful API
try:
run(host=host, port=port, quiet=True, debug=False)
if adapter == 'gevent':
from gevent import monkey
monkey.patch_all()
elif adapter == 'eventlet':
import eventlet
eventlet.monkey_patch()
logger.debug('use {0} adapter run bottle'.format(adapter))
run(host=host, port=port, quiet=True, debug=False, server=adapter)
except socket.error, ex:
if "already in use" in getSafeExString(ex):
logger.error("Address already in use ('%s:%s')" % (host, port))
Expand Down
3 changes: 2 additions & 1 deletion sqlmapapi.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,12 @@ def main():
apiparser.add_option("-c", "--client", help="Act as a REST-JSON API client", default=RESTAPI_DEFAULT_PORT, action="store_true")
apiparser.add_option("-H", "--host", help="Host of the REST-JSON API server", default=RESTAPI_DEFAULT_ADDRESS, action="store")
apiparser.add_option("-p", "--port", help="Port of the the REST-JSON API server", default=RESTAPI_DEFAULT_PORT, type="int", action="store")
apiparser.add_option("", "--adapter", help="bottle Server adapter to use default is wsgiref, see bottle document ", default='wsgiref', action="store")
(args, _) = apiparser.parse_args()

# Start the client or the server
if args.server is True:
server(args.host, args.port)
server(args.host, args.port, adapter=args.adapter)
elif args.client is True:
client(args.host, args.port)
else:
Expand Down