|
|
1.1 ! root 1: /* ! 2: * figure out who called us ! 3: * research version: ! 4: * network services have a known environment ! 5: * either ! 6: * CSOURCE="source=callingmachine ..." (new service manager) ! 7: * or ! 8: * CSOURCE="callingmachine" (old manager, and some imitations) ! 9: * or ! 10: * DKSOURCE="callingmachine.userid" (very old manager) ! 11: * ! 12: * it may be pointless to support them all in one place ! 13: */ ! 14: ! 15: extern char *getenv(); ! 16: extern char *strchr(), *strrchr(); ! 17: ! 18: #define NULL 0 ! 19: ! 20: char * ! 21: _rfcallsource() ! 22: { ! 23: char *v; ! 24: register char *p; ! 25: ! 26: if ((v = getenv("CSOURCE")) != NULL) { ! 27: if (strncmp("source=", v, 7) == 0) { /* new style */ ! 28: v += 7; ! 29: if ((p = strchr(v, ' ')) != NULL) ! 30: *p = 0; ! 31: return (v); ! 32: } ! 33: /* old style */ ! 34: if ((p = strrchr(v, '!')) != NULL) ! 35: *p = 0; ! 36: return (v); ! 37: } ! 38: if ((v = getenv("DKSOURCE")) != NULL) { /* even older style */ ! 39: if ((p = strchr(v, '.')) != NULL) ! 40: *p = 0; ! 41: return (v); ! 42: } ! 43: /* give up */ ! 44: return (0); ! 45: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.