Switch to syslog for logging messages.
authorJeremy Tan <[email protected]>
Sun, 15 Sep 2013 13:47:32 +0000 (21:47 +0800)
committerJeremy Tan <[email protected]>
Sun, 15 Sep 2013 13:47:32 +0000 (21:47 +0800)
Updated nginx and rsyslog config files are provided to
allow access to the log file from the web server, under
the location /api/log.

This WILL break nginx if you relied on symlinks to the
config file.

12 files changed:
nginx-configs/README [deleted file]
nginx-configs/fastcgi_params [deleted file]
nginx-configs/mime.types [deleted file]
nginx-configs/sites-enabled/mctxconfig [deleted file]
server-configs/README.txt [new file with mode: 0644]
server-configs/nginx/README [new file with mode: 0644]
server-configs/nginx/fastcgi_params [new file with mode: 0644]
server-configs/nginx/mime.types [new file with mode: 0644]
server-configs/nginx/sites-enabled/mctxconfig [new file with mode: 0644]
server-configs/rsyslog.d/30-mctxserv.conf [new file with mode: 0644]
server/log.c
server/main.c

diff --git a/nginx-configs/README b/nginx-configs/README
deleted file mode 100644 (file)
index 99499a5..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-This folder represents the files that should be placed under:
-/etc/nginx
-
-To install:
-* Delete all files under /etc/nginx/sites-enabled
-* Either:
-  * Copy 'mctxconfig' (under sites-enabled) to /etc/nginx/sites-available/
-    and create a symlink to that file under /etc/nginx/sites-enabled/
-  * Create a symlink directly from 'mctxconfig' to 
-    /etc/etc/nginx/sites-enabled/
-* Replace /etc/nginx/fastcgi_params and /etc/nginx/mime.types with the
-  provided files (either by copying or symlinking)
-
-Note:
-To get the login functionality working, you need to place a .htpasswd file
-under /usr/share/nginx/access (create folder if it doesn't exist). To generate
-the htpasswd file, install the apache2-utils package and use the 'htpasswd'
-executable.
-
-
-P.S: (I always forget these)
-Set file permissions to: 644
-Set folder permissions to: 755
\ No newline at end of file
diff --git a/nginx-configs/fastcgi_params b/nginx-configs/fastcgi_params
deleted file mode 100644 (file)
index 51aa692..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-fastcgi_param  QUERY_STRING            $query_string;
-fastcgi_param  REQUEST_METHOD          $request_method;
-fastcgi_param  CONTENT_TYPE            $content_type;
-fastcgi_param  CONTENT_LENGTH          $content_length;
-
-fastcgi_param  SCRIPT_FILENAME         $request_filename;
-fastcgi_param  SCRIPT_NAME             $fastcgi_script_name;
-fastcgi_param  REQUEST_URI             $request_uri;
-fastcgi_param  DOCUMENT_URI            $document_uri;
-fastcgi_param  DOCUMENT_ROOT           $document_root;
-fastcgi_param  SERVER_PROTOCOL         $server_protocol;
-
-fastcgi_param  GATEWAY_INTERFACE       CGI/1.1;
-fastcgi_param  SERVER_SOFTWARE         nginx/$nginx_version;
-fastcgi_param  SERVER_HOSTNAME         mctxsoft;
-
-fastcgi_param  REMOTE_ADDR             $remote_addr;
-fastcgi_param  REMOTE_PORT             $remote_port;
-fastcgi_param  REMOTE_USER             $remote_user;
-fastcgi_param  SERVER_ADDR             $server_addr;
-fastcgi_param  SERVER_PORT             $server_port;
-fastcgi_param  SERVER_NAME             $server_name;
-
-fastcgi_param  HTTPS                   $https;
-
-# PHP only, required if PHP was built with --enable-force-cgi-redirect
-fastcgi_param  REDIRECT_STATUS         200;
diff --git a/nginx-configs/mime.types b/nginx-configs/mime.types
deleted file mode 100644 (file)
index 9d05612..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-types {
-       text/html                               html htm shtml;
-       text/css                                css;
-       text/xml                                xml rss;
-       image/gif                               gif;
-       image/jpeg                              jpeg jpg;
-       application/x-javascript                js;
-       application/atom+xml                    atom;
-
-       text/mathml                             mml;
-       text/plain                              log;
-       text/plain                              txt;
-       text/vnd.sun.j2me.app-descriptor        jad;
-       text/vnd.wap.wml                        wml;
-       text/x-component                        htc;
-
-       image/png                               png;
-       image/tiff                              tif tiff;
-       image/vnd.wap.wbmp                      wbmp;
-       image/x-icon                            ico;
-       image/x-jng                             jng;
-       image/x-ms-bmp                          bmp;
-       image/svg+xml                           svg svgz;
-
-       application/java-archive                jar war ear;
-       application/json                        json;
-       application/mac-binhex40                hqx;
-       application/msword                      doc;
-       application/pdf                         pdf;
-       application/postscript                  ps eps ai;
-       application/rtf                         rtf;
-       application/vnd.ms-excel                xls;
-       application/vnd.ms-powerpoint           ppt;
-       application/vnd.wap.wmlc                wmlc;
-       application/vnd.google-earth.kml+xml    kml;
-       application/vnd.google-earth.kmz        kmz;
-       application/x-7z-compressed             7z;
-       application/x-cocoa                     cco;
-       application/x-java-archive-diff         jardiff;
-       application/x-java-jnlp-file            jnlp;
-       application/x-makeself                  run;
-       application/x-perl                      pl pm;
-       application/x-pilot                     prc pdb;
-       application/x-rar-compressed            rar;
-       application/x-redhat-package-manager    rpm;
-       application/x-sea                       sea;
-       application/x-shockwave-flash           swf;
-       application/x-stuffit                   sit;
-       application/x-tcl                       tcl tk;
-       application/x-x509-ca-cert              der pem crt;
-       application/x-xpinstall                 xpi;
-       application/xhtml+xml                   xhtml;
-       application/zip                         zip;
-
-       application/octet-stream                bin exe dll;
-       application/octet-stream                deb;
-       application/octet-stream                dmg;
-       application/octet-stream                eot;
-       application/octet-stream                iso img;
-       application/octet-stream                msi msp msm;
-       application/ogg                         ogx;
-
-       audio/midi                              mid midi kar;
-       audio/mpeg                              mpga mpega mp2 mp3 m4a;
-       audio/ogg                               oga ogg spx;
-       audio/x-realaudio                       ra;
-       audio/webm                              weba;
-
-       video/3gpp                              3gpp 3gp;
-       video/mp4                               mp4;
-       video/mpeg                              mpeg mpg mpe;
-       video/ogg                               ogv;
-       video/quicktime                         mov;
-       video/webm                              webm;
-       video/x-flv                             flv;
-       video/x-mng                             mng;
-       video/x-ms-asf                          asx asf;
-       video/x-ms-wmv                          wmv;
-       video/x-msvideo                         avi;
-}
diff --git a/nginx-configs/sites-enabled/mctxconfig b/nginx-configs/sites-enabled/mctxconfig
deleted file mode 100644 (file)
index 4da2b84..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-# You may add here your
-# server {
-#      ...
-# }
-# statements for each of your virtual hosts to this file
-
-##
-# You should look at the following URL's in order to grasp a solid understanding
-# of Nginx configuration files in order to fully unleash the power of Nginx.
-# http://wiki.nginx.org/Pitfalls
-# http://wiki.nginx.org/QuickStart
-# http://wiki.nginx.org/Configuration
-#
-# Generally, you will want to move this file somewhere, and start with a clean
-# file but keep this around for reference. Or just disable in sites-enabled.
-#
-# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
-##
-
-server {
-       listen 80;
-       listen [::]:80 default_server ipv6only=on;
-
-       root /usr/share/nginx/html;
-       index index.php index.html index.htm;
-
-       # Make site accessible from http://localhost/
-       server_name localhost;
-
-       location / {
-               # First attempt to serve request as file, then
-               # as directory, then fall back to displaying a 404.
-               try_files $uri $uri/ =404;
-               # Uncomment to enable naxsi on this location
-               # include /etc/nginx/naxsi.rules
-       }
-
-       # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
-       #location /RequestDenied {
-       #       proxy_pass http://127.0.0.1:8080;    
-       #}
-
-       #error_page 404 /404.html;
-
-       # redirect server error pages to the static page /50x.html
-       #
-       #error_page 500 502 503 504 /50x.html;
-       #location = /50x.html {
-       #       root /usr/share/nginx/html;
-       #}
-
-       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
-       #
-       location ~ \.php$ {
-               fastcgi_split_path_info ^(.+\.php)(/.+)$;
-       #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
-       #
-       #       # With php5-cgi alone:
-       #       fastcgi_pass 127.0.0.1:9000;
-       #       # With php5-fpm:
-               fastcgi_pass unix:/var/run/php5-fpm.sock;
-               fastcgi_index index.php;
-               include fastcgi_params;
-       }
-
-       # deny access to .htaccess files, if Apache's document root
-       # concurs with nginx's one
-       #
-       location ~ /\.ht {
-               deny all;
-       }
-       
-       #MCTX API
-       location /api {
-               #Login area
-               location ^~ /api/control {
-                       auth_basic "Restricted Access";
-                       auth_basic_user_file /usr/share/nginx/access/.htpasswd;
-       
-                       fastcgi_pass 127.0.0.1:9005;
-                       fastcgi_param DOCUMENT_URI_LOCAL control;
-                       include fastcgi_params;
-               }
-               location ~ ^/api/?([^?]*) {
-                       fastcgi_pass 127.0.0.1:9005;
-                       fastcgi_param DOCUMENT_URI_LOCAL $1;
-                       include fastcgi_params;
-               }
-       }
-}
-
-
-# another virtual host using mix of IP-, name-, and port-based configuration
-#
-#server {
-#      listen 8000;
-#      listen somename:8080;
-#      server_name somename alias another.alias;
-#      root html;
-#      index index.html index.htm;
-#
-#      location / {
-#              try_files $uri $uri/ =404;
-#      }
-#}
-
-
-# HTTPS server
-#
-#server {
-#      listen 443;
-#      server_name localhost;
-#
-#      root html;
-#      index index.html index.htm;
-#
-#      ssl on;
-#      ssl_certificate cert.pem;
-#      ssl_certificate_key cert.key;
-#
-#      ssl_session_timeout 5m;
-#
-#      ssl_protocols SSLv3 TLSv1;
-#      ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
-#      ssl_prefer_server_ciphers on;
-#
-#      location / {
-#              try_files $uri $uri/ =404;
-#      }
-#}
diff --git a/server-configs/README.txt b/server-configs/README.txt
new file mode 100644 (file)
index 0000000..f7f00ef
--- /dev/null
@@ -0,0 +1,5 @@
+To get syslog and nginx to work correctly:
+* Update nginx with the latest config file
+* Copy the config file to /etc/rsyslog.d/
+* Restart rsyslog with /etc/init.d/rsyslog restart
+* chmod the log file: chmod 644 /var/log/mctxserv.log
diff --git a/server-configs/nginx/README b/server-configs/nginx/README
new file mode 100644 (file)
index 0000000..99499a5
--- /dev/null
@@ -0,0 +1,23 @@
+This folder represents the files that should be placed under:
+/etc/nginx
+
+To install:
+* Delete all files under /etc/nginx/sites-enabled
+* Either:
+  * Copy 'mctxconfig' (under sites-enabled) to /etc/nginx/sites-available/
+    and create a symlink to that file under /etc/nginx/sites-enabled/
+  * Create a symlink directly from 'mctxconfig' to 
+    /etc/etc/nginx/sites-enabled/
+* Replace /etc/nginx/fastcgi_params and /etc/nginx/mime.types with the
+  provided files (either by copying or symlinking)
+
+Note:
+To get the login functionality working, you need to place a .htpasswd file
+under /usr/share/nginx/access (create folder if it doesn't exist). To generate
+the htpasswd file, install the apache2-utils package and use the 'htpasswd'
+executable.
+
+
+P.S: (I always forget these)
+Set file permissions to: 644
+Set folder permissions to: 755
\ No newline at end of file
diff --git a/server-configs/nginx/fastcgi_params b/server-configs/nginx/fastcgi_params
new file mode 100644 (file)
index 0000000..51aa692
--- /dev/null
@@ -0,0 +1,27 @@
+fastcgi_param  QUERY_STRING            $query_string;
+fastcgi_param  REQUEST_METHOD          $request_method;
+fastcgi_param  CONTENT_TYPE            $content_type;
+fastcgi_param  CONTENT_LENGTH          $content_length;
+
+fastcgi_param  SCRIPT_FILENAME         $request_filename;
+fastcgi_param  SCRIPT_NAME             $fastcgi_script_name;
+fastcgi_param  REQUEST_URI             $request_uri;
+fastcgi_param  DOCUMENT_URI            $document_uri;
+fastcgi_param  DOCUMENT_ROOT           $document_root;
+fastcgi_param  SERVER_PROTOCOL         $server_protocol;
+
+fastcgi_param  GATEWAY_INTERFACE       CGI/1.1;
+fastcgi_param  SERVER_SOFTWARE         nginx/$nginx_version;
+fastcgi_param  SERVER_HOSTNAME         mctxsoft;
+
+fastcgi_param  REMOTE_ADDR             $remote_addr;
+fastcgi_param  REMOTE_PORT             $remote_port;
+fastcgi_param  REMOTE_USER             $remote_user;
+fastcgi_param  SERVER_ADDR             $server_addr;
+fastcgi_param  SERVER_PORT             $server_port;
+fastcgi_param  SERVER_NAME             $server_name;
+
+fastcgi_param  HTTPS                   $https;
+
+# PHP only, required if PHP was built with --enable-force-cgi-redirect
+fastcgi_param  REDIRECT_STATUS         200;
diff --git a/server-configs/nginx/mime.types b/server-configs/nginx/mime.types
new file mode 100644 (file)
index 0000000..9d05612
--- /dev/null
@@ -0,0 +1,80 @@
+types {
+       text/html                               html htm shtml;
+       text/css                                css;
+       text/xml                                xml rss;
+       image/gif                               gif;
+       image/jpeg                              jpeg jpg;
+       application/x-javascript                js;
+       application/atom+xml                    atom;
+
+       text/mathml                             mml;
+       text/plain                              log;
+       text/plain                              txt;
+       text/vnd.sun.j2me.app-descriptor        jad;
+       text/vnd.wap.wml                        wml;
+       text/x-component                        htc;
+
+       image/png                               png;
+       image/tiff                              tif tiff;
+       image/vnd.wap.wbmp                      wbmp;
+       image/x-icon                            ico;
+       image/x-jng                             jng;
+       image/x-ms-bmp                          bmp;
+       image/svg+xml                           svg svgz;
+
+       application/java-archive                jar war ear;
+       application/json                        json;
+       application/mac-binhex40                hqx;
+       application/msword                      doc;
+       application/pdf                         pdf;
+       application/postscript                  ps eps ai;
+       application/rtf                         rtf;
+       application/vnd.ms-excel                xls;
+       application/vnd.ms-powerpoint           ppt;
+       application/vnd.wap.wmlc                wmlc;
+       application/vnd.google-earth.kml+xml    kml;
+       application/vnd.google-earth.kmz        kmz;
+       application/x-7z-compressed             7z;
+       application/x-cocoa                     cco;
+       application/x-java-archive-diff         jardiff;
+       application/x-java-jnlp-file            jnlp;
+       application/x-makeself                  run;
+       application/x-perl                      pl pm;
+       application/x-pilot                     prc pdb;
+       application/x-rar-compressed            rar;
+       application/x-redhat-package-manager    rpm;
+       application/x-sea                       sea;
+       application/x-shockwave-flash           swf;
+       application/x-stuffit                   sit;
+       application/x-tcl                       tcl tk;
+       application/x-x509-ca-cert              der pem crt;
+       application/x-xpinstall                 xpi;
+       application/xhtml+xml                   xhtml;
+       application/zip                         zip;
+
+       application/octet-stream                bin exe dll;
+       application/octet-stream                deb;
+       application/octet-stream                dmg;
+       application/octet-stream                eot;
+       application/octet-stream                iso img;
+       application/octet-stream                msi msp msm;
+       application/ogg                         ogx;
+
+       audio/midi                              mid midi kar;
+       audio/mpeg                              mpga mpega mp2 mp3 m4a;
+       audio/ogg                               oga ogg spx;
+       audio/x-realaudio                       ra;
+       audio/webm                              weba;
+
+       video/3gpp                              3gpp 3gp;
+       video/mp4                               mp4;
+       video/mpeg                              mpeg mpg mpe;
+       video/ogg                               ogv;
+       video/quicktime                         mov;
+       video/webm                              webm;
+       video/x-flv                             flv;
+       video/x-mng                             mng;
+       video/x-ms-asf                          asx asf;
+       video/x-ms-wmv                          wmv;
+       video/x-msvideo                         avi;
+}
diff --git a/server-configs/nginx/sites-enabled/mctxconfig b/server-configs/nginx/sites-enabled/mctxconfig
new file mode 100644 (file)
index 0000000..1491152
--- /dev/null
@@ -0,0 +1,119 @@
+server {
+       listen 80;
+
+       #Change this to match your root directory
+       root /usr/share/nginx/html;
+       index index.php index.html index.htm;
+
+       # Make site accessible from http://localhost/
+       server_name localhost;
+
+       location / {
+               # First attempt to serve request as file, then
+               # as directory, then fall back to displaying a 404.
+               try_files $uri $uri/ =404;
+               # Uncomment to enable naxsi on this location
+               # include /etc/nginx/naxsi.rules
+       }
+
+       # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
+       #location /RequestDenied {
+       #       proxy_pass http://127.0.0.1:8080;    
+       #}
+
+       #error_page 404 /404.html;
+
+       # redirect server error pages to the static page /50x.html
+       #
+       #error_page 500 502 503 504 /50x.html;
+       #location = /50x.html {
+       #       root /usr/share/nginx/html;
+       #}
+
+       # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
+       #
+       location ~ \.php$ {
+               fastcgi_split_path_info ^(.+\.php)(/.+)$;
+       #       # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
+       #
+       #       # With php5-cgi alone:
+       #       fastcgi_pass 127.0.0.1:9000;
+       #       # With php5-fpm:
+               fastcgi_pass unix:/var/run/php5-fpm.sock;
+               fastcgi_index index.php;
+               include fastcgi_params;
+       }
+
+       # deny access to .htaccess files, if Apache's document root
+       # concurs with nginx's one
+       #
+       location ~ /\.ht {
+               deny all;
+       }
+       
+       #MCTX API
+       location /api {
+               #Login area
+               location ^~ /api/control {
+                       #Uncomment to add back login
+                       #auth_basic "Restricted Access";
+                       #auth_basic_user_file /usr/share/nginx/access/.htpasswd;
+       
+                       fastcgi_pass 127.0.0.1:9005;
+                       fastcgi_param DOCUMENT_URI_LOCAL control;
+                       include fastcgi_params;
+               }
+
+               #Program log
+               location ^~ /api/log {
+                       alias /var/log/mctxserv.log;
+                       default_type text/plain;
+               }
+
+               location ~ ^/api/?([^?]*) {
+                       fastcgi_pass 127.0.0.1:9005;
+                       fastcgi_param DOCUMENT_URI_LOCAL $1;
+                       include fastcgi_params;
+               }
+       }
+}
+
+
+# another virtual host using mix of IP-, name-, and port-based configuration
+#
+#server {
+#      listen 8000;
+#      listen somename:8080;
+#      server_name somename alias another.alias;
+#      root html;
+#      index index.html index.htm;
+#
+#      location / {
+#              try_files $uri $uri/ =404;
+#      }
+#}
+
+
+# HTTPS server
+#
+#server {
+#      listen 443;
+#      server_name localhost;
+#
+#      root html;
+#      index index.html index.htm;
+#
+#      ssl on;
+#      ssl_certificate cert.pem;
+#      ssl_certificate_key cert.key;
+#
+#      ssl_session_timeout 5m;
+#
+#      ssl_protocols SSLv3 TLSv1;
+#      ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
+#      ssl_prefer_server_ciphers on;
+#
+#      location / {
+#              try_files $uri $uri/ =404;
+#      }
+#}
diff --git a/server-configs/rsyslog.d/30-mctxserv.conf b/server-configs/rsyslog.d/30-mctxserv.conf
new file mode 100644 (file)
index 0000000..8798b6f
--- /dev/null
@@ -0,0 +1 @@
+if $programname == 'mctxserv' then /var/log/mctxserv.log
index d964e61..d41021f 100644 (file)
@@ -4,24 +4,20 @@
  */
 
 
-#include <unistd.h>
-#include <stdarg.h>
-
 // --- Custom headers --- //
 #include "common.h"
 #include "log.h"
 #include "options.h"
 
-// --- Static variables --- //
-static const char * unspecified_funct = "???";
-
-// --- Function implementations --- //
+#include <unistd.h>
+#include <syslog.h>
+#include <stdarg.h>
 
-//TODO: Migrate to syslog (shouldn't be too hard; these functions basically do what syslog does)
-//             Note that we will want to have a seperate log as well as syslog; give the user the option to view the log using the GUI
+static const char * unspecified_funct = "???";
 
 /**
- * Print a message to stderr
+ * Print a message to stderr and log it via syslog. The message must be
+ * less than BUFSIZ characters long, or it will be truncated.
  * @param level - Specify how severe the message is.
        If level is higher (less urgent) than the program's verbosity (see options.h) no message will be printed
  * @param funct - String indicating the function name from which this function was called.
@@ -31,17 +27,23 @@ static const char * unspecified_funct = "???";
  */
 void LogEx(int level, const char * funct, ...)
 {
+       //Todo: consider setlogmask(3) to filter messages
        const char *fmt;
+       char buffer[BUFSIZ];
        va_list va;
+
+       // Don't print the message unless we need to
+       if (level > g_options.verbosity)
+               return;
+
        va_start(va, funct);
        fmt = va_arg(va, const char*);
        
        if (fmt == NULL) // sanity check
-               FatalEx("Log", "Format string is NULL");
+               Fatal("Format string is NULL");
 
-       // Don't print the message unless we need to
-       if (level > g_options.verbosity)
-               return;
+       vsnprintf(buffer, BUFSIZ, fmt, va);
+       va_end(va);
 
        if (funct == NULL)
                funct = unspecified_funct;
@@ -51,31 +53,28 @@ void LogEx(int level, const char * funct, ...)
        switch (level)
        {
                case LOGERR:
+                       level = LOG_ERR;
                        severity = "ERROR";
                        break;
                case LOGWARN:
+                       level = LOG_WARNING;
                        severity = "WARNING";
                        break;
                case LOGNOTE:
+                       level = LOG_NOTICE;
                        severity = "NOTICE";
                        break;
                case LOGINFO:
+                       level = LOG_INFO;
                        severity = "INFO";
                        break;
                default:
+                       level = LOG_DEBUG;
                        severity = "DEBUG";
                        break;
        }
 
-       // Print: Program name, PID, severity string, function name first
-       fprintf(stderr, "%s [%d] : %s : %s - ", g_options.program, getpid(), severity, funct);
-
-       // Then pass additional arguments with the format string to vfprintf for printing
-       vfprintf(stderr, fmt, va);
-       va_end(va);
-
-       // End log messages with a newline
-       fprintf(stderr, "\n");
+       syslog(level, "%s: %s - %s", severity, funct, buffer);
 }
 
 /**
@@ -88,6 +87,7 @@ void LogEx(int level, const char * funct, ...)
 void FatalEx(const char * funct, ...)
 {
        const char *fmt;
+       char buffer[BUFSIZ];
        va_list va;
        va_start(va, funct);
        fmt = va_arg(va, const char*);
@@ -96,19 +96,17 @@ void FatalEx(const char * funct, ...)
        {
                // Fatal error in the Fatal function.
                // (This really shouldn't happen unless someone does something insanely stupid)
-               FatalEx("Fatal", "Format string is NULL");
+               Fatal("Format string is NULL");
                return; // Should never get here
        }
 
+       vsnprintf(buffer, BUFSIZ, fmt,va);
+       va_end(va);
+
        if (funct == NULL)
                funct = unspecified_funct;
 
-       fprintf(stderr, "%s [%d] : %s : FATAL - ", g_options.program, getpid(), funct);
-
-       vfprintf(stderr, fmt, va);
-       va_end(va);
-       fprintf(stderr, "\n");
-
+       syslog(LOG_CRIT, "FATAL: %s - %s", funct, buffer);
        exit(EXIT_FAILURE);
 }
 
index 4b36b20..c032eb1 100644 (file)
@@ -11,6 +11,7 @@
 #include "control.h"
 
 // --- Standard headers --- //
+#include <syslog.h> // for system logging
 #include <signal.h> // for signal handling
 
 // --- Variable definitions --- //
@@ -68,6 +69,9 @@ int main(int argc, char ** argv)
 {
        ParseArguments(argc, argv);
 
+       //Open the system log
+       openlog("mctxserv", LOG_PID | LOG_PERROR, LOG_USER);
+       Log(LOGINFO, "Server started");
        // signal handler
        //TODO: Make this work
        /*

UCC git Repository :: git.ucc.asn.au