*** empty log message ***

svn path=/trunk/boinc/; revision=3232
This commit is contained in:
David Anderson 2004-04-08 08:15:23 +00:00
parent 55094fd41e
commit dd51f9ea18
61 changed files with 595 additions and 526 deletions

2
aclocal.m4 vendored
View File

@ -1104,7 +1104,7 @@ AC_DEFUN([SAH_HEADER_STDCXX],[
#
# Revision Log:
# $Log$
# Revision 1.80 2004/04/07 06:51:37 davea
# Revision 1.81 2004/04/08 08:14:50 davea
# *** empty log message ***
#
# Revision 1.1 2003/12/11 18:38:24 korpela

View File

@ -11427,3 +11427,27 @@ David April 7 2004
client_types.C,h
cs_apps.C
cs_scheduler.C
David April 8 2004
- Clarify distinction between log messages (debugging)
and user messages (shown to user) in the client
and put both in one place (client_msgs.C,h)
- rename ClientMessages to CLIENT_MSG_LOG
- rename SchedMessages to SCHED_MSG_LOG
- rename Messages to MSG_LOG
- rename ScopeMessages to SCOPE_MSG_LOG
client/
Makefile.am
*.C
client_messages.C (removed)
message.h (removed)
client_msgs.C,h (new)
lib/
messages.C,h (removed)
msg_log.C,h (new)
sched/
Makefile.am
*.C
sched_messages.C (removed)
sched_msgs.C,h (new)

View File

@ -12,7 +12,7 @@ EXTRA_PROGRAMS = cpu_benchmark
boinc_client_SOURCES = \
app.C \
check_state.C \
client_messages.C \
client_msgs.C \
client_state.C \
client_types.C \
cpu_benchmark.C \
@ -32,7 +32,6 @@ boinc_client_SOURCES = \
http.C \
log_flags.C \
main.C \
message.C \
net_stats.C \
net_xfer.C \
pers_file_xfer.C \
@ -49,7 +48,7 @@ boinc_client_SOURCES = \
../lib/language.C \
../lib/md5_file.C \
../lib/md5.c \
../lib/messages.C \
../lib/msg_log.C \
../lib/parse.C \
../lib/shmem.C \
../lib/synch.C \

View File

@ -180,7 +180,7 @@ EXTRA_PROGRAMS = cpu_benchmark
boinc_client_SOURCES = \
app.C \
check_state.C \
client_messages.C \
client_msgs.C \
client_state.C \
client_types.C \
cpu_benchmark.C \
@ -200,7 +200,6 @@ boinc_client_SOURCES = \
http.C \
log_flags.C \
main.C \
message.C \
net_stats.C \
net_xfer.C \
pers_file_xfer.C \
@ -217,7 +216,7 @@ boinc_client_SOURCES = \
../lib/language.C \
../lib/md5_file.C \
../lib/md5.c \
../lib/messages.C \
../lib/msg_log.C \
../lib/parse.C \
../lib/shmem.C \
../lib/synch.C \
@ -257,7 +256,7 @@ PROGRAMS = $(bin_PROGRAMS)
am_boinc_client_OBJECTS = boinc_client-app.$(OBJEXT) \
boinc_client-check_state.$(OBJEXT) \
boinc_client-client_messages.$(OBJEXT) \
boinc_client-client_msgs.$(OBJEXT) \
boinc_client-client_state.$(OBJEXT) \
boinc_client-client_types.$(OBJEXT) \
boinc_client-cpu_benchmark.$(OBJEXT) \
@ -274,8 +273,7 @@ am_boinc_client_OBJECTS = boinc_client-app.$(OBJEXT) \
boinc_client-hostinfo.$(OBJEXT) \
boinc_client-hostinfo_unix.$(OBJEXT) \
boinc_client-http.$(OBJEXT) boinc_client-log_flags.$(OBJEXT) \
boinc_client-main.$(OBJEXT) boinc_client-message.$(OBJEXT) \
boinc_client-net_stats.$(OBJEXT) \
boinc_client-main.$(OBJEXT) boinc_client-net_stats.$(OBJEXT) \
boinc_client-net_xfer.$(OBJEXT) \
boinc_client-pers_file_xfer.$(OBJEXT) \
boinc_client-prefs.$(OBJEXT) boinc_client-proxy.$(OBJEXT) \
@ -286,7 +284,7 @@ am_boinc_client_OBJECTS = boinc_client-app.$(OBJEXT) \
boinc_client-diagnostics.$(OBJEXT) \
boinc_client-exception.$(OBJEXT) boinc_client-filesys.$(OBJEXT) \
boinc_client-language.$(OBJEXT) boinc_client-md5_file.$(OBJEXT) \
boinc_client-md5.$(OBJEXT) boinc_client-messages.$(OBJEXT) \
boinc_client-md5.$(OBJEXT) boinc_client-msg_log.$(OBJEXT) \
boinc_client-parse.$(OBJEXT) boinc_client-shmem.$(OBJEXT) \
boinc_client-synch.$(OBJEXT) boinc_client-util.$(OBJEXT)
boinc_client_OBJECTS = $(am_boinc_client_OBJECTS)
@ -303,7 +301,7 @@ am__depfiles_maybe = depfiles
@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/boinc_client-app.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-app_ipc.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-check_state.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-client_messages.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-client_msgs.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-client_state.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-client_types.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-cpu_benchmark.Po \
@ -330,8 +328,7 @@ am__depfiles_maybe = depfiles
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-main.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-md5.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-md5_file.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-message.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-messages.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-msg_log.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-net_stats.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-net_xfer.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/boinc_client-parse.Po \
@ -394,7 +391,7 @@ clean-binPROGRAMS:
-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
boinc_client-app.$(OBJEXT): app.C
boinc_client-check_state.$(OBJEXT): check_state.C
boinc_client-client_messages.$(OBJEXT): client_messages.C
boinc_client-client_msgs.$(OBJEXT): client_msgs.C
boinc_client-client_state.$(OBJEXT): client_state.C
boinc_client-client_types.$(OBJEXT): client_types.C
boinc_client-cpu_benchmark.$(OBJEXT): cpu_benchmark.C
@ -414,7 +411,6 @@ boinc_client-hostinfo_unix.$(OBJEXT): hostinfo_unix.C
boinc_client-http.$(OBJEXT): http.C
boinc_client-log_flags.$(OBJEXT): log_flags.C
boinc_client-main.$(OBJEXT): main.C
boinc_client-message.$(OBJEXT): message.C
boinc_client-net_stats.$(OBJEXT): net_stats.C
boinc_client-net_xfer.$(OBJEXT): net_xfer.C
boinc_client-pers_file_xfer.$(OBJEXT): pers_file_xfer.C
@ -431,7 +427,7 @@ boinc_client-filesys.$(OBJEXT): ../lib/filesys.C
boinc_client-language.$(OBJEXT): ../lib/language.C
boinc_client-md5_file.$(OBJEXT): ../lib/md5_file.C
boinc_client-md5.$(OBJEXT): ../lib/md5.c
boinc_client-messages.$(OBJEXT): ../lib/messages.C
boinc_client-msg_log.$(OBJEXT): ../lib/msg_log.C
boinc_client-parse.$(OBJEXT): ../lib/parse.C
boinc_client-shmem.$(OBJEXT): ../lib/shmem.C
boinc_client-synch.$(OBJEXT): ../lib/synch.C
@ -452,7 +448,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-app.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-app_ipc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-check_state.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-client_messages.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-client_msgs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-client_state.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-client_types.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-cpu_benchmark.Po@am__quote@
@ -479,8 +475,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-main.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-md5.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-md5_file.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-message.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-messages.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-msg_log.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-net_stats.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-net_xfer.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/boinc_client-parse.Po@am__quote@
@ -564,27 +559,27 @@ boinc_client-check_state.obj: check_state.C
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-check_state.obj `if test -f 'check_state.C'; then $(CYGPATH_W) 'check_state.C'; else $(CYGPATH_W) '$(srcdir)/check_state.C'`
boinc_client-client_messages.o: client_messages.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-client_messages.o -MD -MP -MF "$(DEPDIR)/boinc_client-client_messages.Tpo" \
@am__fastdepCXX_TRUE@ -c -o boinc_client-client_messages.o `test -f 'client_messages.C' || echo '$(srcdir)/'`client_messages.C; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/boinc_client-client_messages.Tpo" "$(DEPDIR)/boinc_client-client_messages.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/boinc_client-client_messages.Tpo"; exit 1; \
boinc_client-client_msgs.o: client_msgs.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-client_msgs.o -MD -MP -MF "$(DEPDIR)/boinc_client-client_msgs.Tpo" \
@am__fastdepCXX_TRUE@ -c -o boinc_client-client_msgs.o `test -f 'client_msgs.C' || echo '$(srcdir)/'`client_msgs.C; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/boinc_client-client_msgs.Tpo" "$(DEPDIR)/boinc_client-client_msgs.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/boinc_client-client_msgs.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='client_messages.C' object='boinc_client-client_messages.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/boinc_client-client_messages.Po' tmpdepfile='$(DEPDIR)/boinc_client-client_messages.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='client_msgs.C' object='boinc_client-client_msgs.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/boinc_client-client_msgs.Po' tmpdepfile='$(DEPDIR)/boinc_client-client_msgs.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-client_messages.o `test -f 'client_messages.C' || echo '$(srcdir)/'`client_messages.C
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-client_msgs.o `test -f 'client_msgs.C' || echo '$(srcdir)/'`client_msgs.C
boinc_client-client_messages.obj: client_messages.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-client_messages.obj -MD -MP -MF "$(DEPDIR)/boinc_client-client_messages.Tpo" \
@am__fastdepCXX_TRUE@ -c -o boinc_client-client_messages.obj `if test -f 'client_messages.C'; then $(CYGPATH_W) 'client_messages.C'; else $(CYGPATH_W) '$(srcdir)/client_messages.C'`; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/boinc_client-client_messages.Tpo" "$(DEPDIR)/boinc_client-client_messages.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/boinc_client-client_messages.Tpo"; exit 1; \
boinc_client-client_msgs.obj: client_msgs.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-client_msgs.obj -MD -MP -MF "$(DEPDIR)/boinc_client-client_msgs.Tpo" \
@am__fastdepCXX_TRUE@ -c -o boinc_client-client_msgs.obj `if test -f 'client_msgs.C'; then $(CYGPATH_W) 'client_msgs.C'; else $(CYGPATH_W) '$(srcdir)/client_msgs.C'`; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/boinc_client-client_msgs.Tpo" "$(DEPDIR)/boinc_client-client_msgs.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/boinc_client-client_msgs.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='client_messages.C' object='boinc_client-client_messages.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/boinc_client-client_messages.Po' tmpdepfile='$(DEPDIR)/boinc_client-client_messages.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='client_msgs.C' object='boinc_client-client_msgs.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/boinc_client-client_msgs.Po' tmpdepfile='$(DEPDIR)/boinc_client-client_msgs.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-client_messages.obj `if test -f 'client_messages.C'; then $(CYGPATH_W) 'client_messages.C'; else $(CYGPATH_W) '$(srcdir)/client_messages.C'`
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-client_msgs.obj `if test -f 'client_msgs.C'; then $(CYGPATH_W) 'client_msgs.C'; else $(CYGPATH_W) '$(srcdir)/client_msgs.C'`
boinc_client-client_state.o: client_state.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-client_state.o -MD -MP -MF "$(DEPDIR)/boinc_client-client_state.Tpo" \
@ -1004,28 +999,6 @@ boinc_client-main.obj: main.C
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-main.obj `if test -f 'main.C'; then $(CYGPATH_W) 'main.C'; else $(CYGPATH_W) '$(srcdir)/main.C'`
boinc_client-message.o: message.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-message.o -MD -MP -MF "$(DEPDIR)/boinc_client-message.Tpo" \
@am__fastdepCXX_TRUE@ -c -o boinc_client-message.o `test -f 'message.C' || echo '$(srcdir)/'`message.C; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/boinc_client-message.Tpo" "$(DEPDIR)/boinc_client-message.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/boinc_client-message.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='message.C' object='boinc_client-message.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/boinc_client-message.Po' tmpdepfile='$(DEPDIR)/boinc_client-message.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-message.o `test -f 'message.C' || echo '$(srcdir)/'`message.C
boinc_client-message.obj: message.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-message.obj -MD -MP -MF "$(DEPDIR)/boinc_client-message.Tpo" \
@am__fastdepCXX_TRUE@ -c -o boinc_client-message.obj `if test -f 'message.C'; then $(CYGPATH_W) 'message.C'; else $(CYGPATH_W) '$(srcdir)/message.C'`; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/boinc_client-message.Tpo" "$(DEPDIR)/boinc_client-message.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/boinc_client-message.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='message.C' object='boinc_client-message.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/boinc_client-message.Po' tmpdepfile='$(DEPDIR)/boinc_client-message.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-message.obj `if test -f 'message.C'; then $(CYGPATH_W) 'message.C'; else $(CYGPATH_W) '$(srcdir)/message.C'`
boinc_client-net_stats.o: net_stats.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-net_stats.o -MD -MP -MF "$(DEPDIR)/boinc_client-net_stats.Tpo" \
@am__fastdepCXX_TRUE@ -c -o boinc_client-net_stats.o `test -f 'net_stats.C' || echo '$(srcdir)/'`net_stats.C; \
@ -1356,27 +1329,27 @@ boinc_client-md5_file.obj: ../lib/md5_file.C
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-md5_file.obj `if test -f '../lib/md5_file.C'; then $(CYGPATH_W) '../lib/md5_file.C'; else $(CYGPATH_W) '$(srcdir)/../lib/md5_file.C'`
boinc_client-messages.o: ../lib/messages.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-messages.o -MD -MP -MF "$(DEPDIR)/boinc_client-messages.Tpo" \
@am__fastdepCXX_TRUE@ -c -o boinc_client-messages.o `test -f '../lib/messages.C' || echo '$(srcdir)/'`../lib/messages.C; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/boinc_client-messages.Tpo" "$(DEPDIR)/boinc_client-messages.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/boinc_client-messages.Tpo"; exit 1; \
boinc_client-msg_log.o: ../lib/msg_log.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-msg_log.o -MD -MP -MF "$(DEPDIR)/boinc_client-msg_log.Tpo" \
@am__fastdepCXX_TRUE@ -c -o boinc_client-msg_log.o `test -f '../lib/msg_log.C' || echo '$(srcdir)/'`../lib/msg_log.C; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/boinc_client-msg_log.Tpo" "$(DEPDIR)/boinc_client-msg_log.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/boinc_client-msg_log.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/messages.C' object='boinc_client-messages.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/boinc_client-messages.Po' tmpdepfile='$(DEPDIR)/boinc_client-messages.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/msg_log.C' object='boinc_client-msg_log.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/boinc_client-msg_log.Po' tmpdepfile='$(DEPDIR)/boinc_client-msg_log.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-messages.o `test -f '../lib/messages.C' || echo '$(srcdir)/'`../lib/messages.C
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-msg_log.o `test -f '../lib/msg_log.C' || echo '$(srcdir)/'`../lib/msg_log.C
boinc_client-messages.obj: ../lib/messages.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-messages.obj -MD -MP -MF "$(DEPDIR)/boinc_client-messages.Tpo" \
@am__fastdepCXX_TRUE@ -c -o boinc_client-messages.obj `if test -f '../lib/messages.C'; then $(CYGPATH_W) '../lib/messages.C'; else $(CYGPATH_W) '$(srcdir)/../lib/messages.C'`; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/boinc_client-messages.Tpo" "$(DEPDIR)/boinc_client-messages.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/boinc_client-messages.Tpo"; exit 1; \
boinc_client-msg_log.obj: ../lib/msg_log.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-msg_log.obj -MD -MP -MF "$(DEPDIR)/boinc_client-msg_log.Tpo" \
@am__fastdepCXX_TRUE@ -c -o boinc_client-msg_log.obj `if test -f '../lib/msg_log.C'; then $(CYGPATH_W) '../lib/msg_log.C'; else $(CYGPATH_W) '$(srcdir)/../lib/msg_log.C'`; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/boinc_client-msg_log.Tpo" "$(DEPDIR)/boinc_client-msg_log.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/boinc_client-msg_log.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/messages.C' object='boinc_client-messages.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/boinc_client-messages.Po' tmpdepfile='$(DEPDIR)/boinc_client-messages.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/msg_log.C' object='boinc_client-msg_log.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/boinc_client-msg_log.Po' tmpdepfile='$(DEPDIR)/boinc_client-msg_log.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-messages.obj `if test -f '../lib/messages.C'; then $(CYGPATH_W) '../lib/messages.C'; else $(CYGPATH_W) '$(srcdir)/../lib/messages.C'`
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o boinc_client-msg_log.obj `if test -f '../lib/msg_log.C'; then $(CYGPATH_W) '../lib/msg_log.C'; else $(CYGPATH_W) '$(srcdir)/../lib/msg_log.C'`
boinc_client-parse.o: ../lib/parse.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(boinc_client_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT boinc_client-parse.o -MD -MP -MF "$(DEPDIR)/boinc_client-parse.Tpo" \

View File

@ -77,6 +77,7 @@
#include "shmem.h"
#include "util.h"
#include "client_msgs.h"
#include "app.h"
// value for setpriority(2)
@ -87,11 +88,11 @@ static const int PROCESS_IDLE_PRIORITY = 19;
static int debug_print_argv(char** argv) {
int i;
log_messages.printf(ClientMessages::DEBUG_TASK, "Arguments:");
log_messages.printf(CLIENT_MSG_LOG::DEBUG_TASK, "Arguments:");
++log_messages;
for (i=0; argv[i]; i++) {
log_messages.printf(
ClientMessages::DEBUG_TASK,
CLIENT_MSG_LOG::DEBUG_TASK,
"argv[%d]: %s\n", i, argv[i]
);
}
@ -258,7 +259,7 @@ int ACTIVE_TASK::start(bool first_time) {
GRAPHICS_INFO gi;
APP_INIT_DATA aid;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_TASK);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_TASK);
scope_messages.printf("ACTIVE_TASK::start(first_time=%d)\n", first_time);
if (first_time) {
@ -639,7 +640,7 @@ bool ACTIVE_TASK::finish_file_present() {
bool ACTIVE_TASK_SET::check_app_exited() {
ACTIVE_TASK* atp;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_TASK);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_TASK);
#ifdef _WIN32
unsigned long exit_code;
@ -1139,7 +1140,7 @@ int ACTIVE_TASK_SET::restart_tasks() {
RESULT* result;
int retval;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_TASK);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_TASK);
iter = active_tasks.begin();
while (iter != active_tasks.end()) {

View File

@ -20,14 +20,16 @@
#ifdef _WIN32
#include "stdafx.h"
#endif
#ifndef _WIN32
#include <stdarg.h>
#endif
#include "message.h"
#include "log_flags.h"
#include "client_msgs.h"
ClientMessages log_messages;
CLIENT_MSG_LOG log_messages;
const char* ClientMessages::v_format_kind(int kind) const
{
const char* CLIENT_MSG_LOG::v_format_kind(int kind) const {
switch(kind) {
case DEBUG_STATE: return "DEBUG_STATE ";
case DEBUG_TASK: return "DEBUG_TASK ";
@ -43,8 +45,7 @@ const char* ClientMessages::v_format_kind(int kind) const
}
}
bool ClientMessages::v_message_wanted(int kind) const
{
bool CLIENT_MSG_LOG::v_message_wanted(int kind) const {
switch (kind) {
case DEBUG_STATE: return log_flags.state_debug;
case DEBUG_TASK: return log_flags.task_debug;
@ -59,3 +60,27 @@ bool ClientMessages::v_message_wanted(int kind) const
default: return false;
}
}
vector<MESSAGE_DESC> message_descs;
// Takes a printf style formatted string, inserts the proper values,
// and passes it to show_message
// TODO: add translation functionality
//
void msg_printf(PROJECT *p, int priority, char *fmt, ...) {
char buf[512];
va_list ap;
if (fmt == NULL) return;
// Since Windows doesn't support vsnprintf, we have to do a
// workaround to prevent buffer overruns
//
if (strlen(fmt) > 512) fmt[511] = '\0';
va_start(ap, fmt); // Parses string for variables
vsprintf(buf, fmt, ap); // And convert symbols To actual numbers
va_end(ap); // Results are stored in text
show_message(p, buf, priority);
}

View File

@ -17,12 +17,22 @@
// Contributor(s):
//
#ifndef MESSAGE_H
#define MESSAGE_H
#ifndef CLIENT_MSG_LOG_H
#define CLIENT_MSG_LOG_H
// Two types of messages are used in the BOINC client:
//
// - Log messages
// Debugging messages, not intended to be seen by users
// Write these using the log_messages object.
//
// - User messages
// Message intended for users, displayed in the Messages tab of the GUI
// Write these using the msg_printf() function
#include <vector>
#include "messages.h"
#include "msg_log.h"
#include "client_types.h"
// Show a message, preceded by timestamp and project name
@ -37,6 +47,8 @@
#define MSG_WARNING 3
// deprecated - do not use
// the following stores a message in memory, where it can be retrieved via RPC
//
struct MESSAGE_DESC {
PROJECT* project;
int priority;
@ -48,10 +60,11 @@ extern vector<MESSAGE_DESC> message_descs;
extern void show_message(class PROJECT *p, char* message, int priority);
class ClientMessages : public Messages {
class CLIENT_MSG_LOG : public MSG_LOG {
int debug_level;
const char* v_format_kind(int kind) const;
bool v_message_wanted(int kind) const;
public:
enum Kind {
DEBUG_STATE, // changes to CLIENT_STATE structure
@ -65,17 +78,10 @@ public:
DEBUG_MEASUREMENT, // host measurement notices
DEBUG_POLL, // show what polls are responding
};
ClientMessages(): Messages(stdout) {}
CLIENT_MSG_LOG(): MSG_LOG(stdout) {}
};
extern ClientMessages log_messages;
// the __attribute((format...)) tags are GCC extensions that let the compiler
// do like-checking on printf-like arguments
//
#if !defined(__GNUC__) && !defined(__attribute__)
#define __attribute__(x) /*nothing*/
#endif
extern CLIENT_MSG_LOG log_messages;
extern void msg_printf(PROJECT *p, int priority, char *fmt, ...) __attribute__ ((format (printf, 3, 4)));

View File

@ -55,6 +55,7 @@
#include "hostinfo.h"
#include "http.h"
#include "log_flags.h"
#include "client_msgs.h"
#include "client_state.h"
CLIENT_STATE gstate;
@ -298,7 +299,7 @@ int CLIENT_STATE::init() {
// This is inefficient but not a problem (I guess)
//
int CLIENT_STATE::net_sleep(double x) {
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_NET_XFER);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_NET_XFER);
scope_messages.printf("CLIENT_STATE::net_sleep(%f)\n", x);
if (activities_suspended || network_suspended) {
boinc_sleep(x);
@ -321,7 +322,7 @@ int CLIENT_STATE::net_sleep(double x) {
//
bool CLIENT_STATE::do_something() {
int actions = 0, reason, retval;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_POLL);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_POLL);
check_suspend_activities(reason);
if (reason) {
@ -619,7 +620,7 @@ void CLIENT_STATE::print_summary() {
int t;
if (!log_flags.state_debug) return;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_STATE);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_STATE);
scope_messages.printf("CLIENT_STATE::print_summary(): Client state summary:\n");
++log_messages;
scope_messages.printf("%d projects:\n", (int)projects.size());
@ -675,7 +676,7 @@ bool CLIENT_STATE::garbage_collect() {
string error_msgs;
PROJECT* project;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_STATE);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_STATE);
// zero references counts on WUs, FILE_INFOs and APP_VERSIONs

View File

@ -32,7 +32,7 @@
#include "hostinfo.h"
#include "http.h"
#include "language.h"
#include "message.h"
//#include "message.h"
#include "net_stats.h"
#include "net_xfer.h"
#include "pers_file_xfer.h"

View File

@ -31,7 +31,7 @@
#include "error_numbers.h"
#include "file_names.h"
#include "filesys.h"
#include "message.h"
#include "client_msgs.h"
#include "log_flags.h"
#include "parse.h"
#include "util.h"

View File

@ -35,7 +35,7 @@
#endif
#include "error_numbers.h"
#include "message.h"
#include "client_msgs.h"
#include "cpu_benchmark.h"

View File

@ -26,11 +26,12 @@
#include <cassert>
#endif
#include "client_state.h"
#include "error_numbers.h"
#include "file_names.h"
#include "filesys.h"
#include "util.h"
#include "client_state.h"
#include "client_msgs.h"
#include "error_numbers.h"
#include "file_names.h"
static inline string filename_to_project_dirname(const string& filename) {
assert(starts_with(filename, "account_"));

View File

@ -39,6 +39,7 @@
#include "filesys.h"
#include "shmem.h"
#include "log_flags.h"
#include "client_msgs.h"
#include "client_state.h"
// Make a directory for each available slot
@ -160,7 +161,7 @@ bool CLIENT_STATE::handle_finished_apps() {
ACTIVE_TASK* atp;
bool action = false;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_TASK);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_TASK);
for (i=0; i<active_tasks.active_tasks.size(); i++) {
atp = active_tasks.active_tasks[i];

View File

@ -51,6 +51,7 @@
#include "filesys.h"
#include "util.h"
#include "cpu_benchmark.h"
#include "client_msgs.h"
#include "client_state.h"
// defaults in case benchmarks fail or time out.
@ -123,7 +124,7 @@ DWORD WINAPI win_cpu_benchmarks(LPVOID p) {
void CLIENT_STATE::start_cpu_benchmarks() {
int i;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_MEASUREMENT);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_MEASUREMENT);
if (skip_cpu_benchmarks) {
scope_messages.printf("CLIENT_STATE::cpu_benchmarks(): Skipping CPU benchmarks.\n");
host_info.p_fpops = DEFAULT_FPOPS;

View File

@ -28,6 +28,7 @@
#endif
#include "util.h"
#include "client_msgs.h"
#include "client_state.h"
static void print_options(char* prog) {

View File

@ -36,12 +36,13 @@
#include "md5_file.h"
#include "crypt.h"
#include "file_xfer.h"
#include "filesys.h"
#include "error_numbers.h"
#include "file_names.h"
#include "client_types.h"
#include "client_state.h"
#include "filesys.h"
#include "error_numbers.h"
#include "client_msgs.h"
#include "file_xfer.h"
#define MAX_TRANSFERS_PER_PROJECT 2

View File

@ -29,6 +29,7 @@
#include "filesys.h"
#include "file_names.h"
#include "cpu_benchmark.h"
#include "client_msgs.h"
#include "client_state.h"
void CLIENT_STATE::install_global_prefs() {

View File

@ -42,7 +42,7 @@
#include "parse.h"
#include "util.h"
#include "message.h"
#include "client_msgs.h"
#include "scheduler_op.h"
#include "client_state.h"
@ -504,7 +504,7 @@ int CLIENT_STATE::handle_scheduler_reply(
nresults = 0;
contacted_sched_server = true;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_SCHED_OP);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_SCHED_OP);
scope_messages.printf_file(SCHED_OP_RESULT_FILE, "reply: ");

View File

@ -25,10 +25,11 @@
#include "error_numbers.h"
#include "filesys.h"
#include "file_names.h"
#include "client_msgs.h"
#include "client_state.h"
void CLIENT_STATE::set_client_state_dirty(char* source) {
log_messages.printf(ClientMessages::DEBUG_STATE, "set dirty: %s\n", source);
log_messages.printf(CLIENT_MSG_LOG::DEBUG_STATE, "set dirty: %s\n", source);
client_state_dirty = true;
}
@ -40,7 +41,7 @@ int CLIENT_STATE::parse_state_file() {
int retval=0;
int failnum;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_STATE);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_STATE);
if (!boinc_file_exists(STATE_FILE_NAME)) {
scope_messages.printf("CLIENT_STATE::parse_state_file(): No state file; will create one\n");
@ -192,7 +193,7 @@ int CLIENT_STATE::write_state_file() {
FILE* f = boinc_fopen(STATE_FILE_TEMP, "w");
int retval;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_STATE);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_STATE);
scope_messages.printf("CLIENT_STATE::write_state_file(): Writing state file\n");
if (!f) {
msg_printf(0, MSG_ERROR, "Can't open temp state file: %s\n", STATE_FILE_TEMP);

View File

@ -31,7 +31,7 @@
#include "filesys.h"
#include "error_numbers.h"
#include "message.h"
#include "client_msgs.h"
#include "util.h"
#include "file_names.h"

View File

@ -27,7 +27,7 @@
#include "file_names.h"
#include "client_state.h"
#include "filesys.h"
#include "message.h"
#include "client_msgs.h"
#include "file_xfer.h"
#include "parse.h"
#include "error_numbers.h"
@ -187,7 +187,7 @@ bool FILE_XFER_SET::poll() {
FILE_XFER* fxp;
bool action = false;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_FILE_XFER);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_FILE_XFER);
for (i=0; i<file_xfers.size(); i++) {
fxp = file_xfers[i];

View File

@ -32,6 +32,8 @@
#include "util.h"
#include "parse.h"
#include "client_msgs.h"
#include "client_state.h"
GUI_RPC_CONN::GUI_RPC_CONN(int s) {

View File

@ -44,7 +44,7 @@
#include "util.h"
#include "parse.h"
#include "message.h"
#include "client_msgs.h"
#include "error_numbers.h"
#include "hostinfo.h"

View File

@ -46,7 +46,7 @@
#include "error_numbers.h"
#include "filesys.h"
#include "util.h"
#include "message.h"
#include "client_msgs.h"
#include "http.h"
@ -141,7 +141,7 @@ void HTTP_REPLY_HEADER::init() {
}
void HTTP_REPLY_HEADER::parse() {
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_HTTP);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_HTTP);
istringstream h(recv_buf);
string line, w;
@ -180,7 +180,7 @@ const unsigned int MAX_HEADER_SIZE = 1024;
// Returns 1 if not done yet, 0 if done (header.http_status indicates success)
//
int HTTP_REPLY_HEADER::read_reply(int socket) {
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_HTTP);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_HTTP);
while (recv_buf.size() < MAX_HEADER_SIZE) {
char c;
@ -304,7 +304,7 @@ int HTTP_OP::init_post(const char* url, char* in, char* out) {
double size;
char proxy_buf[256];
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_HTTP);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_HTTP);
parse_url(url, url_hostname, port, filename);
PROXY::init(url_hostname, port);
@ -392,7 +392,7 @@ bool HTTP_OP_SET::poll() {
int n, retval;
bool action = false;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_HTTP);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_HTTP);
for (i=0; i<http_ops.size(); i++) {
htp = http_ops[i];

View File

@ -30,7 +30,7 @@
#include "error_numbers.h"
#include "file_names.h"
#include "message.h"
#include "client_msgs.h"
#include "parse.h"
#include "log_flags.h"

View File

@ -45,7 +45,7 @@
#include "log_flags.h"
#include "prefs.h"
#include "util.h"
#include "message.h"
#include "client_msgs.h"
// dummies
void create_curtain(){}
@ -264,7 +264,7 @@ int boinc_main_loop(int argc, char** argv) {
dt = dtime();
gstate.net_sleep(1.);
dt = dtime() - dt;
log_messages.printf(ClientMessages::DEBUG_TIME, "SLEPT %f SECONDS\n", dt);
log_messages.printf(CLIENT_MSG_LOG::DEBUG_TIME, "SLEPT %f SECONDS\n", dt);
fflush(stdout);
}

View File

@ -25,7 +25,7 @@
#include <stdarg.h>
#endif
#include "message.h"
//#include "client_msgs.h"
vector<MESSAGE_DESC> message_descs;

View File

@ -40,7 +40,7 @@
#include "util.h"
#include "error_numbers.h"
#include "message.h"
#include "client_msgs.h"
#include "net_stats.h"

View File

@ -74,7 +74,7 @@
#include "util.h"
#include "client_types.h"
#include "client_state.h"
#include "message.h"
#include "client_msgs.h"
#if defined(_WIN32)
typedef int socklen_t;
@ -366,7 +366,7 @@ int NET_XFER_SET::do_select(double& bytes_transferred, double timeout) {
NET_XFER *nxp;
struct timeval tv;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_NET_XFER);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_NET_XFER);
// if a second has gone by, do rate-limit accounting
//
@ -512,7 +512,7 @@ int NET_XFER::do_xfer(int& nbytes_transferred) {
nbytes_transferred = 0;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_NET_XFER);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_NET_XFER);
if (want_download) {
#ifdef WIN32
@ -606,7 +606,7 @@ void NET_XFER::got_error() {
error = ERR_IO;
io_done = true;
log_messages.printf(
ClientMessages::DEBUG_NET_XFER, "IO error on socket %d\n", socket
CLIENT_MSG_LOG::DEBUG_NET_XFER, "IO error on socket %d\n", socket
);
}

View File

@ -28,16 +28,18 @@
#include <stdlib.h>
#endif
#include "client_state.h"
#include "client_types.h"
#include "error_numbers.h"
#include "file_names.h"
#include "md5_file.h"
#include "parse.h"
#include "util.h"
#include "log_flags.h"
#include "filesys.h"
#include "log_flags.h"
#include "file_names.h"
#include "client_state.h"
#include "client_types.h"
#include "client_msgs.h"
// PERS_FILE_XFER represents a persistent file transfer.
// A set of URLs is given.
//
@ -79,7 +81,7 @@ int PERS_FILE_XFER::start_xfer() {
FILE_XFER *file_xfer;
int retval;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_FILE_XFER);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_FILE_XFER);
// Decide whether to start a new file transfer
//
@ -165,7 +167,7 @@ int PERS_FILE_XFER::start_xfer() {
bool PERS_FILE_XFER::poll(time_t now) {
int retval;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_FILE_XFER);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_FILE_XFER);
if (xfer_done) {
return false;
@ -292,7 +294,7 @@ void PERS_FILE_XFER::retry_or_backoff() {
time_t now;
int backoff = 0;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_FILE_XFER);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_FILE_XFER);
now = time(0);
// newtime = localtime(&now);

View File

@ -32,7 +32,7 @@
#include "parse.h"
#include "error_numbers.h"
#include "message.h"
#include "client_msgs.h"
#include "file_names.h"
#include "client_state.h"

View File

@ -45,7 +45,7 @@
#include "error_numbers.h"
#include "filesys.h"
#include "util.h"
#include "message.h"
#include "client_msgs.h"
#include "parse.h"
#include "proxy.h"
@ -386,7 +386,7 @@ bool PROXY::proxy_poll() {
bool action = false;
char buf[256];
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_PROXY);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_PROXY);
switch(proxy_state) {
case PROXY_STATE_CONNECTING:

View File

@ -34,6 +34,7 @@
#include "client_state.h"
#include "client_types.h"
#include "client_msgs.h"
#include "file_names.h"
#include "log_flags.h"
#include "scheduler_op.h"
@ -114,7 +115,7 @@ int SCHEDULER_OP::init_op_project(double ns) {
int retval;
char err_msg[256];
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_SCHED_OP);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_SCHED_OP);
scope_messages.printf("SCHEDULER_OP::init_op_project(): starting op for %s\n", project->master_url);
@ -152,7 +153,7 @@ int SCHEDULER_OP::set_min_rpc_time(PROJECT* p) {
int n = p->nrpc_failures;
if (n > gstate.retry_cap) n = gstate.retry_cap;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_SCHED_OP);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_SCHED_OP);
// we've hit the limit on master_url fetches
//
@ -203,7 +204,7 @@ void SCHEDULER_OP::backoff(PROJECT* p, char *error_msg ) {
int SCHEDULER_OP::start_rpc() {
int retval;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_SCHED_OP);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_SCHED_OP);
safe_strcpy(scheduler_url, project->scheduler_urls[url_index].text);
if (log_flags.sched_ops) {
@ -233,7 +234,7 @@ int SCHEDULER_OP::start_rpc() {
int SCHEDULER_OP::init_master_fetch(PROJECT* p) {
int retval;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_SCHED_OP);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_SCHED_OP);
project = p;
scope_messages.printf("SCHEDULER_OP::init_master_fetch(): Fetching master file for %s\n", project->master_url);
@ -272,7 +273,7 @@ int SCHEDULER_OP::parse_master_file(vector<STRING256> &urls) {
STRING256 str;
FILE* f;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_SCHED_OP);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_SCHED_OP);
f = fopen(MASTER_FILE_NAME, "r");
if (!f) {
@ -335,7 +336,7 @@ bool SCHEDULER_OP::poll() {
bool action = false, err = false;
char err_msg[256], *err_url=NULL;
ScopeMessages scope_messages(log_messages, ClientMessages::DEBUG_SCHED_OP);
SCOPE_MSG_LOG scope_messages(log_messages, CLIENT_MSG_LOG::DEBUG_SCHED_OP);
switch(state) {
case SCHEDULER_OP_STATE_GET_MASTER:

View File

@ -30,7 +30,7 @@
#include "parse.h"
#include "util.h"
#include "error_numbers.h"
#include "message.h"
#include "client_msgs.h"
#include "time_stats.h"

View File

@ -3,30 +3,44 @@ require_once("docutil.php");
page_head("Non-English pages about BOINC");
echo "
Information about BOINC is available in the following languages:
<ul>
<li> Chinese
<br><a href=http://www.equn.com/boinchina><font size=-2>www.equn.com/boinchina</font></a>
<li> Estonian
<br><a href=http://boinc.tmac.pri.ee><font size=-2>boinc.tmac.pri.ee</font></a>
<li> Danish
<br><a href=http://www.boinc.dk><font size=-2>www.boinc.dk</font></a>
<li> Dutch
<br><a href=http://www.seti-nl.org/content.php?c=boinc_berkeley_main><font size=-2>www.seti-nl.org</font></a>
<li> Finnish
<br><a href=http://www.universe-examiners.org/boinc_faq.php><font size=-2>Universe Examiners</font></a>
<li> French
<br><a href=http://www.boinc-fr.net><font size=-2>www.boinc-fr.net</font></a>
<li> German
<br><a href=http://www.boinc.de/><font size=-2>www.boinc.de</font></a>
<li> Italian
<br><a href=http://boinc.homeunix.org/><font size=-2>boinc.homeunix.org</font></a>
<li> Japanese
<br><a href=http://je2bwm.hp.infoseek.co.jp/boinc/indexj.html#next2ads><font size=-2>fortunecity.com</font></a> (by Komori Hitoshi)
<li> Russian
<br><a href=http://www.boinc.narod.ru><font size=-2>www.boinc.narod.ru</font></a>
<li> Turkish
<br><a href=http://www.turksetiteam.org/boinc/index.html><font size=-2>www.turksetiteam.org</font></a>
</ul>
";
list_start();
list_item("Chinese",
"<a href=http://www.equn.com/boinchina>www.equn.com/boinchina</a>"
);
list_item("Estonian",
"<a href=http://boinc.tmac.pri.ee>boinc.tmac.pri.ee</a>"
);
list_item("Danish",
"<a href=http://www.boinc.dk>www.boinc.dk</a>
<br><a href=http://www.setihome.dk>www.setihome.dk</a>"
);
list_item("Dutch",
"<a href=http://www.seti-nl.org/content.php?c=boinc_berkeley_main>www.seti-nl.org</a>"
);
list_item("Finnish",
"<a href=http://www.universe-examiners.org/boinc_faq.php>Universe Examiners</a>"
);
list_item("French",
"<a href=http://www.boinc-fr.net>www.boinc-fr.net</a>"
);
list_item("German",
"<a href=http://www.boinc.de/>www.boinc.de</a>"
);
list_item("Italian",
"<a href=http://boinc.homeunix.org/>boinc.homeunix.org</a>"
);
list_item("Japanese",
"<a href=http://je2bwm.hp.infoseek.co.jp/boinc/indexj.html#next2ads>fortunecity.com</a> (by Komori Hitoshi)"
);
list_item("Russian",
"<a href=http://www.boinc.narod.ru>www.boinc.narod.ru</a>"
);
list_item("Turkish",
"<a href=http://www.turksetiteam.org/boinc/index.html>www.turksetiteam.org</a>"
);
list_end();
echo "
If you'd like to add a web site to this list, please
<a href=mailto:davea@ssl.berkeley.edu>contact us</a>.
";

View File

@ -30,46 +30,45 @@ using namespace std;
#endif
#include "util.h"
#include "messages.h"
#include "msg_log.h"
//////////////////////////////////////////////////////////////////////
// MSG_LOG is a base class for writing messages not intended for the end user.
// This includes all server messages and client debugging messages.
// SCHED_MSG_LOG (in sched/sched_msg_log.C) decides which scheduler messages
// to print and formats the "kind" keyword;
// CLIENT_MSG_LOG does the same thing for client debugging output.
//
// Messages is a base class for writing messages not intended for the end
// user. This includes all server messages and client debugging messages.
// SchedMessages (in sched/sched_messages.C) decides which scheduler messages
// to print and formats the "kind" keyword; ClientMessages does the same thing
// for client debugging output.
//
// Messages has an "indent_level" state for how many spaces to indent output.
// This corresponds in general to the function-call recursion level. Call
// Messages::enter_level() to increase by 1 level and leave_level() to
// decrease by 1 level. The ScopeMessages class takes care of calling
// leave_level() for you. Create a ScopeMessages object on the stack at the
// beginning of a function; it will increment the level by 1 on construction,
// and decrement the level by 1 on destruction at end of scope. This way you
// don't have to worry about decrementing before mid-function returns,
// exceptions, etc.
// MSG_LOG has an "indent_level" state for how many spaces to indent output.
// This corresponds in general to the function-call recursion level.
// Call MSG_LOG::enter_level() to increase by 1 level
// and leave_level() to decrease by 1 level.
// The SCOPE_MSG_LOG class takes care of calling leave_level() for you.
// Create a SCOPE_MSG_LOG object on the stack at the beginning of a function;
// it will increment the level by 1 on construction,
// and decrement the level by 1 on destruction at end of scope.
// This way you don't have to worry about decrementing
// before mid-function returns, exceptions, etc.
// Each [v]printf* function prints the timestamp, the formatted KIND string,
// indentation level, then the specified string. The string to print can be
// a one-line string (including the trailing \n), a multi-line string (it's
// broken up into lines to get the prefix on each line), or a file (also
// broken up into lines).
// indentation level, then the specified string.
// The string to print can be a one-line string (including the trailing \n),
// a multi-line string (it's broken up into lines
// to get the prefix on each line), or a file (also broken up into lines).
// Scheduler functions should use "log_messages" which is an instance of
// SchedMessages. Client functions should use "log_messages" (also) which is
// an instance of ClientMessages.
// Scheduler functions should use "sched_messages" which is an instance of
// SCHED_MSG_LOG. Client functions should use "client_messages",
// which is an instance of CLIENT_MSG_LOG.
// See sched/sched_messages.C and client/client_messages.C for those classes.
// See sched/sched_msg_log.C and client/client_msg_log.C for those classes.
Messages::Messages(FILE* output_) {
MSG_LOG::MSG_LOG(FILE* output_) {
output = output_;
indent_level = 0;
spaces[0] = 0;
strcpy(spaces+1, " ");
}
void Messages::enter_level(int diff) {
void MSG_LOG::enter_level(int diff) {
assert (indent_level >= 0);
spaces[indent_level] = ' ';
indent_level += diff*2;
@ -77,7 +76,7 @@ void Messages::enter_level(int diff) {
assert (indent_level >= 0);
}
void Messages::vprintf(int kind, const char* format, va_list va) {
void MSG_LOG::vprintf(int kind, const char* format, va_list va) {
const char* now_timestamp = time_to_string(time(0));
if (!v_message_wanted(kind)) return;
fprintf(output, "%s [%s]%s ", now_timestamp, v_format_kind(kind), spaces);
@ -85,7 +84,7 @@ void Messages::vprintf(int kind, const char* format, va_list va) {
}
// break a multi-line string into lines (so that we show prefix on each line)
void Messages::vprintf_multiline(
void MSG_LOG::vprintf_multiline(
int kind, const char* str, const char* prefix_format, va_list va
) {
if (!v_message_wanted(kind)) return;
@ -113,7 +112,7 @@ void Messages::vprintf_multiline(
}
}
void Messages::vprintf_file(
void MSG_LOG::vprintf_file(
int kind, const char* filename, const char* prefix_format, va_list va
) {
if (!v_message_wanted(kind)) return;
@ -134,14 +133,14 @@ void Messages::vprintf_file(
}
}
void Messages::printf(int kind, const char* format, ...) {
void MSG_LOG::printf(int kind, const char* format, ...) {
va_list va;
va_start(va, format);
vprintf(kind, format, va);
va_end(va);
}
void Messages::printf_multiline(
void MSG_LOG::printf_multiline(
int kind, const char* str, const char* prefix_format, ...
) {
va_list va;
@ -150,7 +149,7 @@ void Messages::printf_multiline(
va_end(va);
}
void Messages::printf_file(
void MSG_LOG::printf_file(
int kind, const char* filename, const char* prefix_format, ...
) {
va_list va;
@ -159,19 +158,18 @@ void Messages::printf_file(
va_end(va);
}
//////////////////////////////////////////////////////////////////////
// These ScopeMessages functions are utility functions that call their
// corresponding Messages functions with the same name, passing the KIND that
// was specified on creation of the ScopeMessages object.
// These SCOPE_MSG_LOG functions are utility functions that call their
// corresponding MSG_LOG functions with the same name, passing the KIND that
// was specified on creation of the SCOPE_MSG_LOG object.
void ScopeMessages::printf(const char* format, ...) {
void SCOPE_MSG_LOG::printf(const char* format, ...) {
va_list va;
va_start(va, format);
messages.vprintf(kind, format, va);
va_end(va);
}
void ScopeMessages::printf_multiline(
void SCOPE_MSG_LOG::printf_multiline(
const char* str, const char* prefix_format, ...
) {
va_list va;
@ -180,7 +178,7 @@ void ScopeMessages::printf_multiline(
va_end(va);
}
void ScopeMessages::printf_file(
void SCOPE_MSG_LOG::printf_file(
const char* filename, const char* prefix_format, ...
) {
va_list va;

View File

@ -3,22 +3,23 @@
// the __attribute((format...)) tags are GCC extensions that let the compiler
// do like-checking on printf-like arguments
//
#if !defined(__GNUC__) && !defined(__attribute__)
#define __attribute__(x) /*nothing*/
#endif
class Messages {
class MSG_LOG {
int debug_level;
int indent_level;
char spaces[80];
FILE* output;
public:
Messages(FILE* output);
MSG_LOG(FILE* output);
void enter_level(int = 1);
void leave_level() { enter_level(-1); }
Messages& operator++() { enter_level(); return *this; }
Messages& operator--() { leave_level(); return *this; }
MSG_LOG& operator++() { enter_level(); return *this; }
MSG_LOG& operator--() { leave_level(); return *this; }
void printf(int kind, const char* format, ...) __attribute__ ((format (printf, 3, 4)));
void printf_multiline(int kind, const char* str, const char* prefix_format, ...) __attribute__ ((format (printf, 4, 5)));
@ -33,17 +34,18 @@ protected:
virtual bool v_message_wanted(int kind) const = 0;
};
// automatically ++/--Messages on scope entry / exit. See lib/messages.C for commentary
class ScopeMessages
{
Messages& messages;
// automatically ++/--MSG_LOG on scope entry / exit.
// See lib/msg_log.C for commentary
//
class SCOPE_MSG_LOG {
MSG_LOG& messages;
int kind;
public:
ScopeMessages(Messages& messages_, int kind_) : messages(messages_), kind(kind_)
SCOPE_MSG_LOG(MSG_LOG& messages_, int kind_) : messages(messages_), kind(kind_)
{ ++messages; }
~ScopeMessages() { --messages; }
ScopeMessages& operator++() { ++messages; return *this; }
ScopeMessages& operator--() { --messages; return *this; }
~SCOPE_MSG_LOG() { --messages; }
SCOPE_MSG_LOG& operator++() { ++messages; return *this; }
SCOPE_MSG_LOG& operator--() { --messages; return *this; }
void printf(const char* format, ...) __attribute__ ((format (printf, 2, 3)));
void printf_multiline(const char* str, const char* prefix_format, ...) __attribute__ ((format (printf, 3, 4)));

View File

@ -33,7 +33,7 @@ libsched_a_SOURCES = \
sched_shmem.C \
sched_util.C \
sched_config.C \
sched_messages.C \
sched_msgs.C \
../db/boinc_db.C \
../db/db_base.C \
../lib/util.C \
@ -44,7 +44,7 @@ libsched_a_SOURCES = \
../lib/shmem.C \
../lib/md5.c \
../lib/md5_file.C \
../lib/messages.C \
../lib/msg_log.C \
../tools/process_result_template.C \
../tools/backend_lib.C \
sched_config.h \

View File

@ -202,7 +202,7 @@ libsched_a_SOURCES = \
sched_shmem.C \
sched_util.C \
sched_config.C \
sched_messages.C \
sched_msgs.C \
../db/boinc_db.C \
../db/db_base.C \
../lib/util.C \
@ -213,7 +213,7 @@ libsched_a_SOURCES = \
../lib/shmem.C \
../lib/md5.c \
../lib/md5_file.C \
../lib/messages.C \
../lib/msg_log.C \
../tools/process_result_template.C \
../tools/backend_lib.C \
sched_config.h \
@ -291,12 +291,12 @@ LIBRARIES = $(noinst_LIBRARIES)
libsched_a_AR = $(AR) cru
libsched_a_LIBADD =
am_libsched_a_OBJECTS = sched_shmem.$(OBJEXT) sched_util.$(OBJEXT) \
sched_config.$(OBJEXT) sched_messages.$(OBJEXT) \
boinc_db.$(OBJEXT) db_base.$(OBJEXT) util.$(OBJEXT) \
crypt.$(OBJEXT) filesys.$(OBJEXT) parse.$(OBJEXT) \
base64.$(OBJEXT) shmem.$(OBJEXT) md5.$(OBJEXT) \
md5_file.$(OBJEXT) messages.$(OBJEXT) \
process_result_template.$(OBJEXT) backend_lib.$(OBJEXT)
sched_config.$(OBJEXT) sched_msgs.$(OBJEXT) boinc_db.$(OBJEXT) \
db_base.$(OBJEXT) util.$(OBJEXT) crypt.$(OBJEXT) \
filesys.$(OBJEXT) parse.$(OBJEXT) base64.$(OBJEXT) \
shmem.$(OBJEXT) md5.$(OBJEXT) md5_file.$(OBJEXT) \
msg_log.$(OBJEXT) process_result_template.$(OBJEXT) \
backend_lib.$(OBJEXT)
libsched_a_OBJECTS = $(am_libsched_a_OBJECTS)
EXTRA_PROGRAMS = fcgi$(EXEEXT)
noinst_PROGRAMS = assimilator$(EXEEXT) cgi$(EXEEXT) feeder$(EXEEXT) \
@ -389,12 +389,11 @@ am__depfiles_maybe = depfiles
@AMDEP_TRUE@ ./$(DEPDIR)/filesys.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/handle_request.Po ./$(DEPDIR)/main.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/make_work.Po ./$(DEPDIR)/md5.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/md5_file.Po ./$(DEPDIR)/messages.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/md5_file.Po ./$(DEPDIR)/msg_log.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/parse.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/process_result_template.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/sched_config.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/sched_messages.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/sched_send.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/sched_msgs.Po ./$(DEPDIR)/sched_send.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/sched_shmem.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/sched_util.Po \
@AMDEP_TRUE@ ./$(DEPDIR)/server_types.Po ./$(DEPDIR)/shmem.Po \
@ -452,7 +451,7 @@ base64.$(OBJEXT): ../lib/base64.C
shmem.$(OBJEXT): ../lib/shmem.C
md5.$(OBJEXT): ../lib/md5.c
md5_file.$(OBJEXT): ../lib/md5_file.C
messages.$(OBJEXT): ../lib/messages.C
msg_log.$(OBJEXT): ../lib/msg_log.C
process_result_template.$(OBJEXT): ../tools/process_result_template.C
backend_lib.$(OBJEXT): ../tools/backend_lib.C
libsched.a: $(libsched_a_OBJECTS) $(libsched_a_DEPENDENCIES)
@ -558,11 +557,11 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/make_work.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/md5_file.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/messages.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msg_log.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/process_result_template.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_config.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_messages.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_msgs.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_send.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_shmem.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sched_util.Po@am__quote@
@ -803,27 +802,27 @@ md5_file.obj: ../lib/md5_file.C
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o md5_file.obj `if test -f '../lib/md5_file.C'; then $(CYGPATH_W) '../lib/md5_file.C'; else $(CYGPATH_W) '$(srcdir)/../lib/md5_file.C'`
messages.o: ../lib/messages.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT messages.o -MD -MP -MF "$(DEPDIR)/messages.Tpo" \
@am__fastdepCXX_TRUE@ -c -o messages.o `test -f '../lib/messages.C' || echo '$(srcdir)/'`../lib/messages.C; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/messages.Tpo" "$(DEPDIR)/messages.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/messages.Tpo"; exit 1; \
msg_log.o: ../lib/msg_log.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT msg_log.o -MD -MP -MF "$(DEPDIR)/msg_log.Tpo" \
@am__fastdepCXX_TRUE@ -c -o msg_log.o `test -f '../lib/msg_log.C' || echo '$(srcdir)/'`../lib/msg_log.C; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/msg_log.Tpo" "$(DEPDIR)/msg_log.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/msg_log.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/messages.C' object='messages.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/messages.Po' tmpdepfile='$(DEPDIR)/messages.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/msg_log.C' object='msg_log.o' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/msg_log.Po' tmpdepfile='$(DEPDIR)/msg_log.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o messages.o `test -f '../lib/messages.C' || echo '$(srcdir)/'`../lib/messages.C
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o msg_log.o `test -f '../lib/msg_log.C' || echo '$(srcdir)/'`../lib/msg_log.C
messages.obj: ../lib/messages.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT messages.obj -MD -MP -MF "$(DEPDIR)/messages.Tpo" \
@am__fastdepCXX_TRUE@ -c -o messages.obj `if test -f '../lib/messages.C'; then $(CYGPATH_W) '../lib/messages.C'; else $(CYGPATH_W) '$(srcdir)/../lib/messages.C'`; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/messages.Tpo" "$(DEPDIR)/messages.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/messages.Tpo"; exit 1; \
msg_log.obj: ../lib/msg_log.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT msg_log.obj -MD -MP -MF "$(DEPDIR)/msg_log.Tpo" \
@am__fastdepCXX_TRUE@ -c -o msg_log.obj `if test -f '../lib/msg_log.C'; then $(CYGPATH_W) '../lib/msg_log.C'; else $(CYGPATH_W) '$(srcdir)/../lib/msg_log.C'`; \
@am__fastdepCXX_TRUE@ then mv "$(DEPDIR)/msg_log.Tpo" "$(DEPDIR)/msg_log.Po"; \
@am__fastdepCXX_TRUE@ else rm -f "$(DEPDIR)/msg_log.Tpo"; exit 1; \
@am__fastdepCXX_TRUE@ fi
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/messages.C' object='messages.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/messages.Po' tmpdepfile='$(DEPDIR)/messages.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='../lib/msg_log.C' object='msg_log.obj' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ depfile='$(DEPDIR)/msg_log.Po' tmpdepfile='$(DEPDIR)/msg_log.TPo' @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCXX_FALSE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o messages.obj `if test -f '../lib/messages.C'; then $(CYGPATH_W) '../lib/messages.C'; else $(CYGPATH_W) '$(srcdir)/../lib/messages.C'`
@am__fastdepCXX_FALSE@ $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o msg_log.obj `if test -f '../lib/msg_log.C'; then $(CYGPATH_W) '../lib/msg_log.C'; else $(CYGPATH_W) '$(srcdir)/../lib/msg_log.C'`
process_result_template.o: ../tools/process_result_template.C
@am__fastdepCXX_TRUE@ if $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT process_result_template.o -MD -MP -MF "$(DEPDIR)/process_result_template.Tpo" \

View File

@ -1,33 +1,34 @@
#include <stdio.h>
#include "boinc_db.h"
#include "assimilate_handler.h"
#include "sched_msgs.h"
#include "sched_util.h"
#include "assimilate_handler.h"
void assimilate_handler(
WORKUNIT& wu, vector<RESULT>& results, RESULT& canonical_result
) {
ScopeMessages scope_messages(log_messages, SchedMessages::NORMAL);
SCOPE_MSG_LOG scope_messages(log_messages, SCHED_MSG_LOG::NORMAL);
scope_messages.printf("[%s] Assimilating\n", wu.name);
if (wu.canonical_resultid) {
scope_messages.printf("[%s] Found canonical result\n", wu.name);
log_messages.printf_multiline(
SchedMessages::DEBUG, canonical_result.xml_doc_out,
SCHED_MSG_LOG::DEBUG, canonical_result.xml_doc_out,
"[%s] canonical result", wu.name
);
} else {
scope_messages.printf("[%s] No canonical result\n", wu.name);
}
if (wu.error_mask&WU_ERROR_COULDNT_SEND_RESULT) {
log_messages.printf(SchedMessages::CRITICAL, "[%s] Error: couldn't send a result\n", wu.name);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "[%s] Error: couldn't send a result\n", wu.name);
}
if (wu.error_mask&WU_ERROR_TOO_MANY_ERROR_RESULTS) {
log_messages.printf(SchedMessages::CRITICAL, "[%s] Error: too many error results\n", wu.name);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "[%s] Error: too many error results\n", wu.name);
}
if (wu.error_mask&WU_ERROR_TOO_MANY_TOTAL_RESULTS) {
log_messages.printf(SchedMessages::CRITICAL, "[%s] Error: too many total results\n", wu.name);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "[%s] Error: too many total results\n", wu.name);
}
if (wu.error_mask&WU_ERROR_TOO_MANY_SUCCESS_RESULTS) {
log_messages.printf(SchedMessages::CRITICAL, "[%s] Error: too many success results\n", wu.name);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "[%s] Error: too many success results\n", wu.name);
}
}

View File

@ -28,6 +28,7 @@
#include "util.h"
#include "sched_config.h"
#include "sched_util.h"
#include "sched_msgs.h"
#include "assimilate_handler.h"
#define LOCKFILE "assimilator.out"
@ -53,7 +54,7 @@ bool do_pass(APP& app) {
vector<RESULT> results; // must be inside while()!
did_something = true;
log_messages.printf(SchedMessages::DEBUG,
log_messages.printf(SCHED_MSG_LOG::DEBUG,
"[%s] assimilating; state=%d\n", wu.name, wu.assimilate_state
);
@ -92,13 +93,13 @@ int main(int argc, char** argv) {
} else if (!strcmp(argv[i], "-app")) {
strcpy(app.name, argv[++i]);
} else {
log_messages.printf(SchedMessages::CRITICAL, "Unrecognized arg: %s\n", argv[i]);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Unrecognized arg: %s\n", argv[i]);
}
}
retval = config.parse_file("..");
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "Can't parse config file\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Can't parse config file\n");
exit(1);
}
@ -110,21 +111,21 @@ int main(int argc, char** argv) {
// // Call lock_file after fork(), because file locks are not always inherited
// if (lock_file(LOCKFILE)) {
// log_messages.printf(SchedMessages::NORMAL, "Another copy of assimilator is already running\n");
// log_messages.printf(SCHED_MSG_LOG::NORMAL, "Another copy of assimilator is already running\n");
// exit(1);
// }
// write_pid_file(PIDFILE);
log_messages.printf(SchedMessages::NORMAL, "Starting\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Starting\n");
retval = boinc_db.open(config.db_name, config.db_host, config.db_user, config.db_passwd);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "Can't open DB\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Can't open DB\n");
exit(1);
}
sprintf(buf, "where name='%s'", app.name);
retval = app.lookup(buf);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "Can't find app\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Can't find app\n");
exit(1);
}
install_stop_signal_handler();

View File

@ -61,9 +61,11 @@
#include "boinc_db.h"
#include "util.h"
#include "parse.h"
#include "sched_config.h"
#include "sched_util.h"
#include "parse.h"
#include "sched_msgs.h"
#define LOCKFILE "db_dump.out"
@ -645,24 +647,24 @@ int main(int argc, char** argv) {
}
if (nrecs_per_file_summary <= 0 || nrecs_per_file_detail <= 0) {
log_messages.printf(SchedMessages::NORMAL, "Too few records per file.\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Too few records per file.\n");
exit(1);
}
if (lock_file(LOCKFILE)) {
log_messages.printf(SchedMessages::NORMAL, "Another copy of db_dump is already running\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Another copy of db_dump is already running\n");
exit(1);
}
log_messages.printf(SchedMessages::NORMAL, "Starting\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Starting\n");
retval = config.parse_file("..");
if (retval) {
log_messages.printf(SchedMessages::NORMAL, "Can't parse config file\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Can't parse config file\n");
exit(1);
}
retval = boinc_db.open(config.db_name, config.db_host, config.db_user, config.db_passwd);
if (retval) {
log_messages.printf(SchedMessages::NORMAL, "Can't open DB\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Can't open DB\n");
exit(1);
}

View File

@ -92,6 +92,7 @@
#include "sched_config.h"
#include "sched_shmem.h"
#include "sched_util.h"
#include "sched_msgs.h"
#define REREAD_DB_FILENAME "reread_db"
#define LOCKFILE "feeder.out"
@ -133,7 +134,7 @@ static int remove_infeasible(int i) {
wu = wu_result.workunit;
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[%s] declaring result as unsendable; infeasible count %d\n",
result.name, wu_result.infeasible_count
);
@ -143,7 +144,7 @@ static int remove_infeasible(int i) {
retval = result.update();
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[%s]: can't update: %d\n",
result.name, retval
);
@ -153,7 +154,7 @@ static int remove_infeasible(int i) {
retval = wu.update();
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[%s]: can't update: %d\n",
wu.name, retval
);
@ -192,7 +193,7 @@ try_again:
// there's no point in doing it again.
//
if (restarted_enum) {
log_messages.printf(SchedMessages::DEBUG,
log_messages.printf(SCHED_MSG_LOG::DEBUG,
"already restarted enum on this array scan\n"
);
break;
@ -202,11 +203,11 @@ try_again:
//
restarted_enum = true;
retval = result.enumerate(clause);
log_messages.printf(SchedMessages::DEBUG,
log_messages.printf(SCHED_MSG_LOG::DEBUG,
"restarting enumeration\n"
);
if (retval) {
log_messages.printf(SchedMessages::DEBUG,
log_messages.printf(SCHED_MSG_LOG::DEBUG,
"enumeration restart returned nothing\n"
);
no_wus = true;
@ -220,14 +221,14 @@ try_again:
//
retval = result.lookup_id(result.id);
if (retval) {
log_messages.printf(SchedMessages::NORMAL,
log_messages.printf(SCHED_MSG_LOG::NORMAL,
"[%s] can't reread result: %d\n", result.name, retval
);
goto try_again;
}
if (result.server_state != RESULT_SERVER_STATE_UNSENT) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[%s] RESULT STATE CHANGED\n",
result.name
);
@ -245,14 +246,14 @@ try_again:
}
if (!collision) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[%s] adding result in slot %d\n",
result.name, i
);
retval = wu.lookup_id(result.workunitid);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[%s] can't read workunit #%d: %d\n",
result.name, result.workunitid, retval
);
@ -319,17 +320,17 @@ void feeder_loop() {
}
#endif
if (nadditions == 0) {
log_messages.printf(SchedMessages::DEBUG, "No results added; sleeping 1 sec\n");
log_messages.printf(SCHED_MSG_LOG::DEBUG, "No results added; sleeping 1 sec\n");
sleep(1);
} else {
log_messages.printf(SchedMessages::DEBUG, "Added %d results to array\n", nadditions);
log_messages.printf(SCHED_MSG_LOG::DEBUG, "Added %d results to array\n", nadditions);
}
if (no_wus) {
log_messages.printf(SchedMessages::DEBUG, "No results available; sleeping 5 sec\n");
log_messages.printf(SCHED_MSG_LOG::DEBUG, "No results available; sleeping 5 sec\n");
sleep(5);
}
if (ncollisions) {
log_messages.printf(SchedMessages::DEBUG, "Some results already in array - sleeping 5 sec\n");
log_messages.printf(SCHED_MSG_LOG::DEBUG, "Some results already in array - sleeping 5 sec\n");
sleep(5);
}
fflush(stdout);
@ -348,7 +349,7 @@ int main(int argc, char** argv) {
retval = config.parse_file("..");
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't parse config file\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't parse config file\n");
exit(1);
}
@ -366,7 +367,7 @@ int main(int argc, char** argv) {
}
}
log_messages.printf(SchedMessages::NORMAL, "Starting\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Starting\n");
get_project_dir(path, sizeof(path));
get_key(path, 'a', sema_key);
@ -375,12 +376,12 @@ int main(int argc, char** argv) {
retval = destroy_shmem(config.shmem_key);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't destroy shmem\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't destroy shmem\n");
exit(1);
}
retval = create_shmem(config.shmem_key, sizeof(SCHED_SHMEM), &p);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't create shmem\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't create shmem\n");
exit(1);
}
ssp = (SCHED_SHMEM*)p;
@ -391,13 +392,13 @@ int main(int argc, char** argv) {
retval = boinc_db.open(config.db_name, config.db_host, config.db_user, config.db_passwd);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "boinc_db.open: %d; %s\n", retval, boinc_db.error_string());
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "boinc_db.open: %d; %s\n", retval, boinc_db.error_string());
exit(1);
}
ssp->scan_tables();
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"feeder: read "
"%d platforms, "
"%d apps, "

View File

@ -30,6 +30,7 @@
#include "util.h"
#include "sched_config.h"
#include "sched_util.h"
#include "sched_msgs.h"
#define LOCKFILE "file_deleter.out"
#define PIDFILE "file_deleter.pid"
@ -56,14 +57,14 @@ int wu_delete_files(WORKUNIT& wu) {
} else if (match_tag(p, "</file_info>")) {
if (!no_delete) {
sprintf(pathname, "%s/%s", config.download_dir, filename);
log_messages.printf(SchedMessages::NORMAL, "[%s] deleting download/%s\n", wu.name, filename);
log_messages.printf(SCHED_MSG_LOG::NORMAL, "[%s] deleting download/%s\n", wu.name, filename);
unlink(pathname);
++count_deleted;
}
}
p = strtok(0, "\n");
}
log_messages.printf(SchedMessages::DEBUG, "[%s] deleted %d file(s)\n", wu.name, count_deleted);
log_messages.printf(SCHED_MSG_LOG::DEBUG, "[%s] deleted %d file(s)\n", wu.name, count_deleted);
return 0;
}
@ -87,7 +88,7 @@ int result_delete_files(RESULT& result) {
sprintf(pathname, "%s/%s", config.upload_dir, filename);
retval = unlink(pathname);
++count_deleted;
log_messages.printf(SchedMessages::NORMAL,
log_messages.printf(SCHED_MSG_LOG::NORMAL,
"[%s] unlinked %s; retval %d\n",
result.name, filename, retval
);
@ -96,7 +97,7 @@ int result_delete_files(RESULT& result) {
p = strtok(0, "\n");
}
log_messages.printf(SchedMessages::DEBUG,
log_messages.printf(SCHED_MSG_LOG::DEBUG,
"[%s] deleted %d file(s)\n", result.name, count_deleted
);
return 0;
@ -144,13 +145,13 @@ int main(int argc, char** argv) {
} else if (!strcmp(argv[i], "-d")) {
log_messages.set_debug_level(atoi(argv[++i]));
} else {
log_messages.printf(SchedMessages::CRITICAL, "Unrecognized arg: %s\n", argv[i]);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Unrecognized arg: %s\n", argv[i]);
}
}
retval = config.parse_file("..");
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "Can't parse config file\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Can't parse config file\n");
exit(1);
}
@ -162,15 +163,15 @@ int main(int argc, char** argv) {
// // Call lock_file after fork(), because file locks are not always inherited
// if (lock_file(LOCKFILE)) {
// log_messages.printf(SchedMessages::NORMAL, "Another copy of file deleter is running\n");
// log_messages.printf(SCHED_MSG_LOG::NORMAL, "Another copy of file deleter is running\n");
// exit(1);
// }
// write_pid_file(PIDFILE);
log_messages.printf(SchedMessages::NORMAL, "Starting\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Starting\n");
retval = boinc_db.open(config.db_name, config.db_host, config.db_user, config.db_passwd);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't open DB\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't open DB\n");
exit(1);
}
install_stop_signal_handler();

View File

@ -22,6 +22,9 @@
// Revision History:
//
// $Log$
// Revision 1.56 2004/04/08 08:15:20 davea
// *** empty log message ***
//
// Revision 1.55 2004/01/22 01:35:09 boincadm
// *** empty log message ***
//
@ -46,18 +49,20 @@
#include <signal.h>
#endif
#include "crypt.h"
#include "parse.h"
#include "util.h"
#include "sched_config.h"
#include "sched_util.h"
#include "crypt.h"
#include "sched_msgs.h"
SCHED_CONFIG config;
#define ERR_TRANSIENT true
#define ERR_PERMANENT false
#define DEBUG_LEVEL SchedMessages::NORMAL
#define DEBUG_LEVEL SCHED_MSG_LOG::NORMAL
void get_log_path(char* p) {
char buf[256];
@ -80,7 +85,7 @@ int FILE_INFO::parse(FILE* in) {
memset(this, 0, sizeof(FILE_INFO));
signed_xml = strdup("");
while (fgets(buf, 256, in)) {
log_messages.printf(SchedMessages::DEBUG, buf, "FILE_INFO::parse: ");
log_messages.printf(SCHED_MSG_LOG::DEBUG, buf, "FILE_INFO::parse: ");
if (match_tag(buf, "</file_info>")) return 0;
else if (match_tag(buf, "<xml_signature>")) {
retval = dup_element_contents(in, "</xml_signature>", &xml_signature);
@ -93,7 +98,7 @@ int FILE_INFO::parse(FILE* in) {
if (match_tag(buf, "<generated_locally/>")) continue;
if (match_tag(buf, "<upload_when_present/>")) continue;
if (match_tag(buf, "<url>")) continue;
log_messages.printf(SchedMessages::NORMAL, "FILE_INFO::parse: unrecognized: %s \n", buf);
log_messages.printf(SCHED_MSG_LOG::NORMAL, "FILE_INFO::parse: unrecognized: %s \n", buf);
}
return 1;
}
@ -122,7 +127,7 @@ int return_error(bool transient, const char* message, ...) {
va_end(va);
log_messages.printf(
SchedMessages::NORMAL, "Returning error to client %s: %s (%s)\n",
SCHED_MSG_LOG::NORMAL, "Returning error to client %s: %s (%s)\n",
get_remote_addr(), buf,
transient?"transient":"permanent"
);
@ -170,7 +175,7 @@ int copy_socket_to_file(FILE* in, char* path, double offset, double nbytes) {
bytes_left = nbytes - offset;
if (bytes_left == 0) {
fclose(out);
log_messages.printf(SchedMessages::DEBUG, "offset == nbytes: %f\n", nbytes);
log_messages.printf(SCHED_MSG_LOG::DEBUG, "offset == nbytes: %f\n", nbytes);
return return_success(0);
}
@ -225,12 +230,12 @@ int handle_file_upload(FILE* in, R_RSA_PUBLIC_KEY& key) {
file_info.signed_xml, file_info.xml_signature, key, is_valid
);
if (retval || !is_valid) {
log_messages.printf(SchedMessages::CRITICAL,
log_messages.printf(SCHED_MSG_LOG::CRITICAL,
"verify_string() = %d, is_valid = %d\n",
retval, is_valid
);
log_messages.printf(SchedMessages::NORMAL, file_info.signed_xml, "signed xml: ");
log_messages.printf(SchedMessages::NORMAL, file_info.xml_signature, "signature: ");
log_messages.printf(SCHED_MSG_LOG::NORMAL, file_info.signed_xml, "signed xml: ");
log_messages.printf(SCHED_MSG_LOG::NORMAL, file_info.xml_signature, "signature: ");
return return_error(ERR_PERMANENT, "invalid signature");
}
continue;
@ -264,7 +269,7 @@ int handle_file_upload(FILE* in, R_RSA_PUBLIC_KEY& key) {
sprintf(path, "%s/%s", config.upload_dir, file_info.name);
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"Handling upload of %s from %s [offset=%.0f, nbytes=%.0f]\n",
file_info.name,
get_remote_addr(),
@ -272,14 +277,14 @@ int handle_file_upload(FILE* in, R_RSA_PUBLIC_KEY& key) {
);
if (offset >= nbytes) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"ERROR: offset >= nbytes!!\n"
);
return return_success(0);
}
return copy_socket_to_file(in, path, offset, nbytes);
} else {
log_messages.printf(SchedMessages::CRITICAL,
log_messages.printf(SCHED_MSG_LOG::CRITICAL,
"unrecognized: %s", buf
);
}
@ -300,14 +305,14 @@ int handle_get_file_size(char* file_name) {
sprintf(path, "%s/%s", config.upload_dir, file_name );
retval = stat( path, &sbuf );
if (retval && errno != ENOENT) {
log_messages.printf(SchedMessages::DEBUG, "handle_get_file_size(): [%s] returning error\n", file_name);
log_messages.printf(SCHED_MSG_LOG::DEBUG, "handle_get_file_size(): [%s] returning error\n", file_name);
return return_error(ERR_TRANSIENT, "cannot open file" );
} else if (retval) {
log_messages.printf(SchedMessages::DEBUG, "handle_get_file_size(): [%s] returning zero\n", file_name);
log_messages.printf(SCHED_MSG_LOG::DEBUG, "handle_get_file_size(): [%s] returning zero\n", file_name);
return return_success("<file_size>0</file_size>");
} else {
log_messages.printf(
SchedMessages::DEBUG, "handle_get_file_size(): [%s] returning %d\n",
SCHED_MSG_LOG::DEBUG, "handle_get_file_size(): [%s] returning %d\n",
file_name, (int)sbuf.st_size
);
sprintf(buf, "<file_size>%d</file_size>", (int)sbuf.st_size);
@ -326,7 +331,7 @@ int handle_request(FILE* in, R_RSA_PUBLIC_KEY& key) {
bool did_something = false;
while (fgets(buf, 256, in)) {
log_messages.printf(SchedMessages::DEBUG, buf, "handle_request: ");
log_messages.printf(SCHED_MSG_LOG::DEBUG, buf, "handle_request: ");
if (parse_int(buf, "<core_client_major_version>", major)) {
if (major != MAJOR_VERSION) {
retval = return_error(ERR_PERMANENT,
@ -357,11 +362,11 @@ int handle_request(FILE* in, R_RSA_PUBLIC_KEY& key) {
did_something = true;
break;
} else {
log_messages.printf(SchedMessages::DEBUG, "handle_request: unrecognized %s\n", buf);
log_messages.printf(SCHED_MSG_LOG::DEBUG, "handle_request: unrecognized %s\n", buf);
}
}
if (!did_something) {
log_messages.printf(SchedMessages::CRITICAL, "handle_request: no command\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "handle_request: no command\n");
return return_error(ERR_PERMANENT, "no command");
}

View File

@ -40,6 +40,7 @@ using namespace std;
#include "sched_util.h"
#include "main.h"
#include "handle_request.h"
#include "sched_msgs.h"
#include "sched_send.h"
const double COBBLESTONE_FACTOR = 300.0;
@ -61,7 +62,7 @@ int authenticate_user(SCHEDULER_REQUEST& sreq, SCHEDULER_REPLY& reply) {
strcpy(reply.message, "Can't find host record");
strcpy(reply.message_priority, "low");
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[HOST#%d?] can't find host\n",
sreq.hostid
);
@ -79,7 +80,7 @@ int authenticate_user(SCHEDULER_REQUEST& sreq, SCHEDULER_REPLY& reply) {
reply.request_delay = 120;
reply.nucleus_only = true;
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[HOST#%d] [USER#%d?] can't find user record\n",
host.id, reply.host.userid
);
@ -95,7 +96,7 @@ int authenticate_user(SCHEDULER_REQUEST& sreq, SCHEDULER_REPLY& reply) {
reply.request_delay = 120;
reply.nucleus_only = true;
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[HOST#%d] [USER#%d] Bad authenticator '%s'\n",
host.id, user.id, sreq.authenticator
);
@ -108,7 +109,7 @@ int authenticate_user(SCHEDULER_REQUEST& sreq, SCHEDULER_REPLY& reply) {
if (sreq.rpc_seqno < reply.host.rpc_seqno) {
sreq.hostid = 0;
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[HOST#%d] [USER#%d] RPC seqno %d less than expected %d; creating new host\n",
reply.host.id, user.id, sreq.rpc_seqno, reply.host.rpc_seqno
);
@ -134,7 +135,7 @@ lookup_user_and_make_new_host:
strcpy(reply.message_priority, "low");
reply.request_delay = 120;
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[HOST#<none>] Bad authenticator '%s'\n",
sreq.authenticator
);
@ -156,7 +157,7 @@ make_new_host:
strcpy(reply.message, "Couldn't create host record in database");
strcpy(reply.message_priority, "low");
boinc_db.print_error("host.insert()");
log_messages.printf(SchedMessages::CRITICAL, "host.insert() failed\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "host.insert() failed\n");
return retval;
}
host.id = boinc_db.insert_id();
@ -223,7 +224,7 @@ int update_host_record(SCHEDULER_REQUEST& sreq, HOST& xhost) {
retval = host.update();
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "host.update() failed: %d\n", retval);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "host.update() failed: %d\n", retval);
}
return 0;
}
@ -288,7 +289,7 @@ int handle_results(
retval = result.lookup(buf);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[HOST#%d] [RESULT#? %s] can't find result\n",
host.id, rp->name
);
@ -296,13 +297,13 @@ int handle_results(
}
log_messages.printf(
SchedMessages::NORMAL, "[HOST#%d] [RESULT#%d %s] got result\n",
SCHED_MSG_LOG::NORMAL, "[HOST#%d] [RESULT#%d %s] got result\n",
host.id, result.id, result.name
);
if (result.server_state == RESULT_SERVER_STATE_UNSENT) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[HOST#%d] [RESULT#%d %s] got unexpected result: server state is %d\n",
host.id, result.id, result.name, result.server_state
);
@ -311,7 +312,7 @@ int handle_results(
if (result.received_time) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[HOST#%d] [RESULT#%d %s] got result twice\n",
host.id, result.id, result.name
);
@ -320,7 +321,7 @@ int handle_results(
if (result.hostid != sreq.hostid) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[HOST#%d] [RESULT#%d %s] got result from wrong host; expected [HOST#%d]\n",
host.id, result.id, result.name, result.hostid
);
@ -329,21 +330,21 @@ int handle_results(
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[RESULT#%d %s] Can't lookup [HOST#%d]\n",
result.id, result.name, result.hostid
);
continue;
} else if (result_host.userid != host.userid) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[USER#%d] [HOST#%d] [RESULT#%d %s] Not even the same user; expected [USER#%d]\n",
host.userid, host.id, result.id, result.name, result_host.userid
);
continue;
} else {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[HOST#%d] [RESULT#%d %s] Allowing result because same USER#%d\n",
host.id, result.id, result.name, host.userid
);
@ -371,12 +372,12 @@ int handle_results(
if ((result.client_state == RESULT_FILES_UPLOADED) && (result.exit_status == 0)) {
result.outcome = RESULT_OUTCOME_SUCCESS;
log_messages.printf(SchedMessages::DEBUG,
log_messages.printf(SCHED_MSG_LOG::DEBUG,
"[RESULT#%d %s]: setting outcome SUCCESS\n",
result.id, result.name
);
} else {
log_messages.printf(SchedMessages::DEBUG,
log_messages.printf(SCHED_MSG_LOG::DEBUG,
"[RESULT#%d %s]: client_state %d exit_status %d; setting outcome ERROR\n",
result.id, result.name, result.client_state, result.exit_status
);
@ -388,7 +389,7 @@ int handle_results(
retval = result.update();
if (retval) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[HOST#%d] [RESULT#%d %s] can't update result: %s\n",
host.id, result.id, result.name, boinc_db.error_string()
);
@ -399,7 +400,7 @@ int handle_results(
retval = wu.lookup_id(result.workunitid);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[HOST#%d] [RESULT#%d %s] Can't find [WU#%d] for result\n",
host.id, result.id, result.name, result.workunitid
);
@ -408,7 +409,7 @@ int handle_results(
retval = wu.update();
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[HOST#%d] [RESULT#%d %s] Can't update [WU#%d %s]\n",
host.id, result.id, result.name, wu.id, wu.name
);
@ -431,7 +432,7 @@ void send_code_sign_key(
if (strlen(sreq.code_sign_key)) {
if (strcmp(sreq.code_sign_key, code_sign_key)) {
log_messages.printf(SchedMessages::NORMAL, "received old code sign key\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "received old code sign key\n");
// look for a signature file
//
@ -483,7 +484,7 @@ bool wrong_major_version(SCHEDULER_REQUEST& sreq, SCHEDULER_REPLY& reply) {
);
strcpy(reply.message_priority, "low");
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[HOST#%d] [auth %s] Wrong major version from user: wanted %d, got %d\n",
sreq.hostid, sreq.authenticator,
MAJOR_VERSION, sreq.core_client_major_version
@ -512,14 +513,14 @@ void handle_trickle_ups(SCHEDULER_REQUEST& sreq, SCHEDULER_REPLY& reply) {
retval = result.lookup(buf);
if (retval) continue;
if (reply.user.id != result.userid) {
log_messages.printf(SchedMessages::NORMAL,
log_messages.printf(SCHED_MSG_LOG::NORMAL,
"[HOST#%d] trickle up: wrong user ID %d, %d\n",
sreq.host.id, reply.user.id, result.userid
);
continue;
}
if (sreq.host.id != result.hostid) {
log_messages.printf(SchedMessages::NORMAL,
log_messages.printf(SCHED_MSG_LOG::NORMAL,
"[HOST#%d] trickle up: wrong host ID %d\n",
sreq.host.id, result.hostid
);
@ -533,7 +534,7 @@ void handle_trickle_ups(SCHEDULER_REQUEST& sreq, SCHEDULER_REPLY& reply) {
safe_strcpy(trickle.xml, td.trickle_text.c_str());
retval = trickle.insert();
if (retval) {
log_messages.printf(SchedMessages::CRITICAL,
log_messages.printf(SCHED_MSG_LOG::CRITICAL,
"[HOST#%d] trickle insert failed: %d\n",
sreq.host.id, retval
);
@ -568,7 +569,7 @@ void process_request(
retval = authenticate_user(sreq, reply);
if (retval) return;
if (reply.user.id == 0) {
log_messages.printf(SchedMessages::CRITICAL, "No user ID!\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "No user ID!\n");
}
last_rpc_time = reply.host.rpc_time;
@ -582,14 +583,14 @@ void process_request(
sprintf(reply.message, "platform '%s' not found", sreq.platform_name);
strcpy(reply.message_priority, "low");
log_messages.printf(
SchedMessages::CRITICAL, "[HOST#%d] platform '%s' not found\n",
SCHED_MSG_LOG::CRITICAL, "[HOST#%d] platform '%s' not found\n",
reply.host.id, sreq.platform_name
);
return;
}
log_messages.printf(
SchedMessages::NORMAL, "Processing request from [USER#%d] [HOST#%d] [IP %s] [RPC#%d] core client version %d.%02d\n",
SCHED_MSG_LOG::NORMAL, "Processing request from [USER#%d] [HOST#%d] [IP %s] [RPC#%d] core client version %d.%02d\n",
reply.user.id, reply.host.id,
get_remote_addr(),
sreq.rpc_seqno,
@ -608,7 +609,7 @@ void process_request(
if (diff < config.min_sendwork_interval) {
ok_to_send = false;
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"Not sending work - last RPC too recent: %f\n", diff
);
sprintf(reply.message,
@ -640,14 +641,14 @@ void handle_request(
if (sreq.parse(fin) == 0){
log_messages.printf(
SchedMessages::NORMAL, "Handling request: IP %s, auth %s, platform %s, version %d.%d\n",
SCHED_MSG_LOG::NORMAL, "Handling request: IP %s, auth %s, platform %s, version %d.%d\n",
get_remote_addr(), sreq.authenticator, sreq.platform_name,
sreq.core_client_major_version, sreq.core_client_minor_version
);
process_request(sreq, sreply, ss, code_sign_key);
} else {
log_messages.printf(
SchedMessages::NORMAL, "Incomplete request received from IP %s, auth %s, platform %s, version %d.%d\n",
SCHED_MSG_LOG::NORMAL, "Incomplete request received from IP %s, auth %s, platform %s, version %d.%d\n",
get_remote_addr(), sreq.authenticator, sreq.platform_name,
sreq.core_client_major_version, sreq.core_client_minor_version
);

View File

@ -39,8 +39,9 @@ using namespace std;
#include "sched_config.h"
#include "server_types.h"
#include "handle_request.h"
#include "main.h"
#include "sched_util.h"
#include "sched_msgs.h"
#include "main.h"
#define DEBUG_LEVEL 999
@ -93,14 +94,14 @@ int main() {
retval = config.parse_file("..");
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "Can't parse config file\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Can't parse config file\n");
exit(1);
}
sprintf(path, "%s/code_sign_public", config.key_dir);
retval = read_file_malloc(path, code_sign_key);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL,
log_messages.printf(SCHED_MSG_LOG::CRITICAL,
"Can't read code sign key file (%s)\n", path
);
exit(1);
@ -111,7 +112,7 @@ int main() {
retval = attach_shmem(config.shmem_key, &p);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL,
log_messages.printf(SCHED_MSG_LOG::CRITICAL,
"Can't attach shmem (feeder not running?)\n"
);
project_stopped = true;
@ -119,7 +120,7 @@ int main() {
ssp = (SCHED_SHMEM*)p;
retval = ssp->verify();
if (retval) {
log_messages.printf(SchedMessages::CRITICAL,
log_messages.printf(SCHED_MSG_LOG::CRITICAL,
"shmem has wrong struct sizes - recompile\n"
);
exit(1);
@ -127,18 +128,18 @@ int main() {
for (i=0; i<10; i++) {
if (ssp->ready) break;
log_messages.printf(SchedMessages::DEBUG, "waiting for ready flag\n");
log_messages.printf(SCHED_MSG_LOG::DEBUG, "waiting for ready flag\n");
sleep(1);
}
if (!ssp->ready) {
log_messages.printf(SchedMessages::CRITICAL, "feeder doesn't seem to be running\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "feeder doesn't seem to be running\n");
exit(1);
}
}
retval = boinc_db.open(config.db_name, config.db_host, config.db_user, config.db_passwd);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't open database\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't open database\n");
project_stopped = true;
} else {
found = false;
@ -146,7 +147,7 @@ int main() {
found = true;
}
if (!found) {
log_messages.printf(SchedMessages::CRITICAL, "can't find project\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't find project\n");
exit(1);
}
}
@ -172,19 +173,19 @@ int main() {
sprintf(reply_path, "%s%d_%u", REPLY_FILE_PREFIX, pid, counter);
fout = fopen(req_path, "w");
if (!fout) {
log_messages.printf(SchedMessages::CRITICAL, "can't write request file\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't write request file\n");
exit(1);
}
copy_stream(stdin, fout);
fclose(fout);
fin = fopen(req_path, "r");
if (!fin) {
log_messages.printf(SchedMessages::CRITICAL, "can't read request file\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't read request file\n");
exit(1);
}
fout = fopen(reply_path, "w");
if (!fout) {
log_messages.printf(SchedMessages::CRITICAL, "can't write reply file\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't write reply file\n");
exit(1);
}
handle_request(fin, fout, *ssp, code_sign_key);
@ -192,7 +193,7 @@ int main() {
fclose(fout);
fin = fopen(reply_path, "r");
if (!fin) {
log_messages.printf(SchedMessages::CRITICAL, "can't read reply file\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't read reply file\n");
exit(1);
}
copy_stream(fin, stdout);

View File

@ -46,6 +46,7 @@
#include "sched_config.h"
#include "parse.h"
#include "sched_util.h"
#include "sched_msgs.h"
#define LOCKFILE "make_work.out"
#define PIDFILE "make_work.pid"
@ -98,7 +99,7 @@ int count_results(char* query) {
DB_RESULT result;
int retval = result.count(n, query);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't count results\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't count results\n");
exit(1);
}
return n;
@ -109,7 +110,7 @@ int count_workunits(const char* query="") {
DB_WORKUNIT workunit;
int retval = workunit.count(n, const_cast<char*>(query));
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't count workunits\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't count workunits\n");
exit(1);
}
return n;
@ -129,20 +130,20 @@ void make_work() {
retval = config.parse_file("..");
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't read config file\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't read config file\n");
exit(1);
}
retval = boinc_db.open(config.db_name, config.db_host, config.db_user, config.db_passwd);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't open db\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't open db\n");
exit(1);
}
sprintf(buf, "where name='%s'", wu_name);
retval = wu.lookup(buf);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't find wu %s\n", wu_name);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't find wu %s\n", wu_name);
exit(1);
}
@ -151,13 +152,13 @@ void make_work() {
sprintf(keypath, "%s/upload_private", config.key_dir);
retval = read_key_file(keypath, key);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't read key\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't read key\n");
exit(1);
}
retval = read_filename(result_template_file, result_template);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't open result template\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't open result template\n");
exit(1);
}
while (1) {
@ -170,7 +171,7 @@ void make_work() {
int unsent_results = count_results(buf);
int total_wus = count_workunits();
if (max_wus && total_wus >= max_wus) {
log_messages.printf(SchedMessages::NORMAL, "Reached max_wus = %d\n", max_wus);
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Reached max_wus = %d\n", max_wus);
exit(0);
}
if (unsent_results > cushion) {
@ -194,11 +195,11 @@ void make_work() {
new_pathname, "%s/%s",config.download_dir, new_file_name
);
sprintf(command,"ln %s %s", pathname, new_pathname);
log_messages.printf(SchedMessages::DEBUG, "executing command: %s\n", command);
log_messages.printf(SCHED_MSG_LOG::DEBUG, "executing command: %s\n", command);
retval = system(command);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL, "system() error %d\n", retval
SCHED_MSG_LOG::CRITICAL, "system() error %d\n", retval
);
perror(command);
exit(1);
@ -233,13 +234,13 @@ void make_work() {
process_result_template_upload_url_only(wu.result_template, config.upload_url);
retval = wu.insert();
if (retval) {
log_messages.printf(SchedMessages::CRITICAL,
log_messages.printf(SCHED_MSG_LOG::CRITICAL,
"Failed to created WU, error %d; exiting\n", retval
);
exit(retval);
}
wu.id = boinc_db.insert_id();
log_messages.printf(SchedMessages::DEBUG, "[%s] Created new WU\n", wu.name);
log_messages.printf(SCHED_MSG_LOG::DEBUG, "[%s] Created new WU\n", wu.name);
}
}
@ -289,12 +290,12 @@ int main(int argc, char** argv) {
// // Call lock_file after fork(), because file locks are not always inherited
// if (lock_file(LOCKFILE)) {
// log_messages.printf(SchedMessages::NORMAL, "Another copy of make_work is already running\n");
// log_messages.printf(SCHED_MSG_LOG::NORMAL, "Another copy of make_work is already running\n");
// exit(1);
// }
// write_pid_file(PIDFILE);
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"Starting: min_quorum=%d target_nresults=%d max_error_results=%d max_total_results=%d max_success_results=%d\n",
min_quorum, target_nresults, max_error_results, max_total_results, max_success_results
);

View File

@ -17,12 +17,11 @@
// Contributor(s):
//
#include "sched_util.h"
#include <cstdarg>
#include "sched_msgs.h"
SchedMessages log_messages;
SCHED_MSG_LOG log_messages;
const char* SchedMessages::v_format_kind(int kind) const {
const char* SCHED_MSG_LOG::v_format_kind(int kind) const {
switch(kind) {
case CRITICAL: return "CRITICAL";
case NORMAL: return "normal ";
@ -31,6 +30,6 @@ const char* SchedMessages::v_format_kind(int kind) const {
}
}
bool SchedMessages::v_message_wanted(int kind) const {
bool SCHED_MSG_LOG::v_message_wanted(int kind) const {
return ( kind <= debug_level );
}

17
sched/sched_msgs.h Normal file
View File

@ -0,0 +1,17 @@
#include "msg_log.h"
class SCHED_MSG_LOG : public MSG_LOG {
int debug_level;
const char* v_format_kind(int kind) const;
bool v_message_wanted(int kind) const;
public:
enum Kind {
CRITICAL,
NORMAL,
DEBUG
};
SCHED_MSG_LOG(): MSG_LOG(stderr) {}
void set_debug_level(int new_level) { debug_level = new_level; }
};
extern SCHED_MSG_LOG log_messages;

View File

@ -31,6 +31,7 @@ using namespace std;
#include "sched_config.h"
#include "sched_util.h"
#include "main.h"
#include "sched_msgs.h"
#include "sched_send.h"
const int MIN_SECONDS_TO_SEND = 0;
@ -98,18 +99,18 @@ double max_allowable_disk(SCHEDULER_REQUEST& req) {
x = min(x1, min(x2, x3));
if (x < 0) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"disk_max_used_gb %f disk_max_used_pct %f disk_min_free_gb %f\n",
prefs.disk_max_used_gb, prefs.disk_max_used_pct,
prefs.disk_min_free_gb
);
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"req.total_disk_usage %f host.d_total %f host.d_free %f\n",
req.total_disk_usage, host.d_total, host.d_free
);
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"x1 %f x2 %f x3 %f x %f\n",
x1, x2, x3, x
);
@ -149,7 +150,7 @@ bool wu_is_feasible(WORKUNIT& wu, HOST& host, WORK_REQ& wreq) {
if (wu.rsc_memory_bound > m_nbytes) {
log_messages.printf(
SchedMessages::DEBUG, "[WU#%d %s] needs %f mem; [HOST#%d] has %f\n",
SCHED_MSG_LOG::DEBUG, "[WU#%d %s] needs %f mem; [HOST#%d] has %f\n",
wu.id, wu.name, wu.rsc_memory_bound, host.id, m_nbytes
);
wreq.insufficient_mem = true;
@ -161,7 +162,7 @@ bool wu_is_feasible(WORKUNIT& wu, HOST& host, WORK_REQ& wreq) {
if (host_remaining_time + wu_wallclock_time > wu.delay_bound) {
log_messages.printf(
SchedMessages::DEBUG, "[WU#%d %s] needs requires %d seconds on [HOST#%d]; delay_bound is %d\n",
SCHED_MSG_LOG::DEBUG, "[WU#%d %s] needs requires %d seconds on [HOST#%d]; delay_bound is %d\n",
wu.id, wu.name, (int)wu_wallclock_time, host.id, wu.delay_bound
);
wreq.insufficient_speed = true;
@ -178,12 +179,12 @@ int insert_after(char* buffer, char* after, char* text) {
char temp[MEDIUM_BLOB_SIZE];
if (strlen(buffer) + strlen(text) > MEDIUM_BLOB_SIZE-1) {
log_messages.printf(SchedMessages::NORMAL, "insert_after: overflow\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "insert_after: overflow\n");
return ERR_BUFFER_OVERFLOW;
}
p = strstr(buffer, after);
if (!p) {
log_messages.printf(SchedMessages::CRITICAL, "insert_after: %s not found in %s\n", after, buffer);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "insert_after: %s not found in %s\n", after, buffer);
return ERR_NULL;
}
p += strlen(after);
@ -226,14 +227,14 @@ bool find_app_version(
app = ss.lookup_app(wu.appid);
if (!app) {
log_messages.printf(
SchedMessages::CRITICAL, "Can't find APP#%d\n", wu.appid
SCHED_MSG_LOG::CRITICAL, "Can't find APP#%d\n", wu.appid
);
return false;
}
avp = ss.lookup_app_version(app->id, platform.id, app->min_version);
if (!avp) {
log_messages.printf(
SchedMessages::DEBUG,
SCHED_MSG_LOG::DEBUG,
"no app version available: APP#%d PLATFORM#%d min_version %d\n",
app->id, platform.id, app->min_version
);
@ -249,7 +250,7 @@ bool app_core_compatible(WORK_REQ& wreq, APP_VERSION& av) {
if (wreq.core_client_version < av.min_core_version) {
#if 0
log_messages.printf(
SchedMessages::DEBUG,
SCHED_MSG_LOG::DEBUG,
"Outdated core version: wanted %d, got %d\n",
av.min_core_version, wreq.core_client_version
);
@ -278,7 +279,7 @@ int add_wu_to_reply(
reply.insert_app_unique(*app);
reply.insert_app_version_unique(*avp);
log_messages.printf(
SchedMessages::DEBUG,
SCHED_MSG_LOG::DEBUG,
"[HOST#%d] Sending app_version %s %s %d\n",
reply.host.id, app->name, platform.name, avp->version_num
);
@ -289,7 +290,7 @@ int add_wu_to_reply(
wu2 = wu; // make copy since we're going to modify its XML field
retval = insert_wu_tags(wu2, *app);
if (retval) {
log_messages.printf(SchedMessages::NORMAL, "insert_wu_tags failed\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "insert_wu_tags failed\n");
return retval;
}
reply.insert_workunit_unique(wu2);
@ -416,7 +417,7 @@ static void scan_work_array(
wu = wu_result.workunit;
if (!wu_is_feasible(wu, reply.host, wreq)) {
log_messages.printf(
SchedMessages::DEBUG, "[HOST#%d] [WU#%d %s] WU is infeasible\n",
SCHED_MSG_LOG::DEBUG, "[HOST#%d] [WU#%d %s] WU is infeasible\n",
reply.host.id, wu.id, wu.name
);
wu_result.infeasible_count++;
@ -460,7 +461,7 @@ static void scan_work_array(
retval = result.count(n, buf);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"send_work: can't get result count (%d)\n", retval
);
goto dont_send;
@ -468,7 +469,7 @@ static void scan_work_array(
if (n>0) {
#if 0
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"send_work: user %d already has %d result(s) for WU %d\n",
reply.user.id, n, wu_result.workunit.id
);
@ -490,14 +491,14 @@ static void scan_work_array(
//
retval = result.lookup_id(result.id);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL,
log_messages.printf(SCHED_MSG_LOG::CRITICAL,
"[RESULT#%d] result.lookup_id() failed %d\n",
wu_result.result.id, retval
);
goto done;
}
if (result.server_state != RESULT_SERVER_STATE_UNSENT) {
log_messages.printf(SchedMessages::DEBUG,
log_messages.printf(SCHED_MSG_LOG::DEBUG,
"[RESULT#%d] expected to be unsent; instead, state is %d\n",
wu_result.result.id, result.server_state
);
@ -523,7 +524,7 @@ static void scan_work_array(
wu_seconds_filled = estimate_cpu_duration(wu, reply.host);
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[HOST#%d] Sending [RESULT#%d %s] (fills %d seconds)\n",
reply.host.id, result.id, result.name, int(wu_seconds_filled)
);
@ -531,7 +532,7 @@ static void scan_work_array(
retval = update_wu_transition_time(wu, result.report_deadline);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"send_work: can't update WU transition time\n"
);
}
@ -542,13 +543,13 @@ static void scan_work_array(
retval = insert_name_tags(result, wu);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL, "send_work: can't insert name tags\n"
SCHED_MSG_LOG::CRITICAL, "send_work: can't insert name tags\n"
);
}
retval = insert_deadline_tag(result);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"send_work: can't insert deadline tag\n"
);
}
@ -586,7 +587,7 @@ int send_work(
wreq.nresults = 0;
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[HOST#%d] got request for %d seconds of work; available disk %f GB\n",
reply.host.id, sreq.work_req_seconds, wreq.disk_available/1e9
);
@ -610,7 +611,7 @@ int send_work(
scan_work_array(wreq, sreq, reply, platform, ss);
log_messages.printf(
SchedMessages::NORMAL, "[HOST#%d] Sent %d results\n",
SCHED_MSG_LOG::NORMAL, "[HOST#%d] Sent %d results\n",
reply.host.id, wreq.nresults
);
@ -641,7 +642,7 @@ int send_work(
" (your core client is out of date - please upgrade)"
);
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"Not sending work because core client is outdated\n"
);
}
@ -649,7 +650,7 @@ int send_work(
reply.request_delay = 10;
log_messages.printf(
SchedMessages::NORMAL, "[HOST#%d] %s\n",
SCHED_MSG_LOG::NORMAL, "[HOST#%d] %s\n",
reply.host.id, reply.message
);
}

View File

@ -19,17 +19,12 @@
using namespace std;
#include <strings.h>
#include <stdlib.h>
#include <csignal>
#include <cstdarg>
#include <unistd.h>
#include <math.h>
#include "parse.h"
#include "util.h"
#include "main.h"
#include "sched_msgs.h"
#include "sched_util.h"
#include "server_types.h"
const char* STOP_TRIGGER_FILENAME = "../stop_servers";
// NOTE: this be the same name as used by the "start" script
@ -39,7 +34,7 @@ const int STOP_SIGNAL = SIGHUP;
void write_pid_file(const char* filename) {
FILE* fpid = fopen(filename, "w");
if (!fpid) {
log_messages.printf(SchedMessages::NORMAL, "Couldn't write pid\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Couldn't write pid\n");
return;
}
fprintf(fpid, "%d\n", (int)getpid());
@ -60,12 +55,12 @@ void install_stop_signal_handler() {
void check_stop_trigger() {
if (caught_stop_signal) {
log_messages.printf(SchedMessages::CRITICAL, "Quitting due to SIGINT\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Quitting due to SIGINT\n");
exit(0);
}
FILE* f = fopen(STOP_TRIGGER_FILENAME, "r");
if (f) {
log_messages.printf(SchedMessages::NORMAL, "Quitting due to stop trigger\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Quitting due to stop trigger\n");
exit(0);
}
}

View File

@ -20,8 +20,6 @@
#ifndef SCHED_UTIL_H
#define SCHED_UTIL_H
#include "messages.h"
// "average credit" uses an exponential decay so that recent
// activity is weighted more heavily.
// CREDIT_HALF_LIFE is the "half-life" period:
@ -37,21 +35,4 @@ extern bool is_stopfile_present();
extern void install_stop_signal_handler();
extern bool caught_stop_signal;
class SchedMessages : public Messages {
int debug_level;
const char* v_format_kind(int kind) const;
bool v_message_wanted(int kind) const;
public:
enum Kind {
CRITICAL,
NORMAL,
DEBUG
};
SchedMessages(): Messages(stderr) {}
void set_debug_level(int new_level) { debug_level = new_level; }
};
extern SchedMessages log_messages;
#endif

View File

@ -29,8 +29,9 @@ using namespace std;
#include "error_numbers.h"
#include "util.h"
#include "main.h"
#include "server_types.h"
#include "sched_util.h"
#include "sched_msgs.h"
#include "server_types.h"
int CLIENT_APP_VERSION::parse(FILE* f) {
char buf[256];
@ -128,7 +129,7 @@ int SCHEDULER_REQUEST::parse(FILE* fin) {
trickles.push_back(td);
}
} else {
log_messages.printf(SchedMessages::NORMAL, "SCHEDULER_REQUEST::parse(): unrecognized: %s\n", buf);
log_messages.printf(SCHED_MSG_LOG::NORMAL, "SCHEDULER_REQUEST::parse(): unrecognized: %s\n", buf);
}
}
return ERR_XML_PARSE;
@ -397,7 +398,7 @@ int RESULT::parse_from_client(FILE* fin) {
continue;
} else {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"RESULT::parse_from_client(): unrecognized: %s\n",
buf
);
@ -438,7 +439,7 @@ int HOST::parse(FILE* fin) {
else if (parse_double(buf, "<n_bwup>", n_bwup)) continue;
else if (parse_double(buf, "<n_bwdown>", n_bwdown)) continue;
else {
log_messages.printf(SchedMessages::NORMAL, "HOST::parse(): unrecognized: %s\n", buf);
log_messages.printf(SCHED_MSG_LOG::NORMAL, "HOST::parse(): unrecognized: %s\n", buf);
}
}
return ERR_XML_PARSE;
@ -455,7 +456,7 @@ int HOST::parse_time_stats(FILE* fin) {
else if (parse_double(buf, "<active_frac>", active_frac)) continue;
else {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"HOST::parse_time_stats(): unrecognized: %s\n",
buf
);
@ -473,7 +474,7 @@ int HOST::parse_net_stats(FILE* fin) {
else if (parse_double(buf, "<bwdown>", n_bwdown)) continue;
else {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"HOST::parse_net_stats(): unrecognized: %s\n",
buf
);

View File

@ -31,23 +31,23 @@ int main() {
char* p;
log_messages.set_debug_level(3);
log_messages.printf(SchedMessages::NORMAL, "Starting servers.\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Starting servers.\n");
++log_messages;
retval = config.parse_file();
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "Can't read config\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Can't read config\n");
exit(1);
}
for (i=0; i<20; i++) {
p = config.start_commands[i];
if (!p) break;
log_messages.printf(SchedMessages::NORMAL, "Executing: %s\n", p);
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Executing: %s\n", p);
system(p);
}
--log_messages;
log_messages.printf(SchedMessages::NORMAL, "Done.\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Done.\n");
return 0;
}

View File

@ -39,6 +39,7 @@ using namespace std;
#include "backend_lib.h"
#include "sched_config.h"
#include "sched_util.h"
#include "sched_msgs.h"
#define LOCKFILE "transitioner.out"
#define PIDFILE "transitioner.pid"
@ -67,7 +68,7 @@ void handle_wu(DB_WORKUNIT& wu) {
}
}
ScopeMessages scope_messages(log_messages, SchedMessages::NORMAL);
SCOPE_MSG_LOG scope_messages(log_messages, SCHED_MSG_LOG::NORMAL);
// count up the number of results in various states,
// and check for timed-out results
@ -89,7 +90,7 @@ void handle_wu(DB_WORKUNIT& wu) {
case RESULT_SERVER_STATE_IN_PROGRESS:
if (result.report_deadline < now) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[WU#%d %s] [RESULT#%d %s] result timed out (%d < %d) server_state:IN_PROGRESS=>OVER; outcome:NO_REPLY\n",
wu.id, wu.name, result.id, result.name,
result.report_deadline, (int)now
@ -99,7 +100,7 @@ void handle_wu(DB_WORKUNIT& wu) {
retval = result.update();
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[WU#%d %s] [RESULT#%d %s] result.update() == %d\n",
wu.id, wu.name, result.id, result.name, retval
);
@ -114,7 +115,7 @@ void handle_wu(DB_WORKUNIT& wu) {
switch (result.outcome) {
case RESULT_OUTCOME_COULDNT_SEND:
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[WU#%d %s] [RESULT#%d %s] result couldn't be sent\n",
wu.id, wu.name, result.id, result.name
);
@ -135,7 +136,7 @@ void handle_wu(DB_WORKUNIT& wu) {
}
log_messages.printf(
SchedMessages::DEBUG,
SCHED_MSG_LOG::DEBUG,
"[WU#%d %s] %d results: unsent %d, in_progress %d, over %d (success %d, error %d, couldnt_send %d)\n",
wu.id, wu.name,
(int)results.size(),
@ -148,7 +149,7 @@ void handle_wu(DB_WORKUNIT& wu) {
if (nsuccess >= wu.min_quorum && have_result_to_validate) {
wu.need_validate = true;
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[WU#%d %s] need_validate:=>true [nsuccess=%d >= min_quorum=%d]\n",
wu.id, wu.name, nsuccess, wu.min_quorum
);
@ -163,7 +164,7 @@ void handle_wu(DB_WORKUNIT& wu) {
if (nerrors > wu.max_error_results) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[WU#%d %s] WU has too many errors (%d errors for %d results)\n",
wu.id, wu.name, nerrors, (int)results.size()
);
@ -171,7 +172,7 @@ void handle_wu(DB_WORKUNIT& wu) {
}
if ((int)results.size() > wu.max_total_results) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[WU#%d %s] WU has too many total results (%d)\n",
wu.id, wu.name, (int)results.size()
);
@ -187,7 +188,7 @@ void handle_wu(DB_WORKUNIT& wu) {
bool update_result = false;
if (result.server_state == RESULT_SERVER_STATE_UNSENT) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[WU#%d %s] [RESULT#%d %s] server_state:UNSENT=>OVER; outcome:=>DIDNT_NEED\n",
wu.id, wu.name, result.id, result.name
);
@ -203,7 +204,7 @@ void handle_wu(DB_WORKUNIT& wu) {
retval = result.update();
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[WU#%d %s] [RESULT#%d %s] result.update() == %d\n",
wu.id, wu.name, result.id, result.name, retval
);
@ -213,7 +214,7 @@ void handle_wu(DB_WORKUNIT& wu) {
if (wu.assimilate_state == ASSIMILATE_INIT) {
wu.assimilate_state = ASSIMILATE_READY;
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[WU#%d %s] error_mask:%d assimilate_state:INIT=>READY\n",
wu.id, wu.name, wu.error_mask
);
@ -224,7 +225,7 @@ void handle_wu(DB_WORKUNIT& wu) {
int n = wu.target_nresults - nunsent - ninprogress - nsuccess;
if (n > 0) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[WU#%d %s] Generating %d more results (%d target - %d unsent - %d in progress - %d success)\n",
wu.id, wu.name, n, wu.target_nresults, nunsent, ninprogress, nsuccess
);
@ -234,7 +235,7 @@ void handle_wu(DB_WORKUNIT& wu) {
retval = create_result(wu, result_template, suffix, key, "");
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[WU#%d %s] create_result() %d\n",
wu.id, wu.name, retval
);
@ -258,7 +259,7 @@ void handle_wu(DB_WORKUNIT& wu) {
}
if (wu.canonical_resultid && p_canonical_result == 0) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[WU#%d %s] can't find canonical result\n",
wu.id, wu.name
);
@ -272,7 +273,7 @@ void handle_wu(DB_WORKUNIT& wu) {
if (all_over && wu.file_delete_state == FILE_DELETE_INIT) {
wu.file_delete_state = FILE_DELETE_READY;
log_messages.printf(
SchedMessages::DEBUG,
SCHED_MSG_LOG::DEBUG,
"[WU#%d %s] ASSIMILATE_DONE: file_delete_state:=>READY\n",
wu.id, wu.name
);
@ -300,7 +301,7 @@ void handle_wu(DB_WORKUNIT& wu) {
}
if (do_delete && result.file_delete_state == FILE_DELETE_INIT) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[WU#%d %s] [RESULT#%d %s] file_delete_state:=>READY\n",
wu.id, wu.name, result.id, result.name
);
@ -308,7 +309,7 @@ void handle_wu(DB_WORKUNIT& wu) {
retval = result.update();
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[WU#%d %s] [RESULT#%d %s] result.update() == %d\n",
wu.id, wu.name, result.id, result.name, retval
);
@ -330,7 +331,7 @@ void handle_wu(DB_WORKUNIT& wu) {
retval = wu.update();
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[WU#%d %s] workunit.update() == %d\n", wu.id, wu.name, retval
);
}
@ -358,7 +359,7 @@ void main_loop(bool one_pass) {
retval = boinc_db.open(config.db_name, config.db_host, config.db_user, config.db_passwd);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "boinc_db.open: %d\n", retval);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "boinc_db.open: %d\n", retval);
exit(1);
}
@ -390,14 +391,14 @@ int main(int argc, char** argv) {
retval = config.parse_file("..");
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't read config file\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't read config file\n");
exit(1);
}
sprintf(path, "%s/upload_private", config.key_dir);
retval = read_key_file(path, key);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't read key\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't read key\n");
exit(1);
}
@ -409,11 +410,11 @@ int main(int argc, char** argv) {
// // Call lock_file after fork(), because file locks are not always inherited
// if (lock_file(LOCKFILE)) {
// log_messages.printf(SchedMessages::NORMAL, "Another copy of transitioner is already running\n");
// log_messages.printf(SCHED_MSG_LOG::NORMAL, "Another copy of transitioner is already running\n");
// exit(1);
// }
// write_pid_file(PIDFILE);
log_messages.printf(SchedMessages::NORMAL, "Starting\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Starting\n");
install_stop_signal_handler();

View File

@ -39,6 +39,7 @@ using namespace std;
#include "util.h"
#include "sched_config.h"
#include "sched_util.h"
#include "sched_msgs.h"
SCHED_CONFIG config;
char app_name[256];
@ -73,14 +74,14 @@ int main_loop(bool one_pass) {
retval = boinc_db.open(config.db_name, config.db_host, config.db_user, config.db_passwd);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "boinc_db.open failed: %d\n", retval);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "boinc_db.open failed: %d\n", retval);
exit(1);
}
sprintf(buf, "where name='%s'", app_name);
retval = app.lookup(buf);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't find app %s\n", app.name);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't find app %s\n", app.name);
exit(1);
}
@ -112,13 +113,13 @@ int main(int argc, char** argv) {
} else if (!strcmp(argv[i], "-d")) {
log_messages.set_debug_level(atoi(argv[++i]));
} else {
log_messages.printf(SchedMessages::CRITICAL, "unrecognized arg: %s\n", argv[i]);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "unrecognized arg: %s\n", argv[i]);
}
}
retval = config.parse_file("..");
if (retval) {
log_messages.printf(SchedMessages::CRITICAL,
log_messages.printf(SCHED_MSG_LOG::CRITICAL,
"Can't parse config file: %d\n", retval
);
exit(1);
@ -130,7 +131,7 @@ int main(int argc, char** argv) {
}
}
log_messages.printf(SchedMessages::NORMAL, "Starting trickle handler\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Starting trickle handler\n");
install_stop_signal_handler();

View File

@ -36,6 +36,7 @@
#include "util.h"
#include "sched_config.h"
#include "sched_util.h"
#include "sched_msgs.h"
#define LOCKFILE "update_stats.out"
#define PIDFILE "update_stats.pid"
@ -53,7 +54,7 @@ int update_users() {
update_average(0, 0, CREDIT_HALF_LIFE, user.expavg_credit, user.expavg_time);
retval = user.update();
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "Can't update user %d\n", user.id);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Can't update user %d\n", user.id);
return retval;
}
}
@ -70,7 +71,7 @@ int update_hosts() {
update_average(0, 0, CREDIT_HALF_LIFE, host.expavg_credit, host.expavg_time);
retval = host.update();
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "Can't update host %d\n", host.id);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Can't update host %d\n", host.id);
return retval;
}
}
@ -107,7 +108,7 @@ int update_teams() {
retval = get_team_totals(team);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"update_teams: get_team_credit([TEAM#%d]) failed: %d\n",
team.id,
retval
@ -119,7 +120,7 @@ int update_teams() {
}
retval = team.update();
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "Can't update team %d\n", team.id);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Can't update team %d\n", team.id);
return retval;
}
}
@ -148,7 +149,7 @@ int main(int argc, char** argv) {
} else if (!strcmp(argv[i], "-asynch")) {
asynch = true;
} else {
log_messages.printf(SchedMessages::CRITICAL, "Unrecognized arg: %s\n", argv[i]);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Unrecognized arg: %s\n", argv[i]);
}
}
@ -160,28 +161,28 @@ int main(int argc, char** argv) {
// // Call lock_file after fork(), because file locks are not always inherited
// if (lock_file(LOCKFILE)) {
// log_messages.printf(SchedMessages::NORMAL, "Another copy of update_stats is already running\n");
// log_messages.printf(SCHED_MSG_LOG::NORMAL, "Another copy of update_stats is already running\n");
// exit(1);
// }
// write_pid_file(PIDFILE);
log_messages.printf(SchedMessages::NORMAL, "Starting\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Starting\n");
retval = config.parse_file("..");
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "Can't parse config file\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Can't parse config file\n");
exit(1);
}
retval = boinc_db.open(config.db_name, config.db_host, config.db_user, config.db_passwd);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "Can't open DB\n");
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "Can't open DB\n");
exit(1);
}
if (do_update_users) {
retval = update_users();
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "update_users failed: %d\n", retval);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "update_users failed: %d\n", retval);
exit(1);
}
}
@ -189,7 +190,7 @@ int main(int argc, char** argv) {
if (do_update_hosts) {
retval = update_hosts();
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "update_hosts failed: %d\n", retval);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "update_hosts failed: %d\n", retval);
exit(1);
}
}
@ -197,7 +198,7 @@ int main(int argc, char** argv) {
if (do_update_teams) {
retval = update_teams();
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "update_teams failed: %d\n", retval);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "update_teams failed: %d\n", retval);
exit(1);
}
}

View File

@ -49,6 +49,7 @@ using namespace std;
#include "util.h"
#include "sched_config.h"
#include "sched_util.h"
#include "sched_msgs.h"
#define LOCKFILE "validate.out"
#define PIDFILE "validate.pid"
@ -105,7 +106,7 @@ void handle_wu(DB_WORKUNIT& wu) {
if (wu.canonical_resultid) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[WU#%d %s] handle_wu(): Already has canonical result\n",
wu.id, wu.name
);
@ -117,7 +118,7 @@ void handle_wu(DB_WORKUNIT& wu) {
retval = canonical_result.lookup_id(wu.canonical_resultid);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[WU#%d %s] Can't read canonical result; marking as validated: %d\n",
wu.id, wu.name, retval
);
@ -139,7 +140,7 @@ void handle_wu(DB_WORKUNIT& wu) {
//
if (canonical_result.file_delete_state == FILE_DELETE_DONE) {
log_messages.printf(
SchedMessages::DEBUG,
SCHED_MSG_LOG::DEBUG,
"[WU#%d]: Canonical result (%d) has been deleted\n",
wu.id, canonical_result.id
);
@ -150,7 +151,7 @@ void handle_wu(DB_WORKUNIT& wu) {
}
if (retval) {
log_messages.printf(
SchedMessages::DEBUG,
SCHED_MSG_LOG::DEBUG,
"[RESULT#%d %s]: pair_check() failed for result: %d\n",
result.id, result.name, retval
);
@ -160,14 +161,14 @@ void handle_wu(DB_WORKUNIT& wu) {
result.validate_state = VALIDATE_STATE_VALID;
result.granted_credit = wu.canonical_credit;
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[RESULT#%d %s] pair_check() matched: setting result to valid; credit %f\n",
result.id, result.name, result.granted_credit
);
} else {
result.validate_state = VALIDATE_STATE_INVALID;
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[RESULT#%d %s] pair_check() didn't match: setting result to invalid\n",
result.id, result.name
);
@ -176,7 +177,7 @@ void handle_wu(DB_WORKUNIT& wu) {
retval = result.update();
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[RESULT#%d %s] Can't update result: %d\n",
result.id, result.name, retval
);
@ -185,7 +186,7 @@ void handle_wu(DB_WORKUNIT& wu) {
retval = grant_credit(result, result.granted_credit);
if (retval) {
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[RESULT#%d %s] Can't grant credit: %d\n",
result.id, result.name, retval
);
@ -199,7 +200,7 @@ void handle_wu(DB_WORKUNIT& wu) {
// Try to get one
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[WU#%d %s] handle_wu(): No canonical result yet\n", wu.id, wu.name
);
++log_messages;
@ -219,19 +220,19 @@ void handle_wu(DB_WORKUNIT& wu) {
results.push_back(result);
}
log_messages.printf(
SchedMessages::DEBUG, "[WU#%d %s] Found %d successful results\n",
SCHED_MSG_LOG::DEBUG, "[WU#%d %s] Found %d successful results\n",
wu.id, wu.name, (int)results.size()
);
if (results.size() >= (unsigned int)wu.min_quorum) {
log_messages.printf(
SchedMessages::DEBUG,
SCHED_MSG_LOG::DEBUG,
"[WU#%d %s] Enough for quorum, checking set.\n", wu.id, wu.name
);
retval = check_set(results, canonicalid, credit);
if (!retval && canonicalid) {
need_transition = true;
log_messages.printf(
SchedMessages::DEBUG,
SCHED_MSG_LOG::DEBUG,
"[WU#%d %s] Found a canonical result: id=%d\n",
wu.id, wu.name, canonicalid
);
@ -249,14 +250,14 @@ void handle_wu(DB_WORKUNIT& wu) {
retval = grant_credit(result, credit);
if (retval) {
log_messages.printf(
SchedMessages::DEBUG,
SCHED_MSG_LOG::DEBUG,
"[RESULT#%d %s] grant_credit() failed: %d\n",
result.id, result.name, retval
);
}
result.granted_credit = credit;
log_messages.printf(
SchedMessages::NORMAL,
SCHED_MSG_LOG::NORMAL,
"[RESULT#%d %s] Granted %f credit to valid result [HOST#%d]\n",
result.id, result.name, result.granted_credit, result.hostid
);
@ -266,7 +267,7 @@ void handle_wu(DB_WORKUNIT& wu) {
retval = result.update();
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[RESULT#%d %s] result.update() failed: %d\n",
result.id, result.name, retval
);
@ -284,7 +285,7 @@ void handle_wu(DB_WORKUNIT& wu) {
retval = result.update();
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[RESULT#%d %s] result.update() failed: %d\n",
result.id, result.name, retval
);
@ -315,7 +316,7 @@ mark_validated:
retval = wu.update();
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[WU#%d %s] wu.update() failed: %d\n", wu.id, wu.name, retval
);
}
@ -345,14 +346,14 @@ int main_loop(bool one_pass) {
retval = boinc_db.open(config.db_name, config.db_host, config.db_user, config.db_passwd);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "boinc_db.open failed: %d\n", retval);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "boinc_db.open failed: %d\n", retval);
exit(1);
}
sprintf(buf, "where name='%s'", app_name);
retval = app.lookup(buf);
if (retval) {
log_messages.printf(SchedMessages::CRITICAL, "can't find app %s\n", app.name);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "can't find app %s\n", app.name);
exit(1);
}
@ -384,13 +385,13 @@ int main(int argc, char** argv) {
} else if (!strcmp(argv[i], "-d")) {
log_messages.set_debug_level(atoi(argv[++i]));
} else {
log_messages.printf(SchedMessages::CRITICAL, "unrecognized arg: %s\n", argv[i]);
log_messages.printf(SCHED_MSG_LOG::CRITICAL, "unrecognized arg: %s\n", argv[i]);
}
}
retval = config.parse_file("..");
if (retval) {
log_messages.printf(SchedMessages::CRITICAL,
log_messages.printf(SCHED_MSG_LOG::CRITICAL,
"Can't parse config file: %d\n", retval
);
exit(1);
@ -404,11 +405,11 @@ int main(int argc, char** argv) {
// // Call lock_file after fork(), because file locks are not always inherited
// if (lock_file(LOCKFILE)) {
// log_messages.printf(SchedMessages::NORMAL, "Another copy of validate is already running\n");
// log_messages.printf(SCHED_MSG_LOG::NORMAL, "Another copy of validate is already running\n");
// exit(1);
// }
// write_pid_file(PIDFILE);
log_messages.printf(SchedMessages::NORMAL, "Starting validator\n");
log_messages.printf(SCHED_MSG_LOG::NORMAL, "Starting validator\n");
install_stop_signal_handler();

View File

@ -19,6 +19,7 @@
#include "util.h"
#include "sched_util.h"
#include "sched_msgs.h"
#include "validate_util.h"
// TODO: use md5 hash
@ -32,7 +33,7 @@ int init_result_read_file(RESULT const& result, void*& data) {
retval = get_output_file_path(result, path);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[RESULT#%d %s] check_set: can't get output filename\n",
result.id, result.name
);
@ -45,7 +46,7 @@ int init_result_read_file(RESULT const& result, void*& data) {
retval = read_file_string(path.c_str(), *s);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[RESULT#%d %s] Couldn't open %s\n",
result.id, result.name, path.c_str()
);

View File

@ -24,10 +24,12 @@
#include <cassert>
#include "sched_util.h"
#include "sched_config.h"
#include "error_numbers.h"
#include "parse.h"
#include "sched_util.h"
#include "sched_config.h"
#include "sched_msgs.h"
#include "validate_util.h"
extern SCHED_CONFIG config;
@ -133,7 +135,7 @@ int generic_check_set_majority(
for (i = 0; i != n; ++i) {
if (init_result_f(results[i], data[i])) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"check_set_majority: init_result([RESULT#%d %s]) failed\n",
results[i].id, results[i].name);
goto cleanup;
@ -152,7 +154,7 @@ int generic_check_set_majority(
matches[j] = true;
} else if (check_pair_with_data_f(results[i], data[i], results[j], data[j], match)) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"check_set_majority: check_pair_with_data([RESULT#%d %s], [RESULT#%d %s]) failed\n",
results[i].id, results[i].name, results[j].id, results[j].name);
} else if (match) {
@ -192,7 +194,7 @@ int generic_check_pair(
retval = init_result_f(r1, data1);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[RESULT#%d %s] [RESULT#%d %s] Couldn't initialize result 1\n",
r1.id, r1.name, r2.id, r2.name
);
@ -202,7 +204,7 @@ int generic_check_pair(
retval = init_result_f(r2, data2);
if (retval) {
log_messages.printf(
SchedMessages::CRITICAL,
SCHED_MSG_LOG::CRITICAL,
"[RESULT#%d %s] [RESULT#%d %s] Couldn't initialize result 2\n",
r1.id, r1.name, r2.id, r2.name
);