summaryrefslogtreecommitdiff
path: root/src/gmrequest.c
diff options
context:
space:
mode:
authorJaakko Keränen <jaakko.keranen@iki.fi>2021-02-17 16:57:49 +0200
committerJaakko Keränen <jaakko.keranen@iki.fi>2021-02-17 16:57:49 +0200
commitc6a3afccfc5ef679a82275c5f045336c2d48f643 (patch)
tree1f026eed5c92a84d45efc2bc68830ca7b67bae73 /src/gmrequest.c
parent42972fa58f2589b6891db6a310d8f0454921e717 (diff)
Added a built-in Atom-to-Gemini feed translator
If no user-configured MIME hooks handle an Atom XML document, it will be translated using a built-in filter hook. Only Atom is supported. IssueID #78
Diffstat (limited to 'src/gmrequest.c')
-rw-r--r--src/gmrequest.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gmrequest.c b/src/gmrequest.c
index 8626403f..9cdd627e 100644
--- a/src/gmrequest.c
+++ b/src/gmrequest.c
@@ -133,6 +133,7 @@ struct Impl_GmRequest {
133 iTlsRequest * req; 133 iTlsRequest * req;
134 iGopher gopher; 134 iGopher gopher;
135 iGmResponse * resp; 135 iGmResponse * resp;
136 iBool isFilterEnabled;
136 iBool isRespLocked; 137 iBool isRespLocked;
137 iBool isRespFiltered; 138 iBool isRespFiltered;
138 iAtomicInt allowUpdate; 139 iAtomicInt allowUpdate;
@@ -208,7 +209,7 @@ static int processIncomingData_GmRequest_(iGmRequest *d, const iBlock *data) {
208 resp->statusCode = code; 209 resp->statusCode = code;
209 d->state = receivingBody_GmRequestState; 210 d->state = receivingBody_GmRequestState;
210 notifyUpdate = iTrue; 211 notifyUpdate = iTrue;
211 if (willTryFilter_MimeHooks(mimeHooks_App(), &resp->meta)) { 212 if (d->isFilterEnabled && willTryFilter_MimeHooks(mimeHooks_App(), &resp->meta)) {
212 d->isRespFiltered = iTrue; 213 d->isRespFiltered = iTrue;
213 } 214 }
214 } 215 }
@@ -457,8 +458,9 @@ static void beginGopherConnection_GmRequest_(iGmRequest *d, const iString *host,
457void init_GmRequest(iGmRequest *d, iGmCerts *certs) { 458void init_GmRequest(iGmRequest *d, iGmCerts *certs) {
458 d->mtx = new_Mutex(); 459 d->mtx = new_Mutex();
459 d->resp = new_GmResponse(); 460 d->resp = new_GmResponse();
460 d->isRespLocked = iFalse; 461 d->isFilterEnabled = iTrue;
461 d->isRespFiltered = iFalse; 462 d->isRespLocked = iFalse;
463 d->isRespFiltered = iFalse;
462 set_Atomic(&d->allowUpdate, iTrue); 464 set_Atomic(&d->allowUpdate, iTrue);
463 init_String(&d->url); 465 init_String(&d->url);
464 init_Gopher(&d->gopher); 466 init_Gopher(&d->gopher);