| 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 |
|---|