forked from mirrors/tftp-hpa-google
		
	Improve README file; set the default prefix to /usr; add debugging of
the remapping process.
This commit is contained in:
		
							parent
							
								
									304cb0877c
								
							
						
					
					
						commit
						b98d08b5d4
					
				
					 4 changed files with 31 additions and 4 deletions
				
			
		
							
								
								
									
										6
									
								
								README
									
										
									
									
									
								
							
							
						
						
									
										6
									
								
								README
									
										
									
									
									
								
							| 
						 | 
					@ -118,7 +118,7 @@ support, although I made a fair amount of mostly stylistic changes to
 | 
				
			||||||
their code.
 | 
					their code.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Adding the -r option (disable a specific option), the "timeout"
 | 
					Adding the -r option (disable a specific option), the "timeout"
 | 
				
			||||||
option, and converting to using autoconf for setup was my own code, as
 | 
					option, converting to using autoconf for setup, and any additions
 | 
				
			||||||
are any bugs introduced in this merge, and any features added to the
 | 
					listed in the Changes list above, has all been my own code, as are any
 | 
				
			||||||
Changes list above.
 | 
					bugs introduced in the merge.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,6 +3,7 @@ dnl autoconf input file to generate MCONFIG
 | 
				
			||||||
dnl
 | 
					dnl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AC_INIT(MCONFIG.in)
 | 
					AC_INIT(MCONFIG.in)
 | 
				
			||||||
 | 
					AC_PREFIX_DEFAULT(/usr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AC_PROG_CC
 | 
					AC_PROG_CC
 | 
				
			||||||
AC_C_CONST
 | 
					AC_C_CONST
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -21,6 +21,7 @@
 | 
				
			||||||
#include <ctype.h>
 | 
					#include <ctype.h>
 | 
				
			||||||
#include <syslog.h>
 | 
					#include <syslog.h>
 | 
				
			||||||
#include <regex.h>
 | 
					#include <regex.h>
 | 
				
			||||||
 | 
					#include <syslog.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "tftpd.h"
 | 
					#include "tftpd.h"
 | 
				
			||||||
#include "remap.h"
 | 
					#include "remap.h"
 | 
				
			||||||
| 
						 | 
					@ -249,6 +250,10 @@ char *rewrite_string(const char *input, const struct rule *rules, int is_put)
 | 
				
			||||||
  int was_match = 0;
 | 
					  int was_match = 0;
 | 
				
			||||||
  int deadman = DEADMAN_MAX_STEPS;
 | 
					  int deadman = DEADMAN_MAX_STEPS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ( verbosity >= 3 ) {
 | 
				
			||||||
 | 
					    syslog(LOG_INFO, "remap: input: %s", current);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for ( ruleptr = rules ; ruleptr ; ruleptr = ruleptr->next ) {
 | 
					  for ( ruleptr = rules ; ruleptr ; ruleptr = ruleptr->next ) {
 | 
				
			||||||
    if ( ((ruleptr->rule_flags & RULE_GETONLY) && is_put) ||
 | 
					    if ( ((ruleptr->rule_flags & RULE_GETONLY) && is_put) ||
 | 
				
			||||||
	 ((ruleptr->rule_flags & RULE_PUTONLY) && !is_put) ) {
 | 
						 ((ruleptr->rule_flags & RULE_PUTONLY) && !is_put) ) {
 | 
				
			||||||
| 
						 | 
					@ -256,6 +261,8 @@ char *rewrite_string(const char *input, const struct rule *rules, int is_put)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ( ! deadman-- ) {
 | 
					    if ( ! deadman-- ) {
 | 
				
			||||||
 | 
					      syslog(LOG_WARNING, "remap: Breaking loop, input = %s, last = %s",
 | 
				
			||||||
 | 
						     input, current);
 | 
				
			||||||
      free(current);
 | 
					      free(current);
 | 
				
			||||||
      return NULL;		/* Did not terminate! */
 | 
					      return NULL;		/* Did not terminate! */
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -266,6 +273,10 @@ char *rewrite_string(const char *input, const struct rule *rules, int is_put)
 | 
				
			||||||
	was_match = 1;
 | 
						was_match = 1;
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
	if ( ruleptr->rule_flags & RULE_ABORT ) {
 | 
						if ( ruleptr->rule_flags & RULE_ABORT ) {
 | 
				
			||||||
 | 
						  if ( verbosity >= 3 ) {
 | 
				
			||||||
 | 
						    syslog(LOG_INFO, "remap: rule %d: abort",
 | 
				
			||||||
 | 
							   ruleptr->nrule, current);
 | 
				
			||||||
 | 
						  }
 | 
				
			||||||
	  free(current);
 | 
						  free(current);
 | 
				
			||||||
	  return(NULL);
 | 
						  return(NULL);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					@ -276,6 +287,10 @@ char *rewrite_string(const char *input, const struct rule *rules, int is_put)
 | 
				
			||||||
	  genmatchstring(newstr, ruleptr->pattern, current, pmatch);
 | 
						  genmatchstring(newstr, ruleptr->pattern, current, pmatch);
 | 
				
			||||||
	  free(current);
 | 
						  free(current);
 | 
				
			||||||
	  current = newstr;
 | 
						  current = newstr;
 | 
				
			||||||
 | 
						  if ( verbosity >= 3 ) {
 | 
				
			||||||
 | 
						    syslog(LOG_INFO, "remap: rule %d: rewrite: %s",
 | 
				
			||||||
 | 
							   ruleptr->nrule, current);
 | 
				
			||||||
 | 
						  }
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
      } else {
 | 
					      } else {
 | 
				
			||||||
	break;			/* No match, terminate unconditionally */
 | 
						break;			/* No match, terminate unconditionally */
 | 
				
			||||||
| 
						 | 
					@ -287,12 +302,21 @@ char *rewrite_string(const char *input, const struct rule *rules, int is_put)
 | 
				
			||||||
      was_match = 0;
 | 
					      was_match = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if ( ruleptr->rule_flags & RULE_EXIT ) {
 | 
					      if ( ruleptr->rule_flags & RULE_EXIT ) {
 | 
				
			||||||
	break;			/* Exit here, we're done */
 | 
						if ( verbosity >= 3 ) {
 | 
				
			||||||
 | 
						  syslog(LOG_INFO, "remap: rule %d: exit", ruleptr->nrule);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return current;		/* Exit here, we're done */
 | 
				
			||||||
      } else if ( ruleptr->rule_flags & RULE_RESTART ) {
 | 
					      } else if ( ruleptr->rule_flags & RULE_RESTART ) {
 | 
				
			||||||
	ruleptr = rules;	/* Start from the top */
 | 
						ruleptr = rules;	/* Start from the top */
 | 
				
			||||||
 | 
						if ( verbosity >= 3 ) {
 | 
				
			||||||
 | 
						  syslog(LOG_INFO, "remap: rule %d: restart", ruleptr->nrule);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if ( verbosity >= 3 ) {
 | 
				
			||||||
 | 
					    syslog(LOG_INFO, "remap: done");
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  return current;
 | 
					  return current;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -51,6 +51,8 @@ void set_signal(int, void (*)(int), int);
 | 
				
			||||||
void *tfmalloc(size_t);
 | 
					void *tfmalloc(size_t);
 | 
				
			||||||
char *tfstrdup(const char *);
 | 
					char *tfstrdup(const char *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int verbosity;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef __GNUC__
 | 
					#ifdef __GNUC__
 | 
				
			||||||
#define UNUSED __attribute__((unused))
 | 
					#define UNUSED __attribute__((unused))
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue