X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/blobdiff_plain/5b9f3d3788bafcba79c893b1afc6a1c77bc77d20..e8ea4061c8cda115466e3520fa897caa559438ac:/server/servutil.c diff --git a/server/servutil.c b/server/servutil.c index f19ce531..70721396 100644 --- a/server/servutil.c +++ b/server/servutil.c @@ -9,19 +9,18 @@ * * This file is part of Trivial IP Encryption (TrIPE). * - * TrIPE is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. + * TrIPE is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 3 of the License, or (at your + * option) any later version. * - * TrIPE is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * TrIPE is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. * * You should have received a copy of the GNU General Public License - * along with TrIPE; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * along with TrIPE. If not, see . */ /*----- Header files ------------------------------------------------------*/ @@ -32,44 +31,7 @@ octet buf_i[PKBUFSZ], buf_o[PKBUFSZ], buf_t[PKBUFSZ], buf_u[PKBUFSZ]; -/*----- Main code ---------------------------------------------------------*/ - -/* --- @timestr@ --- * - * - * Arguments: @time_t t@ = a time to convert - * - * Returns: A pointer to a textual representation of the time. - * - * Use: Converts a time to a textual representation. Corrupts - * @buf_u@. - */ - -const char *timestr(time_t t) -{ - struct tm *tm; - if (!t) - return ("NEVER"); - tm = localtime(&t); - strftime((char *)buf_u, sizeof(buf_u), "%Y-%m-%dT%H:%M:%S", tm); - return ((const char *)buf_u); -} - -/* --- @mystrieq@ --- * - * - * Arguments: @const char *x, *y@ = two strings - * - * Returns: True if @x@ and @y are equal, up to case. - */ - -int mystrieq(const char *x, const char *y) -{ - for (;;) { - if (!*x && !*y) return (1); - if (tolower((unsigned char)*x) != tolower((unsigned char)*y)) - return (0); - x++; y++; - } -} +/*----- Sequence numbers --------------------------------------------------*/ /* --- @seq_reset@ --- * * @@ -120,4 +82,58 @@ int seq_check(seqwin *s, uint32 q, const char *service) return (0); } +/*----- Random odds and sods ----------------------------------------------*/ + +/* --- @timestr@ --- * + * + * Arguments: @time_t t@ = a time to convert + * + * Returns: A pointer to a textual representation of the time. + * + * Use: Converts a time to a textual representation. Corrupts + * @buf_u@. + */ + +const char *timestr(time_t t) +{ + struct tm *tm; + if (!t) + return ("NEVER"); + tm = localtime(&t); + strftime((char *)buf_u, sizeof(buf_u), "%Y-%m-%dT%H:%M:%S", tm); + return ((const char *)buf_u); +} + +/* --- @mystrieq@ --- * + * + * Arguments: @const char *x, *y@ = two strings + * + * Returns: True if @x@ and @y are equal, up to case. + */ + +int mystrieq(const char *x, const char *y) +{ + for (;;) { + if (!*x && !*y) return (1); + if (tolower((unsigned char)*x) != tolower((unsigned char)*y)) + return (0); + x++; y++; + } +} + +/* --- @addrsz@ --- * + * + * Arguments: @const addr *a@ = a network address + * + * Returns: The size of the address, for passing into the sockets API. + */ + +socklen_t addrsz(const addr *a) +{ + switch (a->sa.sa_family) { + case AF_INET: return (sizeof(a->sin)); + default: abort(); + } +} + /*----- That's all, folks -------------------------------------------------*/