X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=lib%2Finit.c;h=536a56c605ac75111b10ba0e142d7690c1b41649;hb=6874f61e24438ca6f4c54319ed52306bd5d349f9;hp=dde97d773062d8438e7c3c972a821740f275949d;hpb=98f5fee87dc8e02673c8793d697338b543eba8f8;p=deb_libnfs.git diff --git a/lib/init.c b/lib/init.c index dde97d7..536a56c 100644 --- a/lib/init.c +++ b/lib/init.c @@ -16,11 +16,17 @@ */ #define _GNU_SOURCE + +#if defined(WIN32) +#include +#else +#include +#include +#endif + #include #include -#include #include -#include #include #include #include @@ -35,7 +41,6 @@ struct rpc_context *rpc_init_context(void) rpc = malloc(sizeof(struct rpc_context)); if (rpc == NULL) { - printf("Failed to allocate rpc context\n"); return NULL; } bzero(rpc, sizeof(struct rpc_context)); @@ -43,14 +48,16 @@ struct rpc_context *rpc_init_context(void) rpc->encodebuflen = 65536; rpc->encodebuf = malloc(rpc->encodebuflen); if (rpc->encodebuf == NULL) { - printf("Failed to allocate a buffer for rpc encoding\n"); free(rpc); 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) { - printf("failed to create authunix\n"); free(rpc->encodebuf); free(rpc); return NULL; @@ -62,6 +69,18 @@ struct rpc_context *rpc_init_context(void) } +struct rpc_context *rpc_init_udp_context(void) +{ + struct rpc_context *rpc; + + rpc = rpc_init_context(); + if (rpc != NULL) { + rpc->is_udp = 1; + } + + return rpc; +} + void rpc_set_auth(struct rpc_context *rpc, struct AUTH *auth) { if (rpc->auth != NULL) { @@ -126,7 +145,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) { @@ -139,6 +162,11 @@ void rpc_destroy_context(struct rpc_context *rpc) rpc->error_string = NULL; } + if (rpc->udp_dest != NULL) { + free(rpc->udp_dest); + rpc->udp_dest = NULL; + } + free(rpc); }