Ejemplo n.º 1
0
static void source_agent_env(enum agent id)
{
    struct agent_data_t data;
    int ret = envoy_get_agent(id, &data, AGENT_ENVIRON);
    if (ret < 0)
        warn("failed to fetch envoy agent");

    switch (data.status) {
    case ENVOY_STOPPED:
    case ENVOY_STARTED:
    case ENVOY_RUNNING:
        break;
    case ENVOY_FAILED:
        warnx("agent failed to start, check envoyd's log");
    case ENVOY_BADUSER:
        warnx("connection rejected, user is unauthorized to use this agent");
    }

    if (data.type == AGENT_GPG_AGENT) {
        _cleanup_gpg_ struct gpg_t *agent = gpg_agent_connection(data.gpg, NULL);
        gpg_update_tty(agent);
    }

    if (data.gpg[0]) {
        putenvf("GPG_AGENT_INFO=%s", data.gpg);
    } else {
        unsetenv("GPG_AGENT_INFO");
    }

    putenvf("SSH_AUTH_SOCK=%s", data.sock);
}
Ejemplo n.º 2
0
static void source_env(struct agent_data_t *data)
{
    if (data->type == AGENT_GPG_AGENT) {
        _cleanup_gpg_ struct gpg_t *agent = gpg_agent_connection(data->gpg);
        if (!agent)
            warn("failed to connect to GPG_AUTH_SOCK");
        else
            gpg_update_tty(agent);
    }

    putenvf("SSH_AUTH_SOCK=%s", data->sock);
}