Changeset 1405 for branches/eraser6/BlackBox
- Timestamp:
- 12/22/2009 4:31:17 AM (3 years ago)
- Location:
- branches/eraser6/BlackBox/Eraser
- Files:
-
- 5 edited
-
BlackBoxUploadForm.cs (modified) (6 diffs)
-
Strings.NL.resx (modified) (1 diff)
-
Strings.en.resx (modified) (1 diff)
-
Strings.it.resx (modified) (1 diff)
-
Strings.resx (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/eraser6/BlackBox/Eraser/BlackBoxUploadForm.cs
r1403 r1405 33 33 using ICSharpCode.SharpZipLib.BZip2; 34 34 using System.Net; 35 using System.Xml; 35 36 36 37 namespace Eraser … … 139 140 public bool ReportIsNew() 140 141 { 141 throw new NotImplementedException(); 142 string[] stackTrace = Report.StackTrace.Split(new char[] { '\n' }); 143 MultipartFormDataBuilder builder = new MultipartFormDataBuilder(); 144 builder.AddPart(new FormField("action", "status")); 145 int exceptionIndex = 0; 146 147 foreach (string str in stackTrace) 148 { 149 if (str.StartsWith("Exception ")) 150 ++exceptionIndex; 151 else if (!string.IsNullOrEmpty(str.Trim())) 152 builder.AddPart(new FormField( 153 string.Format("stackTrace[{0}][]", exceptionIndex), str.Trim())); 154 } 155 156 WebRequest reportRequest = HttpWebRequest.Create(BlackBoxServer); 157 reportRequest.ContentType = "multipart/form-data; boundary=" + builder.Boundary; 158 reportRequest.Method = "POST"; 159 using (Stream formStream = builder.Stream) 160 { 161 reportRequest.ContentLength = formStream.Length; 162 using (Stream requestStream = reportRequest.GetRequestStream()) 163 { 164 int lastRead = 0; 165 byte[] buffer = new byte[32768]; 166 while ((lastRead = formStream.Read(buffer, 0, buffer.Length)) != 0) 167 requestStream.Write(buffer, 0, lastRead); 168 } 169 } 170 171 HttpWebResponse response = reportRequest.GetResponse() as HttpWebResponse; 172 if (response.StatusCode != HttpStatusCode.OK) 173 throw new InvalidDataException(response.StatusDescription); 174 175 using (Stream responseStream = response.GetResponseStream()) 176 using (StreamReader rdr = new StreamReader(responseStream)) 177 { 178 string str = rdr.ReadToEnd(); 179 XmlReader reader = XmlReader.Create(new MemoryStream(Encoding.UTF8.GetBytes(str))); 180 reader.ReadToFollowing("crashReport"); 181 string reportStatus = reader.GetAttribute("status"); 182 switch (reportStatus) 183 { 184 case "exists": 185 return false; 186 187 case "new": 188 return true; 189 190 default: 191 throw new InvalidDataException(S._("Unknown crash report server response.")); 192 } 193 } 142 194 } 143 195 … … 184 236 //Build the POST request 185 237 MultipartFormDataBuilder builder = new MultipartFormDataBuilder(); 186 builder.AddPart(new FormFi leField("CrashReport", "Report.tbz", bzipFile));187 builder.AddPart(new FormFileField(" DebugLog", "Debug.log", logFile));238 builder.AddPart(new FormField("action", "upload")); 239 builder.AddPart(new FormFileField("crashReport", "Report.tbz", bzipFile)); 188 240 189 241 //Upload the POST request 190 Uri blackBoxServer = new Uri("http://eraser.heidi.ie/BlackBox/upload.php"); 191 WebRequest reportRequest = HttpWebRequest.Create(blackBoxServer); 242 WebRequest reportRequest = HttpWebRequest.Create(BlackBoxServer); 192 243 reportRequest.ContentType = "multipart/form-data; boundary=" + builder.Boundary; 193 244 reportRequest.Method = "POST"; … … 210 261 HttpWebResponse response = reportRequest.GetResponse() as HttpWebResponse; 211 262 if (response.StatusCode != HttpStatusCode.OK) 212 { 213 using (Stream responseStream = response.GetResponseStream()) 214 using (TextReader reader = new StreamReader(responseStream)) 215 throw new ArgumentException(reader.ReadToEnd()); 216 } 263 throw new InvalidDataException(response.StatusDescription); 217 264 } 218 265 } … … 223 270 private static readonly string UploadTempDir = 224 271 Path.Combine(Path.GetTempPath(), "Eraser Crash Reports"); 272 273 /// <summary> 274 /// The URI to the BlackBox server. 275 /// </summary> 276 private static readonly Uri BlackBoxServer = 277 new Uri("http://eraser.joelsplace.dyndns.org/BlackBox/upload.php"); 225 278 226 279 /// <summary> … … 333 386 334 387 /// <summary> 388 /// Constructor. 389 /// </summary> 390 /// <param name="fieldName">The name of the field.</param> 391 /// <param name="stream">The content of the field.</param> 392 public FormField(string fieldName, string content) 393 : this(fieldName, new MemoryStream(Encoding.UTF8.GetBytes(content))) 394 { 395 } 396 397 /// <summary> 335 398 /// The name of the field. 336 399 /// </summary> -
branches/eraser6/BlackBox/Eraser/Strings.NL.resx
r1397 r1405 151 151 <value>Sluiten</value> 152 152 </data> 153 <data name="Unknown crash report server response." xml:space="preserve"> 154 <value>(Untranslated)</value> 155 </data> 153 156 <data name="Session: {0:F}" xml:space="preserve"> 154 157 <value>(Untranslated)</value> -
branches/eraser6/BlackBox/Eraser/Strings.en.resx
r1397 r1405 151 151 <value>Close</value> 152 152 </data> 153 <data name="Unknown crash report server response." xml:space="preserve"> 154 <value>Unknown crash report server response.</value> 155 </data> 153 156 <data name="Session: {0:F}" xml:space="preserve"> 154 157 <value>Session: {0:F}</value> -
branches/eraser6/BlackBox/Eraser/Strings.it.resx
r1397 r1405 151 151 <value>Chiudi</value> 152 152 </data> 153 <data name="Unknown crash report server response." xml:space="preserve"> 154 <value>(Untranslated)</value> 155 </data> 153 156 <data name="Session: {0:F}" xml:space="preserve"> 154 157 <value>Sessione: {0:F}</value> -
branches/eraser6/BlackBox/Eraser/Strings.resx
r1397 r1405 151 151 <value>Close</value> 152 152 </data> 153 <data name="Unknown crash report server response." xml:space="preserve"> 154 <value>Unknown crash report server response.</value> 155 </data> 153 156 <data name="Session: {0:F}" xml:space="preserve"> 154 157 <value>Session: {0:F}</value>
Note: See TracChangeset
for help on using the changeset viewer.
