version 1.4.66.2, 2012/04/23 23:40:41 |
version 1.5, 2012/03/21 10:10:37 |
Line 35 __RCSID("$NetBSD$"); |
|
Line 35 __RCSID("$NetBSD$"); |
|
|
|
/* percent_x - do %<char> expansion, abort if result buffer is too small */ |
/* percent_x - do %<char> expansion, abort if result buffer is too small */ |
|
|
char *percent_x(result, result_len, string, request) |
char * |
char *result; |
percent_x(char *result, int result_len, char *string, |
int result_len; |
struct request_info *request) |
char *string; |
|
struct request_info *request; |
|
{ |
{ |
char *bp = result; |
char *bp = result; |
char *end = result + result_len - 1; /* end of result buffer */ |
char *end = result + result_len - 1; /* end of result buffer */ |
char *expansion; |
char *expansion; |
int expansion_len; |
size_t expansion_len; |
static char ok_chars[] = "1234567890!@%-_=+:,./\ |
static const char ok_chars[] = "1234567890!@%-_=+:,./" |
abcdefghijklmnopqrstuvwxyz\ |
"abcdefghijklmnopqrstuvwxyz" |
ABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
char *str = string; |
char *str = string; |
char *cp; |
char *cp; |
int ch; |
int ch; |
Line 72 ABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
|
Line 70 ABCDEFGHIJKLMNOPQRSTUVWXYZ"; |
|
ch == 'p' ? eval_pid(request) : |
ch == 'p' ? eval_pid(request) : |
ch == 's' ? eval_server(request) : |
ch == 's' ? eval_server(request) : |
ch == 'u' ? eval_user(request) : |
ch == 'u' ? eval_user(request) : |
ch == '%' ? "%" : (tcpd_warn("unrecognized %%%c", ch), ""); |
ch == '%' ? __UNCONST("%") |
|
: (tcpd_warn("unrecognized %%%c", ch), __UNCONST("")); |
for (cp = expansion; *(cp += strspn(cp, ok_chars)); /* */ ) |
for (cp = expansion; *(cp += strspn(cp, ok_chars)); /* */ ) |
*cp = '_'; |
*cp = '_'; |
expansion_len = cp - expansion; |
expansion_len = cp - expansion; |