-const char w32log_rcs[] = "$Id: w32log.c,v 1.1 2001/05/13 21:57:07 administrator Exp $";
+const char w32log_rcs[] = "$Id: w32log.c,v 1.9 2001/05/31 17:33:13 oes Exp $";
/*********************************************************************
*
- * File : $Source: /home/administrator/cvs/ijb/w32log.c,v $
+ * File : $Source: /cvsroot/ijbswa/current/w32log.c,v $
*
* Purpose : Functions for creating and destroying the log window,
* ouputting strings, processing messages and so on.
*
* Revisions :
* $Log: w32log.c,v $
+ * Revision 1.9 2001/05/31 17:33:13 oes
+ *
+ * CRLF -> LF
+ *
+ * Revision 1.8 2001/05/29 09:50:24 jongfoster
+ * Unified blocklist/imagelist/permissionslist.
+ * File format is still under discussion, but the internal changes
+ * are (mostly) done.
+ *
+ * Also modified interceptor behaviour:
+ * - We now intercept all URLs beginning with one of the following
+ * prefixes (and *only* these prefixes):
+ * * http://i.j.b/
+ * * http://ijbswa.sf.net/config/
+ * * http://ijbswa.sourceforge.net/config/
+ * - New interceptors "home page" - go to http://i.j.b/ to see it.
+ * - Internal changes so that intercepted and fast redirect pages
+ * are not replaced with an image.
+ * - Interceptors now have the option to send a binary page direct
+ * to the client. (i.e. ijb-send-banner uses this)
+ * - Implemented show-url-info interceptor. (Which is why I needed
+ * the above interceptors changes - a typical URL is
+ * "http://i.j.b/show-url-info?url=www.somesite.com/banner.gif".
+ * The previous mechanism would not have intercepted that, and
+ * if it had been intercepted then it then it would have replaced
+ * it with an image.)
+ *
+ * Revision 1.7 2001/05/26 01:26:34 jongfoster
+ * New #define, WIN_GUI_EDIT, enables the (embryonic) Win32 GUI editor.
+ * This #define cannot be set from ./configure - there's no point, it
+ * doesn't work yet. See feature request # 425722
+ *
+ * Revision 1.6 2001/05/26 00:31:30 jongfoster
+ * Fixing compiler warning about comparing signed/unsigned.
+ *
+ * Revision 1.5 2001/05/26 00:28:36 jongfoster
+ * Automatic reloading of config file.
+ * Removed obsolete SIGHUP support (Unix) and Reload menu option (Win32).
+ * Most of the global variables have been moved to a new
+ * struct configuration_spec, accessed through csp->config->globalname
+ * Most of the globals remaining are used by the Win32 GUI.
+ *
+ * Revision 1.4 2001/05/22 18:56:28 oes
+ * CRLF -> LF
+ *
+ * Revision 1.3 2001/05/20 15:07:54 jongfoster
+ * File is now ignored if _WIN_CONSOLE is defined.
+ *
+ * Revision 1.2 2001/05/20 01:21:20 jongfoster
+ * Version 2.9.4 checkin.
+ * - Merged popupfile and cookiefile, and added control over PCRS
+ * filtering, in new "permissionsfile".
+ * - Implemented LOG_LEVEL_FATAL, so that if there is a configuration
+ * file error you now get a message box (in the Win32 GUI) rather
+ * than the program exiting with no explanation.
+ * - Made killpopup use the PCRS MIME-type checking and HTTP-header
+ * skipping.
+ * - Removed tabs from "config"
+ * - Moved duplicated url parsing code in "loaders.c" to a new funcition.
+ * - Bumped up version number.
+ *
+ * Revision 1.1.1.1 2001/05/15 13:59:07 oes
+ * Initial import of version 2.9.3 source tree
+ *
*
*********************************************************************/
\f
const char w32log_h_rcs[] = W32LOG_H_VERSION;
+#ifndef _WIN_CONSOLE /* entire file */
+
/*
* Timers and the various durations
*/
int g_nFontSize = DEFAULT_LOG_FONT_SIZE;
+/* FIXME: this is a kludge */
+
+const char * g_actions_file = NULL;
+const char * g_forwardfile = NULL;
+#ifdef ACL_FILES
+const char * g_aclfile = NULL;
+#endif /* def ACL_FILES */
+#ifdef PCRS
+const char * g_re_filterfile = NULL;
+#endif
+#ifdef TRUST_FILES
+const char * g_trustfile = NULL;
+#endif /* def TRUST_FILES */
+
+/* FIXME: end kludge */
+
+
#ifdef REGEX
/* Regular expression for detected URLs */
#define RE_URL "http:[^ \n\r]*"
memset(pszBefore, 0, (match.rm_so + 1) * sizeof(char));
strncpy(pszBefore, pszText, match.rm_so);
}
- if (match.rm_eo < strlen(pszText))
+ if (match.rm_eo < (regoff_t)strlen(pszText))
{
pszAfter = strdup(&pszText[match.rm_eo]);
}
if (hMenu != NULL)
{
HMENU hMenuPopup = GetSubMenu(hMenu, 0);
+#ifdef WIN_GUI_EDIT
char *szURL;
+#endif /* def WIN_GUI_EDIT */
/* Check if there is a selection */
CHARRANGE range;
EnableMenuItem(hMenuPopup, ID_EDIT_COPY, MF_BYCOMMAND | MF_ENABLED);
}
+#ifdef WIN_GUI_EDIT
/* Check if cursor is over a link */
szURL = LogGetURLUnderCursor();
if (szURL)
free(szURL);
}
+#endif /* def WIN_GUI_EDIT */
/* Display the popup */
TrackPopupMenu(hMenuPopup, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON, x, y, 0, g_hwndLogFrame, NULL);
break;
#endif
- case ID_RELOAD_CONFIG:
- configret = 0;
- load_config( 1 );
-
- if ( configret )
- {
- log_error(LOG_LEVEL_ERROR, "load_config encountered a problem! You should probably restart IJB.");
- }
- else
- {
- log_error(LOG_LEVEL_INFO, "Configuration has been reloaded.");
- }
- break;
-
case ID_TOOLS_EDITJUNKBUSTER:
EditFile(configfile);
break;
- case ID_TOOLS_EDITBLOCKERS:
- EditFile(blockfile);
- break;
-
- case ID_TOOLS_EDITCOOKIES:
- EditFile(cookiefile);
+ case ID_TOOLS_EDITACTIONS:
+ EditFile(g_actions_file);
break;
case ID_TOOLS_EDITFORWARD:
- EditFile(forwardfile);
+ EditFile(g_forwardfile);
break;
#ifdef ACL_FILES
case ID_TOOLS_EDITACLS:
- EditFile(aclfile);
+ EditFile(g_aclfile);
break;
#endif /* def ACL_FILES */
-#ifdef USE_IMAGE_LIST
- case ID_TOOLS_EDITIMAGE:
- EditFile(imagefile);
- break;
-#endif /* def USE_IMAGE_LIST */
-
#ifdef PCRS
case ID_TOOLS_EDITPERLRE:
- EditFile(re_filterfile);
+ EditFile(g_re_filterfile);
break;
#endif
-#ifdef KILLPOPUPS
- case ID_TOOLS_EDITPOPUPS:
- EditFile(popupfile);
- break;
-#endif /* def KILLPOPUPS */
-
#ifdef TRUST_FILES
case ID_TOOLS_EDITTRUST:
- EditFile(trustfile);
+ EditFile(g_trustfile);
break;
#endif /* def TRUST_FILES */
+#ifdef WIN_GUI_EDIT
case ID_NEW_BLOCKER:
ShowRulesDialog(g_hwndLogFrame);
break;
+#endif /* def WIN_GUI_EDIT */
case ID_HELP_GPL:
ShellExecute(g_hwndLogFrame, "open", "gpl.html", NULL, NULL, SW_SHOWNORMAL);
void OnLogInitMenu(HMENU hmenu)
{
/* Only enable editors if there is a file to edit */
- EnableMenuItem(hmenu, ID_TOOLS_EDITCOOKIES, MF_BYCOMMAND | (cookiefile ? MF_ENABLED : MF_GRAYED));
- EnableMenuItem(hmenu, ID_TOOLS_EDITBLOCKERS, MF_BYCOMMAND | (blockfile ? MF_ENABLED : MF_GRAYED));
- EnableMenuItem(hmenu, ID_TOOLS_EDITFORWARD, MF_BYCOMMAND | (forwardfile ? MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(hmenu, ID_TOOLS_EDITACTIONS, MF_BYCOMMAND | (g_actions_file ? MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(hmenu, ID_TOOLS_EDITFORWARD, MF_BYCOMMAND | (g_forwardfile ? MF_ENABLED : MF_GRAYED));
#ifdef ACL_FILES
- EnableMenuItem(hmenu, ID_TOOLS_EDITACLS, MF_BYCOMMAND | (aclfile ? MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(hmenu, ID_TOOLS_EDITACLS, MF_BYCOMMAND | (g_aclfile ? MF_ENABLED : MF_GRAYED));
#endif /* def ACL_FILES */
-#ifdef USE_IMAGE_LIST
- EnableMenuItem(hmenu, ID_TOOLS_EDITIMAGE, MF_BYCOMMAND | (imagefile ? MF_ENABLED : MF_GRAYED));
-#endif /* def USE_IMAGE_LIST */
-#ifdef KILLPOPUPS
- EnableMenuItem(hmenu, ID_TOOLS_EDITPOPUPS, MF_BYCOMMAND | (popupfile ? MF_ENABLED : MF_GRAYED));
-#endif /* def KILLPOPUPS */
#ifdef PCRS
- EnableMenuItem(hmenu, ID_TOOLS_EDITPERLRE, MF_BYCOMMAND | (re_filterfile ? MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(hmenu, ID_TOOLS_EDITPERLRE, MF_BYCOMMAND | (g_re_filterfile ? MF_ENABLED : MF_GRAYED));
#endif
#ifdef TRUST_FILES
- EnableMenuItem(hmenu, ID_TOOLS_EDITTRUST, MF_BYCOMMAND | (trustfile ? MF_ENABLED : MF_GRAYED));
+ EnableMenuItem(hmenu, ID_TOOLS_EDITTRUST, MF_BYCOMMAND | (g_trustfile ? MF_ENABLED : MF_GRAYED));
#endif /* def TRUST_FILES */
/* Check/uncheck options */
}
+#endif /* ndef _WIN_CONSOLE - entire file */
/*
Local Variables: