Signed-off-by: Neil Brown <neilb@suse.de>
* ensure all of data on socket comes through. f==read || f==write
*/
ssize_t
* ensure all of data on socket comes through. f==read || f==write
*/
ssize_t
-atomicio(f, fd, _s, n)
- ssize_t (*f) ();
- int fd;
- void *_s;
- size_t n;
+atomicio(
+ ssize_t (*f) (int, void*, size_t),
+ int fd,
+ void *_s,
+ size_t n)
{
char *s = _s;
ssize_t res, pos = 0;
{
char *s = _s;
ssize_t res, pos = 0;
static void idtonameres(struct idmap_msg *);
static void nametoidres(struct idmap_msg *);
static void idtonameres(struct idmap_msg *);
static void nametoidres(struct idmap_msg *);
+static int nfsdopen(void);
static int nfsdopenone(struct idmap_client *);
static void nfsdreopen(void);
size_t strlcat(char *, const char *, size_t);
size_t strlcpy(char *, const char *, size_t);
static int nfsdopenone(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 (*)(), int, void *, size_t);
+ssize_t atomicio(ssize_t (*f) (int, void*, size_t),
+ int, void *, size_t);
+void release_parent(void);
static int verbose = 0;
#define DEFAULT_IDMAP_CACHE_EXPIRY 600 /* seconds */
static int verbose = 0;
#define DEFAULT_IDMAP_CACHE_EXPIRY 600 /* seconds */
bsiz = sizeof(buf) - bsiz;
bsiz = sizeof(buf) - bsiz;
- if (atomicio(write, ic->ic_fd, buf, bsiz) != bsiz)
+ if (atomicio((void*)write, ic->ic_fd, buf, bsiz) != bsiz)
idmapd_warnx("nfsdcb: write(%s) failed: errno %d (%s)",
ic->ic_path, errno, strerror(errno));
idmapd_warnx("nfsdcb: write(%s) failed: errno %d (%s)",
ic->ic_path, errno, strerror(errno));
if (im.im_status == IDMAP_STATUS_LOOKUPFAIL)
im.im_status = IDMAP_STATUS_SUCCESS;
if (im.im_status == IDMAP_STATUS_LOOKUPFAIL)
im.im_status = IDMAP_STATUS_SUCCESS;
- if (atomicio(write, ic->ic_fd, &im, sizeof(im)) != sizeof(im))
+ if (atomicio((void*)write, ic->ic_fd, &im, sizeof(im)) != sizeof(im))
idmapd_warn("nfscb: write(%s)", ic->ic_path);
out:
event_add(&ic->ic_event, NULL);
idmapd_warn("nfscb: write(%s)", ic->ic_path);
out:
event_add(&ic->ic_event, NULL);
{
return ((nfsdopenone(&nfsd_ic[IC_NAMEID]) == 0 &&
nfsdopenone(&nfsd_ic[IC_IDNAME]) == 0) ? 0 : -1);
{
return ((nfsdopenone(&nfsd_ic[IC_NAMEID]) == 0 &&
nfsdopenone(&nfsd_ic[IC_IDNAME]) == 0) ? 0 : -1);
* If retval >= siz, truncation occurred.
*/
size_t
* If retval >= siz, truncation occurred.
*/
size_t
-strlcat(dst, src, siz)
- char *dst;
- const char *src;
- size_t siz;
+strlcat(char *dst,
+ const char *src,
+ size_t siz)
{
register char *d = dst;
register const char *s = src;
{
register char *d = dst;
register const char *s = src;
* Returns strlen(src); if retval >= siz, truncation occurred.
*/
size_t
* Returns strlen(src); if retval >= siz, truncation occurred.
*/
size_t
-strlcpy(dst, src, siz)
- char *dst;
- const char *src;
- size_t siz;
+strlcpy(char *dst,
+ const char *src,
+ size_t siz)
{
register char *d = dst;
register const char *s = src;
{
register char *d = dst;
register const char *s = src;
"mount to NFS server '%s' failed: ", server);
else
pos = snprintf(tmp, (erreob - tmp),
"mount to NFS server '%s' failed: ", server);
else
pos = snprintf(tmp, (erreob - tmp),
- "%s: mount to NFS server '%s' failed: ", server);
+ "%s: mount to NFS server '%s' failed: ",
+ progname, server);
tmp = &errbuf[pos];
if (rpc_createerr.cf_stat == RPC_TIMEDOUT) {
tmp = &errbuf[pos];
if (rpc_createerr.cf_stat == RPC_TIMEDOUT) {