-const char jcc_rcs[] = "$Id: jcc.c,v 1.51 2001/10/26 17:38:28 oes Exp $";
+const char jcc_rcs[] = "$Id: jcc.c,v 1.52 2001/10/26 20:11:20 jongfoster Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/jcc.c,v $
*
* Revisions :
* $Log: jcc.c,v $
+ * Revision 1.52 2001/10/26 20:11:20 jongfoster
+ * Fixing type mismatch
+ *
* Revision 1.51 2001/10/26 17:38:28 oes
* Cosmetics
*
# endif /* ndef __OS2__ */
# include <sys/time.h>
# include <sys/stat.h>
+# include <sys/ioctl.h>
+
+#ifdef sun
+#include <sys/termios.h>
+#endif /* sun */
+
# include <signal.h>
# ifdef __BEOS__
#endif
+#ifdef _DEBUG
+int ldebug = 0;
+#endif
+
#include "project.h"
#include "list.h"
#include "jcc.h"
#define sleep(N) DosSleep(((N) * 100))
#endif
+#if defined(unix)
+const char *basedir;
+#endif /* defined unix */
/* The vanilla wafer. */
static const char VANILLA_WAFER[] =
int main(int argc, const char *argv[])
#endif
{
+ int argc_pos = 1;
+
configfile =
#ifdef AMIGA
"AmiTCP:db/junkbuster/config"
printf(VERSION "\n");
exit(2);
}
+#ifdef _DEBUG
+ if ((argc >= 2) && (strcmp(argv[1], "-d")==0))
+ {
+ ldebug++;
+ argc_pos++;
+ fprintf(stderr,"debugging enabled..\n");
+ }
+#endif /* _DEBUG */
#endif /* !defined(_WIN32) || defined(_WIN_CONSOLE) */
Argc = argc;
Argv = argv;
- if (argc > 1)
+ if (argc > argc_pos )
{
- configfile = argv[1];
+ configfile = argv[argc_pos];
}
+#if defined(unix)
+ if ( *configfile != '/' )
+ {
+ char *abs_file;
+
+ DBG(1, ("configfile before '%s'\n",configfile) );
+
+ /* make config-filename absolute here */
+ if ( !(basedir = getcwd( NULL, 1024 )))
+ {
+ perror("get working dir");
+ }
+ DBG(1, ("working dir '%s'\n",basedir) );
+ if ( !(abs_file = malloc( strlen( basedir ) + strlen( configfile ) + 5 )))
+ {
+ perror("malloc failed");
+ exit( 1 );
+ }
+ strcpy( abs_file, basedir );
+ strcat( abs_file, "/" );
+ strcat( abs_file, configfile );
+ configfile = abs_file;
+ DBG(1, ("configfile after '%s'\n",configfile) );
+ }
+#endif /* defined unix */
+
+
files->next = NULL;
#ifdef AMIGA
/* Initialize the CGI subsystem */
cgi_init_error_messages();
+#if defined(unix)
+{
+ pid_t pid = 0;
+ int fd;
+
+ /*
+ ** we make us a real daemon
+ */
+#ifdef _DEBUG
+ if ( !ldebug)
+#endif
+ pid = fork();
+ if ( pid < 0 ) /* error */
+ {
+ perror("fork");
+ exit( 3 );
+ }
+ else if ( pid != 0 ) /* parent */
+ {
+ exit( 0 );
+ }
+ /* child */
+ setpgrp();
+ fd = open("/dev/tty", O_RDONLY);
+ if ( fd )
+ {
+ /* no error check here */
+ ioctl( fd, TIOCNOTTY,0 );
+ close ( fd );
+ }
+ /* should close stderr (fd 2) here too, but the test for existence
+ ** and load config file is done in listen_loop() and puts
+ ** some messages on stderr there.
+ */
+#ifdef _DEBUG
+ if ( !ldebug )
+ close( 0 ); close( 1 );
+#else
+ close( 0 ); close( 1 );
+#endif /* _DEBUG */
+ chdir("/");
+
+}
+#endif /* defined unix */
+
+ DBG(1, ("call listen_loop() \n") );
listen_loop();
/* NOTREACHED */
#ifndef JCC_H_INCLUDED
#define JCC_H_INCLUDED
-#define JCC_H_VERSION "$Id: jcc.h,v 1.5 2001/07/29 19:32:00 jongfoster Exp $"
+#define JCC_H_VERSION "$Id: jcc.h,v 1.6 2001/07/30 22:08:36 jongfoster Exp $"
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/jcc.h,v $
*
* Revisions :
* $Log: jcc.h,v $
+ * Revision 1.6 2001/07/30 22:08:36 jongfoster
+ * Tidying up #defines:
+ * - All feature #defines are now of the form FEATURE_xxx
+ * - Permanently turned off WIN_GUI_EDIT
+ * - Permanently turned on WEBDAV and SPLIT_PROXY_ARGS
+ *
* Revision 1.5 2001/07/29 19:32:00 jongfoster
* Renaming _main() [mingw32 only] to real_main(), for ANSI compliance.
*
struct client_state;
struct file_list;
-
/* Global variables */
#ifdef FEATURE_STATISTICS
-const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.24 2001/10/23 21:40:30 jongfoster Exp $";
+const char loadcfg_rcs[] = "$Id: loadcfg.c,v 1.25 2001/10/25 03:40:48 david__schmidt Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/loadcfg.c,v $
*
* Revisions :
* $Log: loadcfg.c,v $
+ * Revision 1.25 2001/10/25 03:40:48 david__schmidt
+ * Change in porting tactics: OS/2's EMX porting layer doesn't allow multiple
+ * threads to call select() simultaneously. So, it's time to do a real, live,
+ * native OS/2 port. See defines for __EMX__ (the porting layer) vs. __OS2__
+ * (native). Both versions will work, but using __OS2__ offers multi-threading.
+ *
* Revision 1.24 2001/10/23 21:40:30 jongfoster
* Added support for enable-edit-actions and enable-remote-toggle config
* file options.
struct client_state * fake_csp;
struct file_list *fs;
+ DBG(1, ("load_config() entered..\n") );
if (!check_file_changed(current_configfile, configfile, &fs))
{
/* No need to load */
configfile);
}
+ /*
log_error(LOG_LEVEL_INFO, "loading configuration file '%s':", configfile);
+ */
#ifdef FEATURE_TOGGLE
g_bToggleIJB = 1;
****************************************************************************/
case hash_logdir :
freez(config->logdir);
- config->logdir = strdup(arg);
+ config->logdir = make_path(NULL, arg);
continue;
/****************************************************************************
-const char miscutil_rcs[] = "$Id: miscutil.c,v 1.22 2001/10/26 17:39:38 oes Exp $";
+const char miscutil_rcs[] = "$Id: miscutil.c,v 1.23 2001/10/29 03:48:10 david__schmidt Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/miscutil.c,v $
*
* Revisions :
* $Log: miscutil.c,v $
+ * Revision 1.23 2001/10/29 03:48:10 david__schmidt
+ * OS/2 native needed a snprintf() routine. Added one to miscutil, brackedted
+ * by and __OS2__ ifdef.
+ *
* Revision 1.22 2001/10/26 17:39:38 oes
* Moved ijb_isspace and ijb_tolower to project.h
*
}
else
{
- char * path = malloc(strlen(dir) + strlen(file) + 2);
+ char * path;
+
+#if defined(unix)
+ if ( *dir != '/' && basedir && *basedir )
+ {
+ path = malloc( strlen( basedir ) + strlen(dir) + strlen(file) + 3);
+ if (!path ) log_error(LOG_LEVEL_FATAL, "malloc failed!");
+ strcpy(path, basedir);
+ strcat(path, "/");
+ strcat(path, dir);
+ DBG(1, ("make_path: path: %s\n",path) );
+ }
+ else
+ {
+ path = malloc(strlen(dir) + strlen(file) + 2);
+ if (!path ) log_error(LOG_LEVEL_FATAL, "malloc failed!");
+ strcpy(path, dir);
+ }
+#else
+
+ path = malloc(strlen(dir) + strlen(file) + 2);
+ if (!path ) log_error(LOG_LEVEL_FATAL, "malloc failed!");
strcpy(path, dir);
+
+#endif /* defined unix */
+
#ifdef _WIN32
if(path[strlen(path)-1] != '\\')
{
Local Variables:
tab-width: 3
end:
-*/
\ No newline at end of file
+*/