~ubuntu-branches/ubuntu/utopic/tdb/utopic-proposed

« back to all changes in this revision

Viewing changes to lib/replace/replace.c

  • Committer: Package Import Robot
  • Author(s): Andrew Bartlett
  • Date: 2013-02-12 20:43:55 UTC
  • mfrom: (1.4.6)
  • mto: (1.4.7) (3.3.7 experimental)
  • mto: This revision was merged to the branch mainline in revision 28.
  • Revision ID: package-import@ubuntu.com-20130212204355-6q6jvxshtoie7ex5
ImportĀ upstreamĀ versionĀ 1.2.11

Show diffs side-by-side

added added

removed removed

Lines of Context:
27
27
 
28
28
#include "system/filesys.h"
29
29
#include "system/time.h"
 
30
#include "system/network.h"
30
31
#include "system/passwd.h"
31
32
#include "system/syslog.h"
32
33
#include "system/locale.h"
213
214
#endif /* HAVE_INITGROUPS */
214
215
 
215
216
 
216
 
#if (defined(SecureWare) && defined(SCO))
217
 
/* This is needed due to needing the nap() function but we don't want
218
 
   to include the Xenix libraries since that will break other things...
219
 
   BTW: system call # 0x0c28 is the same as calling nap() */
220
 
long nap(long milliseconds) {
221
 
         return syscall(0x0c28, milliseconds);
222
 
 }
223
 
#endif
224
 
 
225
 
 
226
217
#ifndef HAVE_MEMMOVE
227
218
/*******************************************************************
228
219
safely copies memory, ensuring no overlap problems.
411
402
{
412
403
        /* have a reasonable go at emulating it. Hope that
413
404
           the system mktemp() isn't completely hopeless */
414
 
        char *p = mktemp(template);
415
 
        if (!p)
 
405
        mktemp(template);
 
406
        if (template[0] == 0)
416
407
                return -1;
417
408
        return open(p, O_CREAT|O_EXCL|O_RDWR, 0600);
418
409
}
828
819
        return 0;
829
820
}
830
821
#endif
 
822
 
 
823
#ifndef HAVE_MEMALIGN
 
824
void *rep_memalign( size_t align, size_t size )
 
825
{
 
826
#if defined(HAVE_POSIX_MEMALIGN)
 
827
        void *p = NULL;
 
828
        int ret = posix_memalign( &p, align, size );
 
829
        if ( ret == 0 )
 
830
                return p;
 
831
 
 
832
        return NULL;
 
833
#else
 
834
        /* On *BSD systems memaligns doesn't exist, but memory will
 
835
         * be aligned on allocations of > pagesize. */
 
836
#if defined(SYSCONF_SC_PAGESIZE)
 
837
        size_t pagesize = (size_t)sysconf(_SC_PAGESIZE);
 
838
#elif defined(HAVE_GETPAGESIZE)
 
839
        size_t pagesize = (size_t)getpagesize();
 
840
#else
 
841
        size_t pagesize = (size_t)-1;
 
842
#endif
 
843
        if (pagesize == (size_t)-1) {
 
844
                errno = ENOSYS;
 
845
                return NULL;
 
846
        }
 
847
        if (size < pagesize) {
 
848
                size = pagesize;
 
849
        }
 
850
        return malloc(size);
 
851
#endif
 
852
}
 
853
#endif
 
854
 
 
855
#ifndef HAVE_GETPEEREID
 
856
int rep_getpeereid(int s, uid_t *uid, gid_t *gid)
 
857
{
 
858
#if defined(HAVE_PEERCRED)
 
859
        struct ucred cred;
 
860
        socklen_t cred_len = sizeof(struct ucred);
 
861
        int ret;
 
862
 
 
863
#undef getsockopt
 
864
        ret = getsockopt(s, SOL_SOCKET, SO_PEERCRED, (void *)&cred, &cred_len);
 
865
        if (ret != 0) {
 
866
                return -1;
 
867
        }
 
868
 
 
869
        if (cred_len != sizeof(struct ucred)) {
 
870
                errno = EINVAL;
 
871
                return -1;
 
872
        }
 
873
 
 
874
        *uid = cred.uid;
 
875
        *gid = cred.gid;
 
876
        return 0;
 
877
#else
 
878
        errno = ENOSYS;
 
879
        return -1;
 
880
#endif
 
881
}
 
882
#endif
 
883
 
 
884
#ifndef HAVE_USLEEP
 
885
int rep_usleep(useconds_t sec)
 
886
{
 
887
        struct timeval tval;
 
888
        /*
 
889
         * Fake it with select...
 
890
         */
 
891
        tval.tv_sec = 0;
 
892
        tval.tv_usec = usecs/1000;
 
893
        select(0,NULL,NULL,NULL,&tval);
 
894
        return 0;
 
895
}
 
896
#endif /* HAVE_USLEEP */
 
897
 
 
898
#ifndef HAVE_SETPROCTITLE
 
899
void rep_setproctitle(const char *fmt, ...)
 
900
{
 
901
}
 
902
#endif