- serv_printf("OPNA %ld|%s", msgnum, ChrPtr(att));
- StrBuf_ServGetln(Buf);
- if (GetServerStatus(Buf, &ErrorDetail) == 2) {
- StrBufCutLeft(Buf, 4);
- bytes = StrBufExtract_long(Buf, 0, '|');
- StrBufExtract_token(ContentType, Buf, 3, '|');
- CheckGZipCompressionAllowed (SKEY(ContentType));
- if (force_download)
- {
- FlushStrBuf(ContentType);
- detect_mime = 0;
- }
- else
- {
- if (!strcasecmp(ChrPtr(ContentType), "application/octet-stream"))
- {
- StrBufExtract_token(Buf, WCC->Hdr->HR.ReqLine, 2, '/');
- CT = GuessMimeByFilename(SKEY(Buf));
- StrBufPlain(ContentType, CT, -1);
- }
- if (!strcasecmp(ChrPtr(ContentType), "application/octet-stream"))
- {
- detect_mime = 1;
- }
- }
- serv_read_binary_to_http(ContentType, bytes, 0, detect_mime);
-
- serv_read_binary(WCC->WBuf, bytes, Buf);
- serv_puts("CLOS");
- StrBuf_ServGetln(Buf);
- CT = ChrPtr(ContentType);
- } else {
- StrBufCutLeft(Buf, 4);
- switch (ErrorDetail) {
- default:
- case ERROR + MESSAGE_NOT_FOUND:
- hprintf("HTTP/1.1 404 %s\n", ChrPtr(Buf));
- break;
- case ERROR + NOT_LOGGED_IN:
- hprintf("HTTP/1.1 401 %s\n", ChrPtr(Buf));
- break;
+ msgnum = StrBufExtract_long(WC->Hdr->HR.ReqLine, 0, '/');
+ StrBufExtract_token(PartNum, WC->Hdr->HR.ReqLine, 1, '/');