Since I was really working with two months old version of SSSD, I made completely new mirror of the newest SSSD on my github account and made some changes in code of my sss_query, so it is compatible with it now. There should be no problem with compiling anymore.

I also went through the code and changed it according to coding guidelines. About indentation, I use 4 spaces as coding style suggests, could you please specify where do I have it wrong? I also wrapped most of lines so they are not exceeding the 80 character limit, I just have kept some of them longer, cause in my opinion they would become unreadable, if wrapped, but still they are never longer than about 100 characters.

I also corrected the memory leaks and memory handling through out the application, so hopefully it is alright now.

David Bambušek


2013/4/10 Jakub Hrozek <jhrozek@redhat.com>
On Tue, Apr 09, 2013 at 11:24:40PM +0200, David Bambušek wrote:
> Dne 25.2.2013 11:50, Jakub Hrozek napsal(a):
> >On Mon, Feb 25, 2013 at 11:11:01AM +0100, David Bambušek wrote:
> >>Greetings,
> >>my name is David Bambusek, and I am working on an application , that will
> >>be used as a tool for querying SSSD database. I am curently a student of
> >>FIT VUT Brno and this is topic of my bachelor thesis. It will be a command
> >>line application able to query various types of data, that is stored in
> >>SSSD database. I made a web page, where I will add information about this
> >>application I named sss_query, so far, you can find there information about
> >>basic user interface ( www.bambusekd.cz/sss_query.html ).
> >>
> >>My project is on my Github account
> >>https://github.com/bambusekd/SSSD.git
> >>there I created branch sss_query, where I work on my application
> >>
> >>I will be glad for any advice, recommendation or comment to it.
> >>
> >>Thanks
> >>
> >>David Bambusek
> >Hi,
> >
> >I have some questions and comments related to design:
> >
> >1) I suggest to read the thread at:
> >https://lists.fedorahosted.org/pipermail/sssd-devel/2012-February/008712.html
> >if you haven't seen it already.
> >
> >2) Have you seen samba's wbinfo tool? Maybe in your thesis you could
> >compare the two.
> >
> >3) The list of objects to operate on is incomplete. You also need to
> >work with sudo rules, SSH hosts and I would also strongly suggest
> >including domains and subdomains. (for domains, include info like sysdb
> >domain version for instance). There should also be a way to perform
> >unkeyed search (=all objects of type X).
> >
> >4) Is the output always going to include all attributes or were you
> >going to have a "human readable" and "raw" output? What about group
> >memberships? Are there any plans to merge functionality with the
> >sss_groupshow tool ?
> >
> >5) There are a couple of tickets in the SSSD trac related to this
> >effort. Depending on the scope of your thesis you might want to assign
> >them to yourself.
> >
> >The related tickets are:
> >https://fedorahosted.org/sssd/ticket/1220
> >https://fedorahosted.org/sssd/ticket/1221
> >https://fedorahosted.org/sssd/ticket/1222
> >https://fedorahosted.org/sssd/ticket/1223
> >
> >Feel free to also create another ones.
> >
> >6) Please also include plans for unit tests in your design and
> >implementation.
> >_______________________________________________
> >sssd-devel mailing list
> >sssd-devel@lists.fedorahosted.org
> >https://lists.fedorahosted.org/mailman/listinfo/sssd-devel
> Greetings,
> I have uploaded a new version of my sss_query application on my
> Github account:
>
> https://github.com/bambusekd/SSSD.git
> branch sss_query
>
> I added the missing objects and also option to perform search for
> all object of a certain type.
>
> I am still working on part for sudo rules and on tests...
>
> David Bambušek

The branch doesn't compile:

make[1]: *** No rule to make target
`src/providers/proxy/proxy_common.c', needed by
`src/providers/proxy/libsss_proxy_la-proxy_common.lo'.  Stop.

Seems like you forgot to add proxy_common.c

I would encourage you to regularly rebase your branch atop master,
currently it's almost 2 months old and the rebase is just going to get
harder.

Also please set your real name and e-mail in .gitconfig:
https://fedorahosted.org/sssd/wiki/DevelTutorials
One of the commits is authored by "root".

The code should follow our coding guidelines:
http://www.freeipa.org/page/Coding_Style

In your code the indentation seems too deep. Also please use spaces
after "if", "for" and other keywords. There's quite a couple of trailing
whitespace -- if you're a vim user you can set:
let c_no_tab_space_error=1
let c_space_errors=1
to your ~/.vimrc

Also try to keep the lines under 80 characters if possible.

I skimmed through the code real quick and I have a couple of comments
before I can actually test the tool.

* Why did you re-add srcdir to the PYTHON_TESTS directive? It was
  explicitly removed.
* I think you should learn how talloc works. Here is an excellent
  tutorial written by one of the SSSD developers:
  https://talloc.samba.org/talloc/doc/html/libtalloc__tutorial.html
  There is two patterns I see in the code that are wrong:
  ** some functions allocate tmp_ctx on NULL and never free it. That's a
  memory leak. I saw that some of the functions also allocate output
  data on mem_ctx, you should either allocate the output data on mem_ctx
  and ditch tmp_ctx or talloc_steal from tmp_ctx to mem_ctx before
  return.
  ** some functions allocate structure components on top of a memory
  context but then free the components of the structure individually
  (that's in init_domains). You can just free the top-level context.

That's it for now. It's a decent start, but needs some work before it can
be accepted upstream.
_______________________________________________
sssd-devel mailing list
sssd-devel@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/sssd-devel