X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/blobdiff_plain/6961095b797229842e1465ff3670625d11e95167..92db088e5b292c1180a090ed369b9851e933e610:/lib/queue.c diff --git a/lib/queue.c b/lib/queue.c index e39ca5f..789d2ea 100644 --- a/lib/queue.c +++ b/lib/queue.c @@ -1,6 +1,6 @@ /* * This file is part of DisOrder. - * Copyright (C) 2004-2009 Richard Kettlewell + * Copyright (C) 2004-2009, 2011, 2013 Richard Kettlewell * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -77,8 +77,9 @@ static int unmarshall_long(char *data, struct queue_entry *q, size_t offset, void (*error_handler)(const char *, void *), void *u) { + char errbuf[1024]; if(xstrtol(&VALUE(q, offset, long), data, 0, 0)) { - error_handler(strerror(errno), u); + error_handler(format_error(ec_errno, errno, errbuf, sizeof errbuf), u); return -1; } return 0; @@ -123,9 +124,10 @@ static int unmarshall_time_t(char *data, struct queue_entry *q, void (*error_handler)(const char *, void *), void *u) { long_long ul; + char errbuf[1024]; if(xstrtoll(&ul, data, 0, 0)) { - error_handler(strerror(errno), u); + error_handler(format_error(ec_errno, errno, errbuf, sizeof errbuf), u); return -1; } VALUE(q, offset, time_t) = ul;