diff --git a/Makefile.mk b/Makefile.mk index 9c23b15..c0e9c1a 100644 --- a/Makefile.mk +++ b/Makefile.mk @@ -7,6 +7,9 @@ CFLAGS = -i -w -O95 DSITEST_OBJS = dsitest.o aspinterface.o dsi.o readtcp.o endian.o tcpconnection.o atipmapping.o asmglue.o cmdproc.o installcmds.o afpoptions.o strncasecmp.o DSITEST_PROG = dsitest +LISTSESSIONS_OBJS = listsess.o callat.o +LISTSESSIONS_PROG = listsessions + MOUNTAFP_OBJS = afpmounter.o callat.o endian.o MOUNTAFP_PROG = mountafp @@ -34,6 +37,9 @@ $(MOUNTAFP_PROG): $(MOUNTAFP_OBJS) $(DUMPCMDTBL_PROG): $(DUMPCMDTBL_OBJS) $(CC) $(CFLAGS) -o $@ $< +$(LISTSESSIONS_PROG): $(LISTSESSIONS_OBJS) + $(CC) $(CFLAGS) -o $@ $< + $(AFPBRIDGE_PROG): $(AFPBRIDGE_OBJS) $(CC) $(CFLAGS) -M -o $@ $< > $@.map chtyp -tpif $@ diff --git a/listsess.c b/listsess.c new file mode 100644 index 0000000..95797ef --- /dev/null +++ b/listsess.c @@ -0,0 +1,35 @@ +#include +#include + +typedef struct ListSessions2ResultRec { + Byte sessionRefNum; + Byte slotDrive; + char volumeName[28]; + Word volumeID; + char serverName[32]; + char zoneName[33]; +} ListSessions2ResultRec; + +ListSessions2ResultRec ls2Results[20]; + +int main(void) +{ + PFIListSessions2Rec listSessions2Rec; + int i; + + listSessions2Rec.async = 0; + listSessions2Rec.command = pfiListSessions2Command; + listSessions2Rec.bufferLength = sizeof(ls2Results); + listSessions2Rec.bufferPtr = (LongWord)&ls2Results; + i = _CALLAT(&listSessions2Rec); + if (i != 0) { + fprintf(stderr, "Error %04x\n", listSessions2Rec.result); + return; + } + + for (i = 0; i < listSessions2Rec.entriesRtn; i++) { + printf("Session=%i, Volume=%b, Server=%b, Zone=%b\n", + ls2Results[i].sessionRefNum, ls2Results[i].volumeName, + ls2Results[i].serverName, ls2Results[i].zoneName); + } +}