X7ROOT File Manager
Current Path:
/opt/alt/libc-client11/include/c-client
opt
/
alt
/
libc-client11
/
include
/
c-client
/
ðŸ“
..
📄
c-client.h
(1.65 KB)
📄
dummy.h
(1.49 KB)
📄
env.h
(1.47 KB)
📄
env_unix.h
(2.86 KB)
📄
fdstring.h
(1.05 KB)
📄
flockcyg.h
(1.34 KB)
📄
flocksim.h
(4.29 KB)
📄
flstring.h
(799 B)
📄
fs.h
(905 B)
📄
ftl.h
(825 B)
📄
imap4r1.h
(8.01 KB)
📄
linkage.c
(1.2 KB)
📄
linkage.h
(541 B)
📄
mail.h
(66.8 KB)
📄
misc.h
(3.27 KB)
📄
netmsg.h
(987 B)
📄
newsrc.h
(1.45 KB)
📄
nl.h
(939 B)
📄
nntp.h
(1.58 KB)
📄
os_a32.h
(1.2 KB)
📄
os_a41.h
(1.2 KB)
📄
os_a52.h
(1.27 KB)
📄
os_aix.h
(1.1 KB)
📄
os_aos.h
(1.26 KB)
📄
os_art.h
(2.01 KB)
📄
os_asv.h
(1.91 KB)
📄
os_aux.h
(1.18 KB)
📄
os_bsd.h
(1.33 KB)
📄
os_bsf.h
(1.05 KB)
📄
os_bsi.h
(1.03 KB)
📄
os_cvx.h
(1.09 KB)
📄
os_cyg.h
(1.6 KB)
📄
os_d-g.h
(1.35 KB)
📄
os_do4.h
(1.23 KB)
📄
os_drs.h
(1.42 KB)
📄
os_dyn.h
(1.5 KB)
📄
os_hpp.h
(1.36 KB)
📄
os_isc.h
(1.68 KB)
📄
os_lnx.h
(1.45 KB)
📄
os_lyn.h
(1.03 KB)
📄
os_mct.h
(1.05 KB)
📄
os_mnt.h
(1.18 KB)
📄
os_nto.h
(1.64 KB)
📄
os_nxt.h
(1.18 KB)
📄
os_os4.h
(1.17 KB)
📄
os_osf.h
(1.17 KB)
📄
os_osx.h
(1.26 KB)
📄
os_ptx.h
(1.7 KB)
📄
os_pyr.h
(1.42 KB)
📄
os_qnx.h
(1.42 KB)
📄
os_s40.h
(957 B)
📄
os_sc5.h
(1.72 KB)
📄
os_sco.h
(1.76 KB)
📄
os_sgi.h
(1.36 KB)
📄
os_shp.h
(1.36 KB)
📄
os_slx.h
(1.45 KB)
📄
os_soln.h
(1.93 KB)
📄
os_solo.h
(1.9 KB)
📄
os_sos.h
(1.17 KB)
📄
os_sua.h
(1.16 KB)
📄
os_sun.h
(1.28 KB)
📄
os_sv2.h
(2.91 KB)
📄
os_sv4.h
(1.79 KB)
📄
os_ult.h
(1.01 KB)
📄
os_vu2.h
(2.34 KB)
📄
osdep.h
(1.45 KB)
📄
pseudo.h
(838 B)
📄
rfc822.h
(5.29 KB)
📄
shortsym.h
(17.65 KB)
📄
smtp.h
(2.48 KB)
📄
sslio.h
(2.25 KB)
📄
tcp.h
(1.73 KB)
📄
tcp_unix.h
(1.2 KB)
📄
unix.h
(6.55 KB)
📄
utf8.h
(22.43 KB)
📄
utf8aux.h
(1.49 KB)
Editing: unix.h
/* ======================================================================== * Copyright 1988-2006 University of Washington * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * * ======================================================================== */ /* * Program: UNIX mail routines * * Author: Mark Crispin * Networks and Distributed Computing * Computing & Communications * University of Washington * Administration Building, AG-44 * Seattle, WA 98195 * Internet: MRC@CAC.Washington.EDU * * Date: 20 December 1989 * Last Edited: 30 August 2006 */ /* DEDICATION * * This file is dedicated to my dog, Unix, also known as Yun-chan and * Unix J. Terwilliker Jehosophat Aloysius Monstrosity Animal Beast. Unix * passed away at the age of 11 1/2 on September 14, 1996, 12:18 PM PDT, after * a two-month bout with cirrhosis of the liver. * * He was a dear friend, and I miss him terribly. * * Lift a leg, Yunie. Luv ya forever!!!! */ /* Validate line * Accepts: pointer to candidate string to validate as a From header * return pointer to end of date/time field * return pointer to offset from t of time (hours of ``mmm dd hh:mm'') * return pointer to offset from t of time zone (if non-zero) * Returns: t,ti,zn set if valid From string, else ti is NIL */ #define VALID(s,x,ti,zn) { \ ti = 0; \ if ((*s == 'F') && (s[1] == 'r') && (s[2] == 'o') && (s[3] == 'm') && \ (s[4] == ' ')) { \ for (x = s + 5; *x && *x != '\012'; x++); \ if (*x) { \ if (x[-1] == '\015') --x; \ if (x - s >= 41) { \ for (zn = -1; x[zn] != ' '; zn--); \ if ((x[zn-1] == 'm') && (x[zn-2] == 'o') && (x[zn-3] == 'r') && \ (x[zn-4] == 'f') && (x[zn-5] == ' ') && (x[zn-6] == 'e') && \ (x[zn-7] == 't') && (x[zn-8] == 'o') && (x[zn-9] == 'm') && \ (x[zn-10] == 'e') && (x[zn-11] == 'r') && (x[zn-12] == ' '))\ x += zn - 12; \ } \ if (x - s >= 27) { \ if (x[-5] == ' ') { \ if (x[-8] == ':') zn = 0,ti = -5; \ else if (x[-9] == ' ') ti = zn = -9; \ else if ((x[-11] == ' ') && ((x[-10]=='+') || (x[-10]=='-'))) \ ti = zn = -11; \ } \ else if (x[-4] == ' ') { \ if (x[-9] == ' ') zn = -4,ti = -9; \ } \ else if (x[-6] == ' ') { \ if ((x[-11] == ' ') && ((x[-5] == '+') || (x[-5] == '-'))) \ zn = -6,ti = -11; \ } \ if (ti && !((x[ti - 3] == ':') && \ (x[ti -= ((x[ti - 6] == ':') ? 9 : 6)] == ' ') && \ (x[ti - 3] == ' ') && (x[ti - 7] == ' ') && \ (x[ti - 11] == ' '))) ti = 0; \ } \ } \ } \ } /* You are not expected to understand this macro, but read the next page if * you are not faint of heart. * * Known formats to the VALID macro are: * From user Wed Dec 2 05:53 1992 * BSD From user Wed Dec 2 05:53:22 1992 * SysV From user Wed Dec 2 05:53 PST 1992 * rn From user Wed Dec 2 05:53:22 PST 1992 * From user Wed Dec 2 05:53 -0700 1992 * emacs From user Wed Dec 2 05:53:22 -0700 1992 * From user Wed Dec 2 05:53 1992 PST * From user Wed Dec 2 05:53:22 1992 PST * From user Wed Dec 2 05:53 1992 -0700 * Solaris From user Wed Dec 2 05:53:22 1992 -0700 * * Plus all of the above with `` remote from xxx'' after it. Thank you very * much, smail and Solaris, for making my life considerably more complicated. */ /* * What? You want to understand the VALID macro anyway? Alright, since you * insist. Actually, it isn't really all that difficult, provided that you * take it step by step. * * Line 1 Initializes the return ti value to failure (0); * Lines 2-3 Validates that the 1st-5th characters are ``From ''. * Lines 4-6 Validates that there is an end of line and points x at it. * Lines 7-14 First checks to see if the line is at least 41 characters long. * If so, it scans backwards to find the rightmost space. From * that point, it scans backwards to see if the string matches * `` remote from''. If so, it sets x to point to the space at * the start of the string. * Line 15 Makes sure that there are at least 27 characters in the line. * Lines 16-21 Checks if the date/time ends with the year (there is a space * five characters back). If there is a colon three characters * further back, there is no timezone field, so zn is set to 0 * and ti is set in front of the year. Otherwise, there must * either to be a space four characters back for a three-letter * timezone, or a space six characters back followed by a + or - * for a numeric timezone; in either case, zn and ti become the * offset of the space immediately before it. * Lines 22-24 Are the failure case for line 14. If there is a space four * characters back, it is a three-letter timezone; there must be a * space for the year nine characters back. zn is the zone * offset; ti is the offset of the space. * Lines 25-28 Are the failure case for line 20. If there is a space six * characters back, it is a numeric timezone; there must be a * space eleven characters back and a + or - five characters back. * zn is the zone offset; ti is the offset of the space. * Line 29-32 If ti is valid, make sure that the string before ti is of the * form www mmm dd hh:mm or www mmm dd hh:mm:ss, otherwise * invalidate ti. There must be a colon three characters back * and a space six or nine characters back (depending upon * whether or not the character six characters back is a colon). * There must be a space three characters further back (in front * of the day), one seven characters back (in front of the month), * and one eleven characters back (in front of the day of week). * ti is set to be the offset of the space before the time. * * Why a macro? It gets invoked a *lot* in a tight loop. On some of the * newer pipelined machines it is faster being open-coded than it would be if * subroutines are called. * * Why does it scan backwards from the end of the line, instead of doing the * much easier forward scan? There is no deterministic way to parse the * ``user'' field, because it may contain unquoted spaces! Yes, I tested it to * see if unquoted spaces were possible. They are, and I've encountered enough * evil mail to be totally unwilling to trust that ``it will never happen''. */ /* Build parameters */ #define KODRETRY 15 /* kiss-of-death retry in seconds */ #define LOCKTIMEOUT 5 /* lock timeout in minutes */
Upload File
Create Folder