X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/61ec970df30325dbcd8c9d0f0e431dc793126656..580f325235cd1b9713bfa436719b7ca026fe9a16:/src/OS/os.c-Linux?ds=sidebyside diff --git a/src/OS/os.c-Linux b/src/OS/os.c-Linux index 5589a015b..59d81f8ad 100644 --- a/src/OS/os.c-Linux +++ b/src/OS/os.c-Linux @@ -1,10 +1,8 @@ -/* $Cambridge: exim/src/OS/os.c-Linux,v 1.1 2004/10/06 15:07:39 ph10 Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1997 - 2001 */ +/* Copyright (c) University of Cambridge 1997 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* Linux-specific code. This is concatenated onto the generic @@ -20,7 +18,7 @@ a unique function here, and define OS_LOAD_AVERAGE to stop src/os.c trying to provide the function. However, when compiling os.c for utilities, we may not want this at all, so check that it isn't set first. */ -#ifndef OS_LOAD_AVERAGE +#if !defined(OS_LOAD_AVERAGE) && defined(__linux__) #define OS_LOAD_AVERAGE /* Linux has 2 ways of returning load average: @@ -96,7 +94,7 @@ ip_address_item *last = NULL; ip_address_item *next; char addr6p[8][5]; unsigned int plen, scope, dad_status, if_idx; -char devname[20]; +char devname[20+1]; FILE *f; #endif @@ -114,9 +112,9 @@ last = yield; if (last != NULL) while (last->next != NULL) last = last->next; while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %20s\n", - addr6p[0], addr6p[1], addr6p[2], addr6p[3], - addr6p[4], addr6p[5], addr6p[6], addr6p[7], - &if_idx, &plen, &scope, &dad_status, devname) != EOF) + addr6p[0], addr6p[1], addr6p[2], addr6p[3], + addr6p[4], addr6p[5], addr6p[6], addr6p[7], + &if_idx, &plen, &scope, &dad_status, devname) != EOF) { struct sockaddr_in6 addr; @@ -126,8 +124,8 @@ while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %20s\n", next->next = NULL; next->port = 0; sprintf(CS next->address, "%s:%s:%s:%s:%s:%s:%s:%s", - addr6p[0], addr6p[1], addr6p[2], addr6p[3], - addr6p[4], addr6p[5], addr6p[6], addr6p[7]); + addr6p[0], addr6p[1], addr6p[2], addr6p[3], + addr6p[4], addr6p[5], addr6p[6], addr6p[7]); /* Normalize the representation */ @@ -152,4 +150,16 @@ return yield; #endif /* FIND_RUNNING_INTERFACES */ + +/************* +* Sendfile * +*************/ +#include + +ssize_t +os_sendfile(int out, int in, off_t * off, size_t cnt) +{ +return sendfile(out, in, off, cnt); +} + /* End of os.c-Linux */