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