mirror of
https://gitea.psi.ch/ELOG/elog.git
synced 2026-09-12 19:33:03 +00:00
Added 'X-Elog-URL' in mail header
SVN revision: 430
This commit is contained in:
parent
eb32ebac49
commit
d233e9e053
62
src/elogd.c
62
src/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 1.40 2003/03/06 08:33:50 midas
|
||||||
|
Added 'X-Elog-URL' in mail header
|
||||||
|
|
||||||
Revision 1.39 2003/03/05 20:29:21 midas
|
Revision 1.39 2003/03/05 20:29:21 midas
|
||||||
Fixed status message for copy/move
|
Fixed status message for copy/move
|
||||||
|
|
||||||
@ -1222,7 +1225,7 @@ struct timeval timeout;
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
INT sendmail(char *smtp_host, char *from, char *to, char *subject, char *text, BOOL email_to)
|
INT sendmail(char *smtp_host, char *from, char *to, char *subject, char *text, BOOL email_to, char *url)
|
||||||
{
|
{
|
||||||
struct sockaddr_in bind_addr;
|
struct sockaddr_in bind_addr;
|
||||||
struct hostent *phe;
|
struct hostent *phe;
|
||||||
@ -1313,6 +1316,14 @@ char list[1024][NAME_LENGTH];
|
|||||||
send(s, str, strlen(str), 0);
|
send(s, str, strlen(str), 0);
|
||||||
if (verbose) puts(str);
|
if (verbose) puts(str);
|
||||||
|
|
||||||
|
snprintf(str, strsize - 1, "X-Elog-URL: %s\r\n", url);
|
||||||
|
send(s, str, strlen(str), 0);
|
||||||
|
if (verbose) puts(str);
|
||||||
|
|
||||||
|
snprintf(str, strsize - 1, "X-Elog-submit-type: web|elog\r\n");
|
||||||
|
send(s, str, strlen(str), 0);
|
||||||
|
if (verbose) puts(str);
|
||||||
|
|
||||||
snprintf(str, strsize - 1, "Content-Type: text/plain\r\n");
|
snprintf(str, strsize - 1, "Content-Type: text/plain\r\n");
|
||||||
send(s, str, strlen(str), 0);
|
send(s, str, strlen(str), 0);
|
||||||
if (verbose) puts(str);
|
if (verbose) puts(str);
|
||||||
@ -5897,7 +5908,7 @@ int i, fh, size, self_register;
|
|||||||
sprintf(url+strlen(url), "?cmd=Login&unm=%s", getparam("new_user_name"));
|
sprintf(url+strlen(url), "?cmd=Login&unm=%s", getparam("new_user_name"));
|
||||||
sprintf(mail_text+strlen(mail_text), "%s %s\r\n", loc("You can access it at"), url);
|
sprintf(mail_text+strlen(mail_text), "%s %s\r\n", loc("You can access it at"), url);
|
||||||
|
|
||||||
sendmail(smtp_host, mail_from, getparam("new_user_email"), subject, mail_text, TRUE);
|
sendmail(smtp_host, mail_from, getparam("new_user_email"), subject, mail_text, TRUE, url);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -5952,7 +5963,7 @@ int i, fh, size, self_register;
|
|||||||
loc("Logbook"), url, getparam("new_user_name"), pl);
|
loc("Logbook"), url, getparam("new_user_name"), pl);
|
||||||
}
|
}
|
||||||
|
|
||||||
sendmail(smtp_host, mail_from, email_addr, subject, mail_text, TRUE);
|
sendmail(smtp_host, mail_from, email_addr, subject, mail_text, TRUE, url);
|
||||||
}
|
}
|
||||||
|
|
||||||
pl = strtok(NULL, " ,");
|
pl = strtok(NULL, " ,");
|
||||||
@ -8672,7 +8683,7 @@ int compose_email(LOGBOOK *lbs, char *mail_to, int message_id, char attrib[MAX_N
|
|||||||
int i, j, n;
|
int i, j, n;
|
||||||
char str[NAME_LENGTH+100], mail_from[256], *mail_text, smtp_host[256], subject[256];
|
char str[NAME_LENGTH+100], mail_from[256], *mail_text, smtp_host[256], subject[256];
|
||||||
char slist[MAX_N_ATTR+10][NAME_LENGTH], svalue[MAX_N_ATTR+10][NAME_LENGTH];
|
char slist[MAX_N_ATTR+10][NAME_LENGTH], svalue[MAX_N_ATTR+10][NAME_LENGTH];
|
||||||
char list[MAX_PARAM][NAME_LENGTH];
|
char list[MAX_PARAM][NAME_LENGTH], url[256];
|
||||||
|
|
||||||
if (!getcfg("global", "SMTP host", smtp_host))
|
if (!getcfg("global", "SMTP host", smtp_host))
|
||||||
{
|
{
|
||||||
@ -8742,8 +8753,9 @@ char list[MAX_PARAM][NAME_LENGTH];
|
|||||||
strlcat(str, "/", sizeof(str));
|
strlcat(str, "/", sizeof(str));
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf(mail_text+strlen(mail_text), "\r\n%s URL : %s%d\r\n",
|
sprintf(url, "%s%d", str, message_id);
|
||||||
loc("Logbook"), str, message_id);
|
sprintf(mail_text+strlen(mail_text), "\r\n%s URL : %s\r\n",
|
||||||
|
loc("Logbook"), url);
|
||||||
|
|
||||||
if (getcfg(lbs->name, "Email message body", str) &&
|
if (getcfg(lbs->name, "Email message body", str) &&
|
||||||
atoi(str) == 1)
|
atoi(str) == 1)
|
||||||
@ -8753,9 +8765,9 @@ char list[MAX_PARAM][NAME_LENGTH];
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (getcfg(lbs->name, "Omit Email to", str) && atoi(str) == 1)
|
if (getcfg(lbs->name, "Omit Email to", str) && atoi(str) == 1)
|
||||||
sendmail(smtp_host, mail_from, mail_to, subject, mail_text, FALSE);
|
sendmail(smtp_host, mail_from, mail_to, subject, mail_text, FALSE, url);
|
||||||
else
|
else
|
||||||
sendmail(smtp_host, mail_from, mail_to, subject, mail_text, TRUE);
|
sendmail(smtp_host, mail_from, mail_to, subject, mail_text, TRUE, url);
|
||||||
|
|
||||||
if (!getcfg(lbs->name, "Display email recipients", str) ||
|
if (!getcfg(lbs->name, "Display email recipients", str) ||
|
||||||
atoi(str) == 1)
|
atoi(str) == 1)
|
||||||
@ -11359,6 +11371,11 @@ fd_set readfds;
|
|||||||
struct timeval timeout;
|
struct timeval timeout;
|
||||||
struct stat cfg_stat;
|
struct stat cfg_stat;
|
||||||
|
|
||||||
|
#ifdef OS_UNIX
|
||||||
|
uid_t saved_uid;
|
||||||
|
gid_t saved_gid;
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef OS_WINNT
|
#ifdef OS_WINNT
|
||||||
{
|
{
|
||||||
WSADATA WSAData;
|
WSADATA WSAData;
|
||||||
@ -11486,6 +11503,10 @@ struct stat cfg_stat;
|
|||||||
signal(SIGINT, ctrlc_handler);
|
signal(SIGINT, ctrlc_handler);
|
||||||
signal(SIGPIPE, SIG_IGN);
|
signal(SIGPIPE, SIG_IGN);
|
||||||
|
|
||||||
|
/* save gid/uid to regain later for deleting the PID file */
|
||||||
|
saved_gid = getegid();
|
||||||
|
saved_uid = geteuid();
|
||||||
|
|
||||||
/* give up root privilege */
|
/* give up root privilege */
|
||||||
|
|
||||||
if (geteuid() == 0)
|
if (geteuid() == 0)
|
||||||
@ -11499,11 +11520,11 @@ struct stat cfg_stat;
|
|||||||
|
|
||||||
if (gr == NULL)
|
if (gr == NULL)
|
||||||
printf("Group \"%s\" not found\n", str);
|
printf("Group \"%s\" not found\n", str);
|
||||||
else if (setgid(gr->gr_gid) < 0 || initgroups(gr->gr_name, gr->gr_gid) < 0)
|
else if (setegid(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 effective GID to group \"%s\"\n", gr->gr_name);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
setgid(getgid()); /* used for setuid programs */
|
setegid(getgid()); /* used for setuid programs */
|
||||||
|
|
||||||
if (getcfg("global", "Usr", str))
|
if (getcfg("global", "Usr", str))
|
||||||
{
|
{
|
||||||
@ -11511,11 +11532,11 @@ struct stat cfg_stat;
|
|||||||
|
|
||||||
if (pw == NULL)
|
if (pw == NULL)
|
||||||
printf("User \"%s\" not found\n", str);
|
printf("User \"%s\" not found\n", str);
|
||||||
else if (setuid(pw->pw_uid) < 0)
|
else if (seteuid(pw->pw_uid) < 0)
|
||||||
printf("Cannot set UID to user \"%s\\n", str);
|
printf("Cannot set effective UID to user \"%s\\n", str);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
setuid(getuid()); /* used for setuid programs */
|
seteuid(getuid()); /* used for setuid programs */
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -12307,8 +12328,19 @@ finished:
|
|||||||
printf("Server aborted.\n");
|
printf("Server aborted.\n");
|
||||||
|
|
||||||
#ifdef OS_UNIX
|
#ifdef OS_UNIX
|
||||||
|
|
||||||
|
/* regain original uid */
|
||||||
|
if (setegid(saved_gid) < 0 || seteuid(saved_uid) < 0)
|
||||||
|
printf("Cannot resotre original GID/UID.\n");
|
||||||
|
|
||||||
if (pidfile[0])
|
if (pidfile[0])
|
||||||
unlink(pidfile);
|
{
|
||||||
|
if (remove(pidfile) < 0)
|
||||||
|
{
|
||||||
|
sprintf(str, "Cannot remove pidfile \"%s\"\n", pidfile);
|
||||||
|
perror(str);
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user