Changeset 21461 for trunk/Nebulous/nebclient/src/nebclient.c
- Timestamp:
- Feb 12, 2009, 4:45:47 PM (17 years ago)
- File:
-
- 1 edited
-
trunk/Nebulous/nebclient/src/nebclient.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Nebulous/nebclient/src/nebclient.c
r20988 r21461 4 4 * Copyright (C) 2005 Joshua Hoblitt 5 5 * 6 * $Id: nebclient.c,v 1.5 6 2008-12-14 22:48:35 eugeneExp $6 * $Id: nebclient.c,v 1.57 2009-02-13 02:45:47 jhoblitt Exp $ 7 7 */ 8 8 … … 336 336 bool nebSetXattr(nebServer *server, const char *key, const char *name, const char *value, nebCR flag) 337 337 { 338 339 338 REQUIRE_SERVER; 340 339 … … 363 362 if (!response) { 364 363 nebSetErr(server, "can not set xattr"); 364 return false; 365 } 366 367 return true; 368 } 369 370 371 char *nebGetXattr(nebServer *server, const char *key, const char *name) 372 { 373 REQUIRE_SERVER; 374 375 if (!key) { 376 nebSetErr(server, "parameter 'key' may not be NULL"); 377 return false; 378 } 379 if (!name) { 380 nebSetErr(server, "parameter 'name' may not be NULL"); 381 return false; 382 } 383 384 struct ns1__getxattr_USCOREobjectResponse response; 385 if (soap_call_ns1__getxattr_USCOREobject(server->soap, server->endpoint, 386 NULL, (char *)key, (char *)name, (char **)&response) != SOAP_OK) { 387 nebSetServerErr(server); 388 return false; 389 } 390 391 if (!(char *)response.result) { 392 nebSetErr(server, "server returned no result"); 393 return NULL; 394 } 395 396 char *value = xmalloc(strlen((char *)response.result) + 1); 397 strcpy(value, (char *)response.result); 398 399 return value; 400 } 401 402 403 int nebListXattr(nebServer *server, const char *key, char ***xattrs) 404 { 405 REQUIRE_SERVER; 406 407 if (!key) { 408 nebSetErr(server, "parameter 'key' may not be NULL"); 409 return false; 410 } 411 412 struct ns1__listxattr_USCOREobjectResponse response; 413 if (soap_call_ns1__listxattr_USCOREobject(server->soap, server->endpoint, 414 NULL, (char *)key, &response) != SOAP_OK) { 415 nebSetServerErr(server); 416 return false; 417 } 418 419 int resultElements = response.result->__size; 420 421 if (xattrs) { 422 char **resultArray = response.result->__ptr; 423 *xattrs = xmalloc(resultElements * sizeof(char *)); 424 if (resultElements) { 425 for (int i = 0; i < resultElements; i++) { 426 *xattrs[i] = xmalloc(strlen(resultArray[i]) + 1); 427 strcpy(*xattrs[i], resultArray[i]); 428 } 429 430 } 431 } 432 433 return resultElements; 434 } 435 436 437 bool nebRemoveXattr(nebServer *server, const char *key, const char *name) 438 { 439 REQUIRE_SERVER; 440 441 if (!key) { 442 nebSetErr(server, "parameter 'key' may not be NULL"); 443 return false; 444 } 445 if (!name) { 446 nebSetErr(server, "parameter 'name' may not be NULL"); 447 return false; 448 } 449 450 int response; 451 if (soap_call_ns1__removexattr_USCOREobject(server->soap, server->endpoint, 452 NULL, (char *)key, (char *)name, &response) != SOAP_OK) { 453 nebSetServerErr(server); 454 return false; 455 } 456 457 if (!response) { 458 nebSetErr(server, "can not remove xattr"); 365 459 return false; 366 460 }
Note:
See TracChangeset
for help on using the changeset viewer.
