Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 92 of 806  Not logged in ELOG logo
    icon2.gif   Re: How to access PSI Elog data from other web clients , posted by Andreas Luedeke on Thu Oct 21 00:42:42 2021 

There is a python API to access ELOG via HTTP: https://github.com/paulscherrerinstitute/py_elog

Lin Wang wrote:

We want to develop separate mobile web pages for the web applications deployed at CSNS accelerator, including the PSI Elog.

In Elog, is there RESTful API or HTTP/JSON or HTTP/XML interface for other web clients to access?

Or is there any workaround?

 

icon4.gif   elog c++ and LDAP, posted by Laurent Jean-Rigaud on Wed Feb 16 22:24:18 2022 

Hi Stefan,

I've seen that ELOG is build now with gcc-c++ now, so i tried to check rpmbuild script with all options. It seems that ldap api is different with c++ (quick search : https://www.openldap.org/lists/openldap-software/200706/msg00177.html) and elogd can not been build anymore with ldap support. :-(

# make
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -DHAVE_PAM -c -o mxml.o mxml/mxml.cxx
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -DHAVE_PAM -w -c -o crypt.o src/crypt.cxx
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -DHAVE_PAM -c -o strlcpy.o mxml/strlcpy.cxx
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -DHAVE_PAM -o elog src/elog.cxx mxml.o crypt.o strlcpy.o -lssl -lkrb5 -lldap -llber -lpam -llber
c++ -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Wno-unused-result -Imxml -DHAVE_SSL -DHAVE_KRB5 -DHAVE_LDAP -DHAVE_PAM -w -c -o auth.o src/auth.cxx
src/auth.cxx: In function ‘int auth_verify_password_ldap(LOGBOOK*, const char*, const char*, char*, int)’:
src/auth.cxx:283:60: erreur: ‘ldap_simple_bind_s’ was not declared in this scope
    bind = ldap_simple_bind_s(ldap_ld, ldap_bindDN, password);
                                                            ^
src/auth.cxx:290:26: erreur: ‘ldap_unbind’ was not declared in this scope
       ldap_unbind(ldap_ld);
                          ^
src/auth.cxx:295:23: erreur: ‘ldap_unbind’ was not declared in this scope
    ldap_unbind(ldap_ld);
                       ^
src/auth.cxx: In function ‘int ldap_adduser_file(LOGBOOK*, const char*, const char*, char*, int)’:
src/auth.cxx:323:60: erreur: ‘ldap_simple_bind_s’ was not declared in this scope
    bind = ldap_simple_bind_s(ldap_ld, ldap_bindDN, password);
                                                            ^
src/auth.cxx:330:26: erreur: ‘ldap_unbind’ was not declared in this scope
       ldap_unbind(ldap_ld);
                          ^
src/auth.cxx:358:26: erreur: ‘ldap_unbind’ was not declared in this scope
       ldap_unbind(ldap_ld);
                          ^
src/auth.cxx:369:62: erreur: ‘ldap_get_values’ was not declared in this scope
          if((values = ldap_get_values(ldap_ld,entry,attribute)) != NULL ) {
                                                              ^
src/auth.cxx:378:35: erreur: ‘ldap_value_free’ was not declared in this scope
             ldap_value_free(values);
                                   ^
src/auth.cxx:386:23: erreur: ‘ldap_unbind’ was not declared in this scope
    ldap_unbind(ldap_ld);
                       ^
src/auth.cxx: In function ‘int elog_conv(int, const pam_message**, pam_response**, void*)’:
src/auth.cxx:451:59: erreur: invalid conversion from ‘void*’ to ‘pam_response*’ [-fpermissive]
    if((*resp = calloc(num_msg, sizeof(struct pam_response))) == NULL)
                                                           ^
src/auth.cxx:456:33: erreur: invalid conversion from ‘void*’ to ‘const char*’ [-fpermissive]
    if(!(resptok = strdup(my_data))) {
                                 ^
In file included from src/elogd.h:46:0,
                 from src/auth.cxx:30:
/usr/include/string.h:172:14: erreur:   initializing argument 1 of ‘char* strdup(const char*)’ [-fpermissive]
 extern char *strdup (const char *__s)
              ^
src/auth.cxx: In function ‘int auth_verify_password(LOGBOOK*, const char*, const char*, char*, int)’:
src/auth.cxx:593:73: erreur: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
          if (get_user_line(lbs, user, NULL, NULL, NULL, NULL, NULL, NULL) == 2) {
                                                                         ^
In file included from src/auth.cxx:30:0:
src/elogd.h:282:5: erreur:   initializing argument 2 of ‘int get_user_line(LOGBOOK*, char*, char*, char*, char*, BOOL*, time_t*, int*)’ [-fpermissive]
 int get_user_line(LOGBOOK * lbs, char *user, char *password, char *full_name, char *email,
     ^
make: *** [auth.o] Erreur 1
 

Regards,

Laurent

icon1.gif   Cannot download large attachments, posted by Konstantin Olchanski on Tue Jul 14 19:29:17 2015 
Older versions of elogd have a problem with sending long attachements - the send() syscall is not protected against interrupt by SIGALARM. This seems to be fixed in non-SSL builds of current elog (version 3+), 
but for SSL builds, the error handling for the SSL_write() function looks incorrect. In addition, from OpenSSL documentation it is not clear if SSL_write() can handle signal interrupts at all.
K.O.
icon2.gif   Chinese language files updated, posted by Exaos Lee on Wed Jan 10 22:54:56 2007 eloglang-zh_CN.tgz
As the attachment.
Sorry for no update long time.
icon3.gif   How to make a table of contents, posted by Stefan Ritt on Fri Apr 27 14:06:34 2007 
For those people who have not fully understood the discussion of elog:2218, here is an example table of contents.





First Chapter

The table of contents consists of a set of [url] tags like this:

[url=#first]First chapter[/url]
[url=#second]Second chapter[/url]
[url=#thirs]Third chapter[/url]


Then the chapter header contains a tag like this:

[ANCHOR]first[/ANCHOR]

to which the browser ups if you click the corresponding entry in the table of contents.

... empty lines to full up some space ...
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.



Second chapter

You should jump here if you click on Second chapter at the table of contents.

Third chapter

You should jump here if you click on Third chapter at the table of contents.
icon1.gif   Makefile patch for OS X 10.4, posted by Alexandre Gauthier on Fri Mar 3 16:48:01 2006 makefile-osx-tiger.patch
Hello,

I had trouble compiling elog on Mac OS X 10.4, and so, I hacked the makefile around...

I had to remove the -lutil flag that was passed to ld, for some reason. My guess is that it is not needed anymore with OS X 10.4... Also, the current install section of the makefile crapped out when using /usr/bin/install, I had to use install from gnu fileutils, which I installed through fink, which took precedence in my path... (/sw/bin/install), since bsd fileutil doesn't like the -D option.

For some reason, the paths to "install" in the makefile are either defined by the $(INSTALL) variable, or called directly. This seems not to be very consistent... In any case, I just changed it to use "install", no matter where it was in my path.

I'm currently hacking up something more elegant soon enough...

Also, I noticed that the binary produced was inconsistent and sluggish with the default wild CFLAGs, so I brought them back to something a bit more casual for Darwin. I used -Os because that's what Apple uses to build most OS X software. I also use -Os in my blackdog builds (which is an embedded PowerPC device) since space and memory *does* matters.

Well, here's the patch. I doubt it will be useful to anyone except for those who have gnu fileutils installed through fink, in their paths, and find themselves unable to build elog on OS X.
icon3.gif   Shell substitution, especially interesting for running online experiments, posted by Stefan Ritt on Tue Dec 20 09:18:19 2005 
Shell substitution has been introduced in an experimental state of the current SVN version of ELOG. It woks such that the subsititution list can contain $shell(<argument>) commands. The <argument> is passed to the shell of the operating system and the result is captured and subsituted. This is handy for online experiments, where one wants to pass information automatically to elog. Assume that there is a file /tmp/runnumber containing the current run number of the experiment. All one needs to put the current run number in an attribute "Run number" is the following line in the configuration file:

Preset Run number = $shell(cat /tmp/runnumber)

This subsitution works also for the main text body. Following option will put a calendar of the current month into the text body:

Preset text = $shell(cal)

note that shell subsitution works both on Windows and Unix, the "cat" and "cal" commands are however only present under Unix, but "cat" can be replaced with its Windows counterpart "type".
icon5.gif   no availability of el8 and el9 rpm, posted by scott on Wed Feb 21 10:39:21 2024 

Hi,

I checked the RPM download page and found that there is no RPM available to install ELOG on el8 and el9 based OS.

Can someone upload the RPM for el8 and el9 on the download page of ELOG?

 

ELOG V3.1.5-3fb85fa6