Wapp

Check-in [a757b342da]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:In this branch is a proposed patch whereby if the page handler calls "wapp-reply-code ABORT" then the request is cancelled and the TCP/IP connection is closed without sending any reply at all.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | abort-request
Files: files | file ages | folders
SHA3-256: a757b342da70bb238d46e3fb04ae3c897901675affbf629c01a897cd46ba9d9a
User & Date: drh 2021-09-15 12:04:17.763
Context
2021-09-20
12:10
Update the documentation to describe the new capabilities of wapp-reply-code. (Leaf check-in: f4a169b8db user: drh tags: abort-request)
2021-09-15
12:04
In this branch is a proposed patch whereby if the page handler calls "wapp-reply-code ABORT" then the request is cancelled and the TCP/IP connection is closed without sending any reply at all. (check-in: a757b342da user: drh tags: abort-request)
2021-06-18
13:33
Further rebustness in the %qp and %url substitutions. This is a correction to the previous check-in. (check-in: d776a1b60b user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to wapp.tcl.
738
739
740
741
742
743
744






745
746
747
748
749
750
751
752
753
754
755
    }
    dict unset wapp .new-cookies
  }
  wapp-before-reply-hook

  # Transmit the HTTP reply
  #






  if {$chan=="stdout"} {
    puts $chan "Status: [dict get $wapp .reply-code]\r"
  } else {
    puts $chan "HTTP/1.1 [dict get $wapp .reply-code]\r"
    puts $chan "Server: wapp\r"
    puts $chan "Connection: close\r"
  }
  if {[dict exists $wapp .reply-extra]} {
    foreach {name value} [dict get $wapp .reply-extra] {
      puts $chan "$name: $value\r"
    }







>
>
>
>
>
>
|
|

|







738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
    }
    dict unset wapp .new-cookies
  }
  wapp-before-reply-hook

  # Transmit the HTTP reply
  #
  set rc [dict get $wapp .reply-code]
  if {$rc=="ABORT"} {
    # If the page handler invokes "wapp-reply-code ABORT" then close the
    # TCP/IP connection without sending any reply
    wappInt-close-channel $chan
    return
  } elseif {$chan=="stdout"} {
    puts $chan "Status: $rc\r"
  } else {
    puts $chan "HTTP/1.1 $rc\r"
    puts $chan "Server: wapp\r"
    puts $chan "Connection: close\r"
  }
  if {[dict exists $wapp .reply-extra]} {
    foreach {name value} [dict get $wapp .reply-extra] {
      puts $chan "$name: $value\r"
    }