X-Git-Url: https://git.decadent.org.uk/gitweb/?p=nfs-utils.git;a=blobdiff_plain;f=utils%2Fidmapd%2Fidmapd.c;h=e80efb4549f1f3633c5469c039f4dd6004f23398;hp=573abaaead3153817fec3667169d6267c8bf1df2;hb=014e00dfaea0efc92150e2aedc5ca43aa337545e;hpb=b25c022e58c53cedfd6bd9592f082364d002821b diff --git a/utils/idmapd/idmapd.c b/utils/idmapd/idmapd.c index 573abaa..e80efb4 100644 --- a/utils/idmapd/idmapd.c +++ b/utils/idmapd/idmapd.c @@ -117,8 +117,24 @@ struct idmap_client { TAILQ_ENTRY(idmap_client) ic_next; }; static struct idmap_client nfsd_ic[2] = { -{IC_IDNAME, "Server", "", IC_IDNAME_CHAN, -1, -1, 0}, -{IC_NAMEID, "Server", "", IC_NAMEID_CHAN, -1, -1, 0}, +{ + .ic_which = IC_IDNAME, + .ic_clid = "", + .ic_id = "Server", + .ic_path = IC_IDNAME_CHAN, + .ic_fd = -1, + .ic_dirfd = -1, + .ic_scanned = 0 +}, +{ + .ic_which = IC_NAMEID, + .ic_clid = "", + .ic_id = "Server", + .ic_path = IC_NAMEID_CHAN, + .ic_fd = -1, + .ic_dirfd = -1, + .ic_scanned = 0 +}, }; TAILQ_HEAD(idmap_clientq, idmap_client); @@ -142,10 +158,6 @@ static int nfsdopenone(struct idmap_client *); static void nfsdreopen_one(struct idmap_client *); static void nfsdreopen(void); -size_t strlcat(char *, const char *, size_t); -size_t strlcpy(char *, const char *, size_t); -ssize_t atomicio(ssize_t (*f) (int, void*, size_t), - int, void *, size_t); void mydaemon(int, int); void release_parent(void); @@ -170,7 +182,7 @@ flush_nfsd_cache(char *path, time_t now) fd = open(path, O_RDWR); if (fd == -1) return -1; - if (write(fd, stime, strlen(stime)) != strlen(stime)) { + if (write(fd, stime, strlen(stime)) != (ssize_t)strlen(stime)) { errx(1, "Flushing nfsd cache failed: errno %d (%s)", errno, strerror(errno)); } @@ -381,7 +393,7 @@ main(int argc, char **argv) } static void -dirscancb(int fd, short which, void *data) +dirscancb(int UNUSED(fd), short UNUSED(which), void *data) { int nent, i; struct dirent **ents; @@ -465,13 +477,13 @@ out: } static void -svrreopen(int fd, short which, void *data) +svrreopen(int UNUSED(fd), short UNUSED(which), void *UNUSED(data)) { nfsdreopen(); } static void -clntscancb(int fd, short which, void *data) +clntscancb(int UNUSED(fd), short UNUSED(which), void *data) { struct idmap_clientq *icq = data; struct idmap_client *ic; @@ -485,7 +497,7 @@ clntscancb(int fd, short which, void *data) } static void -nfsdcb(int fd, short which, void *data) +nfsdcb(int UNUSED(fd), short which, void *data) { struct idmap_client *ic = data; struct idmap_msg im; @@ -660,7 +672,7 @@ imconv(struct idmap_client *ic, struct idmap_msg *im) } static void -nfscb(int fd, short which, void *data) +nfscb(int UNUSED(fd), short which, void *data) { struct idmap_client *ic = data; struct idmap_msg im; @@ -766,8 +778,8 @@ nfsopen(struct idmap_client *ic) } else { event_set(&ic->ic_event, ic->ic_fd, EV_READ, nfscb, ic); event_add(&ic->ic_event, NULL); - fcntl(ic->ic_dirfd, F_SETSIG, 0); fcntl(ic->ic_dirfd, F_NOTIFY, 0); + fcntl(ic->ic_dirfd, F_SETSIG, 0); if (verbose > 0) xlog_warn("Opened %s", ic->ic_path); } @@ -845,7 +857,7 @@ nametoidres(struct idmap_msg *im) static int validateascii(char *string, u_int32_t len) { - int i; + u_int32_t i; for (i = 0; i < len; i++) { if (string[i] == '\0') @@ -901,7 +913,7 @@ static int getfield(char **bpp, char *fld, size_t fldsz) { char *bp; - u_int val, n; + int val, n; while ((bp = strsep(bpp, " ")) != NULL && bp[0] == '\0') ; @@ -913,9 +925,9 @@ getfield(char **bpp, char *fld, size_t fldsz) if (*bp == '\\') { if ((n = sscanf(bp, "\\%03o", &val)) != 1) return (-1); - if (val > (char)-1) + if (val > UCHAR_MAX) return (-1); - *fld++ = (char)val; + *fld++ = val; bp += 4; } else { *fld++ = *bp;