IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 4465


Ignore:
Timestamp:
Jul 6, 2005, 11:41:03 AM (21 years ago)
Author:
jhoblitt
Message:

change nebReplicate() to return bool
change nebReplicate() params key & volume to be const
change nebReplicate() to probably actually work

Location:
trunk/Nebulous/nebclient/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous/nebclient/src/nebclient.c

    r4461 r4465  
    44 * Copyright (C) 2005  Joshua Hoblitt
    55 *
    6  * $Id: nebclient.c,v 1.6 2005-07-06 04:14:41 jhoblitt Exp $
     6 * $Id: nebclient.c,v 1.7 2005-07-06 21:41:03 jhoblitt Exp $
    77 */
    88
     
    8585}
    8686
    87 int nebReplicate(nebServer *server, char *key, char *volume, char **URI )
     87bool nebReplicate(nebServer *server, const char *key, const char *volume, char **URI)
    8888{
    8989    struct ns1__replicate_USCOREobjectResponse response;
     
    9191    int             sourceFH, destFH;
    9292
    93     if (soap_call_ns1__replicate_USCOREobject(server, NULL, NULL, key, volume, (char **)&response) == SOAP_OK) {
     93    if (soap_call_ns1__replicate_USCOREobject(server, NULL, NULL, (char *)key, (char *)volume, (char **)&response) != SOAP_OK) {
     94        // server error
     95        return false;
     96    }
     97
     98    if (!nebParseURI((char *)response.result, &filename)) {
     99        fprintf(stderr, "can not parse URI\n");
     100
     101        return false;
     102    }
     103
     104    // if URI is not NULL
     105    if (URI) {
    94106        *URI = xmalloc(strlen((char *)response.result));
    95107        strcpy(*URI, (char *)response.result);
    96 
    97         if (!nebParseURI(*URI, &filename)) {
    98             fprintf(stderr, "can not parse URI\n");
    99 
    100             return 0;
    101         }
    102 
    103         sourceFH = nebOpen(server, key, NEB_READ);
    104         if (sourceFH == -1) {
    105             fprintf(stderr, "can not open key %s\n", key );
    106 
    107             return -1;
    108         }
    109 
    110         destFH = open(filename, O_RDWR|O_TRUNC, 0660);
    111         if (destFH == -1) {
    112             fprintf(stderr, "can not open %s: %s\n", filename, strerror(errno));
    113 
    114             return -1;
    115         }
    116 
    117         nebCopyFilehandle(sourceFH, destFH);
    118 
    119         if (close(sourceFH) == -1) {
    120             fprintf(stderr, "can not close file: %s", strerror(errno));
    121 
    122             return -1;
    123         }
    124 
    125         if (close(destFH) == -1) {
    126             fprintf(stderr, "can not close %s: %s", filename, strerror(errno));
    127 
    128             return -1;
    129         }
    130     }
    131 
    132     // server error
    133     return -1;
     108    }
     109
     110    // need a read lock
     111    sourceFH = nebOpen(server, (char *)key, NEB_READ);
     112    if (sourceFH == -1) {
     113        fprintf(stderr, "can not open key %s\n", key );
     114        nebFree(filename);
     115
     116        return false;
     117    }
     118
     119    destFH = open(filename, O_RDWR|O_TRUNC, 0660);
     120    if (destFH == -1) {
     121        fprintf(stderr, "can not open %s: %s\n", filename, strerror(errno));
     122        nebFree(filename);
     123
     124        return false;
     125    }
     126
     127    nebCopyFilehandle(sourceFH, destFH);
     128
     129    if (close(sourceFH) == -1) {
     130        fprintf(stderr, "can not close file: %s", strerror(errno));
     131        nebFree(filename);
     132
     133        return false;
     134    }
     135
     136    if (close(destFH) == -1) {
     137        fprintf(stderr, "can not close %s: %s", filename, strerror(errno));
     138        nebFree(filename);
     139
     140        return false;
     141    }
     142
     143    nebFree(filename);
     144
     145    return true;
    134146}
    135147
  • trunk/Nebulous/nebclient/src/nebclient.h

    r4460 r4465  
    44 * Copyright (C) 2005  Joshua Hoblitt
    55 *
    6  * $Id: nebclient.h,v 1.8 2005-07-06 04:12:50 jhoblitt Exp $
     6 * $Id: nebclient.h,v 1.9 2005-07-06 21:41:03 jhoblitt Exp $
    77 */
    88
     
    2424int nebCreate(nebServer *server, char *key, unsigned int class, char *volume, char *comment, char **URI);
    2525
    26 int nebReplicate(nebServer *server, char *key, char *volume, char **URI);
     26bool nebReplicate(nebServer *server, const char *key, const char *volume, char **URI);
    2727
    2828int nebCull(nebServer *server, char *key);
Note: See TracChangeset for help on using the changeset viewer.