projects
/
privoxy.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add a -fast-redirects exception for webcache.googleusercontent.com/
[privoxy.git]
/
jcc.c
diff --git
a/jcc.c
b/jcc.c
index
5ae1a67
..
5349066
100644
(file)
--- a/
jcc.c
+++ b/
jcc.c
@@
-1,4
+1,4
@@
-const char jcc_rcs[] = "$Id: jcc.c,v 1.3
43 2011/03/27 13:52:23
fabiankeil Exp $";
+const char jcc_rcs[] = "$Id: jcc.c,v 1.3
50 2011/04/26 16:55:08
fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/jcc.c,v $
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/jcc.c,v $
@@
-1352,7
+1352,7
@@
static jb_err receive_client_request(struct client_state *csp)
{
/*
* We were able to read a complete
{
/*
* We were able to read a complete
- * header and can finaly enlist it.
+ * header and can final
l
y enlist it.
*/
enlist(headers, p);
freez(p);
*/
enlist(headers, p);
freez(p);
@@
-1495,7
+1495,7
@@
static jb_err parse_client_request(struct client_state *csp)
* this function is called (via serve()) to handle the
* main business of the communication. This function
* returns after dealing with a single request. It can
* this function is called (via serve()) to handle the
* main business of the communication. This function
* returns after dealing with a single request. It can
- * be called multiple times with
t
the same client socket
+ * be called multiple times with the same client socket
* if the client is keeping the connection alive.
*
* The decision whether or not a client connection will
* if the client is keeping the connection alive.
*
* The decision whether or not a client connection will
@@
-1599,8
+1599,8
@@
static void chat(struct client_state *csp)
csp->action->string[ACTION_STRING_LIMIT_CONNECT];
assert(NULL != acceptable_connect_ports);
log_error(LOG_LEVEL_INFO, "Request from %s marked for blocking. "
csp->action->string[ACTION_STRING_LIMIT_CONNECT];
assert(NULL != acceptable_connect_ports);
log_error(LOG_LEVEL_INFO, "Request from %s marked for blocking. "
- "limit-connect{%s} doesn't allow CONNECT requests to
port %d.
",
- csp->ip_addr_str, acceptable_connect_ports, csp->http->port);
+ "limit-connect{%s} doesn't allow CONNECT requests to
%s
",
+ csp->ip_addr_str, acceptable_connect_ports, csp->http->
host
port);
csp->action->flags |= ACTION_BLOCK;
http->ssl = 0;
}
csp->action->flags |= ACTION_BLOCK;
http->ssl = 0;
}
@@
-2863,7
+2863,6
@@
int main(int argc, char **argv)
#ifdef unix
struct passwd *pw = NULL;
struct group *grp = NULL;
#ifdef unix
struct passwd *pw = NULL;
struct group *grp = NULL;
- char *p;
int do_chroot = 0;
char *pre_chroot_nslookup_to_load_resolver = NULL;
#endif
int do_chroot = 0;
char *pre_chroot_nslookup_to_load_resolver = NULL;
#endif
@@
-2948,23
+2947,39
@@
int main(int argc, char **argv)
else if (strcmp(argv[argc_pos], "--user" ) == 0)
{
else if (strcmp(argv[argc_pos], "--user" ) == 0)
{
+ char *user_arg;
+ char *group_name;
+
if (++argc_pos == argc) usage(argv[argc_pos]);
if (++argc_pos == argc) usage(argv[argc_pos]);
- if ((NULL != (p = strchr(argv[argc_pos], '.'))) && *(p + 1) != '0')
+ user_arg = strdup(argv[argc_pos]);
+ if (NULL == user_arg)
+ {
+ log_error(LOG_LEVEL_FATAL,
+ "Out of memory splitting --user argument '%s'.", argv[argc_pos]);
+ }
+ group_name = strchr(user_arg, '.');
+ if (NULL != group_name)
{
{
- *p++ = '\0';
- if (NULL == (grp = getgrnam(p)))
+ /* Nul-terminate the user name */
+ *group_name = '\0';
+
+ /* Skip the former delimiter to actually reach the group name */
+ group_name++;
+
+ grp = getgrnam(group_name);
+ if (NULL == grp)
{
{
- log_error(LOG_LEVEL_FATAL, "Group
%s not found.", p
);
+ log_error(LOG_LEVEL_FATAL, "Group
'%s' not found.", group_name
);
}
}
}
}
-
- if (NULL ==
(pw = getpwnam(argv[argc_pos]))
)
+ pw = getpwnam(user_arg);
+ if (NULL ==
pw
)
{
{
- log_error(LOG_LEVEL_FATAL, "User
%s not found.", argv[argc_pos]
);
+ log_error(LOG_LEVEL_FATAL, "User
'%s' not found.", user_arg
);
}
}
-
if (p != NULL) *--p = '\0'
;
+
freez(user_arg)
;
}
else if (strcmp(argv[argc_pos], "--pre-chroot-nslookup" ) == 0)
}
else if (strcmp(argv[argc_pos], "--pre-chroot-nslookup" ) == 0)
@@
-3527,7
+3542,7
@@
static void listen_loop(void)
{
int child_id;
{
int child_id;
-/* this is a switch () statment in the C preprocessor - ugh */
+/* this is a switch () stat
e
ment in the C preprocessor - ugh */
#undef SELECTED_ONE_OPTION
/* Use Pthreads in preference to native code */
#undef SELECTED_ONE_OPTION
/* Use Pthreads in preference to native code */