33 | | puts "LINE: #{evt.data}" |
---|
| 35 | if evt.data.length == 0 |
---|
| 36 | if @http_headers.length > 0 or @http_request.length > 0 |
---|
| 37 | os = OpenStruct.new |
---|
| 38 | os.request = @http_request |
---|
| 39 | os.headers = @http_headers |
---|
| 40 | send_event DataEvent.new( :http_request, os ) |
---|
| 41 | |
---|
| 42 | @http_request = "" |
---|
| 43 | @http_headers = {} |
---|
| 44 | else |
---|
| 45 | p "discarding leading blank" |
---|
| 46 | end |
---|
| 47 | else |
---|
| 48 | if evt.data =~ /([^:]+):[\s]*/ |
---|
| 49 | @http_headers[$1] ||= [] |
---|
| 50 | @http_headers[$1] << $' |
---|
| 51 | else |
---|
| 52 | @http_request = evt.data |
---|
| 53 | end |
---|
| 54 | end |
---|
| 55 | end |
---|
| 56 | |
---|
| 57 | def handle_http evt |
---|
| 58 | puts evt.data |
---|
| 59 | send_data "HTTP/1.0 200 ...\r\nContent-type: text/plain\r\nContent-length: 7\r\nConnection: close\r\n\r\nNothing" |
---|
| 60 | send_close_after_writing |
---|