diff -ur root-5.34.09.orig/io/hdfs/src/THDFSFile.cxx root-5.34.09/io/hdfs/src/THDFSFile.cxx
--- root-5.34.09.orig/io/hdfs/src/THDFSFile.cxx 2013-06-26 17:05:06.000000000 +0200
+++ root-5.34.09/io/hdfs/src/THDFSFile.cxx 2013-08-31 03:00:10.323742733 +0200
@@ -40,6 +40,7 @@
#include "syslog.h"
#include "assert.h"
+#include "stdlib.h"
#include "THDFSFile.h"
#include "TError.h"
@@ -93,8 +94,7 @@
if (has_authn) {
UserGroup_t *ugi = gSystem->GetUserInfo(0);
const char *user = (ugi->fUser).Data();
- const char * groups[1] = {(ugi->fGroup.Data())};
- fFS = hdfsConnectAsUser("default", 0, user, groups, 1);
+ fFS = hdfsConnectAsUser("default", 0, user);
delete ugi;
} else {
fFS = hdfsConnect("default", 0);
@@ -167,7 +167,7 @@
// See documentation for TFile::SysRead().
TRACE("READ")
- tSize num_read = hdfsPread(fFS, (hdfsFile)fHdfsFH, fSysOffset, buf, len);
+ tSize num_read = hdfsPread((hdfsFS)fFS, (hdfsFile)fHdfsFH, fSysOffset, buf, len);
fSysOffset += len;
if (num_read < 0) {
gSystem->SetErrorStr(strerror(errno));
@@ -192,7 +192,7 @@
return -1;
}
if (fSize == -1) {
- hdfsFileInfo *info = hdfsGetPathInfo(fFS, fPath);
+ hdfsFileInfo *info = hdfsGetPathInfo((hdfsFS)fFS, fPath);
if (info != 0) {
fSize = info->mSize;
free(info);
@@ -224,7 +224,7 @@
SysError("THDFSFile", "Unable to allocate memory for path.");
}
strlcpy(fPath, file,path_size+1);
- if ((fHdfsFH = hdfsOpenFile(fFS, fPath, flags, 0, 0, 0)) == 0) {
+ if ((fHdfsFH = hdfsOpenFile((hdfsFS)fFS, fPath, flags, 0, 0, 0)) == 0) {
SysError("THDFSFile", "Unable to open file %s in HDFS", pathname);
return -1;
}
@@ -236,7 +236,7 @@
{
// Close the file in HDFS.
- int result = hdfsCloseFile(fFS, (hdfsFile)fHdfsFH);
+ int result = hdfsCloseFile((hdfsFS)fFS, (hdfsFile)fHdfsFH);
fFS = 0;
fHdfsFH = 0;
return result;
@@ -258,7 +258,7 @@
*id = ::Hash(fPath);
- hdfsFileInfo *info = hdfsGetPathInfo(fFS, fPath);
+ hdfsFileInfo *info = hdfsGetPathInfo((hdfsFS)fFS, fPath);
if (info != 0) {
fSize = info->mSize;
*size = fSize;
@@ -306,8 +306,7 @@
if (has_authn) {
UserGroup_t *ugi = gSystem->GetUserInfo(0);
const char *user = (ugi->fUser).Data();
- const char * groups[1] = {(ugi->fGroup.Data())};
- fFH = hdfsConnectAsUser("default", 0, user, groups, 1);
+ fFH = hdfsConnectAsUser("default", 0, user);
delete ugi;
} else {
fFH = hdfsConnect("default", 0);
@@ -339,7 +338,7 @@
}
if (R__HDFS_ALLOW_CHANGES == kTRUE) {
- return hdfsCreateDirectory(fFH, path);
+ return hdfsCreateDirectory((hdfsFS)fFH, path);
} else {
return -1;
}
@@ -366,14 +365,14 @@
*/
hdfsFileInfo * dir = 0;
- if ((dir = hdfsGetPathInfo(fFH, path)) == 0) {
+ if ((dir = hdfsGetPathInfo((hdfsFS)fFH, path)) == 0) {
return 0;
}
if (dir->mKind != kObjectKindDirectory) {
return 0;
}
- fDirp = (void *)hdfsListDirectory(fFH, path, &fDirEntries);
+ fDirp = (void *)hdfsListDirectory((hdfsFS)fFH, path, &fDirEntries);
fDirCtr = 0;
fUrlp = new TUrl[fDirEntries];
@@ -449,7 +448,7 @@
Error("GetPathInfo", "No filesystem handle (should never happen)");
return 1;
}
- hdfsFileInfo *fileInfo = hdfsGetPathInfo(fFH, path);
+ hdfsFileInfo *fileInfo = hdfsGetPathInfo((hdfsFS)fFH, path);
if (fileInfo == 0)
return 1;
@@ -481,7 +480,7 @@
return kTRUE;
}
- if (hdfsExists(fFH, path) == 0)
+ if (hdfsExists((hdfsFS)fFH, path) == 0)
return kFALSE;
else
return kTRUE;
@@ -499,7 +498,7 @@
}
if (R__HDFS_ALLOW_CHANGES == kTRUE) {
- return hdfsDelete(fFH, path);
+ return hdfsDelete((hdfsFS)fFH, path, 1);
} else {
return -1;
}