You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.2 KiB
55 lines
1.2 KiB
from pappyproxy import http |
|
from twisted.internet import defer |
|
|
|
""" |
|
Schema v2 |
|
|
|
Description: |
|
Adds support for specifying the port of a request and specify its port. This |
|
lets requests that have the port/ssl settings specified in the CONNECT request |
|
maintain that information. |
|
""" |
|
|
|
update_queries = [ |
|
""" |
|
ALTER TABLE requests ADD COLUMN port INTEGER; |
|
""", |
|
|
|
""" |
|
ALTER TABLE requests ADD COLUMN is_ssl INTEGER; |
|
""", |
|
|
|
] |
|
|
|
@defer.inlineCallbacks |
|
def update(dbpool): |
|
for query in update_queries: |
|
yield dbpool.runQuery(query) |
|
|
|
# Update metadata for each request |
|
reqrows = yield dbpool.runQuery( |
|
""" |
|
SELECT id, full_request |
|
FROM requests; |
|
""", |
|
) |
|
|
|
# Create an object and get its port/is_ssl |
|
for reqrow in reqrows: |
|
reqid = reqrow[0] |
|
fullreq = reqrow[1] |
|
r = http.Request(fullreq) |
|
port = r.port |
|
is_ssl = r.is_ssl |
|
yield dbpool.runQuery( |
|
""" |
|
UPDATE requests SET port=?,is_ssl=? WHERE id=?; |
|
""", |
|
(port, is_ssl, reqid) |
|
) |
|
|
|
yield dbpool.runQuery( |
|
""" |
|
UPDATE schema_meta SET version=2; |
|
""" |
|
)
|
|
|