diff options
| author | Gluster Ant <bugzilla-bot@gluster.org> | 2018-09-12 17:52:45 +0530 | 
|---|---|---|
| committer | Nigel Babu <nigelb@redhat.com> | 2018-09-12 17:52:45 +0530 | 
| commit | e16868dede6455cab644805af6fe1ac312775e13 (patch) | |
| tree | 15aebdb4fff2d87cf8a72f836816b3aa634da58d /rpc/rpc-lib/src/auth-glusterfs.c | |
| parent | 45a71c0548b6fd2c757aa2e7b7671a1411948894 (diff) | |
Land part 2 of clang-format changes
Change-Id: Ia84cc24c8924e6d22d02ac15f611c10e26db99b4
Signed-off-by: Nigel Babu <nigelb@redhat.com>
Diffstat (limited to 'rpc/rpc-lib/src/auth-glusterfs.c')
| -rw-r--r-- | rpc/rpc-lib/src/auth-glusterfs.c | 615 | 
1 files changed, 298 insertions, 317 deletions
diff --git a/rpc/rpc-lib/src/auth-glusterfs.c b/rpc/rpc-lib/src/auth-glusterfs.c index 78f283557b0..d569a0403f8 100644 --- a/rpc/rpc-lib/src/auth-glusterfs.c +++ b/rpc/rpc-lib/src/auth-glusterfs.c @@ -8,8 +8,6 @@    cases as published by the Free Software Foundation.  */ - -  #include "rpcsvc.h"  #include "list.h"  #include "dict.h" @@ -21,386 +19,369 @@  /* V1 */  ssize_t -xdr_to_glusterfs_auth (char *buf, struct auth_glusterfs_parms *req) +xdr_to_glusterfs_auth(char *buf, struct auth_glusterfs_parms *req)  { -        XDR     xdr; -        ssize_t ret = -1; - -        if ((!buf) || (!req)) -                return -1; - -        xdrmem_create (&xdr, buf, sizeof (struct auth_glusterfs_parms), -                       XDR_DECODE); -        if (!xdr_auth_glusterfs_parms (&xdr, req)) { -                gf_log ("", GF_LOG_WARNING, -                        "failed to decode glusterfs parameters"); -                ret  = -1; -                goto ret; -        } - -        ret = (((size_t)(&xdr)->x_private) - ((size_t)(&xdr)->x_base)); -ret: -        return ret; +    XDR xdr; +    ssize_t ret = -1; +    if ((!buf) || (!req)) +        return -1; + +    xdrmem_create(&xdr, buf, sizeof(struct auth_glusterfs_parms), XDR_DECODE); +    if (!xdr_auth_glusterfs_parms(&xdr, req)) { +        gf_log("", GF_LOG_WARNING, "failed to decode glusterfs parameters"); +        ret = -1; +        goto ret; +    } + +    ret = (((size_t)(&xdr)->x_private) - ((size_t)(&xdr)->x_base)); +ret: +    return ret;  }  int -auth_glusterfs_request_init (rpcsvc_request_t *req, void *priv) +auth_glusterfs_request_init(rpcsvc_request_t *req, void *priv)  { -        return 0; +    return 0;  } -int auth_glusterfs_authenticate (rpcsvc_request_t *req, void *priv) +int +auth_glusterfs_authenticate(rpcsvc_request_t *req, void *priv)  { -        struct auth_glusterfs_parms  au = {0,}; - -        int ret      = RPCSVC_AUTH_REJECT; -        int j        = 0; -        int i        = 0; -        int gidcount = 0; - -        if (!req) -                return ret; - -        ret = xdr_to_glusterfs_auth (req->cred.authdata, &au); -        if (ret == -1) { -                gf_log ("", GF_LOG_WARNING, -                        "failed to decode glusterfs credentials"); -                ret = RPCSVC_AUTH_REJECT; -                goto err; -        } - -        req->pid = au.pid; -        req->uid = au.uid; -        req->gid = au.gid; -        req->lk_owner.len = 8; -        { -                for (i = 0; i < req->lk_owner.len; i++, j += 8) -                        req->lk_owner.data[i] = (char)((au.lk_owner >> j) & 0xff); -        } -        req->auxgidcount = au.ngrps; - -        if (req->auxgidcount > 16) { -                gf_log ("", GF_LOG_WARNING, -                        "more than 16 aux gids found, failing authentication"); -                ret = RPCSVC_AUTH_REJECT; -                goto err; -        } - -	if (req->auxgidcount > SMALL_GROUP_COUNT) { -		req->auxgidlarge = GF_CALLOC(req->auxgidcount, -					     sizeof(req->auxgids[0]), -					     gf_common_mt_auxgids); -		req->auxgids = req->auxgidlarge; -	} else { -		req->auxgids = req->auxgidsmall; -	} - -	if (!req->auxgids) { -		gf_log ("auth-glusterfs", GF_LOG_WARNING, -			"cannot allocate gid list"); -		ret = RPCSVC_AUTH_REJECT; -		goto err; -	} - -        for (gidcount = 0; gidcount < au.ngrps; ++gidcount) -                req->auxgids[gidcount] = au.groups[gidcount]; - - -        gf_log (GF_RPCSVC, GF_LOG_TRACE, "Auth Info: pid: %u, uid: %d" -                ", gid: %d, owner: %s", -                req->pid, req->uid, req->gid, lkowner_utoa (&req->lk_owner)); -        ret = RPCSVC_AUTH_ACCEPT; -err: +    struct auth_glusterfs_parms au = { +        0, +    }; + +    int ret = RPCSVC_AUTH_REJECT; +    int j = 0; +    int i = 0; +    int gidcount = 0; + +    if (!req)          return ret; + +    ret = xdr_to_glusterfs_auth(req->cred.authdata, &au); +    if (ret == -1) { +        gf_log("", GF_LOG_WARNING, "failed to decode glusterfs credentials"); +        ret = RPCSVC_AUTH_REJECT; +        goto err; +    } + +    req->pid = au.pid; +    req->uid = au.uid; +    req->gid = au.gid; +    req->lk_owner.len = 8; +    { +        for (i = 0; i < req->lk_owner.len; i++, j += 8) +            req->lk_owner.data[i] = (char)((au.lk_owner >> j) & 0xff); +    } +    req->auxgidcount = au.ngrps; + +    if (req->auxgidcount > 16) { +        gf_log("", GF_LOG_WARNING, +               "more than 16 aux gids found, failing authentication"); +        ret = RPCSVC_AUTH_REJECT; +        goto err; +    } + +    if (req->auxgidcount > SMALL_GROUP_COUNT) { +        req->auxgidlarge = GF_CALLOC(req->auxgidcount, sizeof(req->auxgids[0]), +                                     gf_common_mt_auxgids); +        req->auxgids = req->auxgidlarge; +    } else { +        req->auxgids = req->auxgidsmall; +    } + +    if (!req->auxgids) { +        gf_log("auth-glusterfs", GF_LOG_WARNING, "cannot allocate gid list"); +        ret = RPCSVC_AUTH_REJECT; +        goto err; +    } + +    for (gidcount = 0; gidcount < au.ngrps; ++gidcount) +        req->auxgids[gidcount] = au.groups[gidcount]; + +    gf_log(GF_RPCSVC, GF_LOG_TRACE, +           "Auth Info: pid: %u, uid: %d" +           ", gid: %d, owner: %s", +           req->pid, req->uid, req->gid, lkowner_utoa(&req->lk_owner)); +    ret = RPCSVC_AUTH_ACCEPT; +err: +    return ret;  }  rpcsvc_auth_ops_t auth_glusterfs_ops = { -        .transport_init         = NULL, -        .request_init           = auth_glusterfs_request_init, -        .authenticate           = auth_glusterfs_authenticate -}; - -rpcsvc_auth_t rpcsvc_auth_glusterfs = { -        .authname       = "AUTH_GLUSTERFS", -        .authnum        = AUTH_GLUSTERFS, -        .authops        = &auth_glusterfs_ops, -        .authprivate    = NULL -}; +    .transport_init = NULL, +    .request_init = auth_glusterfs_request_init, +    .authenticate = auth_glusterfs_authenticate}; +rpcsvc_auth_t rpcsvc_auth_glusterfs = {.authname = "AUTH_GLUSTERFS", +                                       .authnum = AUTH_GLUSTERFS, +                                       .authops = &auth_glusterfs_ops, +                                       .authprivate = NULL};  rpcsvc_auth_t * -rpcsvc_auth_glusterfs_init (rpcsvc_t *svc, dict_t *options) +rpcsvc_auth_glusterfs_init(rpcsvc_t *svc, dict_t *options)  { -        return &rpcsvc_auth_glusterfs; +    return &rpcsvc_auth_glusterfs;  }  /* V2 */  ssize_t -xdr_to_glusterfs_auth_v2 (char *buf, struct auth_glusterfs_parms_v2 *req) +xdr_to_glusterfs_auth_v2(char *buf, struct auth_glusterfs_parms_v2 *req)  { -        XDR     xdr; -        ssize_t ret = -1; +    XDR xdr; +    ssize_t ret = -1; -        if ((!buf) || (!req)) -                return -1; +    if ((!buf) || (!req)) +        return -1; -        xdrmem_create (&xdr, buf, GF_MAX_AUTH_BYTES, XDR_DECODE); -        if (!xdr_auth_glusterfs_parms_v2 (&xdr, req)) { -                gf_log ("", GF_LOG_WARNING, -                        "failed to decode glusterfs v2 parameters"); -                ret  = -1; -                goto ret; -        } +    xdrmem_create(&xdr, buf, GF_MAX_AUTH_BYTES, XDR_DECODE); +    if (!xdr_auth_glusterfs_parms_v2(&xdr, req)) { +        gf_log("", GF_LOG_WARNING, "failed to decode glusterfs v2 parameters"); +        ret = -1; +        goto ret; +    } -        ret = (((size_t)(&xdr)->x_private) - ((size_t)(&xdr)->x_base)); +    ret = (((size_t)(&xdr)->x_private) - ((size_t)(&xdr)->x_base));  ret: -        return ret; - +    return ret;  }  int -auth_glusterfs_v2_request_init (rpcsvc_request_t *req, void *priv) +auth_glusterfs_v2_request_init(rpcsvc_request_t *req, void *priv)  { -        return 0; +    return 0;  } -int auth_glusterfs_v2_authenticate (rpcsvc_request_t *req, void *priv) +int +auth_glusterfs_v2_authenticate(rpcsvc_request_t *req, void *priv)  { -        struct auth_glusterfs_parms_v2  au = {0,}; -        int ret                            = RPCSVC_AUTH_REJECT; -        int i                              = 0; -        int max_groups                     = 0; -        int max_lk_owner_len               = 0; - -        if (!req) -                return ret; - -        ret = xdr_to_glusterfs_auth_v2 (req->cred.authdata, &au); -        if (ret == -1) { -                gf_log ("", GF_LOG_WARNING, -                        "failed to decode glusterfs credentials"); -                ret = RPCSVC_AUTH_REJECT; -                goto err; -        } - -        req->pid = au.pid; -        req->uid = au.uid; -        req->gid = au.gid; -        req->lk_owner.len = au.lk_owner.lk_owner_len; -        req->auxgidcount = au.groups.groups_len; - -        /* the number of groups and size of lk_owner depend on each other */ -        max_groups = GF_AUTH_GLUSTERFS_MAX_GROUPS (req->lk_owner.len, -                                                   AUTH_GLUSTERFS_v2); -        max_lk_owner_len = GF_AUTH_GLUSTERFS_MAX_LKOWNER (req->auxgidcount, -                                                          AUTH_GLUSTERFS_v2); - -        if (req->auxgidcount > max_groups) { -                gf_log ("", GF_LOG_WARNING, -                        "more than max aux gids found (%d) , truncating it " -                        "to %d and continuing", au.groups.groups_len, -                        max_groups); -                req->auxgidcount = max_groups; -        } - -        if (req->lk_owner.len > max_lk_owner_len) { -                gf_log ("", GF_LOG_WARNING, -                        "lkowner field to big (%d), depends on the number of " -                        "groups (%d), failing authentication", -                        req->lk_owner.len, req->auxgidcount); -                ret = RPCSVC_AUTH_REJECT; -                goto err; -        } - -	if (req->auxgidcount > SMALL_GROUP_COUNT) { -		req->auxgidlarge = GF_CALLOC(req->auxgidcount, -					     sizeof(req->auxgids[0]), -					     gf_common_mt_auxgids); -		req->auxgids = req->auxgidlarge; -	} else { -		req->auxgids = req->auxgidsmall; -	} - -	if (!req->auxgids) { -		gf_log ("auth-glusterfs-v2", GF_LOG_WARNING, -			"cannot allocate gid list"); -		ret = RPCSVC_AUTH_REJECT; -		goto err; -	} - -        for (i = 0; i < req->auxgidcount; ++i) -                req->auxgids[i] = au.groups.groups_val[i]; - -        for (i = 0; i < au.lk_owner.lk_owner_len; ++i) -                req->lk_owner.data[i] = au.lk_owner.lk_owner_val[i]; - - -        gf_log (GF_RPCSVC, GF_LOG_TRACE, "Auth Info: pid: %u, uid: %d" -                ", gid: %d, owner: %s", -                req->pid, req->uid, req->gid, lkowner_utoa (&req->lk_owner)); -        ret = RPCSVC_AUTH_ACCEPT; +    struct auth_glusterfs_parms_v2 au = { +        0, +    }; +    int ret = RPCSVC_AUTH_REJECT; +    int i = 0; +    int max_groups = 0; +    int max_lk_owner_len = 0; + +    if (!req) +        return ret; + +    ret = xdr_to_glusterfs_auth_v2(req->cred.authdata, &au); +    if (ret == -1) { +        gf_log("", GF_LOG_WARNING, "failed to decode glusterfs credentials"); +        ret = RPCSVC_AUTH_REJECT; +        goto err; +    } + +    req->pid = au.pid; +    req->uid = au.uid; +    req->gid = au.gid; +    req->lk_owner.len = au.lk_owner.lk_owner_len; +    req->auxgidcount = au.groups.groups_len; + +    /* the number of groups and size of lk_owner depend on each other */ +    max_groups = GF_AUTH_GLUSTERFS_MAX_GROUPS(req->lk_owner.len, +                                              AUTH_GLUSTERFS_v2); +    max_lk_owner_len = GF_AUTH_GLUSTERFS_MAX_LKOWNER(req->auxgidcount, +                                                     AUTH_GLUSTERFS_v2); + +    if (req->auxgidcount > max_groups) { +        gf_log("", GF_LOG_WARNING, +               "more than max aux gids found (%d) , truncating it " +               "to %d and continuing", +               au.groups.groups_len, max_groups); +        req->auxgidcount = max_groups; +    } + +    if (req->lk_owner.len > max_lk_owner_len) { +        gf_log("", GF_LOG_WARNING, +               "lkowner field to big (%d), depends on the number of " +               "groups (%d), failing authentication", +               req->lk_owner.len, req->auxgidcount); +        ret = RPCSVC_AUTH_REJECT; +        goto err; +    } + +    if (req->auxgidcount > SMALL_GROUP_COUNT) { +        req->auxgidlarge = GF_CALLOC(req->auxgidcount, sizeof(req->auxgids[0]), +                                     gf_common_mt_auxgids); +        req->auxgids = req->auxgidlarge; +    } else { +        req->auxgids = req->auxgidsmall; +    } + +    if (!req->auxgids) { +        gf_log("auth-glusterfs-v2", GF_LOG_WARNING, "cannot allocate gid list"); +        ret = RPCSVC_AUTH_REJECT; +        goto err; +    } + +    for (i = 0; i < req->auxgidcount; ++i) +        req->auxgids[i] = au.groups.groups_val[i]; + +    for (i = 0; i < au.lk_owner.lk_owner_len; ++i) +        req->lk_owner.data[i] = au.lk_owner.lk_owner_val[i]; + +    gf_log(GF_RPCSVC, GF_LOG_TRACE, +           "Auth Info: pid: %u, uid: %d" +           ", gid: %d, owner: %s", +           req->pid, req->uid, req->gid, lkowner_utoa(&req->lk_owner)); +    ret = RPCSVC_AUTH_ACCEPT;  err: -        /* TODO: instead use alloca() for these variables */ -        free (au.groups.groups_val); -        free (au.lk_owner.lk_owner_val); +    /* TODO: instead use alloca() for these variables */ +    free(au.groups.groups_val); +    free(au.lk_owner.lk_owner_val); -        return ret; +    return ret;  }  rpcsvc_auth_ops_t auth_glusterfs_ops_v2 = { -        .transport_init         = NULL, -        .request_init           = auth_glusterfs_v2_request_init, -        .authenticate           = auth_glusterfs_v2_authenticate -}; - -rpcsvc_auth_t rpcsvc_auth_glusterfs_v2 = { -        .authname       = "AUTH_GLUSTERFS-v2", -        .authnum        = AUTH_GLUSTERFS_v2, -        .authops        = &auth_glusterfs_ops_v2, -        .authprivate    = NULL -}; +    .transport_init = NULL, +    .request_init = auth_glusterfs_v2_request_init, +    .authenticate = auth_glusterfs_v2_authenticate}; +rpcsvc_auth_t rpcsvc_auth_glusterfs_v2 = {.authname = "AUTH_GLUSTERFS-v2", +                                          .authnum = AUTH_GLUSTERFS_v2, +                                          .authops = &auth_glusterfs_ops_v2, +                                          .authprivate = NULL};  rpcsvc_auth_t * -rpcsvc_auth_glusterfs_v2_init (rpcsvc_t *svc, dict_t *options) +rpcsvc_auth_glusterfs_v2_init(rpcsvc_t *svc, dict_t *options)  { -        return &rpcsvc_auth_glusterfs_v2; +    return &rpcsvc_auth_glusterfs_v2;  }  /* V3 */  ssize_t -xdr_to_glusterfs_auth_v3 (char *buf, struct auth_glusterfs_params_v3 *req) +xdr_to_glusterfs_auth_v3(char *buf, struct auth_glusterfs_params_v3 *req)  { -        XDR     xdr; -        ssize_t ret = -1; +    XDR xdr; +    ssize_t ret = -1; -        if ((!buf) || (!req)) -                return -1; +    if ((!buf) || (!req)) +        return -1; -        xdrmem_create (&xdr, buf, GF_MAX_AUTH_BYTES, XDR_DECODE); -        if (!xdr_auth_glusterfs_params_v3 (&xdr, req)) { -                gf_log ("", GF_LOG_WARNING, -                        "failed to decode glusterfs v3 parameters"); -                ret  = -1; -                goto ret; -        } +    xdrmem_create(&xdr, buf, GF_MAX_AUTH_BYTES, XDR_DECODE); +    if (!xdr_auth_glusterfs_params_v3(&xdr, req)) { +        gf_log("", GF_LOG_WARNING, "failed to decode glusterfs v3 parameters"); +        ret = -1; +        goto ret; +    } -        ret = (((size_t)(&xdr)->x_private) - ((size_t)(&xdr)->x_base)); +    ret = (((size_t)(&xdr)->x_private) - ((size_t)(&xdr)->x_base));  ret: -        return ret; +    return ret;  }  int -auth_glusterfs_v3_request_init (rpcsvc_request_t *req, void *priv) +auth_glusterfs_v3_request_init(rpcsvc_request_t *req, void *priv)  { -        return 0; +    return 0;  } -int auth_glusterfs_v3_authenticate (rpcsvc_request_t *req, void *priv) +int +auth_glusterfs_v3_authenticate(rpcsvc_request_t *req, void *priv)  { -        struct auth_glusterfs_params_v3  au = {0,}; -        int ret                            = RPCSVC_AUTH_REJECT; -        int i                              = 0; -        int max_groups                     = 0; -        int max_lk_owner_len               = 0; - -        if (!req) -                return ret; - -        ret = xdr_to_glusterfs_auth_v3 (req->cred.authdata, &au); -        if (ret == -1) { -                gf_log ("", GF_LOG_WARNING, -                        "failed to decode glusterfs credentials"); -                ret = RPCSVC_AUTH_REJECT; -                goto err; -        } - -        req->pid = au.pid; -        req->uid = au.uid; -        req->gid = au.gid; -        req->lk_owner.len = au.lk_owner.lk_owner_len; -        req->auxgidcount = au.groups.groups_len; - -        /* the number of groups and size of lk_owner depend on each other */ -        max_groups = GF_AUTH_GLUSTERFS_MAX_GROUPS (req->lk_owner.len, -                                                   AUTH_GLUSTERFS_v3); -        max_lk_owner_len = GF_AUTH_GLUSTERFS_MAX_LKOWNER (req->auxgidcount, -                                                          AUTH_GLUSTERFS_v3); - -        if (req->auxgidcount > max_groups) { -                gf_log ("", GF_LOG_WARNING, -                        "more than max aux gids found (%d) , truncating it " -                        "to %d and continuing", au.groups.groups_len, -                        max_groups); -                req->auxgidcount = max_groups; -        } - -        if (req->lk_owner.len > max_lk_owner_len) { -                gf_log ("", GF_LOG_WARNING, -                        "lkowner field to big (%d), depends on the number of " -                        "groups (%d), failing authentication", -                        req->lk_owner.len, req->auxgidcount); -                ret = RPCSVC_AUTH_REJECT; -                goto err; -        } - -	if (req->auxgidcount > SMALL_GROUP_COUNT) { -		req->auxgidlarge = GF_CALLOC(req->auxgidcount, -					     sizeof(req->auxgids[0]), -					     gf_common_mt_auxgids); -		req->auxgids = req->auxgidlarge; -	} else { -		req->auxgids = req->auxgidsmall; -	} - -	if (!req->auxgids) { -		gf_log ("auth-glusterfs-v2", GF_LOG_WARNING, -			"cannot allocate gid list"); -		ret = RPCSVC_AUTH_REJECT; -		goto err; -	} - -        for (i = 0; i < req->auxgidcount; ++i) -                req->auxgids[i] = au.groups.groups_val[i]; - -        for (i = 0; i < au.lk_owner.lk_owner_len; ++i) -                req->lk_owner.data[i] = au.lk_owner.lk_owner_val[i]; - -        /* All new things, starting glusterfs-4.0.0 */ -        req->flags = au.flags; -        req->ctime.tv_sec = au.ctime_sec; -        req->ctime.tv_nsec = au.ctime_nsec; - -        gf_log (GF_RPCSVC, GF_LOG_TRACE, "Auth Info: pid: %u, uid: %d" -                ", gid: %d, owner: %s, flags: %d", -                req->pid, req->uid, req->gid, lkowner_utoa (&req->lk_owner), -                req->flags); -        ret = RPCSVC_AUTH_ACCEPT; +    struct auth_glusterfs_params_v3 au = { +        0, +    }; +    int ret = RPCSVC_AUTH_REJECT; +    int i = 0; +    int max_groups = 0; +    int max_lk_owner_len = 0; + +    if (!req) +        return ret; + +    ret = xdr_to_glusterfs_auth_v3(req->cred.authdata, &au); +    if (ret == -1) { +        gf_log("", GF_LOG_WARNING, "failed to decode glusterfs credentials"); +        ret = RPCSVC_AUTH_REJECT; +        goto err; +    } + +    req->pid = au.pid; +    req->uid = au.uid; +    req->gid = au.gid; +    req->lk_owner.len = au.lk_owner.lk_owner_len; +    req->auxgidcount = au.groups.groups_len; + +    /* the number of groups and size of lk_owner depend on each other */ +    max_groups = GF_AUTH_GLUSTERFS_MAX_GROUPS(req->lk_owner.len, +                                              AUTH_GLUSTERFS_v3); +    max_lk_owner_len = GF_AUTH_GLUSTERFS_MAX_LKOWNER(req->auxgidcount, +                                                     AUTH_GLUSTERFS_v3); + +    if (req->auxgidcount > max_groups) { +        gf_log("", GF_LOG_WARNING, +               "more than max aux gids found (%d) , truncating it " +               "to %d and continuing", +               au.groups.groups_len, max_groups); +        req->auxgidcount = max_groups; +    } + +    if (req->lk_owner.len > max_lk_owner_len) { +        gf_log("", GF_LOG_WARNING, +               "lkowner field to big (%d), depends on the number of " +               "groups (%d), failing authentication", +               req->lk_owner.len, req->auxgidcount); +        ret = RPCSVC_AUTH_REJECT; +        goto err; +    } + +    if (req->auxgidcount > SMALL_GROUP_COUNT) { +        req->auxgidlarge = GF_CALLOC(req->auxgidcount, sizeof(req->auxgids[0]), +                                     gf_common_mt_auxgids); +        req->auxgids = req->auxgidlarge; +    } else { +        req->auxgids = req->auxgidsmall; +    } + +    if (!req->auxgids) { +        gf_log("auth-glusterfs-v2", GF_LOG_WARNING, "cannot allocate gid list"); +        ret = RPCSVC_AUTH_REJECT; +        goto err; +    } + +    for (i = 0; i < req->auxgidcount; ++i) +        req->auxgids[i] = au.groups.groups_val[i]; + +    for (i = 0; i < au.lk_owner.lk_owner_len; ++i) +        req->lk_owner.data[i] = au.lk_owner.lk_owner_val[i]; + +    /* All new things, starting glusterfs-4.0.0 */ +    req->flags = au.flags; +    req->ctime.tv_sec = au.ctime_sec; +    req->ctime.tv_nsec = au.ctime_nsec; + +    gf_log(GF_RPCSVC, GF_LOG_TRACE, +           "Auth Info: pid: %u, uid: %d" +           ", gid: %d, owner: %s, flags: %d", +           req->pid, req->uid, req->gid, lkowner_utoa(&req->lk_owner), +           req->flags); +    ret = RPCSVC_AUTH_ACCEPT;  err: -        /* TODO: instead use alloca() for these variables */ -        free (au.groups.groups_val); -        free (au.lk_owner.lk_owner_val); +    /* TODO: instead use alloca() for these variables */ +    free(au.groups.groups_val); +    free(au.lk_owner.lk_owner_val); -        return ret; +    return ret;  }  rpcsvc_auth_ops_t auth_glusterfs_ops_v3 = { -        .transport_init         = NULL, -        .request_init           = auth_glusterfs_v3_request_init, -        .authenticate           = auth_glusterfs_v3_authenticate -}; - -rpcsvc_auth_t rpcsvc_auth_glusterfs_v3 = { -        .authname       = "AUTH_GLUSTERFS-v3", -        .authnum        = AUTH_GLUSTERFS_v3, -        .authops        = &auth_glusterfs_ops_v3, -        .authprivate    = NULL -}; +    .transport_init = NULL, +    .request_init = auth_glusterfs_v3_request_init, +    .authenticate = auth_glusterfs_v3_authenticate}; +rpcsvc_auth_t rpcsvc_auth_glusterfs_v3 = {.authname = "AUTH_GLUSTERFS-v3", +                                          .authnum = AUTH_GLUSTERFS_v3, +                                          .authops = &auth_glusterfs_ops_v3, +                                          .authprivate = NULL};  rpcsvc_auth_t * -rpcsvc_auth_glusterfs_v3_init (rpcsvc_t *svc, dict_t *options) +rpcsvc_auth_glusterfs_v3_init(rpcsvc_t *svc, dict_t *options)  { -        return &rpcsvc_auth_glusterfs_v3; +    return &rpcsvc_auth_glusterfs_v3;  }  | 
