Net-LibNFS

 view release on metacpan or  search on metacpan

LibNFS.xs  view on Meta::CPAN

    newCONSTSUB(gv_stashpv(PERL_NS, 0), "NFS4_F_SETLKW", newSVuv(NFS4_F_SETLKW));
    newCONSTSUB(gv_stashpv(PERL_NS, 0), "F_RDLCK", newSVuv(F_RDLCK));
    newCONSTSUB(gv_stashpv(PERL_NS, 0), "F_WRLCK", newSVuv(F_WRLCK));
    newCONSTSUB(gv_stashpv(PERL_NS, 0), "F_UNLCK", newSVuv(F_UNLCK));

# ----------------------------------------------------------------------
# Static functions

void
find_local_servers ()
    PPCODE:
        struct nfs_server_list *servers = nfs_find_local_servers();

        if (!servers) {
            XSRETURN_EMPTY;
        }

        struct nfs_server_list *srvlist = servers;
        struct nfs_server_list *cur_srv = srvlist;

        unsigned srvcount = 0;

LibNFS.xs  view on Meta::CPAN

            while (cur_srv) {
                mPUSHs( newSVpv(cur_srv->addr, 0) );
                cur_srv = cur_srv->next;
            }
        }

        free_nfs_srvr_list(srvlist);

void
mount_getexports (SV* server_sv, SV* timeout_sv=&PL_sv_undef)
    PPCODE:
        const char* server = exs_SvPVbyte_nolen(server_sv);

        struct exportnode* nodes;

        if (SvOK(timeout_sv)) {
            int timeout = SvIV(timeout_sv); // TODO
            nodes = mount_getexports_timeout(server, timeout);
        }
        else {
            nodes = mount_getexports(server);

LibNFS.xs  view on Meta::CPAN


            nlnfs_s* perl_nfs = exs_structref_ptr(nfs_sv);

            nfs_closedir( perl_nfs->nfs, nfs_dh->nfsdh );
        }

        SvREFCNT_dec(nfs_dh->perl_nfs);

void
read (SV* self_sv)
    PPCODE:
        _FORBID_VOID_CONTEXT;

        nlnfs_dh_s* nfs_dh = exs_structref_ptr(self_sv);

        SV* nfs_sv = nfs_dh->perl_nfs;

        nlnfs_s* perl_nfs = exs_structref_ptr(nfs_sv);

        unsigned retcount = 0;
        struct nfsdirent* dent = nfs_readdir( perl_nfs->nfs, nfs_dh->nfsdh );

LibNFS.xs  view on Meta::CPAN


void
DESTROY (SV* self_sv)
    CODE:
        nlnfs_fh_s* nfs_fh = exs_structref_ptr(self_sv);

        SvREFCNT_dec(nfs_fh->perl_nfs);

void
close (SV* self_sv)
    PPCODE:
        nlnfs_fh_s* nfs_fh = exs_structref_ptr(self_sv);

        SV* nfs_sv = nfs_fh->perl_nfs;

        nlnfs_s* perl_nfs = exs_structref_ptr(nfs_sv);

        int err = nfs_close(perl_nfs->nfs, nfs_fh->nfsfh);

        if (err) {
            _croak_nfs_errno(aTHX_ perl_nfs->nfs, "close", err, NULL);



( run in 0.334 second using v1.01-cache-2.11-cpan-5511b514fd6 )