MIME check when reading HTTP header (not when reading content).
[tclrobot.git] / dcdot.tcl
index a29e6f5..3b2edcb 100755 (executable)
--- a/dcdot.tcl
+++ b/dcdot.tcl
@@ -1,5 +1,5 @@
 #!/usr/bin/tclsh 
-# $Id: dcdot.tcl,v 1.3 2000/12/08 22:46:53 adam Exp $
+# $Id: dcdot.tcl,v 1.4 2000/12/11 17:11:03 adam Exp $
 #
 
 proc RobotRestart {} {
@@ -62,20 +62,20 @@ proc RobotReadHeader {url sock} {
        # puts "Got $readCount bytes"
        set URL($url,buf) $URL($url,buf)$buffer
        
-       set n [string first \n\n $URL($url,buf)]
+       set n [string first \r\n\r\n $URL($url,buf)]
        if {$n > 1} {
+           puts "string first match n = $n"
            set code 0
            set version {}
            set headbuf [string range $URL($url,buf) 0 $n]
-           incr n
-           incr n
+           incr n 4
            set URL($url,buf) [string range $URL($url,buf) $n end]
            
            regexp {^HTTP/([0-9.]+)[ ]+([0-9]+)} $headbuf x version code
            set lines [split $headbuf \n]
            foreach line $lines {
                if {[regexp {^([^:]+):[ ]+(.*)} $line x name value]} {
-                   set URL($url,head,[string tolower $name]) $value
+                   set URL($url,head,[string tolower $name]) [string trim $value]
                }
            }
            set URL($url,state) skip
@@ -91,6 +91,10 @@ proc RobotReadHeader {url sock} {
                        text/plain {
                            fileevent $sock readable [list RobotReadContent $url $sock]
                        }
+                       application/pdf {
+                           puts "ok preceeed with this thingy"
+                           fileevent $sock readable [list RobotReadContent $url $sock]
+                       }
                        default {
                            close $sock
                            Robot200 $url
@@ -110,7 +114,7 @@ proc RobotReadHeader {url sock} {
 proc RobotConnect {url sock} {
     global URL agent
 
-    fconfigure $sock -translation {auto crlf} -blocking 0
+    fconfigure $sock -translation {lf crlf} -blocking 0
     fileevent $sock readable [list RobotReadHeader $url $sock]
     puts $sock "GET $URL($url,path) HTTP/1.0"
     puts $sock "Host: $URL($url,host)"
@@ -172,4 +176,8 @@ if {$argc == 1} {
     foreach v [array names URL $url,head,*] {
        puts "$v = $URL($v)"
     }
+    puts "Buffer length is [string length $URL($url,buf)]"
+    set f [open out.pdf w]
+    puts -nonewline $f $URL($url,buf)
+    close $f
 }