mirror of https://github.com/BOINC/boinc.git
*** empty log message ***
svn path=/trunk/boinc/; revision=3232
This commit is contained in:
parent
55094fd41e
commit
dd51f9ea18
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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" \
|
||||
|
|
11
client/app.C
11
client/app.C
|
@ -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()) {
|
||||
|
|
|
@ -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);
|
||||
}
|
|
@ -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)));
|
||||
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
#endif
|
||||
|
||||
#include "error_numbers.h"
|
||||
#include "message.h"
|
||||
#include "client_msgs.h"
|
||||
|
||||
#include "cpu_benchmark.h"
|
||||
|
||||
|
|
|
@ -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_"));
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -28,6 +28,7 @@
|
|||
#endif
|
||||
|
||||
#include "util.h"
|
||||
#include "client_msgs.h"
|
||||
#include "client_state.h"
|
||||
|
||||
static void print_options(char* prog) {
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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: ");
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
|
||||
#include "util.h"
|
||||
#include "parse.h"
|
||||
#include "message.h"
|
||||
#include "client_msgs.h"
|
||||
#include "error_numbers.h"
|
||||
|
||||
#include "hostinfo.h"
|
||||
|
|
|
@ -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];
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
#include <stdarg.h>
|
||||
#endif
|
||||
|
||||
#include "message.h"
|
||||
//#include "client_msgs.h"
|
||||
|
||||
vector<MESSAGE_DESC> message_descs;
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
#include "util.h"
|
||||
#include "error_numbers.h"
|
||||
#include "message.h"
|
||||
#include "client_msgs.h"
|
||||
|
||||
#include "net_stats.h"
|
||||
|
||||
|
|
|
@ -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
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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>.
|
||||
";
|
||||
|
|
|
@ -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;
|
|
@ -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)));
|
|
@ -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 \
|
||||
|
|
|
@ -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" \
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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, "
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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");
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
);
|
||||
|
|
27
sched/main.C
27
sched/main.C
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
);
|
||||
|
|
|
@ -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 );
|
||||
}
|
|
@ -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;
|
|
@ -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
|
||||
);
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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()
|
||||
);
|
||||
|
|
|
@ -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
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue