https://issues.shibboleth.net/jira/browse/SSPCPP-407
authorScott Cantor <cantor.2@osu.edu>
Thu, 1 Mar 2012 02:52:18 +0000 (02:52 +0000)
committerScott Cantor <cantor.2@osu.edu>
Thu, 1 Mar 2012 02:52:18 +0000 (02:52 +0000)
shibd/shibd_win32.cpp

index ecf1f8b..3677739 100644 (file)
@@ -80,7 +80,7 @@ BOOL WINAPI BreakHandler(DWORD dwCtrlType)
 }
 
 
-int real_main(int);  // The revised two-phase main() in shar.cpp
+int real_main(int);  // The revised two-phase main() in shibd.cpp
 
 int main(int argc, char *argv[])
 {
@@ -97,6 +97,16 @@ int main(int argc, char *argv[])
             if (argc > ++i)
                 lpszRemove = argv[i++];
         }
+        else if (_stricmp("stdout", argv[i]+1) == 0)
+        {
+            if (argc > ++i)
+                freopen(argv[i++], "a+", stdout);
+        }
+        else if (_stricmp("stderr", argv[i]+1) == 0)
+        {
+            if (argc > ++i)
+                freopen(argv[i++], "a+", stderr);
+        }
         else if (_stricmp( "console", argv[i]+1) == 0)
         {
             i++;
@@ -161,6 +171,8 @@ int main(int argc, char *argv[])
         printf("%s -remove <name>    to remove the named service\n", argv[0]);
         printf("%s -console          to run as a console app for debugging\n", argv[0]);
         printf("%s -check            to run as a console app and check configuration\n", argv[0]);
+        printf("\t-stdout <path> to redirect stdout stream\n");
+        printf("\t-stderr <path> to redirect stderr stream\n");
         printf("\t-prefix <dir> to specify the installation directory\n");
         printf("\t-config <file> to specify the config file to use\n");
         printf("\t-catalogs <catalog1:catalog2> to specify schema catalogs\n");