All,

To troubleshoot my cloning problem, I tried running Fossil in CGI mode like 
this:

Set CONTENT_LENGTH=65
Set PATH_INFO=/xfer/xfer
Set REMOTE_USER=tperovic
Set REQUEST_MODE=POST
Set SCRIPT_NAME=/Projects/Test/Test.fossil
Set SERVER_NAME=myserver
Set SERVER_PORT=80
Set SERVER_PORT_SECURE=0
Set SERVER_PROTOCOL=HTTP/1.0
Fossil.exe cgi test.cgi

Also tried:

Set GATEWAY_INTERFACE=CGI/1.1
Fossil.exe test.cgi

Getting this error:

Assertion failed: (pFrom)->xRealloc==blobReallocMalloc || 
(pFrom)->xRealloc==blobReallocStatic, file ./bld/blob_.c, line 379

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

I set all the environmental variables that I think it needs. Did I miss any?
Probably looking for those 65 bytes of content on stdin, huh?
What do those 65 bytes contain?

Tony Perovic
Compumation, Inc.
________________________________
From: Tony Perovic
Sent: Tuesday, April 19, 2011 5:22 PM
To: 'fossil-users@lists.fossil-scm.org'
Subject: Cloning on IIS

Cloning works if I run Fossil in server mode:

Server:              Fossil server myrepository.fossil
            Workstation:      Fossil clone 
http://myserver:8080<http://myserver:8080/> myclone.fossil

It also works using IIS/CGI if I clone a new, empty repository. However, if I 
try to clone a repository that contains artifacts using IIS/CGI then I get 
errors:

C:\Program Files\Fossil\Fossil.exe: malformed file line.

Comparing the data packets I can see the problem:

Fossil server response:

HTTP/1.0 200 OK
Date: Tue, 19 Apr 2011 20:34:30 GMT
Connection: close
Cache-control: no-cache, no-store
Content-Type: application/x-fossil-uncompressed; charset=utf-8
Content-Length: 793430

0000: 63 66 69 6C 65 20 65 37 64 34 34 63 34 65 61 64
.....
2E4C0: 33 F2 2C F4 AE CC B2 06 00 65 91 08 0D 0A 63 66

Fossil/IIS/CGI response:

Status: 200 OK
Date: Tue, 19 Apr 2011 20:34:30 GMT
Connection: close
Cache-control: no-cache, no-store
Content-Type: application/x-fossil-uncompressed; charset=utf-8
Content-Length: 793430

0000: 63 66 69 6C 65 20 65 37 64 34 34 63 34 65 61 64
.....
2E4C0: 33 F2 2C F4 AE CC B2 06 00 65 91 08 0A 63 66 69

All the 0D/0A pairs got replaced with 0A. Text mode converts \n to \r\n but 
what the hell is converting \r\n to \n ???!?!?!??!

The Perl code that handles CGI requests, in part, looks like this:

$fossil = "C:\Program Files\Fossil\Fossil.exe"
$cgifile = <full path to CGI file>
$output = `\"$fossil\" \"$cgifile\"`; # Execute Fossil, capture output

$eoh = index($output,"\n\n"); # Find end-of-header
$header = substr($output,0,$index); # Just the HTTP header

if ($header =~ m/Content-Type: text/) { # text or binary?
    print $output;  # Everything is text mode
}
else {
   print "$header\n\n";   # Header is text
   binmode stdout;        # The rest is binary
   print substr($output,$eoh + 2);
}

Any chance that Fossil is doing this?

[cid:image001.jpg@01CBFF7F.B8638350]

TONY PEROVIC

tpero...@compumation.com<mailto:tpero...@compumation.com>
www.compumation.com

205 W. Grand Ave., Ste. 121
Bensenville, IL  60106
630-860-1921  Phone
630-860-1928  Fax


<<inline: image001.jpg>>

_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to