summaryrefslogtreecommitdiff
path: root/responsememblk.c
diff options
context:
space:
mode:
Diffstat (limited to 'responsememblk.c')
-rwxr-xr-xresponsememblk.c57
1 files changed, 56 insertions, 1 deletions
diff --git a/responsememblk.c b/responsememblk.c
index c0d1054..7a72b67 100755
--- a/responsememblk.c
+++ b/responsememblk.c
@@ -1692,10 +1692,65 @@ uint64_t cResponseMemBlk::getVdrFileSize() {
}
return total_file_size;
}
+
+ void cResponseMemBlk::post_addToBlacklist() {
+ if (isHeadRequest())
+ return;
+
+ vector<sQueryAVP> avps;
+ string ip_addr;
+ mRequest->parseQueryLine(&avps);
-// - Manifest End
+ if (mRequest->getQueryAttributeValue(&avps, "ip_addr", ip_addr) != OKAY) {
+ sendError(400, "Bad Request", NULL, "00x ip_addr attrib is mandatory.");
+ return ;
+ }
+ *(mLog->log())<< DEBUGPREFIX
+ << " post_addToBlacklist ip= " << ip_addr << endl;
+ mRequest->mFactory->addToBlackList(ip_addr);
+ sendHeaders(200, "OK", NULL, NULL, 0, -1);
+ return;
+}
+
+void cResponseMemBlk::get_blacklist() {
+ mResponseMessage = new string();
+ mResponseMessagePos = 0;
+ *mResponseMessage = "";
+
+ list<string> * l = mRequest->mFactory->getBlackList();
+ for (list<string>::iterator it=l->begin(); it != l->end(); ++it) {
+ *mResponseMessage += *it;
+ *mResponseMessage += "\n";
+ }
+
+ sendHeaders(200, "OK", NULL, "text/plain", mResponseMessage->size(), -1);
+ return;
+}
+
+void cResponseMemBlk::post_removeFromBlacklist(){
+ if (isHeadRequest())
+ return;
+
+ vector<sQueryAVP> avps;
+ string ip_addr;
+ mRequest->parseQueryLine(&avps);
+
+ if (mRequest->getQueryAttributeValue(&avps, "ip_addr", ip_addr) != OKAY){
+ sendError(400, "Bad Request", NULL, "00x ip_addr attrib is mandatory.");
+ return;
+ }
+
+ *(mLog->log())<< DEBUGPREFIX
+ << " post_removeFromBlacklist ip= " << ip_addr << endl;
+
+ mRequest->mFactory->removeFromBlackList(ip_addr);
+ sendHeaders(200, "OK", NULL, NULL, 0, -1);
+ return;
+}
+
+// - Manifest End
// --------------------
// GET Resources