X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=killpopup.c;h=22f44e27585e9401d282ec59e7a8d1efc9bda848;hb=f2ff4c6d90be5bfa4a8697a684f33a2fa7a8048b;hp=77126ce62dceec14bc77e0141c2a27809ede1f0a;hpb=536a88ebe11300228987eaa39ef4bbd63cd0e1ba;p=privoxy.git diff --git a/killpopup.c b/killpopup.c index 77126ce6..22f44e27 100644 --- a/killpopup.c +++ b/killpopup.c @@ -1,4 +1,4 @@ -const char killpopup_rcs[] = "$Id: killpopup.c,v 1.7 2001/07/20 19:29:25 haroon Exp $"; +const char killpopup_rcs[] = "$Id: killpopup.c,v 1.10 2001/09/22 16:34:44 jongfoster Exp $"; /********************************************************************* * * File : $Source: /cvsroot/ijbswa/current/killpopup.c,v $ @@ -32,6 +32,18 @@ const char killpopup_rcs[] = "$Id: killpopup.c,v 1.7 2001/07/20 19:29:25 haroon * * Revisions : * $Log: killpopup.c,v $ + * Revision 1.10 2001/09/22 16:34:44 jongfoster + * Removing unneeded #includes + * + * Revision 1.9 2001/07/31 14:44:22 oes + * Deleted unused size parameter from filter_popups() + * + * Revision 1.8 2001/07/30 22:08:36 jongfoster + * Tidying up #defines: + * - All feature #defines are now of the form FEATURE_xxx + * - Permanently turned off WIN_GUI_EDIT + * - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS + * * Revision 1.7 2001/07/20 19:29:25 haroon * - In v1.5 forgot to add that I implemented LOG_LEVEL_POPUPS in errlog.c, * errlog.h and killpopup.c. In that case, it is superfluous to have define for @@ -88,7 +100,6 @@ const char killpopup_rcs[] = "$Id: killpopup.c,v 1.7 2001/07/20 19:29:25 haroon #include "project.h" #include "killpopup.h" -#include "jcc.h" #include "errlog.h" const char killpopup_h_rcs[] = KILLPOPUP_H_VERSION; @@ -99,19 +110,19 @@ const char killpopup_h_rcs[] = KILLPOPUP_H_VERSION; * * Function : filter_popups * - * Description : Filter the block of data that's been read from the server. - * Caller is responsible for checking permissons list - * to determine if this function should be called. - * Remember not to change the content length (substitute char by char) + * Description : Filter the block of data that's been read from the server + * for javascript popup code and replace by syntactically + * neutral code of the same size. + * Raise the CSP_FLAG_MODIFIED flag on success. * * Parameters : * 1 : buff = Buffer to scan and modify. Null terminated. - * 2 : size = Buffer size, excluding null terminator. + * 2 : csp = Client state pointer * * Returns : void * *********************************************************************/ -void filter_popups(char *buff, int size) +void filter_popups(char *buff, struct client_state *csp) { char *popup = NULL; char *close = NULL; @@ -127,6 +138,7 @@ void filter_popups(char *buff, int size) */ strncpy(popup, "1;''.concat(", 12); log_error(LOG_LEVEL_POPUPS, "Blocked popup window open"); + csp->flags |= CSP_FLAG_MODIFIED; } } @@ -140,10 +152,11 @@ void filter_popups(char *buff, int size) */ strncpy(popup, ".scrollTo(", 10); log_error(LOG_LEVEL_POPUPS, "Blocked popup window resize"); + csp->flags |= CSP_FLAG_MODIFIED; } } - /* Filter all other crap like onUnload onExit etc. (by BREITENB) NEW!*/ + /* Filter onUnload and onExit */ popup=strstr( buff, "'); if (close) { - /* we are now between FIXME: No, we're anywhere! --oes*/ + /* we are now between FIXME: No, we're anywhere! --oes */ p=strstr(popup, "onUnload"); if (p) { strncpy(p,"_nU_",4); + csp->flags |= CSP_FLAG_MODIFIED; } p=strstr(popup, "onExit"); if (p) { strncpy(p,"_nE_",4); + csp->flags |= CSP_FLAG_MODIFIED; } } }