mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-08 17:13:56 +00:00
Workaround for Konqueror browser
SVN revision: 84
This commit is contained in:
parent
4dc473d4e7
commit
367373964c
32
elogd.c
32
elogd.c
@ -6,6 +6,9 @@
|
|||||||
Contents: Web server program for Electronic Logbook ELOG
|
Contents: Web server program for Electronic Logbook ELOG
|
||||||
|
|
||||||
$Log$
|
$Log$
|
||||||
|
Revision 2.3 2002/06/07 14:22:00 midas
|
||||||
|
Workaround for Konqueror browser
|
||||||
|
|
||||||
Revision 2.2 2002/06/07 11:58:43 midas
|
Revision 2.2 2002/06/07 11:58:43 midas
|
||||||
'Display search' can now supress display of '#', 'Logbook' and 'Date'
|
'Display search' can now supress display of '#', 'Logbook' and 'Date'
|
||||||
|
|
||||||
@ -196,6 +199,7 @@ char header_buffer[1000];
|
|||||||
int return_length;
|
int return_length;
|
||||||
char host_name[256];
|
char host_name[256];
|
||||||
char referer[256];
|
char referer[256];
|
||||||
|
char browser[256];
|
||||||
char cfg_file[256];
|
char cfg_file[256];
|
||||||
char cfg_dir[256];
|
char cfg_dir[256];
|
||||||
char tcp_hostname[256];
|
char tcp_hostname[256];
|
||||||
@ -5400,8 +5404,12 @@ int i, j, n, missing, first, index, n_attr, n_mail, suppress, message_id;
|
|||||||
rsprintf("Keep-Alive: timeout=60, max=10\r\n");
|
rsprintf("Keep-Alive: timeout=60, max=10\r\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
rsprintf("Location: %d%s\r\n\r\n<html>redir</html>\r\n",
|
if (strstr(browser, "Konqueror"))
|
||||||
message_id, mail_param);
|
rsprintf("Location: %s/%d%s\r\n\r\n<html>redir</html>\r\n",
|
||||||
|
lbs->name_enc, message_id, mail_param);
|
||||||
|
else
|
||||||
|
rsprintf("Location: %d%s\r\n\r\n<html>redir</html>\r\n",
|
||||||
|
message_id, mail_param);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
/*------------------------------------------------------------------*/
|
||||||
@ -7451,7 +7459,9 @@ struct timeval timeout;
|
|||||||
{
|
{
|
||||||
gr = getgrnam(str);
|
gr = getgrnam(str);
|
||||||
|
|
||||||
if (setgid(gr->gr_gid) < 0 || initgroups(gr->gr_name, gr->gr_gid) < 0)
|
if (gr == NULL)
|
||||||
|
printf("Group \"%s\" not found\n", str);
|
||||||
|
else if (setgid(gr->gr_gid) < 0 || initgroups(gr->gr_name, gr->gr_gid) < 0)
|
||||||
printf("Cannot set GID to group \"%s\"\n", gr->gr_name);
|
printf("Cannot set GID to group \"%s\"\n", gr->gr_name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -7461,7 +7471,9 @@ struct timeval timeout;
|
|||||||
{
|
{
|
||||||
pw = getpwnam(str);
|
pw = getpwnam(str);
|
||||||
|
|
||||||
if (setuid(pw->pw_uid) < 0)
|
if (pw == NULL)
|
||||||
|
printf("User \"%s\" not found\n", str);
|
||||||
|
else if (setuid(pw->pw_uid) < 0)
|
||||||
printf("Cannot set UID to user \"%s\\n", str);
|
printf("Cannot set UID to user \"%s\\n", str);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -7765,6 +7777,18 @@ struct timeval timeout;
|
|||||||
*p = 0;
|
*p = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* extract browser */
|
||||||
|
browser[0] = 0;
|
||||||
|
if ((p = strstr(net_buffer, "User-Agent:")) != NULL)
|
||||||
|
{
|
||||||
|
p += 11;
|
||||||
|
while (*p && *p == ' ')
|
||||||
|
p++;
|
||||||
|
strncpy(browser, p, sizeof(browser));
|
||||||
|
if (strchr(browser, '\r'))
|
||||||
|
*strchr(browser, '\r') = 0;
|
||||||
|
}
|
||||||
|
|
||||||
memset(return_buffer, 0, sizeof(return_buffer));
|
memset(return_buffer, 0, sizeof(return_buffer));
|
||||||
strlen_retbuf = 0;
|
strlen_retbuf = 0;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user