IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 20209


Ignore:
Timestamp:
Oct 16, 2008, 1:53:01 PM (18 years ago)
Author:
jhoblitt
Message:

add nebclient:nebSetXattr()

Location:
trunk/Nebulous
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous/Changes

    r20131 r20209  
    88    - add Nebulous::Client->swap() method
    99    - add neb-swap
     10    - add nebclient:nebSetXattr()
    1011
    11120.09 Wed Jul  9 16:36:27 HST 2008
  • trunk/Nebulous/nebclient/src/nebclient.c

    r20110 r20209  
    44 * Copyright (C) 2005  Joshua Hoblitt
    55 *
    6  * $Id: nebclient.c,v 1.51 2008-10-13 22:11:09 jhoblitt Exp $
     6 * $Id: nebclient.c,v 1.52 2008-10-16 23:53:01 jhoblitt Exp $
    77 */
    88
     
    333333}
    334334
     335
     336bool nebSetXattr(nebServer *server, const char *key, const char *name, const char *value, nebCR flag)
     337{
     338
     339    REQUIRE_SERVER;
     340
     341    if (!key) {
     342        nebSetErr(server, "parameter 'key' may not be NULL");
     343        return false;
     344    }
     345    if (!name) {
     346        nebSetErr(server, "parameter 'name' may not be NULL");
     347        return false;
     348    }
     349    if (!value) {
     350        nebSetErr(server, "parameter 'value' may not be NULL");
     351        return false;
     352    }
     353
     354    char *type = flag == NEB_CREATE ? "create" : "replace";
     355
     356    int response;
     357    if (soap_call_ns1__setxattr_USCOREobject(server->soap, server->endpoint,
     358        NULL, (char *)key, (char *)name, (char *)value, type, &response) != SOAP_OK) {
     359        nebSetServerErr(server);
     360        return false;
     361    }
     362
     363    if (!response) {
     364        nebSetErr(server, "can not set xattr");
     365        return false;
     366    }
     367
     368    return true;
     369}
     370
     371
    335372nebObjectInstances *nebFindInstances(nebServer *server, const char *key, const char *volume)
    336373{
  • trunk/Nebulous/nebclient/src/nebclient.h

    r20110 r20209  
    44 * Copyright (C) 2005  Joshua Hoblitt
    55 *
    6  * $Id: nebclient.h,v 1.33 2008-10-13 22:11:09 jhoblitt Exp $
     6 * $Id: nebclient.h,v 1.34 2008-10-16 23:53:01 jhoblitt Exp $
    77 */
    88
     
    2020
    2121typedef enum { NEB_READ, NEB_WRITE } nebRW;
     22typedef enum { NEB_CREATE, NEB_REPLACE } nebCR;
    2223
    2324/** Represents a "connection" to a Nebulous server
     
    142143);
    143144
     145/** Set an Xattr on a storage object
     146 *
     147 * @return true on success
     148 */
     149bool nebSetXattr(
     150    nebServer *server,                  ///< nebServer object
     151    const char *key,                    ///< storage object key (name)
     152    const char *name,                   ///< xattr name
     153    const char *value,                  ///< xattr value
     154    nebCR flag                          ///< flag: "create"|"replace"
     155);
     156
    144157/** Lists all instances of a storage object
    145158 *
  • trunk/Nebulous/nebclient/tests/tests.c

    r20129 r20209  
    1919    char            *key = "foobarbaz";
    2020
    21     plan_tests(23);
     21    plan_tests(24);
    2222
    2323    if (getenv("NEB_SERVER")) {
     
    9494    neb_ok(server, nebUnlock(server, key, NEB_READ), "unlock object read");
    9595
     96    neb_ok(server, nebSetXattr(server, key, "user.copies", "2",  NEB_CREATE), "set user.copies xattr");
     97
    9698    {
    9799        nebObjectInstances *locations = NULL;
Note: See TracChangeset for help on using the changeset viewer.