/* Process a command packet that entered on a TLS pool socket */ static void process_command (struct command *cmd) { tlog (TLOG_UNIXSOCK, LOG_DEBUG, "Processing command 0x%08x", cmd->cmd.pio_cmd); union pio_data *d = &cmd->cmd.pio_data; if (is_callback (cmd)) { post_callback (cmd); return; } switch (cmd->cmd.pio_cmd) { case PIOC_PING_V1: strcpy (d->pioc_ping.YYYYMMDD_producer, TLSPOOL_IDENTITY_V1); send_command (cmd, -1); return; case PIOC_STARTTLS_CLIENT_V1: starttls_client (cmd); return; case PIOC_STARTTLS_SERVER_V1: starttls_server (cmd); return; case PIOC_PINENTRY_V1: register_pinentry_command (cmd); return; default: send_error (cmd, ENOSYS, "Command not implemented"); return; } }
static int lockd_authenticate(struct svc_rqst *rqstp) { rqstp->rq_client = NULL; switch (rqstp->rq_authop->flavour) { case RPC_AUTH_NULL: case RPC_AUTH_UNIX: if (rqstp->rq_proc == 0) return SVC_OK; if (is_callback(rqstp->rq_proc)) { return SVC_OK; } return svc_set_client(rqstp); } return SVC_DENIED; }
static int lockd_authenticate(struct svc_rqst *rqstp) { rqstp->rq_client = NULL; switch (rqstp->rq_authop->flavour) { case RPC_AUTH_NULL: case RPC_AUTH_UNIX: if (rqstp->rq_proc == 0) return SVC_OK; if (is_callback(rqstp->rq_proc)) { /* Leave it to individual procedures to * call nlmsvc_lookup_host(rqstp) */ return SVC_OK; } return svc_set_client(rqstp); } return SVC_DENIED; }