summaryrefslogtreecommitdiff
path: root/source3/smbwrapper
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1998-10-04 14:56:19 +0000
committerAndrew Tridgell <tridge@samba.org>1998-10-04 14:56:19 +0000
commit4f31812714c62d358861667ce2b026cb031f1327 (patch)
tree9becc0513e06f88c95670cedae4418e59f9662d4 /source3/smbwrapper
parent770acd0a8f2ccaa4320a60f82545dba0e3b94b02 (diff)
downloadsamba-4f31812714c62d358861667ce2b026cb031f1327.tar.gz
samba-4f31812714c62d358861667ce2b026cb031f1327.tar.bz2
samba-4f31812714c62d358861667ce2b026cb031f1327.zip
fixed some stuff for Linux that porting to Solaris broke
(This used to be commit ee349bb329498e6f5852c1bf21c48563d076dc88)
Diffstat (limited to 'source3/smbwrapper')
-rw-r--r--source3/smbwrapper/realcalls.h58
-rwxr-xr-xsource3/smbwrapper/smbsh5
-rw-r--r--source3/smbwrapper/wrapped.c101
3 files changed, 85 insertions, 79 deletions
diff --git a/source3/smbwrapper/realcalls.h b/source3/smbwrapper/realcalls.h
index 74cff66d00..13a73ae354 100644
--- a/source3/smbwrapper/realcalls.h
+++ b/source3/smbwrapper/realcalls.h
@@ -35,90 +35,94 @@
#ifdef HAVE__OPENDIR
#define real_opendir(fn) (_opendir(fn))
+#elif SYS_opendir
+#define real_opendir(fn) ((DIR *)syscall(SYS_opendir,(fn)))
#elif HAVE___OPENDIR
#define real_opendir(fn) (__opendir(fn))
-#else
-#define real_opendir(fn) ((DIR *)syscall(SYS_opendir,(fn)))
#endif
#ifdef HAVE__READDIR
#define real_readdir(d) (_readdir(d))
+#elif SYS_readdir
+#define real_readdir(d) (syscall(SYS_readdir,(d)))
#elif HAVE___READDIR
#define real_readdir(d) (__readdir(d))
-#else
-#define real_readdir(d) (syscall(SYS_readdir,(d)))
-#endif
-
-#ifdef HAVE__TELLDIR
-#define real_telldir(d) (_telldir(d))
-#elif HAVE___TELLDIR
-#define real_telldir(d) (__telldir(d))
-#else
-#define real_telldir(d) (syscall(SYS_telldir,(d)))
#endif
#ifdef HAVE__CLOSEDIR
#define real_closedir(d) (_closedir(d))
+#elif SYS_closedir
+#define real_closedir(d) (syscall(SYS_closedir,(d)))
#elif HAVE___CLOSEDIR
#define real_closedir(d) (__closedir(d))
-#else
-#define real_closedir(d) (syscall(SYS_closedir,(d)))
#endif
#ifdef HAVE__SEEKDIR
#define real_seekdir(d,l) (_seekdir(d,l))
+#elif SYS_seekdir
+#define real_seekdir(d,l) (syscall(SYS_seekdir,(d),(l)))
#elif HAVE___SEEKDIR
#define real_seekdir(d) (__seekdir(d,l))
#else
-#define real_seekdir(d,l) (syscall(SYS_seekdir,(d),(l)))
+#define NO_SEEKDIR
+#endif
+
+#ifdef HAVE__TELLDIR
+#define real_telldir(d) (_telldir(d))
+#elif SYS_telldir
+#define real_telldir(d) (syscall(SYS_telldir,(d)))
+#elif HAVE___TELLDIR
+#define real_telldir(d) (__telldir(d))
+#else
+#define NO_TELLDIR
#endif
#ifdef HAVE__DUP
#define real_dup(d) (_dup(d))
+#elif SYS_dup
+#define real_dup(d) (syscall(SYS_dup,(d)))
#elif HAVE___DUP
#define real_dup(d) (__dup(d))
-#else
-#define real_dup(d) (syscall(SYS_dup,(d)))
#endif
#ifdef HAVE__DUP2
#define real_dup2(d1,d2) (_dup2(d1,d2))
+#elif SYS_dup2
+#define real_dup2(d1,d2) (syscall(SYS_dup2,(d1),(d2)))
#elif HAVE___DUP2
#define real_dup2(d1,d2) (__dup2(d1,d2))
-#else
-#define real_dup2(d1,d2) (syscall(SYS_dup2,(d1),(d2)))
#endif
#ifdef HAVE__GETCWD
#define real_getcwd(b,s) (_getcwd(b,s))
+#elif SYS_getcwd
+#define real_getcwd(b,s) (syscall(SYS_getcwd,(b),(s)))
#elif HAVE___GETCWD
#define real_getcwd(b,s) (__getcwd(b,s))
-#else
-#define real_getcwd(b,s) (syscall(SYS_getcwd,(b),(s)))
#endif
#ifdef HAVE__STAT
#define real_stat(fn,st) (_stat(fn,st))
+#elif SYS_stat
+#define real_stat(fn,st) (syscall(SYS_stat,(fn),(st)))
#elif HAVE___STAT
#define real_stat(fn,st) (__stat(fn,st))
-#else
-#define real_stat(fn,st) (syscall(SYS_stat,(fn),(st)))
#endif
#ifdef HAVE__LSTAT
#define real_lstat(fn,st) (_lstat(fn,st))
+#elif SYS_lstat
+#define real_lstat(fn,st) (syscall(SYS_lstat,(fn),(st)))
#elif HAVE___LSTAT
#define real_lstat(fn,st) (__lstat(fn,st))
-#else
-#define real_lstat(fn,st) (syscall(SYS_lstat,(fn),(st)))
#endif
#ifdef HAVE__FSTAT
#define real_fstat(fd,st) (_fstat(fd,st))
+#elif SYS_fstat
+#define real_fstat(fd,st) (syscall(SYS_fstat,(fd),(st)))
#elif HAVE___FSTAT
#define real_fstat(fd,st) (__fstat(fd,st))
-#else
-#define real_fstat(fd,st) (syscall(SYS_fstat,(fd),(st)))
#endif
diff --git a/source3/smbwrapper/smbsh b/source3/smbwrapper/smbsh
index 015db52d95..c34247e3a4 100755
--- a/source3/smbwrapper/smbsh
+++ b/source3/smbwrapper/smbsh
@@ -1,6 +1,6 @@
#!/bin/sh
-LIBDIR=/home/tridge/samba/source/smbwrapper
+LIBDIR=/home/tridge/samba/cvs/source/smbwrapper
# a simple launcher for the smbwrapper.so preloadde library
@@ -16,7 +16,7 @@ if [ x$SMBW_PASSWORD = x ]; then
echo password?
read pass
SMBW_PASSWORD=$pass
- export
+ export SMBW_PASSWORD
fi
LD_PRELOAD=$LIBDIR/smbwrapper.so
@@ -26,3 +26,4 @@ export PWD
PS1='smbsh$ '
export PS1
bash
+echo done
diff --git a/source3/smbwrapper/wrapped.c b/source3/smbwrapper/wrapped.c
index 885fd4d481..d8a6a6fdac 100644
--- a/source3/smbwrapper/wrapped.c
+++ b/source3/smbwrapper/wrapped.c
@@ -178,16 +178,6 @@ __asm__(".globl __write; __write = write");
return real_chown(name, owner, group);
}
- int closedir(DIR *dir)
-{
- if (smbw_dirp(dir)) {
- return smbw_closedir(dir);
- }
-
- return real_closedir(dir);
-}
-
-
#ifdef LINUX
int __fxstat(int vers, int fd, struct stat *st)
{
@@ -334,17 +324,6 @@ __asm__(".globl __write; __write = write");
}
- void seekdir(DIR *dir, off_t offset)
-{
- if (smbw_dirp(dir)) {
- smbw_seekdir(dir, offset);
- return;
- }
-
- real_seekdir(dir, offset);
-}
-
-
#ifdef LINUX
int __xstat(int vers, const char *name, struct stat *st)
{
@@ -446,16 +425,6 @@ __asm__(".globl __write; __write = write");
}
- off_t telldir(DIR *dir)
-{
- if (smbw_dirp(dir)) {
- return smbw_telldir(dir);
- }
-
- return real_telldir(dir);
-}
-
-
int unlink(const char *name)
{
if (smbw_path(name)) {
@@ -475,25 +444,6 @@ __asm__(".globl __write; __write = write");
return real_utime(name, tvp);
}
- DIR *opendir(const char *name)
-{
- if (smbw_path(name)) {
- return smbw_opendir(name);
- }
-
- return real_opendir(name);
-}
-
-
- struct dirent *readdir(DIR *dir)
-{
- if (smbw_dirp(dir)) {
- return smbw_readdir(dir);
- }
-
- return real_readdir(dir);
-}
-
int readlink(char *path, char *buf, size_t bufsize)
{
if (smbw_path(path)) {
@@ -566,3 +516,54 @@ __asm__(".globl __write; __write = write");
return real_dup2(oldfd, newfd);
}
+
+ DIR *opendir(const char *name)
+{
+ if (smbw_path(name)) {
+ return smbw_opendir(name);
+ }
+
+ return real_opendir(name);
+}
+
+
+ struct dirent *readdir(DIR *dir)
+{
+ if (smbw_dirp(dir)) {
+ return smbw_readdir(dir);
+ }
+
+ return real_readdir(dir);
+}
+
+ int closedir(DIR *dir)
+{
+ if (smbw_dirp(dir)) {
+ return smbw_closedir(dir);
+ }
+
+ return real_closedir(dir);
+}
+
+#ifndef NO_TELLDIR
+ off_t telldir(DIR *dir)
+{
+ if (smbw_dirp(dir)) {
+ return smbw_telldir(dir);
+ }
+
+ return real_telldir(dir);
+}
+#endif
+
+#ifndef NO_SEEKDIR
+ void seekdir(DIR *dir, off_t offset)
+{
+ if (smbw_dirp(dir)) {
+ smbw_seekdir(dir, offset);
+ return;
+ }
+
+ real_seekdir(dir, offset);
+}
+#endif