/*
SSSD
SSS Client Responder, command parser
Copyright (C) Simo Sorce <ssorce@redhat.com> 2008
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <errno.h>
#include "responder/common/responder.h"
#include "responder/common/responder_packet.h"
{
int ret;
/* create response packet */
return ret;
}
return EOK;
}
{
int ret;
/* num results */
/* reserved */
return EOK;
}
{
int ret;
/* create response packet */
return ret;
}
return ret;
}
return EOK;
}
{
/* now that the packet is in place, unlock queue
* making the event writable */
/* free all request related data through the talloc hierarchy */
}
{
int ret;
int i;
if (cli_protocol_version == NULL) {
}
if (cli_protocol_version != NULL) {
"Received client version [%d].\n", client_version);
i=0;
while(cli_protocol_version[i].version>0) {
break;
}
i++;
}
}
}
/* create response packet */
return ret;
}
return EOK;
}
enum sss_cli_command cmd,
struct sss_cmd_table *sss_cmds)
{
int i;
}
}
return EINVAL;
}
struct setent_req_list {
/* Need to modify the list from a talloc destructor */
void *pvt;
};
struct tevent_req *
{
}
{
return 0;
}
void *pvt,
struct setent_req_list **list,
struct tevent_req *req)
{
if (!entry) {
return ENOMEM;
}
return EOK;
}
{
/* Notify the waiting clients */
/* Each tevent_req_done() call will free
* the request, removing it from the list.
*/
} else {
}
/* The consumer failed to free the
* request. Log a bug and continue.
*/
"BUG: a callback did not free its request. "
"May leak memory\n");
/* Skip to the next since a memory leak is non-fatal */
}
}
}
{
}
/*
* Return values:
* EOK - cache hit
* EAGAIN - cache hit, but schedule off band update
* ENOENT - cache miss
*/
{
midpoint_refresh = 0;
if(cache_refresh_percent) {
/* If the percentage results in an expiration
* less than ten seconds after the lastUpdate time,
* that's too often we will simply set it to 10s
*/
}
}
if (cache_expire > now) {
/* cache still valid */
/* We're past the cache refresh timeout
* We'll return the value from the cache, but we'll also
* queue the cache entry for update out-of-band.
*/
return EAGAIN;
} else {
/* Cache is still valid. */
return EOK;
}
}
/* Cache needs to be updated */
return ENOENT;
}