ReactOS  0.4.14-dev-323-g6fe6a88
pref.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  PrefOpt
 

Macros

#define kFirewallPrefFileName   "firewall"
 
#define kGlobalFirewallPrefFileName   "/etc/ncftp.firewall"
 
#define kGlobalFixedFirewallPrefFileName   "/etc/ncftp.firewall.fixed"
 
#define kGlobalPrefFileName   "/etc/ncftp.prefs_v3"
 
#define kGlobalFixedPrefFileName   "/etc/ncftp.prefs_v3.fixed"
 
#define kPrefFileName   "prefs_v3"
 
#define kPrefFileNameV2   "prefs"
 
#define kFirstFileName   "init_v3"
 
#define kOpenSelectedBookmarkFileName   "bm2open"
 
#define kPrefOptObselete   (-1)
 
#define kPrefOptInvisible   0
 
#define kPrefOptVisible   1
 
#define PREFOBSELETE   (PrefProc) 0, kPrefOptObselete,
 

Typedefs

typedef void(* PrefProc) (int i, const char *const, FILE *const fp)
 
typedef struct PrefOpt PrefOpt
 

Functions

void SetAnonPass (int, const char *const, FILE *const)
 
void SetAutoAscii (int t, const char *const val, FILE *const fp)
 
void SetAutoResume (int, const char *const, FILE *const)
 
void SetAutoSaveChangesToExistingBookmarks (int t, const char *const val, FILE *const fp)
 
void SetConfirmClose (int, const char *const, FILE *const)
 
void SetConnTimeout (int, const char *const, FILE *const)
 
void SetCtrlTimeout (int, const char *const, FILE *const)
 
void SetLogSize (int t, const char *const val, FILE *const fp)
 
void SetNoAds (int t, const char *const val, FILE *const fp)
 
void SetOneTimeMessages (int t, const char *const val, FILE *const)
 
void SetPager (int, const char *const, FILE *const)
 
void SetPassive (int, const char *const, FILE *const)
 
void SetProgressMeter (int, const char *const, FILE *const)
 
void SetRedialDelay (int t, const char *const val, FILE *const fp)
 
void SetSavePasswords (int, const char *const, FILE *const)
 
void SetSOBufsize (int t, const char *const val, FILE *const fp)
 
void SetXferTimeout (int, const char *const, FILE *const)
 
void SetXtTitle (int, const char *const, FILE *const)
 
void Set (const char *const, const char *const)
 
void ProcessPrefsFile (FILE *const fp)
 
void LoadPrefs (void)
 
void InitPrefs (void)
 
void PostInitPrefs (void)
 
void SavePrefs (void)
 
void WriteDefaultFirewallPrefs (FILE *)
 
void ProcessFirewallPrefFile (FILE *)
 
void LoadFirewallPrefs (int)
 
void CheckForNewV3User (void)
 
int HasSeenOneTimeMessage (const char *const msg)
 
void SetSeenOneTimeMessage (const char *const msg)
 
int OneTimeMessage (const char *const msg)
 

Macro Definition Documentation

◆ kFirewallPrefFileName

#define kFirewallPrefFileName   "firewall"

Definition at line 18 of file pref.h.

◆ kFirstFileName

#define kFirstFileName   "init_v3"

Definition at line 25 of file pref.h.

◆ kGlobalFirewallPrefFileName

#define kGlobalFirewallPrefFileName   "/etc/ncftp.firewall"

Definition at line 19 of file pref.h.

◆ kGlobalFixedFirewallPrefFileName

#define kGlobalFixedFirewallPrefFileName   "/etc/ncftp.firewall.fixed"

Definition at line 20 of file pref.h.

◆ kGlobalFixedPrefFileName

#define kGlobalFixedPrefFileName   "/etc/ncftp.prefs_v3.fixed"

Definition at line 22 of file pref.h.

◆ kGlobalPrefFileName

#define kGlobalPrefFileName   "/etc/ncftp.prefs_v3"

Definition at line 21 of file pref.h.

◆ kOpenSelectedBookmarkFileName

#define kOpenSelectedBookmarkFileName   "bm2open"

Definition at line 28 of file pref.h.

◆ kPrefFileName

#define kPrefFileName   "prefs_v3"

Definition at line 23 of file pref.h.

◆ kPrefFileNameV2

#define kPrefFileNameV2   "prefs"

Definition at line 24 of file pref.h.

◆ kPrefOptInvisible

#define kPrefOptInvisible   0

Definition at line 38 of file pref.h.

◆ kPrefOptObselete

#define kPrefOptObselete   (-1)

Definition at line 37 of file pref.h.

◆ kPrefOptVisible

#define kPrefOptVisible   1

Definition at line 39 of file pref.h.

◆ PREFOBSELETE

#define PREFOBSELETE   (PrefProc) 0, kPrefOptObselete,

Definition at line 41 of file pref.h.

Typedef Documentation

◆ PrefOpt

◆ PrefProc

typedef void(* PrefProc) (int i, const char *const, FILE *const fp)

Definition at line 30 of file pref.h.

Function Documentation

◆ CheckForNewV3User()

void CheckForNewV3User ( void  )

Definition at line 738 of file pref.c.

739 {
740  FILE *fp;
741  struct stat st;
742  char pathName[256];
743  char line[256];
744 
745  gNumProgramRuns = 0;
746 
747  /* Don't create in root directory. */
748  if (gOurDirectoryPath[0] != '\0') {
749  (void) OurDirectoryPath(pathName, sizeof(pathName), kFirstFileName);
750 
751  if ((stat(pathName, &st) < 0) && (errno == ENOENT)) {
752  gNumProgramRuns = 1;
753  gPrefsDirty++;
754 
755  /* Create a blank one. */
756  fp = fopen(pathName, FOPEN_WRITE_TEXT);
757  if (fp == NULL)
758  return;
759  (void) fprintf(fp, "# NcFTP uses this file to mark that you have run it before, and that you do not\n# need any special first-time instructions or setup.\n#\nruns=%d\n", gNumProgramRuns);
760  (void) fclose(fp);
761  } else {
762  fp = fopen(pathName, FOPEN_READ_TEXT);
763  if (fp != NULL) {
764  while (fgets(line, sizeof(line) - 1, fp) != NULL) {
765  if (strncmp(line, "runs=", 5) == 0) {
766  (void) sscanf(line + 5, "%d",
767  &gNumProgramRuns);
768  break;
769  }
770  }
771  (void) fclose(fp);
772  }
773 
774  /* Increment the count of program runs. */
775  gNumProgramRuns++;
776  if (gNumProgramRuns == 1)
777  gPrefsDirty++;
778 
779  /* Race condition between other ncftp processes.
780  * This isn't a big deal because this counter isn't
781  * critical.
782  */
783 
784  fp = fopen(pathName, FOPEN_WRITE_TEXT);
785  if (fp != NULL) {
786  (void) fprintf(fp, "# NcFTP uses this file to mark that you have run it before, and that you do not\n# need any special first-time instructions or setup.\n#\nruns=%d\n", gNumProgramRuns);
787  (void) fclose(fp);
788  }
789  }
790  }
791 } /* CheckForNewV3User */
#define kFirstFileName
Definition: pref.h:25
int gNumProgramRuns
Definition: preffw.c:14
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
char * OurDirectoryPath(char *const dst, const size_t siz, const char *const fname)
Definition: util.c:486
#define FOPEN_WRITE_TEXT
Definition: syshdrs.h:83
int errno
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
smooth NULL
Definition: ftsmooth.c:416
Definition: parser.c:48
_Check_return_ _CRTIMP int __cdecl sscanf(_In_z_ const char *_Src, _In_z_ _Scanf_format_string_ const char *_Format,...)
#define FOPEN_READ_TEXT
Definition: syshdrs.h:82
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
Definition: utclib.c:534
Definition: stat.h:55
_Check_return_opt_ _CRTIMP int __cdecl fclose(_Inout_ FILE *_File)
_Check_return_ _CRTIMP FILE *__cdecl fopen(_In_z_ const char *_Filename, _In_z_ const char *_Mode)
_Check_return_opt_ _CRTIMP char *__cdecl fgets(_Out_writes_z_(_MaxCount) char *_Buf, _In_ int _MaxCount, _Inout_ FILE *_File)
_CRTIMP int __cdecl stat(const char *_Filename, struct stat *_Stat)
Definition: stat.h:345
Definition: arc.h:46
int gPrefsDirty
Definition: pref.c:67
char gOurDirectoryPath[]
Definition: util.c:17

Referenced by PreInit().

◆ HasSeenOneTimeMessage()

int HasSeenOneTimeMessage ( const char *const  msg)

Definition at line 477 of file pref.c.

478 {
479  char buf[256];
480  char *a, *b;
481 
482  memcpy(buf, gOneTimeMessagesSeen, sizeof(buf));
483  for (a = buf; (b = strtok(a, ",\n")) != NULL; a = NULL) {
484  if (strcmp(msg, b) == 0)
485  return (1);
486  }
487  return (0);
488 } /* HasSeenOneTimeMessage */
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define a
Definition: ke_i.h:78
smooth NULL
Definition: ftsmooth.c:416
#define b
Definition: ke_i.h:79
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
char * strtok(char *String, const char *Delimiters)
Definition: utclib.c:338
#define msg(x)
Definition: auth_time.c:54
char gOneTimeMessagesSeen[256]
Definition: pref.c:47
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

Referenced by OneTimeMessage().

◆ InitPrefs()

void InitPrefs ( void  )

Definition at line 616 of file pref.c.

617 {
618  char *tok1;
619 
620  /* Set default values. */
621  gPager[0] = '\0';
623  gXferTimeout = 3600;
624  gConnTimeout = 20;
625  gCtrlTimeout = 135;
628  gAutoResume = 0;
629  gSOBufsize = 0;
630  gMaxLogSize = 10240;
631  gConfirmClose = 1;
634  STRNCPY(gAutoAscii, "|.txt|.asc|.html|.htm|.css|.xml|.ini|.sh|.pl|.hqx|.cfg|.c|.h|.cpp|.hpp|.bat|.m3u|.pls|");
635 
636  /* PLEASE do not change the default from 0, and please
637  * don't hack out the portion in main.c which displays
638  * a plug every 7th time you run the program. This is
639  * not much to ask for all the work I've put into this
640  * since 1991.
641  */
642  gDoNotDisplayAds = 0;
643 
644 #if (defined(WIN32) || defined(_WINDOWS)) && defined(_CONSOLE)
645  gMaySetXtermTitle = 1;
646 #else
647  gMaySetXtermTitle = 0;
648 #endif
649 
650  gSavePasswords = -1;
651 #ifdef ncftp
653 #endif
654 
655  tok1 = getenv("PAGER");
656  if ((tok1 != NULL) && (tok1[0] != '\0')) {
657 #ifdef HAVE_STRSTR
658  /* I prefer "less", but it doesn't work well here
659  * because it clears the screen after it finishes,
660  * and the default at EOF is to stay in less
661  * instead of exiting.
662  */
663  if (strstr(gPager, "less") != NULL)
664  (void) STRNCPY(gPager, "more");
665  else
666  (void) STRNCPY(gPager, tok1);
667 #else
668  (void) STRNCPY(gPager, tok1);
669 #endif
670  } else {
671  (void) STRNCPY(gPager, "more");
672  }
673 } /* InitPrefs */
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
char * strstr(char *String1, char *String2)
Definition: utclib.c:653
int gAutoSaveChangesToExistingBookmarks
Definition: pref.c:36
int gMaxLogSize
Definition: pref.c:53
FTPConnectionInfo gConn
Definition: main.c:37
#define STRNCPY(dst, src, n)
Definition: rdesktop.h:168
int gConfirmClose
Definition: pref.c:33
#define kDefaultRedialDelay
Definition: ncftp.h:342
smooth NULL
Definition: ftsmooth.c:416
#define kFallBackToSendPortMode
Definition: ncftp.h:297
int gDataPortMode
Definition: preffw.c:26
FTPProgressMeterProc gProgressMeter
int gRedialDelay
Definition: pref.c:44
char gAutoAscii[512]
Definition: pref.c:56
int gDoNotDisplayAds
Definition: pref.c:64
int gConnTimeout
Definition: pref.c:24
_Check_return_ char *__cdecl getenv(_In_z_ const char *_VarName)
int gSOBufsize
Definition: pref.c:50
char gPager[128]
Definition: pref.c:21
void PrStatBar(const FTPCIPtr cip, int mode)
Definition: progress.c:203
int gMaySetXtermTitle
Definition: pref.c:41
int gXferTimeout
Definition: pref.c:24
char gOneTimeMessagesSeen[256]
Definition: pref.c:47
#define memset(x, y, z)
Definition: compat.h:39
int gSavePasswords
Definition: pref.c:39
int dataPortMode
Definition: ncftp.h:152
int gAutoResume
Definition: pref.c:30
int gCtrlTimeout
Definition: pref.c:24

Referenced by PreInit().

◆ LoadFirewallPrefs()

void LoadFirewallPrefs ( int  )

Definition at line 268 of file preffw.c.

269 {
270  FILE *fp, *fp2;
271  char pathName[256];
272  char *cp;
273  int userFile = 0;
274  int sysFile = 0;
275 
276  if ((gFirewallPrefsLoaded != 0) && (forceReload == 0))
277  return;
279 
280  if (gOurDirectoryPath[0] == '\0')
281  return; /* Don't create in root directory. */
282  (void) OurDirectoryPath(pathName, sizeof(pathName), kFirewallPrefFileName);
283 
284  /* Set default values. */
286  gFirewallPort = 0;
287  gFirewallHost[0] = '\0';
288  gFirewallUser[0] = '\0';
289  gFirewallPass[0] = '\0';
290  gFirewallExceptionList[0] = '\0';
291 
293  if (fp2 != NULL) {
294  /* Initialize to system-wide defaults. */
296  (void) fclose(fp2);
297  sysFile++;
298  }
299 
300  fp = fopen(pathName, FOPEN_READ_TEXT);
301  if (fp != NULL) {
302  /* Do user's firewall file. */
304  (void) fclose(fp);
305  userFile = 1;
306  }
307 
309  if (fp2 != NULL) {
310  /* Override with system-wide settings. */
312  (void) fclose(fp2);
313  sysFile++;
314  }
315 
316  if ((userFile == 0) && (sysFile == 0)) {
317  /* Create a blank one, if
318  * there were no system-wide files.
319  */
320  fp = fopen(pathName, FOPEN_WRITE_TEXT);
321  if (fp != NULL) {
323  (void) fclose(fp);
324  (void) _chmod(pathName, 00600);
325  gNumProgramRuns = 1;
326  }
327  }
328 
329  if (gFirewallExceptionList[0] == '\0') {
331  cp = strchr(gLib.ourHostName, '.');
332 
333  if (cp != NULL) {
335  (void) STRNCAT(gFirewallExceptionList, ",localdomain");
336  }
337  }
338 } /* LoadFirewallPrefs */
int gFirewallType
Definition: preffw.c:17
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
char gFirewallUser[32]
Definition: preffw.c:19
int gFirewallPrefsLoaded
Definition: preffw.c:23
void WriteDefaultFirewallPrefs(FILE *fp)
Definition: preffw.c:39
char ourHostName[64]
Definition: ncftp.h:118
char * OurDirectoryPath(char *const dst, const size_t siz, const char *const fname)
Definition: util.c:486
#define STRNCPY(dst, src, n)
Definition: rdesktop.h:168
#define FOPEN_WRITE_TEXT
Definition: syshdrs.h:83
#define kFirewallNotInUse
Definition: ncftp.h:388
void FTPInitializeOurHostName(const FTPLIPtr)
Definition: open.c:63
char gFirewallHost[64]
Definition: preffw.c:18
char gOurDirectoryPath[]
Definition: util.c:17
smooth NULL
Definition: ftsmooth.c:416
_Check_return_ _CRTIMP int __cdecl _chmod(_In_z_ const char *_Filename, _In_ int _Mode)
#define kFirewallPrefFileName
Definition: pref.h:18
#define FOPEN_READ_TEXT
Definition: syshdrs.h:82
#define STRNCAT(d, s)
Definition: Strn.h:48
char gFirewallPass[32]
Definition: preffw.c:20
_Check_return_opt_ _CRTIMP int __cdecl fclose(_Inout_ FILE *_File)
_Check_return_ _CRTIMP FILE *__cdecl fopen(_In_z_ const char *_Filename, _In_z_ const char *_Mode)
int gNumProgramRuns
Definition: preffw.c:14
FTPLibraryInfo gLib
Definition: main.c:36
void ProcessFirewallPrefFile(FILE *fp)
Definition: preffw.c:213
char gFirewallExceptionList[256]
Definition: preffw.c:21
char * strchr(const char *String, int ch)
Definition: utclib.c:501
#define kGlobalFirewallPrefFileName
Definition: pref.h:19
POINT cp
Definition: magnifier.c:59
#define kGlobalFixedFirewallPrefFileName
Definition: pref.h:20
unsigned int gFirewallPort
Definition: preffw.c:22

Referenced by main(), and PreInit().

◆ LoadPrefs()

void LoadPrefs ( void  )

Definition at line 555 of file pref.c.

556 {
557  FILE *fp;
558  char pathName[256];
559 
560  /* As with the firewall preference file, there can be
561  * site-wide preferences and user-specific preferences.
562  * The user pref file is of course kept in the user's
563  * NcFTP home directory.
564  *
565  * The way we do this is we first look for a global
566  * preferences file. We then process the user's pref
567  * file, which could override the global prefs. Finally,
568  * we open a "global fixed" prefs file which then
569  * overrides anything the user may have done.
570  */
571 
573  if (fp != NULL) {
574  /* Opened the global (but user-overridable) prefs file. */
575  ProcessPrefsFile(fp);
576  (void) fclose(fp);
577  }
578 
579  if (gOurDirectoryPath[0] != '\0') {
580  (void) OurDirectoryPath(pathName, sizeof(pathName), kPrefFileName);
581 
582  fp = fopen(pathName, FOPEN_READ_TEXT);
583  if (fp == NULL) {
584  /* Try loading the version 2 prefs.
585  * There will be options we no longer recognize, but
586  * we'd like to import the prefs when possible.
587  */
588  gPrefsDirty++;
589  (void) OurDirectoryPath(pathName, sizeof(pathName), kPrefFileNameV2);
590  fp = fopen(pathName, FOPEN_READ_TEXT);
591  }
592 
593  if (fp == NULL) {
594  /* Write a new one when we're done. */
595  gPrefsDirty++;
596  } else {
597  /* Opened the preferences file. */
598  ProcessPrefsFile(fp);
599  (void) fclose(fp);
600  }
601  }
602 
604  if (fp != NULL) {
605  /* Opened the global (and not overridable) prefs file. */
606  ProcessPrefsFile(fp);
607  (void) fclose(fp);
608  }
609 } /* LoadPrefs */
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
char * OurDirectoryPath(char *const dst, const size_t siz, const char *const fname)
Definition: util.c:486
#define kGlobalPrefFileName
Definition: pref.h:21
smooth NULL
Definition: ftsmooth.c:416
#define kPrefFileName
Definition: pref.h:23
#define FOPEN_READ_TEXT
Definition: syshdrs.h:82
void ProcessPrefsFile(FILE *const fp)
Definition: pref.c:520
#define kGlobalFixedPrefFileName
Definition: pref.h:22
_Check_return_opt_ _CRTIMP int __cdecl fclose(_Inout_ FILE *_File)
_Check_return_ _CRTIMP FILE *__cdecl fopen(_In_z_ const char *_Filename, _In_z_ const char *_Mode)
#define kPrefFileNameV2
Definition: pref.h:24
int gPrefsDirty
Definition: pref.c:67
char gOurDirectoryPath[]
Definition: util.c:17

Referenced by PreInit().

◆ OneTimeMessage()

int OneTimeMessage ( const char *const  msg)

Definition at line 508 of file pref.c.

509 {
511  return (0);
513  return (1);
514 } /* OneTimeMessage */
void SetSeenOneTimeMessage(const char *const msg)
Definition: pref.c:494
int HasSeenOneTimeMessage(const char *const msg)
Definition: pref.c:477
#define msg(x)
Definition: auth_time.c:54

Referenced by NcFTPConfirmResumeDownloadProc(), NcFTPConfirmResumeUploadProc(), and PrSizeAndRateMeter().

◆ PostInitPrefs()

void PostInitPrefs ( void  )

Definition at line 680 of file pref.c.

681 {
682  if (gLib.defaultAnonPassword[0] == '\0') {
684  gPrefsDirty++;
685  }
686  if (gFwDataPortMode >= 0)
688 } /* PostInitPrefs */
FTPLibraryInfo gLib
Definition: main.c:36
FTPConnectionInfo gConn
Definition: main.c:37
void FTPInitializeAnonPassword(const FTPLIPtr)
Definition: open.c:81
char defaultAnonPassword[80]
Definition: ncftp.h:121
int gFwDataPortMode
Definition: preffw.c:31
int gPrefsDirty
Definition: pref.c:67
int dataPortMode
Definition: ncftp.h:152

Referenced by PostInit().

◆ ProcessFirewallPrefFile()

void ProcessFirewallPrefFile ( FILE )

Definition at line 213 of file preffw.c.

214 {
215  char line[256];
216  char *tok1, *tok2;
217  int n;
218 
219  /* Opened the firewall preferences file. */
220  line[sizeof(line) - 1] = '\0';
221  while (fgets(line, sizeof(line) - 1, fp) != NULL) {
222  tok1 = strtok(line, " =\t\r\n");
223  if ((tok1 == NULL) || (tok1[0] == '#'))
224  continue;
225  tok2 = strtok(NULL, "\r\n");
226  if (tok2 == NULL)
227  continue;
228  if (ISTREQ(tok1, "firewall-type")) {
229  n = atoi(tok2);
230  if ((n > 0) && (n <= kFirewallLastType))
231  gFirewallType = n;
232  } else if (ISTREQ(tok1, "firewall-host")) {
233  (void) STRNCPY(gFirewallHost, tok2);
234  } else if (ISTREQ(tok1, "firewall-port")) {
235  n = atoi(tok2);
236  if (n > 0)
237  gFirewallPort = (unsigned int) n;
238  } else if (ISTREQ(tok1, "firewall-user")) {
239  (void) STRNCPY(gFirewallUser, tok2);
240  } else if (ISTREQ(tok1, "firewall-pass")) {
241  (void) STRNCPY(gFirewallPass, tok2);
242  } else if (ISTREQ(tok1, "firewall-password")) {
243  (void) STRNCPY(gFirewallPass, tok2);
244  } else if (ISTREQ(tok1, "firewall-exception-list")) {
246  } else if (ISTREQ(tok1, "passive")) {
247  if (ISTREQ(tok2, "optional")) {
249  } else if (ISTREQ(tok2, "on")) {
251  } else if (ISTREQ(tok2, "off")) {
253  } else if ((int) isdigit(tok2[0])) {
255  }
256  }
257  }
258 } /* ProcessFirewallPrefFile */
#define kFirewallLastType
Definition: ncftp.h:396
int gFirewallType
Definition: preffw.c:17
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
char gFirewallUser[32]
Definition: preffw.c:19
GLdouble n
Definition: glext.h:7729
#define STRNCPY(dst, src, n)
Definition: rdesktop.h:168
#define kPassiveMode
Definition: ncftp.h:296
#define ISTREQ(a, b)
Definition: util.h:33
char gFirewallHost[64]
Definition: preffw.c:18
#define kSendPortMode
Definition: ncftp.h:295
int gDataPortMode
Definition: preffw.c:26
smooth NULL
Definition: ftsmooth.c:416
Definition: parser.c:48
#define kFallBackToSendPortMode
Definition: ncftp.h:297
#define isdigit(c)
Definition: acclib.h:68
char gFirewallPass[32]
Definition: preffw.c:20
char line[200]
Definition: main.c:97
_Check_return_opt_ _CRTIMP char *__cdecl fgets(_Out_writes_z_(_MaxCount) char *_Buf, _In_ int _MaxCount, _Inout_ FILE *_File)
char gFirewallExceptionList[256]
Definition: preffw.c:21
char * strtok(char *String, const char *Delimiters)
Definition: utclib.c:338
_Check_return_ int __cdecl atoi(_In_z_ const char *_Str)
unsigned int gFirewallPort
Definition: preffw.c:22
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
int gFwDataPortMode
Definition: preffw.c:31

Referenced by LoadFirewallPrefs().

◆ ProcessPrefsFile()

void ProcessPrefsFile ( FILE *const  fp)

Definition at line 520 of file pref.c.

521 {
522  char line[1024];
523  char *tok1, *tok2;
524  int t;
525 
526  line[sizeof(line) - 1] = '\0';
527  while (fgets(line, sizeof(line) - 1, fp) != NULL) {
528  tok1 = strtok(line, " =\t\r\n");
529  if ((tok1 == NULL) || (tok1[0] == '#'))
530  continue;
531  tok2 = strtok(NULL, "\r\n");
532  if (tok2 == NULL)
533  continue;
534 
535  for (t=0; t<gNumPrefOpts; t++) {
536  if (ISTREQ(tok1, gPrefOpts[t].varname)) {
537  if (gPrefOpts[t].visible == kPrefOptObselete) {
538  /* Probably converting an
539  * old 2.4.2 file.
540  */
541  gPrefsDirty++;
542  } else if (gPrefOpts[t].proc != (PrefProc) 0) {
543  (*gPrefOpts[t].proc)(t, tok2, NULL);
544  }
545  }
546  }
547  }
548 } /* ProcessPrefsFile */
PrefOpt gPrefOpts[]
Definition: pref.c:73
GLdouble GLdouble t
Definition: gl.h:2047
static HANDLE proc()
Definition: pdb.c:32
#define ISTREQ(a, b)
Definition: util.h:33
smooth NULL
Definition: ftsmooth.c:416
Definition: parser.c:48
PrefProc proc
Definition: pref.h:33
char line[200]
Definition: main.c:97
_Check_return_opt_ _CRTIMP char *__cdecl fgets(_Out_writes_z_(_MaxCount) char *_Buf, _In_ int _MaxCount, _Inout_ FILE *_File)
int gNumPrefOpts
Definition: pref.c:113
char * strtok(char *String, const char *Delimiters)
Definition: utclib.c:338
int gPrefsDirty
Definition: pref.c:67
#define kPrefOptObselete
Definition: pref.h:37
void(* PrefProc)(int i, const char *const, FILE *const fp)
Definition: pref.h:30

Referenced by LoadPrefs().

◆ SavePrefs()

void SavePrefs ( void  )

Definition at line 695 of file pref.c.

696 {
697  char pathName[256];
698  char pathName2[256];
699  char tName[32];
700  int t;
701  FILE *fp;
702 
703  if (gPrefsDirty == 0)
704  return; /* Don't need to save -- no changes made. */
705 
706  (void) OurDirectoryPath(pathName, sizeof(pathName), kPrefFileName);
707 
708  (void) sprintf(tName, "tpref%06u.txt", (unsigned int) getpid());
709  (void) OurDirectoryPath(pathName2, sizeof(pathName2), tName);
710 
711  fp = fopen(pathName2, FOPEN_WRITE_TEXT);
712  if (fp == NULL) {
713  perror("could not save preferences file");
714  } else {
715  (void) fprintf(fp, "%s", "# NcFTP 3 preferences file\n# This file is loaded and overwritten each time NcFTP is run.\n#\n");
716  for (t=0; t<gNumPrefOpts; t++) {
717  if (gPrefOpts[t].visible != kPrefOptObselete) {
718  (void) fprintf(fp, "%s=", gPrefOpts[t].varname);
719  (*gPrefOpts[t].proc)(t, NULL, fp);
720  (void) fprintf(fp, "\n");
721  }
722  }
723  (void) fclose(fp);
724  (void) unlink(pathName);
725  if (rename(pathName2, pathName) < 0) {
726  perror("could not finish saving preferences file");
727  (void) unlink(pathName2);
728  };
729  }
730 } /* SavePrefs */
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
PrefOpt gPrefOpts[]
Definition: pref.c:73
GLdouble GLdouble t
Definition: gl.h:2047
#define unlink
Definition: syshdrs.h:54
char * OurDirectoryPath(char *const dst, const size_t siz, const char *const fname)
Definition: util.c:486
#define FOPEN_WRITE_TEXT
Definition: syshdrs.h:83
#define sprintf(buf, format,...)
Definition: sprintf.c:55
_Check_return_ int __cdecl rename(_In_z_ const char *_OldFilename, _In_z_ const char *_NewFilename)
_CRTIMP void __cdecl perror(_In_opt_z_ const char *_ErrMsg)
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
smooth NULL
Definition: ftsmooth.c:416
#define kPrefFileName
Definition: pref.h:23
_CRTIMP int __cdecl getpid(void)
PrefProc proc
Definition: pref.h:33
_Check_return_opt_ _CRTIMP int __cdecl fclose(_Inout_ FILE *_File)
_Check_return_ _CRTIMP FILE *__cdecl fopen(_In_z_ const char *_Filename, _In_z_ const char *_Mode)
int gNumPrefOpts
Definition: pref.c:113
int gPrefsDirty
Definition: pref.c:67
#define kPrefOptObselete
Definition: pref.h:37

Referenced by PostShell().

◆ Set()

void Set ( const char * const  ,
const char * const   
)

Definition at line 430 of file pref.c.

431 {
432  int t;
433 
434  if ((tok1 == NULL) || (ISTREQ(tok1, "all"))) {
435  /* Show all. */
436  for (t=0; t<gNumPrefOpts; t++) {
437  if (gPrefOpts[t].visible == kPrefOptVisible)
438  Show1(t);
439  }
440  } else if (tok2 == NULL) {
441  /* Show one. */
442  for (t=0; t<gNumPrefOpts; t++) {
443  if (ISTREQ(tok1, gPrefOpts[t].varname)) {
444  if (gPrefOpts[t].visible == kPrefOptObselete) {
445  (void) printf("The \"%s\" option is obselete or not implemented.\n", tok1);
446  } else {
447  Show1(t);
448  }
449  break;
450  }
451  }
452  if (t >= gNumPrefOpts) {
453  (void) printf("Unknown option \"%s\" -- try \"show all\" to list available options.\n", tok1);
454  }
455  } else {
456  /* Set one. */
457  for (t=0; t<gNumPrefOpts; t++) {
458  if (ISTREQ(tok1, gPrefOpts[t].varname)) {
459  if (gPrefOpts[t].visible == kPrefOptObselete) {
460  (void) printf("The \"%s\" option is obselete or not implemented.\n", tok1);
461  } else if (gPrefOpts[t].proc != (PrefProc) 0) {
462  (*gPrefOpts[t].proc)(t, tok2, NULL);
463  gPrefsDirty++;
464  }
465  break;
466  }
467  }
468  if (t >= gNumPrefOpts) {
469  (void) printf("Unknown option \"%s\" -- try \"show all\" to list available options.\n", tok1);
470  }
471  }
472 } /* Set */
#define kPrefOptVisible
Definition: pref.h:39
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
PrefOpt gPrefOpts[]
Definition: pref.c:73
GLdouble GLdouble t
Definition: gl.h:2047
static HANDLE proc()
Definition: pdb.c:32
#define ISTREQ(a, b)
Definition: util.h:33
smooth NULL
Definition: ftsmooth.c:416
PrefProc proc
Definition: pref.h:33
static void Show1(int t)
Definition: pref.c:415
int gNumPrefOpts
Definition: pref.c:113
int gPrefsDirty
Definition: pref.c:67
#define kPrefOptObselete
Definition: pref.h:37
void(* PrefProc)(int i, const char *const, FILE *const fp)
Definition: pref.h:30
#define printf
Definition: config.h:203

◆ SetAnonPass()

void SetAnonPass ( int  ,
const char * const  ,
FILE * const   
)

◆ SetAutoAscii()

void SetAutoAscii ( int  t,
const char *const  val,
FILE *const  fp 
)

◆ SetAutoResume()

void SetAutoResume ( int  ,
const char * const  ,
FILE * const   
)

◆ SetAutoSaveChangesToExistingBookmarks()

void SetAutoSaveChangesToExistingBookmarks ( int  t,
const char *const  val,
FILE *const  fp 
)

◆ SetConfirmClose()

void SetConfirmClose ( int  ,
const char * const  ,
FILE * const   
)

◆ SetConnTimeout()

void SetConnTimeout ( int  ,
const char * const  ,
FILE * const   
)

◆ SetCtrlTimeout()

void SetCtrlTimeout ( int  ,
const char * const  ,
FILE * const   
)

◆ SetLogSize()

void SetLogSize ( int  t,
const char *const  val,
FILE *const  fp 
)

◆ SetNoAds()

void SetNoAds ( int  t,
const char *const  val,
FILE *const  fp 
)

◆ SetOneTimeMessages()

void SetOneTimeMessages ( int  t,
const char *const  val,
FILE * const   
)

◆ SetPager()

void SetPager ( int  ,
const char * const  ,
FILE * const   
)

◆ SetPassive()

void SetPassive ( int  ,
const char * const  ,
FILE * const   
)

◆ SetProgressMeter()

void SetProgressMeter ( int  ,
const char * const  ,
FILE * const   
)

◆ SetRedialDelay()

void SetRedialDelay ( int  t,
const char *const  val,
FILE *const  fp 
)

◆ SetSavePasswords()

void SetSavePasswords ( int  ,
const char * const  ,
FILE * const   
)

◆ SetSeenOneTimeMessage()

void SetSeenOneTimeMessage ( const char *const  msg)

Definition at line 494 of file pref.c.

495 {
496  gPrefsDirty++;
497  if (gOneTimeMessagesSeen[0] == '\0')
499  else {
502  }
503 } /* SetSeenOneTimeMessage */
#define STRNCPY(dst, src, n)
Definition: rdesktop.h:168
#define STRNCAT(d, s)
Definition: Strn.h:48
#define msg(x)
Definition: auth_time.c:54
char gOneTimeMessagesSeen[256]
Definition: pref.c:47
int gPrefsDirty
Definition: pref.c:67

Referenced by OneTimeMessage().

◆ SetSOBufsize()

void SetSOBufsize ( int  t,
const char *const  val,
FILE *const  fp 
)

◆ SetXferTimeout()

void SetXferTimeout ( int  ,
const char * const  ,
FILE * const   
)

◆ SetXtTitle()

void SetXtTitle ( int  ,
const char * const  ,
FILE * const   
)

◆ WriteDefaultFirewallPrefs()

void WriteDefaultFirewallPrefs ( FILE )

Definition at line 39 of file preffw.c.

40 {
41  char *cp;
42  time_t now;
43 
45  cp = strchr(gLib.ourHostName, '.');
46 
47  (void) fprintf(fp, "%s", "\
48 # NcFTP firewall preferences\n\
49 # ==========================\n\
50 #\n\
51 ");
52 
53  (void) fprintf(fp, "%s", "\
54 # If you need to use a proxy for FTP, you can configure it below.\n\
55 # If you do not need one, leave the ``firewall-type'' variable set\n\
56 # to 0. Any line that does not begin with the ``#'' character is\n\
57 # considered a configuration command line.\n\
58 ");
59  (void) fprintf(fp, "%s", "\
60 #\n\
61 # NOTE: NcFTP does NOT support HTTP proxies that do FTP, such as \"squid\"\n\
62 # or Netscape Proxy Server. Why? Because you have to communicate with\n\
63 # them using HTTP, and this is a FTP only program.\n\
64 ");
65  (void) fprintf(fp, "%s", "\
66 #\n\
67 # Types of firewalls:\n\
68 # ------------------\n\
69 #\n\
70 # type 1: Connect to firewall host, but send \"USER user@real.host.name\"\n\
71 #\n\
72 ");
73  (void) fprintf(fp, "%s", "\
74 # type 2: Connect to firewall, login with \"USER fwuser\" and\n\
75 # \"PASS fwpassword\", and then \"USER user@real.host.name\"\n\
76 #\n\
77 # type 3: Connect to and login to firewall, and then use\n\
78 # \"SITE real.host.name\", followed by the regular USER and PASS.\n\
79 #\n\
80 ");
81  (void) fprintf(fp, "%s", "\
82 # type 4: Connect to and login to firewall, and then use\n\
83 # \"OPEN real.host.name\", followed by the regular USER and PASS.\n\
84 #\n\
85 # type 5: Connect to firewall host, but send\n\
86 # \"USER user@fwuser@real.host.name\" and\n\
87 # \"PASS pass@fwpass\" to login.\n\
88 #\n\
89 ");
90  (void) fprintf(fp, "%s", "\
91 # type 6: Connect to firewall host, but send\n\
92 # \"USER fwuser@real.host.name\" and\n\
93 # \"PASS fwpass\" followed by a regular\n\
94 # \"USER user\" and\n\
95 # \"PASS pass\" to complete the login.\n\
96 #\n\
97 ");
98  (void) fprintf(fp, "%s", "\
99 # type 7: Connect to firewall host, but send\n\
100 # \"USER user@real.host.name fwuser\" and\n\
101 # \"PASS pass\" followed by\n\
102 # \"ACCT fwpass\" to complete the login.\n\
103 #\n\
104 # type 0: Do NOT use a firewall (most users will choose this).\n\
105 #\n\
106 firewall-type=0\n\
107 #\n\
108 #\n\
109 #\n\
110 ");
111  (void) fprintf(fp, "%s", "\
112 # The ``firewall-host'' variable should be the IP address or hostname of\n\
113 # your firewall server machine.\n\
114 #\n\
115 ");
116 
117  if (cp == NULL) {
118  (void) fprintf(fp, "firewall-host=firewall.domain.com\n");
119  } else {
120  (void) fprintf(fp, "firewall-host=firewall%s\n", cp);
121  }
122 
123  (void) fprintf(fp, "%s", "\
124 #\n\
125 #\n\
126 #\n\
127 # The ``firewall-user'' variable tells NcFTP what to use as the user ID\n\
128 # when it logs in to the firewall before connecting to the outside world.\n\
129 #\n\
130 ");
131  (void) fprintf(fp, "firewall-user=%s\n", gUser);
132  (void) fprintf(fp, "%s", "\
133 #\n\
134 #\n\
135 #\n\
136 # The ``firewall-password'' variable is the password associated with\n\
137 # the firewall-user ID. If you set this here, be sure to change the\n\
138 # permissions on this file so that no one (except the superuser) can\n\
139 # see your password. You may also leave this commented out, and then\n\
140 # NcFTP will prompt you each time for the password.\n\
141 ");
142  (void) fprintf(fp, "%s", "\
143 #\n\
144 firewall-password=fwpass\n\
145 #\n\
146 #\n\
147 #\n\
148 # Your firewall may require you to connect to a non-standard port for\n\
149 # outside FTP services, instead of the internet standard port number (21).\n\
150 #\n\
151 firewall-port=21\n\
152 ");
153  (void) fprintf(fp, "%s", "\
154 #\n\
155 #\n\
156 #\n\
157 # You probably do not want to FTP to the firewall for hosts on your own\n\
158 # domain. You can set ``firewall-exception-list'' to a list of domains\n\
159 # or hosts where the firewall should not be used. For example, if your\n\
160 # domain was ``probe.net'' you could set this to ``.probe.net''.\n\
161 #\n\
162 ");
163  (void) fprintf(fp, "%s", "\
164 # If you leave this commented out, the default behavior is to attempt to\n\
165 # lookup the current domain, and exclude hosts for it. Otherwise, set it\n\
166 # to a list of comma-delimited domains or hostnames. The special token\n\
167 # ``localdomain'' is used for unqualified hostnames, so if you want hosts\n\
168 # without explicit domain names to avoid the firewall, be sure to include\n\
169 # that in your list.\n\
170 #\n\
171 ");
172 
173  if (cp != NULL) {
174  (void) fprintf(fp, "firewall-exception-list=%s,localhost,localdomain\n", cp);
175  } else {
176  (void) fprintf(fp, "firewall-exception-list=.probe.net,localhost,foo.bar.com,localdomain\n");
177  }
178 
179  (void) fprintf(fp, "%s", "\
180 #\n\
181 #\n\
182 #\n\
183 # You may also specify passive mode here. Normally this is set in the\n\
184 # regular $HOME/.ncftp/prefs file. This must be set to one of\n\
185 # \"on\", \"off\", or \"optional\", which mean always use PASV,\n\
186 # always use PORT, and try PASV then PORT, respectively.\n\
187 #\n\
188 #passive=on\n");
189 
190  time(&now);
191  (void) fprintf(fp, "\
192 #\n\
193 #\n\
194 #\n\
195 # NOTE: This file was created for you on %s\
196 # by NcFTP %.5s. Removing this file will cause the next run of NcFTP\n\
197 # to generate a new one, possibly with more configurable options.\n",
198  ctime(&now),
199  gVersion + 11);
200  (void) fprintf(fp, "\
201 #\n\
202 # ALSO: A %s file, if present, is processed before this file,\n\
203 # and a %s file, if present, is processed after.\n",
206  );
207 } /* CreateDefaultFirewallPrefs */
char gUser[]
Definition: util.c:14
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
char ourHostName[64]
Definition: ncftp.h:118
__u16 time
Definition: mkdosfs.c:366
void FTPInitializeOurHostName(const FTPLIPtr)
Definition: open.c:63
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
time_t now
Definition: finger.c:65
smooth NULL
Definition: ftsmooth.c:416
char gVersion[]
Definition: init.c:22
__u16 ctime
Definition: mkdosfs.c:362
FTPLibraryInfo gLib
Definition: main.c:36
__kernel_time_t time_t
Definition: linux.h:252
char * strchr(const char *String, int ch)
Definition: utclib.c:501
#define kGlobalFirewallPrefFileName
Definition: pref.h:19
POINT cp
Definition: magnifier.c:59
#define kGlobalFixedFirewallPrefFileName
Definition: pref.h:20

Referenced by DumpFirewallPrefsTemplate(), and LoadFirewallPrefs().