On Thu, 2008-10-23 at 16:18 +0200, Sascha Wilde wrote:
> 1.) It seems that some code in deliver/auth-client.c has been revised
>     after it was copied to expire/auth-client.c, this is a small problem
>     as I would expect simply using the newer code to be the right
>     thing[tm].

Yes, I haven't really looked at expire/auth-client.c much lately.

> 2.) The exported interface in the respective auth-client.h files is
>     different.  The solution would be to figure out what the right
>     interface would be and change the current code to use it.  My
>     problem I'm not sure what the right interface would look like, for
>     my use the one in expire/auth-client.h looks more compelling, what
>     do you think?

Perhaps something like:

struct auth_user_reply {
        uid_t uid;
        gid_t gid;
        const char *home, *chroot;
        ARRAY_TYPE(const_string) extra_fields;
};

struct auth_connection *auth_connection_init(const char *auth_socket);
void auth_connection_deinit(struct auth_connection *conn);

/* Returns -1 = error, 0 = user not found, 1 = ok */
int auth_connection_lookup(struct auth_connection *conn, const char *user,
                           struct auth_user_reply *reply_r);

I'm not sure about the struct, but maybe something like that. deliver
would then use the struct to set up environment etc.

> 3.) The deliver version does more than I need, and most certainly more
>     than it should in the generic case: the most obvious example is that
>     it sets up RESTRICT_* environment and calls
>     restrict_access_by_env(TRUE); which surely is nothing I want to
>     do in my code...

Right. And in general putting all the stuff to environment directly
isn't that good. With v1.3's config rewrite I'm hoping to get rid of all
this environment usage.

> finally ask the author of the expire plugin to change his code

That'd basically be me.

> - Clean but grows the API: export another function from auth-client,
>   which does not set env-vars but returns the requested data in some
>   struct.

Yep.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to