|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T o
Length: 4182 (0x1056) Types: TextFile Names: »outbound.tex«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« └─⟦e5a54fb17⟧ └─⟦this⟧ »pp-5.0/doc/manual/volume2/outbound.tex«
\File{outbound.c},{11:14},{Aug 24 1990} \L{\LB{\Proc{main}main (argc, argv)}} \L{\LB{int argc;}} \L{\LB{char **argv;}} \L{\LB{\{}} \L{\LB{}\Tab{8}{sys\_init (argv[0]); \C{}\/* init the channel \- and find out who we are *\/\CE{}}} \L{\LB{}} \L{\LB{}\Tab{8}{dirinit(); \C{}\/* get to the right directory *\/\CE{}}} \L{\LB{\#ifdef PP\_DEBUG}} \L{\LB{}\Tab{8}{if (argc \> 1 \&\& strcmp (argv[1], \S{}\"debug\"\SE{}) == 0)}} \L{\LB{}\Tab{16}{debug\_channel\_control (argc, argv, chaninit, process, endproc);}} \L{\LB{}\Tab{8}{else}} \L{\LB{\#endif}} \L{\LB{}\Tab{16}{channel\_control (argc, argv, chaninit, process, endproc);}} \L{\LB{}\Tab{8}{exit (0);}} \L{\LB{\}}} \L{\LB{}} \L{\LB{static int chaninit (arg)}} \L{\LB{struct type\_Qmgr\_Channel *arg;}} \L{\LB{\{}} \L{\LB{}\Tab{8}{char *p = qb2str (arg);}} \L{\LB{}} \L{\LB{}\Tab{8}{if ((mychan = ch\_nm2struct (p)) == (CHAN *)0)}} \L{\LB{}\Tab{16}{err\_abrt (RP\_PARM, \S{}\"Channel \'\%s\' not known\"\SE{}, p);}} \L{\LB{}\Tab{8}{exam\_init (mychan);}} \L{\LB{}\Tab{8}{free (p);}} \L{\LB{}\Tab{8}{return OK;}} \L{\LB{\}}} \L{\LB{}} \L{\LB{static int endproc ()}} \L{\LB{\{}} \L{\LB{}\Tab{8}{if (cur\_host)}} \L{\LB{}\Tab{16}{exam\_close (OK);}} \L{\LB{\}}} \L{\LB{}} \L{\LB{static struct type\_Qmgr\_DeliveryStatus *process (arg)}} \L{\LB{struct type\_Qmgr\_ProcMsg *arg;}} \L{\LB{\{}} \L{\LB{}\Tab{8}{struct prm\_vars prm;}} \L{\LB{}\Tab{8}{struct type\_Qmgr\_UserList *up;}} \L{\LB{}\Tab{8}{Q\_struct Qstruct, *qp = \&Qstruct;}} \L{\LB{}\Tab{8}{int retval;}} \L{\LB{}\Tab{8}{ADDR *ap,}} \L{\LB{}\Tab{16}{*ad\_sendr = NULLADDR,}} \L{\LB{}\Tab{16}{*ad\_recip = NULLADDR,}} \L{\LB{}\Tab{16}{*alp,}} \L{\LB{}\Tab{16}{*ad\_list = NULLADDR;}} \L{\LB{}\Tab{8}{int ad\_count;}} \L{\LB{}} \L{\LB{}\Tab{8}{if (this\_msg) free (this\_msg);}} \L{\LB{}} \L{\LB{}\Tab{8}{this\_msg = qb2str (arg \-\> qid);}} \L{\LB{}} \L{\LB{}\Tab{8}{PP\_TRACE ((\S{}\"process msg \%s\"\SE{}, this\_msg));}} \L{\LB{}} \L{\LB{}\Tab{8}{bzero ((char *)\&prm, sizeof prm);}} \L{\LB{}\Tab{8}{bzero ((char *)qp, sizeof *qp);}} \L{\LB{}} \L{\LB{}\Tab{8}{(void) delivery\_init (arg \-\> users);}} \L{\LB{}} \L{\LB{}\Tab{8}{retval = rd\_msg (this\_msg, \&prm, qp, \&ad\_sendr, \&ad\_recip, \&ad\_count);}} \L{\LB{}} \L{\LB{}\Tab{8}{if (rp\_isbad (retval)) \{}} \L{\LB{}\Tab{16}{PP\_LOG (LLOG\_EXCEPTIONS, (\S{}\"rd\_msg err: \%s\"\SE{}, this\_msg));}} \L{\LB{}\Tab{16}{return delivery\_setall (int\_Qmgr\_status\_messageFailure);}} \L{\LB{}\Tab{8}{\}}} \L{\LB{}} \L{\LB{}\Tab{8}{sender = ad\_sendr \-\> ad\_r822adr;}} \L{\LB{}} \L{\LB{}} \L{\LB{}\Tab{8}{for (ap = ad\_recip; ap; ap = ap \-\> ad\_next) \{}} \L{\LB{}\Tab{16}{for (up = arg \-\>users; up; up = up \-\> next) \{}} \L{\LB{}\Tab{24}{if (up \-\> RecipientId \-\> parm != ap \-\> ad\_no)}} \L{\LB{}\Tab{32}{continue;}} \L{\LB{}} \L{\LB{}\Tab{24}{if (chan\_acheck (ap, mychan,}} \L{\LB{}\Tab{40}{ ad\_list == NULL, \&cur\_mta) == NOTOK)}} \L{\LB{}\Tab{32}{continue;}} \L{\LB{}\Tab{16}{\}}} \L{\LB{}\Tab{16}{if (up == NULL)}} \L{\LB{}\Tab{24}{continue;}} \L{\LB{}} \L{\LB{}\Tab{16}{if (ad\_list == NULLADDR)}} \L{\LB{}\Tab{24}{ad\_list = alp = (ADDR *) calloc (1, sizeof *alp);}} \L{\LB{}\Tab{16}{else \{}} \L{\LB{}\Tab{24}{alp \-\> ad\_next = (ADDR *) calloc (1, sizeof *alp);}} \L{\LB{}\Tab{24}{alp = alp \-\> ad\_next;}} \L{\LB{}\Tab{16}{\}}} \L{\LB{}\Tab{16}{*alp = *ap;}} \L{\LB{}\Tab{16}{alp \-\> ad\_next = NULLADDR;}} \L{\LB{}\Tab{8}{\}}} \L{\LB{}} \L{\LB{}\Tab{8}{if (ad\_list == NULLADDR) \{}} \L{\LB{}\Tab{16}{PP\_LOG (LLOG\_EXCEPTIONS, (\S{}\"No recipients in user list\"\SE{}));}} \L{\LB{}\Tab{16}{rd\_end ();}} \L{\LB{}\Tab{16}{return deliverystate;}} \L{\LB{}\Tab{8}{\}}} \L{\LB{}} \L{\LB{}\Tab{8}{deliver (ad\_list, qp); \C{}\/* do what is required *\/\CE{}}} \L{\LB{}} \L{\LB{}\Tab{8}{rd\_end();}} \L{\LB{}} \L{\LB{}\Tab{8}{return deliverystate;}} \L{\LB{\}}} \L{\LB{}} \L{\LB{}} \L{\LB{static void dirinit() \C{}\/* Change into pp queue space *\/\CE{}}} \L{\LB{\{}} \L{\LB{}\Tab{8}{if (chdir (quedfldir) \< 0)}} \L{\LB{}\Tab{16}{err\_abrt (RP\_LIO, \S{}\"Unable to change directory to \'\%s\'\"\SE{},}} \L{\LB{}\Tab{48}{quedfldir);}} \L{\LB{\}}}