00001
00002
00003 #include "structFileDriver.h"
00004 #include "subStructFileUnlink.h"
00005 #include "miscServerFunct.h"
00006 #include "dataObjOpr.h"
00007
00008 int
00009 rsSubStructFileUnlink (rsComm_t *rsComm, subFile_t *subFile)
00010 {
00011 rodsServerHost_t *rodsServerHost;
00012 int remoteFlag;
00013 int status;
00014
00015 remoteFlag = resolveHost (&subFile->addr, &rodsServerHost);
00016
00017 if (remoteFlag == LOCAL_HOST) {
00018 status = _rsSubStructFileUnlink (rsComm, subFile);
00019 } else if (remoteFlag == REMOTE_HOST) {
00020 status = remoteSubStructFileUnlink (rsComm, subFile, rodsServerHost);
00021 } else {
00022 if (remoteFlag < 0) {
00023 return (remoteFlag);
00024 } else {
00025 rodsLog (LOG_NOTICE,
00026 "rsSubStructFileUnlink: resolveHost returned unrecognized value %d",
00027 remoteFlag);
00028 return (SYS_UNRECOGNIZED_REMOTE_FLAG);
00029 }
00030 }
00031
00032 return (status);
00033 }
00034
00035 int
00036 remoteSubStructFileUnlink (rsComm_t *rsComm, subFile_t *subFile,
00037 rodsServerHost_t *rodsServerHost)
00038 {
00039 int status;
00040
00041 if (rodsServerHost == NULL) {
00042 rodsLog (LOG_NOTICE,
00043 "remoteSubStructFileUnlink: Invalid rodsServerHost");
00044 return SYS_INVALID_SERVER_HOST;
00045 }
00046
00047 if ((status = svrToSvrConnect (rsComm, rodsServerHost)) < 0) {
00048 return status;
00049 }
00050
00051 status = rcSubStructFileUnlink (rodsServerHost->conn, subFile);
00052
00053 if (status < 0) {
00054 rodsLog (LOG_NOTICE,
00055 "remoteSubStructFileUnlink: rcSubStructFileUnlink failed for %s, status = %d",
00056 subFile->subFilePath, status);
00057 }
00058
00059 return status;
00060 }
00061
00062 int
00063 _rsSubStructFileUnlink (rsComm_t *rsComm, subFile_t *subFile)
00064 {
00065 int status;
00066
00067 status = subStructFileUnlink (rsComm, subFile);
00068
00069 return (status);
00070 }
00071