ID |
Date |
Icon |
Author |
Author Email |
Category |
OS |
ELOG Version |
Subject |
66814
|
Mon May 10 09:55:12 2010 |
| Stefan Ritt | stefan.ritt@psi.ch | Bug report | Linux | Other | 2.7.8 | Re: elogd -C failing to sync password file with "Received invalid response from elogd server" message | Hi Rouilj,
re-posting your bug report doe not help. If I'm not replying immediately it means I'm pretty busy with other things, so just be patient.
Your problem is related to the reply from the server you posted. After you send
GET /Discussion/?cmd=GetPwdFile
you should get the login page, which starts with
HTTP/1.1 200 Document follows
....
<title>ELOG Login</title>
....
but you do get
HTTP/1.1 404 Not Found
....
The best thing to diagnose this problem is to run the server with the "-v" flag, so you don't have to run truss. Then compare the request sent by your cloning process (your GET /Discussion/?cmd=GetPwdFiel from above) and compare it if you send from your browser
http://host.example.org:8080/Discussion/?cmd=GetPwdFile
now without sending any cookies. Maybe you can figure out why the server replies with a 404 instead of a 200 when run from the cloning process. Try a very simple elogd.cfg on your sever side, just the basic thing with a "Password file = ..." setting. Do you have any blanks in your logbook name? Are you using Apache as a proxy?
Anyhow, if this does not work for you, just copy your password file manually as you did already. The rest should then work fine for you.
- Stefan |
66816
|
Wed May 12 16:30:45 2010 |
| Stefan Ritt | stefan.ritt@psi.ch | Question | Windows | 2.7.8-2293 | Re: HTML email format displays plain text if email client is offline |
Jim Covert wrote: |
My elog server is hosted behind a firewall and I use a VPN client to connect to the network on which it is hosted. When I'm logged into the VPN emails from elog display fine, but when I'm not connected to the VPN emails display in plain text because the email client is unable to load "default.css" since it's behind a firewall.
Is there a way to include the style information in the HTML email rather than in a separate file that's hosted on the elog server?
|
That's a good idea. I will consider that for a future version. |
66818
|
Fri May 14 08:57:07 2010 |
| Stefan Ritt | stefan.ritt@psi.ch | Question | Windows | 2.7.8-2294 | Re: Entry merging |
Eric Krise wrote: |
Is there a way to merge existing entries from several logbooks into a single logbook?
|
Only manually: Add "Move to" to you set of commands via "Menu commands = ...", then select one or more entries, and move them to your target logbook. |
66821
|
Fri May 14 17:03:36 2010 |
| Stefan Ritt | stefan.ritt@psi.ch | Question | Windows | 2.7.8-2294 | Re: Required Attributes |
Eric Krise wrote: |
Is there a way to require a certain attribute on reply, but not on an original entry? In some cases info. for these fields only exists on reply.
|
No. There is only "Preset on reply ..." and "Remove on reply...". You could for example require that attribute, preset it for new entries with some dummy value, and remove that value with "Remove on reply...". Maybe that works. |
66825
|
Tue May 18 13:21:32 2010 |
| Stefan Ritt | stefan.ritt@psi.ch | Bug report | Linux | Other | 2.7.8 | Re: elogd -C failing to sync password file with "Received invalid response from elogd server" message |
John Rouillard wrote: |
John Rouillard wrote: |
I think I kind of see what's happening here. In is_command_allowed you add the GetPwdFile to the list of
allowed command but only if is_admin_user is true. Since the user is guest at that point, I assume
is_admin_user returns false making is_command_allowed return false. Then the redirect is attempted by this
code sequence:
if (!is_command_allowed(lbs, command)) {
/* redirect to login page for new command */
if (strieq(command, loc("New")) && !isparam("unm")) {
check_user_password(lbs, "", "", _cmdline);
return;
}
but to me that looks like it will execute only if the command contains the word new
(or it's translated equivalent if I understand loc() properly)?? Since the command string
GetPwdFile doesn't match no login screen is presented by check_user_password.
|
The attached patch (also included inline) seems to fix the problem. I am sure it can be done more cleanly but...
--- elogd.c~ 2009-12-02 05:53:44.000000000 -0500
+++ elogd.c 2010-05-16 21:58:14.000000000 -0400
@@ -26236,6 +26236,10 @@
check_user_password(lbs, "", "", _cmdline);
return;
}
+ if (strieq(command, loc("GetPwdFile")) && !isparam("unm")) {
+ check_user_password(lbs, "", "", _cmdline);
+ return;
+ }
strencode2(str2, command, sizeof(str3));
sprintf(str, loc("Error: Command \"<b>%s</b>\" not allowed"), str2);
-- rouilj |
Ok, now I got it! The problem was that you used "Guest menu commands = ..." and I did not. So the behavior is different with that option, which is why I could not reproduce your problem initially. Now I could reproduce it and the cleanest fix is this:
--- elogd.c (revision 2294)
+++ elogd.c (working copy)
@@ -15704,7 +15704,7 @@
fgets(pwd, sizeof(pwd), stdin);
while (pwd[strlen(pwd) - 1] == '\n' || pwd[strlen(pwd) - 1] == '\r')
pwd[strlen(pwd) - 1] = 0;
- } else if (status != 200 && status != 302) {
+ } else if (status != 200 && status != 302 && status != 404) {
xfree(buffer);
*strchr(str, '?') = 0;
which is just accept the 404 response and not abort the cloning process. |
66826
|
Tue May 18 16:40:15 2010 |
| Stefan Ritt | stefan.ritt@psi.ch | Bug report | All | svn | Re: attachment filename bug & Makefile issue | > If I upload the file "000000_000000_file.txt", elog will chop the filename to "file.txt." Also, this effects
> the file's displayed "Uploaded" time. It shows the file as being uploaded on: "Tue Nov 30 00:00:00 1999"
Arghh! Why did you choose such a filename? This is the ELOG internal file format, which is YYMMDD_HHMMSS_name.ext.
For internal reasons (mainly for synchronization) the system checks every file name, and if it contains 6 numbers
followed by a "_" followed by 6 other numbers it thinks it's a valid date/time and uses that. Your time is however
0.0.0000, that's why it gets converted to some date in 1999. Do you absolutely need this functionality? While I can
easily remove the interpretation of the date, it would break the synchronization functionality and I would have to
find some other method to pass the file date/time, which would be quite some work. So if it's not too important for
you, I would like to keep it as it is.
> Makefile has the line:
>
> # flag for SSL support
> USE_SSL = 1
>
> However setting USE_SSL = 0 does not prevent the openssl libraries from being used. Same issue with USE_CRYPT.
> You have to comment them out.
>
> Lines 76-85 of Makefile should be replaced with this:
>
> ifdef USE_SSL
> ifneq ($(USE_SSL), 0)
> CFLAGS += -DHAVE_SSL
> LIBS += -lssl
> endif
> endif
>
> ifdef USE_CRYPT
> ifneq ($(USE_CRYPT), 0)
> CFLAGS += -DHAVE_CRYPT
> LIBS += -lcrypt
> endif
> endif
The original idea was that one outcomments the whole line, like
#USE_SSL = 1
which always worked, but I agree that your solution is more general, so I changed the official Makefile. Thanks for
that. |
66828
|
Wed May 19 09:57:50 2010 |
| Stefan Ritt | stefan.ritt@psi.ch | Bug report | Linux | Other | 2.7.8 | Re: elogd -C failing to sync password file with "Received invalid response from elogd server" message |
John Rouillard wrote: | Ok, so this patch fixes the problem on the client side (rather than the server side like my patch) of the
cloning process. I can't tell from the patch above but will this fix allow the cloning process to "complete"
but without the password file being copied, or does code outside the patched section try to login and get
the password file? |
Well, why don't you give it a try and let me know if the is any problem left? |
66833
|
Tue Jun 1 13:17:18 2010 |
| Stefan Ritt | stefan.ritt@psi.ch | Question | Mac OSX | 2.7.8 | Re: cannot start elog |
harley wrote: |
I have v2.7.7 of elog running on a OSX system running 10.6 I configured and installed about a year ago. It's a wonderful thing to have.
I acquired another system running 10.6 to dedicate to the elog app. I downloaded 2.7.8 and performed the following steps:
extract tarball in the desired directory
run
tar -xzvf elog-x.x.x.tar
switch to the new elog-x.x.x directory edit Makefile and elogd.cfg files as needed
to create executables
run
make
to create directories & files
run
make install
When I try to execute elog as a daemon:
elogd -c ~vulcanstaff/ELOG-Workspace/elog/elogd.cfg -D
I get the following message:
-bash: elogd: command not found
I'm not understanding why elogd cannot be found. The same message occurs when I try to test the installation with elogd -p 8080 from the sbin directory where elogd is installed.
I'm using the same Makefile and elogd.cfg files that work on the old system. My elogd and elogd.cfg files appear to be in the correct directories indicated in the Makefile:
#############################################################
#
# Directories for installation, modify if needed
#
ifndef PREFIX
PREFIX = ~vulcanstaff/ELOG-Workspace
endif
ifndef MANDIR
MANDIR = $(ROOT)$(PREFIX)/man
endif
ELOGDIR = $(ROOT)$(PREFIX)/elog
DESTDIR = $(ROOT)$(PREFIX)/bin
SDESTDIR = $(ROOT)$(PREFIX)/sbin
RCDIR = $(ROOT)$(PREFIX)/etc/rc.d/init.d
# flag for SSL support
USE_SSL = 1
# flag for crypt() support
USE_CRYPT =
#############################################################
Again, this works on the old system. Perhaps I've looked at it for too long, but I can't figure out what's going on. Assistance is greatly appreciated.
-harley
|
Some Linux systems don't have the current directory (".") in the search path, so you have to start it with
./elogd -c ....
or explicitly with
/usr/sbin/elogd -c ...
|
|