SCCS-vsn: usr.bin/uucp/libuu/gename.c 5.5
-static char sccsid[] = "@(#)gename.c 5.4 (Berkeley) %G%";
+static char sccsid[] = "@(#)gename.c 5.5 (Berkeley) %G%";
-/*******
- * gename(pre, sys, grade, file) generate file name
- * char grade, *sys, pre, *file;
- *
- * return codes: none
+/*LINTLIBRARY*/
+
+/*
+ * generate file name
*/
gename(pre, sys, grade, file)
char pre, *sys, grade, *file;
*/
gename(pre, sys, grade, file)
char pre, *sys, grade, *file;
static char sqnum[5];
getseq(sqnum);
static char sqnum[5];
getseq(sqnum);
- sprintf(file, "%c.%.7s%c%.*s", pre, sys, grade, SEQLEN, sqnum);
+ sprintf(file,"%c.%.*s%c%.*s", pre, SYSNSIZE, sys, grade, SEQLEN, sqnum);
DEBUG(4, "file - %s\n", file);
}
DEBUG(4, "file - %s\n", file);
}
#define SLOCKTIME 10L
#define SLOCKTRIES 5
#define SLOCKTIME 10L
#define SLOCKTRIES 5
-/*******
- * getseq(snum) get next sequence number
- * char *snum;
- *
- * return codes: none
+/*
+ * get next sequence number
char *alphabet =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
register int i, fd;
char *alphabet =
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
register int i, fd;
+ static char *lastchar = NULL;
if (lastchar == NULL || (snum[SEQLEN-1] = *(lastchar++)) == '\0') {
for (i = 0; i < SLOCKTRIES; i++) {
if (lastchar == NULL || (snum[SEQLEN-1] = *(lastchar++)) == '\0') {
for (i = 0; i < SLOCKTRIES; i++) {
- if (!ulockf(SEQLOCK, (time_t)SLOCKTIME))
+ if (!ulockf(SEQLOCK, SLOCKTIME))
- ASSERT(i < SLOCKTRIES, "CAN NOT GET", SEQLOCK, 0);
+ if (i >= SLOCKTRIES) {
+ int alphalen;
+ logent(SEQLOCK, "CAN NOT LOCK");
+ alphalen = strlen(alphabet);
+ srand((int)time((time_t *)0));
+ for (i=1;i<SEQLEN;i++)
+ *snum++ = alphabet[rand() % alphalen];
+ lastchar = alphabet;
+ *snum = *lastchar++;
+ return;
+ }
if ((fd = open(SEQFILE, 2)) >= 0) {
int alphalen;
if ((fd = open(SEQFILE, 2)) >= 0) {
int alphalen;
}
snum[SEQLEN-1] = alphabet[0];
} else {
}
snum[SEQLEN-1] = alphabet[0];
} else {
- if ((fd = creat(SEQFILE, 0666)) < 0)
- return(FAIL);
for (i = 0; i < SEQLEN; i++)
snum[i] = alphabet[0];
for (i = 0; i < SEQLEN; i++)
snum[i] = alphabet[0];
+ if ((fd = creat(SEQFILE, 0666)) < 0)
+ return;
rmlock(SEQLOCK);
lastchar = alphabet + 1;
}
rmlock(SEQLOCK);
lastchar = alphabet + 1;
}