X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=lib%2Finit.c;h=7ef329298afb136f337d4a1d5cea2adbc4aadda5;hb=ea98629aef9428ca270a76b77e8de49e523be0e4;hp=5663f250123ef1b6bccf24b0b84feae768083961;hpb=2e4db0d14597fdb0013fb16f24b3f872d1217397;p=deb_libnfs.git diff --git a/lib/init.c b/lib/init.c index 5663f25..7ef3292 100644 --- a/lib/init.c +++ b/lib/init.c @@ -1,10 +1,7 @@ /* Copyright (C) 2010 by Ronnie Sahlberg - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2.1 of the License, or - (at your option) any later version. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -16,11 +13,17 @@ */ #define _GNU_SOURCE + +#if defined(WIN32) +#include +#else +#include +#include +#endif + #include #include -#include #include -#include #include #include #include @@ -37,7 +40,7 @@ struct rpc_context *rpc_init_context(void) if (rpc == NULL) { return NULL; } - bzero(rpc, sizeof(struct rpc_context)); + memset(rpc, 0, sizeof(struct rpc_context)); rpc->encodebuflen = 65536; rpc->encodebuf = malloc(rpc->encodebuflen); @@ -46,7 +49,11 @@ struct rpc_context *rpc_init_context(void) return NULL; } - rpc->auth = authunix_create_default(); +#if defined(WIN32) + rpc->auth = authunix_create("LibNFS", 65535, 65535, 0, NULL); +#else + rpc->auth = authunix_create_default(); +#endif if (rpc->auth == NULL) { free(rpc->encodebuf); free(rpc); @@ -76,21 +83,20 @@ void rpc_set_auth(struct rpc_context *rpc, struct AUTH *auth) if (rpc->auth != NULL) { auth_destroy(rpc->auth); } - rpc->auth = auth; + rpc->auth = (AUTH *)auth; } void rpc_set_error(struct rpc_context *rpc, char *error_string, ...) { va_list ap; - char *str; if (rpc->error_string != NULL) { free(rpc->error_string); } va_start(ap, error_string); - vasprintf(&str, error_string, ap); - rpc->error_string = str; + rpc->error_string = malloc(1024); + vsnprintf(rpc->error_string, 1024, error_string, ap); va_end(ap); } @@ -135,7 +141,11 @@ void rpc_destroy_context(struct rpc_context *rpc) rpc->auth =NULL; if (rpc->fd != -1) { - close(rpc->fd); +#if defined(WIN32) + closesocket(rpc->fd); +#else + close(rpc->fd); +#endif } if (rpc->encodebuf != NULL) {