svn commit: r289135 - in user/ngie/more-tests2: . contrib/dma contrib/dma/debian lib/libc/sys libexec/dma libexec/dma/dmagent sbin/geom/class/nop sbin/mdconfig share/man/man4 share/mk sys/dev/cxgbe...
Garrett Cooper
ngie at FreeBSD.org
Sun Oct 11 08:28:41 UTC 2015
Author: ngie
Date: Sun Oct 11 08:28:36 2015
New Revision: 289135
URL: https://svnweb.freebsd.org/changeset/base/289135
Log:
Redo MFC @ r289134
Deleted:
user/ngie/more-tests2/contrib/dma/BSDmakefile
user/ngie/more-tests2/contrib/dma/debian/
Modified:
user/ngie/more-tests2/Makefile.inc1
user/ngie/more-tests2/contrib/dma/LICENSE
user/ngie/more-tests2/contrib/dma/README.markdown
user/ngie/more-tests2/contrib/dma/TODO
user/ngie/more-tests2/contrib/dma/VERSION
user/ngie/more-tests2/contrib/dma/aliases_parse.y
user/ngie/more-tests2/contrib/dma/aliases_scan.l
user/ngie/more-tests2/contrib/dma/conf.c
user/ngie/more-tests2/contrib/dma/dma-mbox-create.c
user/ngie/more-tests2/contrib/dma/dma.8
user/ngie/more-tests2/contrib/dma/dma.c
user/ngie/more-tests2/contrib/dma/dma.h
user/ngie/more-tests2/contrib/dma/dns.c
user/ngie/more-tests2/contrib/dma/get-version.sh
user/ngie/more-tests2/contrib/dma/local.c
user/ngie/more-tests2/contrib/dma/mail.c
user/ngie/more-tests2/contrib/dma/net.c
user/ngie/more-tests2/contrib/dma/spool.c
user/ngie/more-tests2/contrib/dma/util.c
user/ngie/more-tests2/lib/libc/sys/shmctl.2
user/ngie/more-tests2/libexec/dma/Makefile.inc
user/ngie/more-tests2/libexec/dma/dmagent/Makefile
user/ngie/more-tests2/sbin/geom/class/nop/gnop.8
user/ngie/more-tests2/sbin/mdconfig/mdconfig.8
user/ngie/more-tests2/sbin/mdconfig/mdconfig.c
user/ngie/more-tests2/share/man/man4/vtnet.4
user/ngie/more-tests2/share/mk/Makefile
user/ngie/more-tests2/share/mk/bsd.confs.mk
user/ngie/more-tests2/share/mk/bsd.own.mk
user/ngie/more-tests2/sys/dev/cxgbe/iw_cxgbe/cm.c
user/ngie/more-tests2/sys/dev/drm2/i915/i915_gem.c
user/ngie/more-tests2/sys/dev/iicbus/icee.c
user/ngie/more-tests2/sys/dev/iicbus/iiconf.h
user/ngie/more-tests2/sys/dev/wpi/if_wpi.c
user/ngie/more-tests2/sys/dev/wpi/if_wpireg.h
user/ngie/more-tests2/sys/dev/wpi/if_wpivar.h
user/ngie/more-tests2/sys/geom/nop/g_nop.c
user/ngie/more-tests2/sys/geom/nop/g_nop.h
user/ngie/more-tests2/sys/kern/kern_module.c
user/ngie/more-tests2/sys/kern/sysv_shm.c
user/ngie/more-tests2/sys/mips/conf/AP135.hints
user/ngie/more-tests2/sys/mips/conf/TP-MR3020
user/ngie/more-tests2/sys/mips/conf/TP-MR3020.hints
user/ngie/more-tests2/usr.sbin/ppp/Makefile
Directory Properties:
user/ngie/more-tests2/ (props changed)
user/ngie/more-tests2/contrib/dma/ (props changed)
user/ngie/more-tests2/lib/libc/ (props changed)
user/ngie/more-tests2/sbin/ (props changed)
user/ngie/more-tests2/share/ (props changed)
user/ngie/more-tests2/share/man/man4/ (props changed)
user/ngie/more-tests2/sys/ (props changed)
Modified: user/ngie/more-tests2/Makefile.inc1
==============================================================================
--- user/ngie/more-tests2/Makefile.inc1 Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/Makefile.inc1 Sun Oct 11 08:28:36 2015 (r289135)
@@ -1003,7 +1003,9 @@ distrib-dirs: .MAKE
distribution: .MAKE
cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} \
${IMAKE_INSTALL} ${IMAKE_MTREE} METALOG=${METALOG} ${.TARGET}
- ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 installconfig
+ ${_+_}cd ${.CURDIR}; ${CROSSENV} PATH=${TMPPATH} \
+ ${MAKE} -f Makefile.inc1 ${IMAKE_INSTALL} \
+ METALOG=${METALOG} installconfig
#
# buildkernel and installkernel
Modified: user/ngie/more-tests2/contrib/dma/LICENSE
==============================================================================
--- user/ngie/more-tests2/contrib/dma/LICENSE Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/LICENSE Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,5 +1,5 @@
+Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
Copyright (c) 2008 The DragonFly Project.
-Copyright (c) 2008-2011, Simon Schubert <2 at 0x2c.org>.
All rights reserved.
This code is derived from software contributed to The DragonFly Project
@@ -37,7 +37,7 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADV
SUCH DAMAGE.
-Copyright (c) 1995-2001 Kungliga Tekniska Högskolan
+Copyright (c) 1995-2001 Kungliga Tekniska Högskolan
(Royal Institute of Technology, Stockholm, Sweden).
All rights reserved.
Modified: user/ngie/more-tests2/contrib/dma/README.markdown
==============================================================================
--- user/ngie/more-tests2/contrib/dma/README.markdown Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/README.markdown Sun Oct 11 08:28:36 2015 (r289135)
@@ -15,8 +15,13 @@ incoming connections.
Building
--------
+In Linux:
+
make
+In BSD:
+
+ cd bsd && make
Installation
------------
Modified: user/ngie/more-tests2/contrib/dma/TODO
==============================================================================
--- user/ngie/more-tests2/contrib/dma/TODO Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/TODO Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,5 +1,4 @@
- unquote/handle quoted local recipients
-- use proper sysexit codes
- handle/use ESMTP extensions
- .forward support
- suggest way to run a queue flush on boot
Modified: user/ngie/more-tests2/contrib/dma/VERSION
==============================================================================
--- user/ngie/more-tests2/contrib/dma/VERSION Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/VERSION Sun Oct 11 08:28:36 2015 (r289135)
@@ -1 +1 @@
-v0.9
+v0.10
Modified: user/ngie/more-tests2/contrib/dma/aliases_parse.y
==============================================================================
--- user/ngie/more-tests2/contrib/dma/aliases_parse.y Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/aliases_parse.y Sun Oct 11 08:28:36 2015 (r289135)
@@ -7,8 +7,6 @@
extern int yylineno;
static void yyerror(const char *);
-int yywrap(void);
-int yylex(void);
static void
yyerror(const char *msg)
Modified: user/ngie/more-tests2/contrib/dma/aliases_scan.l
==============================================================================
--- user/ngie/more-tests2/contrib/dma/aliases_scan.l Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/aliases_scan.l Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,11 +1,11 @@
%{
#include <string.h>
+#include "dma.h"
#include "aliases_parse.h"
#define YY_NO_INPUT
-int yylex(void);
%}
%option yylineno
Modified: user/ngie/more-tests2/contrib/dma/conf.c
==============================================================================
--- user/ngie/more-tests2/contrib/dma/conf.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/conf.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -64,7 +64,7 @@ trim_line(char *line)
if (line[0] == '.') {
if ((linelen + 2) > 1000) {
syslog(LOG_CRIT, "Cannot escape leading dot. Buffer overflow");
- exit(1);
+ exit(EX_DATAERR);
}
memmove((line + 1), line, (linelen + 1));
line[0] = '.';
@@ -101,7 +101,7 @@ parse_authfile(const char *path)
a = fopen(path, "r");
if (a == NULL) {
- errlog(1, "can not open auth file `%s'", path);
+ errlog(EX_NOINPUT, "can not open auth file `%s'", path);
/* NOTREACHED */
}
@@ -121,7 +121,7 @@ parse_authfile(const char *path)
au = calloc(1, sizeof(*au));
if (au == NULL)
- errlog(1, "calloc failed");
+ errlog(EX_OSERR, NULL);
data = strdup(line);
au->login = strsep(&data, "|");
@@ -131,8 +131,7 @@ parse_authfile(const char *path)
if (au->login == NULL ||
au->host == NULL ||
au->password == NULL) {
- errlogx(1, "syntax error in authfile %s:%d",
- path, lineno);
+ errlogx(EX_CONFIG, "syntax error in authfile %s:%d", path, lineno);
/* NOTREACHED */
}
@@ -160,7 +159,7 @@ parse_conf(const char *config_path)
/* Don't treat a non-existing config file as error */
if (errno == ENOENT)
return;
- errlog(1, "can not open config `%s'", config_path);
+ errlog(EX_NOINPUT, "can not open config `%s'", config_path);
/* NOTREACHED */
}
@@ -211,7 +210,7 @@ parse_conf(const char *config_path)
} else {
host = data;
}
- if (host && *host == 0)
+ if (host && *host == 0)
host = NULL;
if (user && *user == 0)
user = NULL;
@@ -232,13 +231,13 @@ parse_conf(const char *config_path)
else if (strcmp(word, "NULLCLIENT") == 0 && data == NULL)
config.features |= NULLCLIENT;
else {
- errlogx(1, "syntax error in %s:%d", config_path, lineno);
+ errlogx(EX_CONFIG, "syntax error in %s:%d", config_path, lineno);
/* NOTREACHED */
}
}
if ((config.features & NULLCLIENT) && config.smarthost == NULL) {
- errlogx(1, "%s: NULLCLIENT requires SMARTHOST", config_path);
+ errlogx(EX_CONFIG, "%s: NULLCLIENT requires SMARTHOST", config_path);
/* NOTREACHED */
}
Modified: user/ngie/more-tests2/contrib/dma/dma-mbox-create.c
==============================================================================
--- user/ngie/more-tests2/contrib/dma/dma-mbox-create.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/dma-mbox-create.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,9 +1,9 @@
/*
- * Copyright (c) 2010 Simon Schubert <2 at 0x2c.org>
+ * Copyright (c) 2010-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -54,7 +54,7 @@
static void
-logfail(const char *fmt, ...)
+logfail(int exitcode, const char *fmt, ...)
{
int oerrno = errno;
va_list ap;
@@ -73,7 +73,7 @@ logfail(const char *fmt, ...)
else
syslog(LOG_ERR, errno ? "%m" : "unknown error");
- exit(1);
+ exit(exitcode);
}
/*
@@ -98,21 +98,21 @@ main(int argc, char **argv)
errno = 0;
gr = getgrnam(DMA_GROUP);
if (!gr)
- logfail("cannot find dma group `%s'", DMA_GROUP);
+ logfail(EX_CONFIG, "cannot find dma group `%s'", DMA_GROUP);
mail_gid = gr->gr_gid;
if (setgid(mail_gid) != 0)
- logfail("cannot set gid to %d (%s)", mail_gid, DMA_GROUP);
+ logfail(EX_NOPERM, "cannot set gid to %d (%s)", mail_gid, DMA_GROUP);
if (getegid() != mail_gid)
- logfail("cannot set gid to %d (%s), still at %d", mail_gid, DMA_GROUP, getegid());
+ logfail(EX_NOPERM, "cannot set gid to %d (%s), still at %d", mail_gid, DMA_GROUP, getegid());
/*
* We take exactly one argument: the username.
*/
if (argc != 2) {
errno = 0;
- logfail("no arguments");
+ logfail(EX_USAGE, "no arguments");
}
user = argv[1];
@@ -121,7 +121,7 @@ main(int argc, char **argv)
/* the username may not contain a pathname separator */
if (strchr(user, '/')) {
errno = 0;
- logfail("path separator in username `%s'", user);
+ logfail(EX_DATAERR, "path separator in username `%s'", user);
exit(1);
}
@@ -129,7 +129,7 @@ main(int argc, char **argv)
errno = 0;
pw = getpwnam(user);
if (!pw)
- logfail("cannot find user `%s'", user);
+ logfail(EX_NOUSER, "cannot find user `%s'", user);
user_uid = pw->pw_uid;
@@ -137,20 +137,20 @@ main(int argc, char **argv)
if (error < 0 || (size_t)error >= sizeof(fn)) {
if (error >= 0) {
errno = 0;
- logfail("mbox path too long");
+ logfail(EX_USAGE, "mbox path too long");
}
- logfail("cannot build mbox path for `%s/%s'", _PATH_MAILDIR, user);
+ logfail(EX_CANTCREAT, "cannot build mbox path for `%s/%s'", _PATH_MAILDIR, user);
}
f = open(fn, O_RDONLY|O_CREAT, 0600);
if (f < 0)
- logfail("cannot open mbox `%s'", fn);
+ logfail(EX_NOINPUT, "cannt open mbox `%s'", fn);
if (fchown(f, user_uid, mail_gid))
- logfail("cannot change owner of mbox `%s'", fn);
+ logfail(EX_OSERR, "cannot change owner of mbox `%s'", fn);
if (fchmod(f, 0620))
- logfail("cannot change permissions of mbox `%s'", fn);
+ logfail(EX_OSERR, "cannot change permissions of mbox `%s'", fn);
/* file should be present with the right owner and permissions */
Modified: user/ngie/more-tests2/contrib/dma/dma.8
==============================================================================
--- user/ngie/more-tests2/contrib/dma/dma.8 Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/dma.8 Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,4 +1,5 @@
.\"
+.\" Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
.\" Copyright (c) 2008
.\" The DragonFly Project. All rights reserved.
.\"
Modified: user/ngie/more-tests2/contrib/dma/dma.c
==============================================================================
--- user/ngie/more-tests2/contrib/dma/dma.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/dma.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -247,7 +248,7 @@ go_background(struct queue *queue)
if (daemonize && daemon(0, 0) != 0) {
syslog(LOG_ERR, "can not daemonize: %m");
- exit(1);
+ exit(EX_OSERR);
}
daemonize = 0;
@@ -264,7 +265,7 @@ go_background(struct queue *queue)
switch (pid) {
case -1:
syslog(LOG_ERR, "can not fork: %m");
- exit(1);
+ exit(EX_OSERR);
break;
case 0:
@@ -286,11 +287,11 @@ retit:
break;
case 1:
if (doqueue)
- exit(0);
+ exit(EX_OK);
syslog(LOG_WARNING, "could not lock queue file");
- exit(1);
+ exit(EX_SOFTWARE);
default:
- exit(1);
+ exit(EX_SOFTWARE);
}
dropspool(queue, it);
return (it);
@@ -306,7 +307,7 @@ retit:
}
syslog(LOG_CRIT, "reached dead code");
- exit(1);
+ exit(EX_SOFTWARE);
}
static void
@@ -331,12 +332,12 @@ retry:
case 0:
delqueue(it);
syslog(LOG_INFO, "delivery successful");
- exit(0);
+ exit(EX_OK);
case 1:
if (stat(it->queuefn, &st) != 0) {
syslog(LOG_ERR, "lost queue file `%s'", it->queuefn);
- exit(1);
+ exit(EX_SOFTWARE);
}
if (gettimeofday(&now, NULL) == 0 &&
(now.tv_sec - st.st_mtim.tv_sec > MAX_TIMEOUT)) {
@@ -438,16 +439,16 @@ main(int argc, char **argv)
pw = getpwnam(DMA_ROOT_USER);
if (pw == NULL) {
if (errno == 0)
- errx(1, "user '%s' not found", DMA_ROOT_USER);
+ errx(EX_CONFIG, "user '%s' not found", DMA_ROOT_USER);
else
- err(1, "cannot drop root privileges");
+ err(EX_OSERR, "cannot drop root privileges");
}
if (setuid(pw->pw_uid) != 0)
- err(1, "cannot drop root privileges");
+ err(EX_OSERR, "cannot drop root privileges");
if (geteuid() == 0 || getuid() == 0)
- errx(1, "cannot drop root privileges");
+ errx(EX_OSERR, "cannot drop root privileges");
}
atexit(deltmp);
@@ -460,15 +461,15 @@ main(int argc, char **argv)
argv++; argc--;
showq = 1;
if (argc != 0)
- errx(1, "invalid arguments");
+ errx(EX_USAGE, "invalid arguments");
goto skipopts;
} else if (strcmp(argv[0], "newaliases") == 0) {
logident_base = "dma";
setlogident("%s", logident_base);
if (read_aliases() != 0)
- errx(1, "could not parse aliases file `%s'", config.aliases);
- exit(0);
+ errx(EX_SOFTWARE, "could not parse aliases file `%s'", config.aliases);
+ exit(EX_OK);
}
opterr = 0;
@@ -547,7 +548,7 @@ main(int argc, char **argv)
default:
fprintf(stderr, "invalid argument: `-%c'\n", optopt);
- exit(1);
+ exit(EX_USAGE);
}
}
argc -= optind;
@@ -555,10 +556,10 @@ main(int argc, char **argv)
opterr = 1;
if (argc != 0 && (showq || doqueue))
- errx(1, "sending mail and queue operations are mutually exclusive");
+ errx(EX_USAGE, "sending mail and queue operations are mutually exclusive");
if (showq + doqueue > 1)
- errx(1, "conflicting queue operations");
+ errx(EX_USAGE, "conflicting queue operations");
skipopts:
if (logident_base == NULL)
@@ -578,7 +579,7 @@ skipopts:
if (showq) {
if (load_queue(&queue) < 0)
- errlog(1, "can not load queue");
+ errlog(EX_NOINPUT, "can not load queue");
show_queue(&queue);
return (0);
}
@@ -586,38 +587,38 @@ skipopts:
if (doqueue) {
flushqueue_signal();
if (load_queue(&queue) < 0)
- errlog(1, "can not load queue");
+ errlog(EX_NOINPUT, "can not load queue");
run_queue(&queue);
return (0);
}
if (read_aliases() != 0)
- errlog(1, "could not parse aliases file `%s'", config.aliases);
+ errlog(EX_SOFTWARE, "could not parse aliases file `%s'", config.aliases);
if ((sender = set_from(&queue, sender)) == NULL)
- errlog(1, "set_from failed");
+ errlog(EX_SOFTWARE, NULL);
if (newspoolf(&queue) != 0)
- errlog(1, "can not create temp file in `%s'", config.spooldir);
+ errlog(EX_CANTCREAT, "can not create temp file in `%s'", config.spooldir);
setlogident("%s", queue.id);
for (i = 0; i < argc; i++) {
if (add_recp(&queue, argv[i], EXPAND_WILDCARD) != 0)
- errlogx(1, "invalid recipient `%s'", argv[i]);
+ errlogx(EX_DATAERR, "invalid recipient `%s'", argv[i]);
}
if (LIST_EMPTY(&queue.queue) && !recp_from_header)
- errlogx(1, "no recipients");
+ errlogx(EX_NOINPUT, "no recipients");
if (readmail(&queue, nodot, recp_from_header) != 0)
- errlog(1, "can not read mail");
+ errlog(EX_NOINPUT, "can not read mail");
if (LIST_EMPTY(&queue.queue))
- errlogx(1, "no recipients");
+ errlogx(EX_NOINPUT, "no recipients");
if (linkspool(&queue) != 0)
- errlog(1, "can not create spools");
+ errlog(EX_CANTCREAT, "can not create spools");
/* From here on the mail is safe. */
Modified: user/ngie/more-tests2/contrib/dma/dma.h
==============================================================================
--- user/ngie/more-tests2/contrib/dma/dma.h Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/dma.h Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de> and
+ * by Simon Schubert <2 at 0x2c.org> and
* Matthias Schmidt <matthias at dragonflybsd.org>.
*
* Redistribution and use in source and binary forms, with or without
@@ -43,6 +44,7 @@
#include <arpa/inet.h>
#include <openssl/ssl.h>
#include <netdb.h>
+#include <sysexits.h>
#define VERSION "DragonFly Mail Agent " DMA_VERSION
@@ -173,6 +175,8 @@ extern char errmsg[ERRMSG_SIZE];
/* aliases_parse.y */
int yyparse(void);
+int yywrap(void);
+int yylex(void);
extern FILE *yyin;
/* conf.c */
Modified: user/ngie/more-tests2/contrib/dma/dns.c
==============================================================================
--- user/ngie/more-tests2/contrib/dma/dns.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/dns.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -67,7 +68,6 @@ add_host(int pref, const char *host, int
char servname[10];
struct mx_hostentry *p;
const int count_inc = 10;
- int err;
memset(&hints, 0, sizeof(hints));
hints.ai_family = PF_UNSPEC;
@@ -75,9 +75,26 @@ add_host(int pref, const char *host, int
hints.ai_protocol = IPPROTO_TCP;
snprintf(servname, sizeof(servname), "%d", port);
- err = getaddrinfo(host, servname, &hints, &res0);
- if (err)
- return (err == EAI_AGAIN ? 1 : -1);
+ switch (getaddrinfo(host, servname, &hints, &res0)) {
+ case 0:
+ break;
+ case EAI_AGAIN:
+ case EAI_NONAME:
+ /*
+ * EAI_NONAME gets returned for:
+ * SMARTHOST set but DNS server not reachable -> defer
+ * SMARTHOST set but DNS server returns "host does not exist"
+ * -> buggy configuration
+ * -> either defer or bounce would be ok -> defer
+ * MX entry was returned by DNS server but name doesn't resolve
+ * -> hopefully transient situation -> defer
+ * all other DNS problems should have been caught earlier
+ * in dns_get_mx_list().
+ */
+ goto out;
+ default:
+ return(-1);
+ }
for (res = res0; res != NULL; res = res->ai_next) {
if (*ps + 1 >= roundup(*ps, count_inc)) {
Modified: user/ngie/more-tests2/contrib/dma/get-version.sh
==============================================================================
--- user/ngie/more-tests2/contrib/dma/get-version.sh Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/get-version.sh Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,7 +1,9 @@
#!/bin/sh
+tmp=$1
+file=${tmp:=VERSION}
gitver=$(git describe 2>/dev/null | tr - .)
-filever=$(cat VERSION)
+filever=$(cat ${file} 2>/dev/null)
version=${gitver}
: ${version:=$filever}
Modified: user/ngie/more-tests2/contrib/dma/local.c
==============================================================================
--- user/ngie/more-tests2/contrib/dma/local.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/local.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -81,7 +82,7 @@ create_mbox(const char *name)
execl(LIBEXEC_PATH "/dma-mbox-create", "dma-mbox-create", name, NULL);
syslog(LOG_ERR, "cannot execute "LIBEXEC_PATH"/dma-mbox-create: %m");
- exit(1);
+ exit(EX_SOFTWARE);
default:
/* parent */
Modified: user/ngie/more-tests2/contrib/dma/mail.c
==============================================================================
--- user/ngie/more-tests2/contrib/dma/mail.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/mail.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -51,7 +52,7 @@ bounce(struct qitem *it, const char *rea
/* Don't bounce bounced mails */
if (it->sender[0] == 0) {
syslog(LOG_INFO, "can not bounce a bounce message, discarding");
- exit(1);
+ exit(EX_SOFTWARE);
}
bzero(&bounceq, sizeof(bounceq));
@@ -132,7 +133,7 @@ bounce(struct qitem *it, const char *rea
fail:
syslog(LOG_CRIT, "error creating bounce: %m");
delqueue(it);
- exit(1);
+ exit(EX_IOERR);
}
struct parse_state {
@@ -332,10 +333,10 @@ newaddr:
ps->pos = 0;
addr = strdup(ps->addr);
if (addr == NULL)
- errlog(1, "strdup failed");
+ errlog(EX_SOFTWARE, NULL);
if (add_recp(queue, addr, EXPAND_WILDCARD) != 0)
- errlogx(1, "invalid recipient `%s'", addr);
+ errlogx(EX_DATAERR, "invalid recipient `%s'", addr);
goto again;
}
@@ -374,7 +375,9 @@ readmail(struct queue *queue, int nodot,
if (fgets(line, sizeof(line) - 1, stdin) == NULL)
break;
if (had_last_line)
- errlogx(1, "bad mail input format");
+ errlogx(EX_DATAERR, "bad mail input format:"
+ " from %s (uid %d) (envelope-from %s)",
+ username, useruid, queue->sender);
linelen = strlen(line);
if (linelen == 0 || line[linelen - 1] != '\n') {
/*
@@ -405,7 +408,7 @@ readmail(struct queue *queue, int nodot,
if (parse_state.state != NONE) {
if (parse_addrs(&parse_state, line, queue) < 0) {
- errlogx(1, "invalid address in header\n");
+ errlogx(EX_DATAERR, "invalid address in header\n");
/* NOTREACHED */
}
}
@@ -416,7 +419,7 @@ readmail(struct queue *queue, int nodot,
strprefixcmp(line, "Bcc:") == 0)) {
parse_state.state = START;
if (parse_addrs(&parse_state, line, queue) < 0) {
- errlogx(1, "invalid address in header\n");
+ errlogx(EX_DATAERR, "invalid address in header\n");
/* NOTREACHED */
}
}
Modified: user/ngie/more-tests2/contrib/dma/net.c
==============================================================================
--- user/ngie/more-tests2/contrib/dma/net.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/net.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,4 +1,5 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
Modified: user/ngie/more-tests2/contrib/dma/spool.c
==============================================================================
--- user/ngie/more-tests2/contrib/dma/spool.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/spool.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -289,7 +290,7 @@ load_queue(struct queue *queue)
spooldir = opendir(config.spooldir);
if (spooldir == NULL)
- err(1, "reading queue");
+ err(EX_NOINPUT, "reading queue");
while ((de = readdir(spooldir)) != NULL) {
queuefn = NULL;
Modified: user/ngie/more-tests2/contrib/dma/util.c
==============================================================================
--- user/ngie/more-tests2/contrib/dma/util.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/contrib/dma/util.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
Modified: user/ngie/more-tests2/lib/libc/sys/shmctl.2
==============================================================================
--- user/ngie/more-tests2/lib/libc/sys/shmctl.2 Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/lib/libc/sys/shmctl.2 Sun Oct 11 08:28:36 2015 (r289135)
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 17, 1995
+.Dd October 10, 2015
.Dt SHMCTL 2
.Os
.Sh NAME
@@ -72,15 +72,18 @@ or it must have superuser privileges.
.It Dv IPC_RMID
Removes the segment from the system.
The removal will not take
-effect until all processes having attached the segment have exited;
-however, once the IPC_RMID operation has taken place, no further
-processes will be allowed to attach the segment.
+effect until all processes having attached the segment have exited.
For the operation
to succeed, the calling process's effective uid must match
.Fa shm_perm.uid
or
.Fa shm_perm.cuid ,
or the process must have superuser privileges.
+If the
+.Va kern.ipc.shm_allow_removed
+.Xr sysctl 3
+variable is set to 0, once the IPC_RMID operation has taken place,
+no further processes will be allowed to attach the segment.
.\" .It Dv SHM_LOCK
.\" Locks the segment in memory. The calling process must have
.\" superuser privileges. Not implemented in FreeBSD.
Modified: user/ngie/more-tests2/libexec/dma/Makefile.inc
==============================================================================
--- user/ngie/more-tests2/libexec/dma/Makefile.inc Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/libexec/dma/Makefile.inc Sun Oct 11 08:28:36 2015 (r289135)
@@ -7,7 +7,7 @@ DMA_SOURCES= ${.CURDIR}/../../../contrib
CFLAGS= -I${DMA_SOURCES} \
-DHAVE_REALLOCF -DHAVE_STRLCPY -DHAVE_GETPROGNAME \
-DCONF_PATH='"/etc/dma"' \
- -DLIBEXEC_PATH='"/usr/libexec"' -DDMA_VERSION='"v0.9+"' \
+ -DLIBEXEC_PATH='"/usr/libexec"' -DDMA_VERSION='"v0.10"' \
-DDMA_ROOT_USER='"mailnull"' \
-DDMA_GROUP='"mail"'
BINGRP= mail
Modified: user/ngie/more-tests2/libexec/dma/dmagent/Makefile
==============================================================================
--- user/ngie/more-tests2/libexec/dma/dmagent/Makefile Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/libexec/dma/dmagent/Makefile Sun Oct 11 08:28:36 2015 (r289135)
@@ -17,7 +17,7 @@ SRCS= aliases_parse.y \
util.c
MAN8= dma.8
CONFS= dma.conf
-CONFSDIR= ${ETCDIR}/dma
+CONFSDIR= ${CONFIGDIR}/dma
YFLAGS+= -i
CLEANFILES= aliases_parse.i
FILES= mailer.conf
Modified: user/ngie/more-tests2/sbin/geom/class/nop/gnop.8
==============================================================================
--- user/ngie/more-tests2/sbin/geom/class/nop/gnop.8 Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/sbin/geom/class/nop/gnop.8 Sun Oct 11 08:28:36 2015 (r289135)
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd September 15, 2015
+.Dd October 10, 2015
.Dt GNOP 8
.Os
.Sh NAME
@@ -72,9 +72,10 @@ The
utility is used for setting up transparent providers on existing ones.
Its main purpose is testing other GEOM classes, as it allows forced provider
removal and I/O error simulation with a given probability.
-It also gathers the following statistics: number of read requests, number of
-write requests, number of bytes read and number of bytes written.
-In addition, it can be used as a good starting point for implementing new GEOM
+It also gathers statistics on the number of read, write, delete,
+getattr, flush, and other requests, and the number of bytes read and written.
+.Nm
+can also be used as a good starting point for implementing new GEOM
classes.
.Pp
The first argument to
Modified: user/ngie/more-tests2/sbin/mdconfig/mdconfig.8
==============================================================================
--- user/ngie/more-tests2/sbin/mdconfig/mdconfig.8 Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/sbin/mdconfig/mdconfig.8 Sun Oct 11 08:28:36 2015 (r289135)
@@ -37,7 +37,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd August 6, 2015
+.Dd October 10, 2015
.Dt MDCONFIG 8
.Os
.Sh NAME
@@ -159,11 +159,11 @@ prefix.
Size of the memory disk.
.Ar Size
is the number of 512 byte sectors unless suffixed with a
-.Cm b , k , m , g ,
+.Cm b , k , m , g , t ,
or
-.Cm t
+.Cm p
which
-denotes byte, kilobyte, megabyte, gigabyte and terabyte respectively.
+denotes byte, kilobyte, megabyte, gigabyte, terabyte and petabyte respectively.
When used without the
.Fl r
option, the
Modified: user/ngie/more-tests2/sbin/mdconfig/mdconfig.c
==============================================================================
--- user/ngie/more-tests2/sbin/mdconfig/mdconfig.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/sbin/mdconfig/mdconfig.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -88,8 +88,8 @@ usage(void)
fprintf(stderr, "\t\ttype = {malloc, vnode, swap}\n");
fprintf(stderr, "\t\toption = {cluster, compress, reserve}\n");
fprintf(stderr, "\t\tsize = %%d (512 byte blocks), %%db (B),\n");
- fprintf(stderr, "\t\t %%dk (kB), %%dm (MB), %%dg (GB) or\n");
- fprintf(stderr, "\t\t %%dt (TB)\n");
+ fprintf(stderr, "\t\t %%dk (kB), %%dm (MB), %%dg (GB), \n");
+ fprintf(stderr, "\t\t %%dt (TB), or %%dp (PB)\n");
exit(1);
}
@@ -217,6 +217,9 @@ main(int argc, char **argv)
else if (*p == 't' || *p == 'T') {
mdio.md_mediasize <<= 30;
mdio.md_mediasize <<= 10;
+ } else if (*p == 'p' || *p == 'P') {
+ mdio.md_mediasize <<= 30;
+ mdio.md_mediasize <<= 20;
} else
errx(1, "unknown suffix on -s argument");
break;
Modified: user/ngie/more-tests2/share/man/man4/vtnet.4
==============================================================================
--- user/ngie/more-tests2/share/man/man4/vtnet.4 Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/share/man/man4/vtnet.4 Sun Oct 11 08:28:36 2015 (r289135)
@@ -52,9 +52,9 @@ device driver provides support for VirtI
If the hypervisor advertises the appreciate features, the
.Nm
driver supports TCP/UDP checksum offload for both transmit and receive,
-TCP segmentation offload (TSO), TCP large receive offload (LRO), and
-hardware VLAN tag stripping/insertion features, as well as a multicast
-hash filter, as well as Jumbo Frames (up to 9216 bytes), which can be
+TCP segmentation offload (TSO), TCP large receive offload (LRO),
+hardware VLAN tag stripping/insertion features, a multicast hash filter,
+as well as Jumbo Frames (up to 9216 bytes), which can be
configured via the interface MTU setting.
Selecting an MTU larger than 1500 bytes with the
.Xr ifconfig 8
Modified: user/ngie/more-tests2/share/mk/Makefile
==============================================================================
--- user/ngie/more-tests2/share/mk/Makefile Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/share/mk/Makefile Sun Oct 11 08:28:36 2015 (r289135)
@@ -13,6 +13,7 @@ FILES= \
bsd.README \
bsd.arch.inc.mk \
bsd.compiler.mk \
+ bsd.confs.mk \
bsd.cpu.mk \
bsd.crunchgen.mk \
bsd.dep.mk \
Modified: user/ngie/more-tests2/share/mk/bsd.confs.mk
==============================================================================
--- user/ngie/more-tests2/share/mk/bsd.confs.mk Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/share/mk/bsd.confs.mk Sun Oct 11 08:28:36 2015 (r289135)
@@ -22,7 +22,7 @@ all: buildconfig
${group}OWN?= ${SHAREOWN}
${group}GRP?= ${SHAREGRP}
${group}MODE?= ${CONFMODE}
-${group}DIR?= ${ETCDIR}/
+${group}DIR?= ${CONFIGDIR}/
STAGE_SETS+= ${group}
STAGE_DIR.${group}= ${STAGE_OBJTOP}${${group}DIR}
STAGE_SYMLINKS_DIR.${group}= ${STAGE_OBJTOP}
Modified: user/ngie/more-tests2/share/mk/bsd.own.mk
==============================================================================
--- user/ngie/more-tests2/share/mk/bsd.own.mk Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/share/mk/bsd.own.mk Sun Oct 11 08:28:36 2015 (r289135)
@@ -213,7 +213,7 @@ NLSGRP?= ${SHAREGRP}
NLSMODE?= ${NOBINMODE}
INCLUDEDIR?= /usr/include
-ETCDIR?= /etc
+CONFIGDIR?= /etc
#
# install(1) parameters.
Modified: user/ngie/more-tests2/sys/dev/cxgbe/iw_cxgbe/cm.c
==============================================================================
--- user/ngie/more-tests2/sys/dev/cxgbe/iw_cxgbe/cm.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/sys/dev/cxgbe/iw_cxgbe/cm.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -99,7 +99,7 @@ static int abort_connection(struct c4iw_
static void peer_close_upcall(struct c4iw_ep *ep);
static void peer_abort_upcall(struct c4iw_ep *ep);
static void connect_reply_upcall(struct c4iw_ep *ep, int status);
-static void connect_request_upcall(struct c4iw_ep *ep);
+static int connect_request_upcall(struct c4iw_ep *ep);
static void established_upcall(struct c4iw_ep *ep);
static void process_mpa_reply(struct c4iw_ep *ep);
static void process_mpa_request(struct c4iw_ep *ep);
@@ -1216,7 +1216,6 @@ static int abort_connection(struct c4iw_
int err;
CTR2(KTR_IW_CXGBE, "%s:abB %p", __func__, ep);
- close_complete_upcall(ep, -ECONNRESET);
state_set(&ep->com, ABORTING);
abort_socket(ep);
err = close_socket(&ep->com, 0);
@@ -1319,9 +1318,10 @@ static void connect_reply_upcall(struct
CTR2(KTR_IW_CXGBE, "%s:cruE %p", __func__, ep);
}
-static void connect_request_upcall(struct c4iw_ep *ep)
+static int connect_request_upcall(struct c4iw_ep *ep)
{
struct iw_cm_event event;
+ int ret;
CTR3(KTR_IW_CXGBE, "%s: ep %p, mpa_v1 %d", __func__, ep,
ep->tried_with_mpa_v1);
@@ -1355,10 +1355,14 @@ static void connect_request_upcall(struc
}
c4iw_get_ep(&ep->com);
- ep->parent_ep->com.cm_id->event_handler(ep->parent_ep->com.cm_id,
+ ret = ep->parent_ep->com.cm_id->event_handler(ep->parent_ep->com.cm_id,
&event);
+ if(ret)
+ c4iw_put_ep(&ep->com);
+
set_bit(CONNREQ_UPCALL, &ep->com.history);
c4iw_put_ep(&ep->parent_ep->com);
+ return ret;
}
static void established_upcall(struct c4iw_ep *ep)
@@ -1835,9 +1839,11 @@ abort:
/* drive upcall */
mutex_lock(&ep->parent_ep->com.mutex);
- if (ep->parent_ep->com.state != DEAD)
- connect_request_upcall(ep);
- else
+ if (ep->parent_ep->com.state != DEAD) {
+ if(connect_request_upcall(ep)) {
+ abort_connection(ep);
+ }
+ }else
abort_connection(ep);
mutex_unlock(&ep->parent_ep->com.mutex);
}
@@ -2213,7 +2219,7 @@ int c4iw_ep_disconnect(struct c4iw_ep *e
CTR2(KTR_IW_CXGBE, "%s:ced1 %p", __func__, ep);
fatal = 1;
- close_complete_upcall(ep, -EIO);
+ close_complete_upcall(ep, -ECONNRESET);
ep->com.state = DEAD;
}
CTR3(KTR_IW_CXGBE, "%s:ced2 %p %s", __func__, ep,
Modified: user/ngie/more-tests2/sys/dev/drm2/i915/i915_gem.c
==============================================================================
--- user/ngie/more-tests2/sys/dev/drm2/i915/i915_gem.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/sys/dev/drm2/i915/i915_gem.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -2527,10 +2527,8 @@ i915_gem_object_unbind(struct drm_i915_g
if (obj->gtt_space == NULL)
return 0;
- if (obj->pin_count) {
- DRM_ERROR("Attempting to unbind pinned buffer\n");
+ if (obj->pin_count)
return -EINVAL;
- }
ret = i915_gem_object_finish_gpu(obj);
if (ret == -ERESTARTSYS || ret == -EINTR)
Modified: user/ngie/more-tests2/sys/dev/iicbus/icee.c
==============================================================================
--- user/ngie/more-tests2/sys/dev/iicbus/icee.c Sun Oct 11 08:26:48 2015 (r289134)
+++ user/ngie/more-tests2/sys/dev/iicbus/icee.c Sun Oct 11 08:28:36 2015 (r289135)
@@ -48,7 +48,7 @@ __FBSDID("$FreeBSD$");
struct icee_softc {
device_t sc_dev; /* Myself */
- struct sx sc_lock; /* basically a perimeter lock */
+ device_t sc_busdev; /* Parent bus */
struct cdev *cdev; /* user interface */
int addr;
int size; /* How big am I? */
@@ -57,12 +57,6 @@ struct icee_softc {
int wr_sz; /* What's the write page size */
};
-#define ICEE_LOCK(_sc) sx_xlock(&(_sc)->sc_lock)
-#define ICEE_UNLOCK(_sc) sx_xunlock(&(_sc)->sc_lock)
-#define ICEE_LOCK_INIT(_sc) sx_init(&_sc->sc_lock, "icee")
-#define ICEE_LOCK_DESTROY(_sc) sx_destroy(&_sc->sc_lock);
-#define ICEE_ASSERT_LOCKED(_sc) sx_assert(&_sc->sc_lock, SA_XLOCKED);
-#define ICEE_ASSERT_UNLOCKED(_sc) sx_assert(&_sc->sc_lock, SA_UNLOCKED);
#define CDEV2SOFTC(dev) ((dev)->si_drv1)
/* cdev routines */
@@ -97,6 +91,7 @@ icee_attach(device_t dev)
int dunit, err;
sc->sc_dev = dev;
+ sc->sc_busdev = device_get_parent(sc->sc_dev);
sc->addr = iicbus_get_addr(dev);
err = 0;
dname = device_get_name(dev);
@@ -117,7 +112,6 @@ icee_attach(device_t dev)
goto out;
}
sc->cdev->si_drv1 = sc;
- ICEE_LOCK_INIT(sc);
out:
return (err);
}
@@ -155,7 +149,9 @@ icee_read(struct cdev *dev, struct uio *
return (EIO);
if (sc->type != 8 && sc->type != 16)
return (EINVAL);
- ICEE_LOCK(sc);
+ error = iicbus_request_bus(sc->sc_busdev, sc->sc_dev, IIC_INTRWAIT);
+ if (error!= 0)
+ return (iic2errno(error));
slave = error = 0;
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-user
mailing list