subr.c revision 613a2f6ba31e891e3d947a356daf5e563d43c1ce
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Copyright (c) 2000, Boris Popov
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * All rights reserved.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Redistribution and use in source and binary forms, with or without
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * modification, are permitted provided that the following conditions
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 1. Redistributions of source code must retain the above copyright
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * notice, this list of conditions and the following disclaimer.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 2. Redistributions in binary form must reproduce the above copyright
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * notice, this list of conditions and the following disclaimer in the
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * documentation and/or other materials provided with the distribution.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 3. All advertising materials mentioning features or use of this software
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * must display the following acknowledgement:
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * This product includes software developed by Boris Popov.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 4. Neither the name of the author nor the names of any co-contributors
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * may be used to endorse or promote products derived from this software
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * without specific prior written permission.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * SUCH DAMAGE.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * $Id: subr.c,v 1.19 2005/02/09 00:23:45 lindak Exp $
4bff34e37def8a90f9194d81bc345c52ba20086athurlow return (0);
4bff34e37def8a90f9194d81bc345c52ba20086athurlow return (0);
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Private version of strerror(3C) that
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * knows our special error codes.
4bff34e37def8a90f9194d81bc345c52ba20086athurlow "remote call failed");
4bff34e37def8a90f9194d81bc345c52ba20086athurlow "authentication failed");
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * Print a (descriptive) error message
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * error values:
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 0 - no specific error code available;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow * 1..32767 - system error
4bff34e37def8a90f9194d81bc345c52ba20086athurlow const char *cp;
4bff34e37def8a90f9194d81bc345c52ba20086athurlow fprintf(stderr, ": syserr = %s\n", smb_strerror(error));
4bff34e37def8a90f9194d81bc345c52ba20086athurlow fprintf(stderr, ": raperr = %d (0x%04x)\n", error, error);
4bff34e37def8a90f9194d81bc345c52ba20086athurlow fprintf(stderr, ": nberr = unknown (0x%04x)\n", error);
4bff34e37def8a90f9194d81bc345c52ba20086athurlowsmb_printb(char *dest, int flags, const struct smb_bitname *bnp) {
4bff34e37def8a90f9194d81bc345c52ba20086athurlow while (len--) {
4bff34e37def8a90f9194d81bc345c52ba20086athurlow return (0);
613a2f6ba31e891e3d947a356daf5e563d43c1ceGordon Ross * Number of seconds between 1970 and 1601 year
613a2f6ba31e891e3d947a356daf5e563d43c1ceGordon Ross * (134774 * 24 * 60 * 60)
613a2f6ba31e891e3d947a356daf5e563d43c1ceGordon Rossstatic const uint64_t DIFF1970TO1601 = 11644473600ULL;
613a2f6ba31e891e3d947a356daf5e563d43c1ceGordon Rosssmb_time_local2server(struct timeval *tsp, int tzoff, long *seconds)
613a2f6ba31e891e3d947a356daf5e563d43c1ceGordon Rosssmb_time_server2local(ulong_t seconds, int tzoff, struct timeval *tsp)
613a2f6ba31e891e3d947a356daf5e563d43c1ceGordon Ross * Time from server comes as UTC, so no need to use tz
613a2f6ba31e891e3d947a356daf5e563d43c1ceGordon Rosssmb_time_NT2local(uint64_t nsec, int tzoff, struct timeval *tsp)
613a2f6ba31e891e3d947a356daf5e563d43c1ceGordon Ross smb_time_server2local(nsec / 10000000 - DIFF1970TO1601, 0, tsp);
613a2f6ba31e891e3d947a356daf5e563d43c1ceGordon Rosssmb_time_local2NT(struct timeval *tsp, int tzoff, uint64_t *nsec)
613a2f6ba31e891e3d947a356daf5e563d43c1ceGordon Ross *nsec = (((uint64_t)(seconds) & ~1) + DIFF1970TO1601) *